Ejemplo n.º 1
0
void check_reg()
{
    printf("\n--REGISTER CHECK--\n");
    sc_regInit();
    int tmp = 0;
    printf("test regSet()\n");
    if (!sc_regSet(FLAG_OVERFLOW, 1)) {
        printf("passed:\n");
        printf("%d\n", sc_register.flag);
        printf("test sc_regGet()\n");
        if (!sc_regGet(FLAG_OVERFLOW, &tmp) && tmp == 1) {
            printf("%d\n", tmp);
            printf("passed\n");
            printf("test accumulating flags:\n");
            sc_regSet(FLAG_MEMORY_ERROR, 1);
            if (sc_register.flag == (FLAG_OVERFLOW | FLAG_MEMORY_ERROR)) {
                printf("flags accumulated true");
                printf("**REGISTER OK\n");
                return;
            }
        }
    }

    printf("REGISTER FAILED\n");
    return;
}
Ejemplo n.º 2
0
int main()
{
    signal (SIGALRM, signalhandler);
    signal (SIGUSR1, reset);

    nval.it_interval.tv_sec  = 1;
    nval.it_interval.tv_usec = 0;
    nval.it_value.tv_sec  = 1;
    nval.it_value.tv_usec = 0;	
	
    sc_regInit();
    termInit();
    ax = 0x0;
    ip = 0x0;

    enum Keys key = K_UNKNOWN;
	
	displayBorders();
    displayUI();
    
    f_key = 0;
    f_ign = 0;
    
    while (key != K_Q) {
		
		readKey (&key);
		
		if (key == K_T) {
			sc_regSet(IR, 0);
			alarm(0); 
			f_key = 0;
			cu();
		}
		
		if (!f_key) {
			if (key == K_R    )  {
				sc_regSet(IR, 1);
				sc_regSet(IF, 0);
			}
			
			sc_regGet(IR, &f_key);
			
			if (f_key) {
				timerStart();        
			}
			
			if (key == K_F5   ) user_input_ax();
			if (key == K_F6   ) user_input_ip();
			if (key == K_RIGHT) if (mem_ptr < 99) ++mem_ptr;
			if (key == K_LEFT ) if (mem_ptr >  0) --mem_ptr;
			if (key == K_UP   ) if (mem_ptr - 10 >=  0) mem_ptr -= 10;
			if (key == K_DOWN ) if (mem_ptr + 10 < 100) mem_ptr += 10;
			if (key == K_L	  ) sc_memoryLoad("memory.o");
			if (key == K_S	  ) sc_memorySave("memory.o");
			if (key == K_E	  ) user_input_mem(); 
			if (key == K_I) {
				displayBorders();
				displayUI();
				sc_memoryInit();
				sc_regInit();
			}
			displayUI ();
		}
		
	}
    
	return 0;
}