void kernel_main() { int i = 0xa0000; for( ; i <= 0xaffff; ++i ){ asm_write_mem( i, 1 ); } // Delete boot sector and temporary data. for( i = 0x1000; i <= 0x9fc00; ++i ){ asm_write_mem( i, 0 ); } init_palette(); i = 0xa0000; for( ; i <= 0xaffff; ++i ){ asm_write_mem( i, 0 ); } asm_disable_intr(); InitGDT(); InitIDT(); InitPIC(); asm_enable_intr(); set_task( 1, task_a, stack[ 0 ] + 2048 ); set_task( 2, task_b, stack[ 1 ] + 2048 ); switch_task_2( TASK_INFO_ADDR, TASK_INFO_ADDR + sizeof( TaskInfo ) ); for(;;){ print_str( 0, 20, "fin" ); asm_halt(); } asm_halt(); }
void InitDescriptorTables() { InitGDT(); InitIDT(); memset(&InterruptHandlers,0,sizeof(ISRType)*256); }