void ncPrintChar(char character) { if (currentVideo >= video + (width*height*2)) { ncClear(); } *currentVideo = character; currentVideo += 2; }
int main() { setup_IDT_entry(0x20, 0x8,(uint64_t) &_irq00Handler, 0x8E); setup_IDT_entry(0x21, 0x8, (uint64_t)&_irq01Handler, 0x8E); setup_IDT_entry(0x80, 0x8,(uint64_t) &syscallHandler, 0x8E); picMasterMask(0xFC); picSlaveMask(0xFF); _sti(); ncPrint("[Kernel Main]"); ncNewline(); ncPrint(" Sample code module at 0x"); ncPrintHex((uint64_t)sampleCodeModuleAddress); ncNewline(); ncPrint(" Calling the sample code module returned: "); ncPrintHex(((EntryPoint)sampleCodeModuleAddress)()); ncNewline(); ncNewline(); ncPrint(" Sample data module at 0x"); ncPrintHex((uint64_t)sampleDataModuleAddress); ncNewline(); ncPrint(" Sample data module contents: "); ncPrint((char*)sampleDataModuleAddress); ncNewline(); ncPrint("[Finished]"); while(1); ncClear(); return 0; }