From 066a5fcd543e46dc389b3440afe7d9ee270eb9a6 Mon Sep 17 00:00:00 2001 From: aaron Date: Wed, 17 May 2017 13:27:44 +0000 Subject: [PATCH] git-svn-id: https://spexeah.com:8443/svn/Asuro@56 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- src/drivers/isr49.pas | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/drivers/isr49.pas 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.