diff --git a/src/drivers/isr49.pas b/src/drivers/isr49.pas new file mode 100644 index 00000000..aba5cc87 --- /dev/null +++ b/src/drivers/isr49.pas @@ -0,0 +1,43 @@ +{ ************************************************ + * Asuro + * Unit: Drivers/isr32 + * Description: 1024/s Timer interrupt + ************************************************ + * Author: Aaron Hance + * Contributors: + ************************************************ } + +unit isr32; + +interface + +uses + util, + console, + IDT; + +type + pp_void = procedure(); + +var + procedure_ptr : pp_void = nil; + +procedure register(); + +implementation + +procedure Main; interrupt; //IRQ0, called every 55ms +begin + CLI; + if(procedure_ptr <> nil) then begin + procedure_ptr(); + end; + outb($0020, $20); +end; + +procedure register(); +begin + IDT.set_gate(40, uint32(@Main), $08, ISR_RING_0); +end; + +end.