#include "../os3_common/datatypes.h" #include "include/screen.h" #include "include/interrupts.h" #include "include/pic_8259.h" #include "include/rsdp.h" #include "include/acpi.h" int main() { screen_clear(); screen_write_string("-------- OS3 Stage 1 --------\n", 0);; setup_interrupts(); screen_write_string("Interrupts OK\n", 0); setup_pic(); screen_write_string("PIC OK\n", 0); enable_interrupts(); screen_write_string("STI OK\n", 0); OS_RSDPDescriptor* rsdp = os_find_RSDP(); if (rsdp == 0) { screen_write_string("ERROR: RSDP Not found", 0); while (1) { } } screen_write_string("RSDP OK\n", 0); os_bool acpi_ok = os_acpi_init(rsdp); if (acpi_ok != OS_TRUE) { screen_write_string("ERROR: ACPI Init failed.", 0); while(1) { } } screen_write_string("ACPI Ok\n", 0); screen_write_string("Waiting for any key....\n", 0); os_bool res = os_interrupt_wait(33, 300); if (res == OS_TRUE) { screen_write_string("Keyboard interrupt OK\n", 0); } else { screen_write_error("Keyboard interrupt timed out\n", 0); while(1) { } } while(1) { } return 0; }