int main(){ char ch[7]; /* the returns from the terminal are up to 6 chars long, 7th is for \0 */ i_setup(); while( 1 ){ t_read(ch, 7); printf("I got (%s)\n", ch); if( ch[0] == 27 && ch[1] == 0 ){ /* either escape or stray alt */ } if( ch[0] == 27 && ch[1] == 'q' && ch[2] == 0 ){ /* alt+q */ break; } } i_tidyup(); };
void init_interrupts() { install_interupt_handle(0, &irq_dumb0, 0x8f); install_interupt_handle(1, &irq_dumb1, 0x8f); install_interupt_handle(2, &irq_dumb2, 0x8e); install_interupt_handle(3, &irq_dumb3, 0x8e); install_interupt_handle(4, &irq_dumb4, 0x8e); install_interupt_handle(5, &irq_dumb5, 0x8f); install_interupt_handle(6, &irq_dumb6, 0x8f); install_interupt_handle(7, &irq_dumb7, 0x8f); install_interupt_handle(8, &irq_dumb_error8, 0x8f); install_interupt_handle(9, &irq_dumb_error9, 0x8f); install_interupt_handle(10, &irq_dumb_error10, 0x8f); install_interupt_handle(11, &irq_dumb_error11, 0x8f); install_interupt_handle(12, &irq_dumb_error12, 0x8f); install_interupt_handle(13, &irq_dumb_error13, 0x8f); install_interupt_handle(14, &irq_dumb_error14, 0x8f); install_interupt_handle(16, &irq_dumb16, 0x8f); install_interupt_handle(17, &irq_dumb_error17, 0x8f); int i; for (i = 17; i < 32; ++i) { install_interupt_handle(i, &irq_dumb_error, 0x8f); } install_interupt_handle(0x20, &irq_timer, 0x8e); install_interupt_handle(0x21, &irq_kb, 0x8e); for (i = 0x22; i < 0x70; ++i) { install_interupt_handle(i, &irq_dumb, 0x8e); } i_setup(); i_enable(); }