diff --git a/Asuro.iso b/Asuro.iso index 0f8faee6..9c048136 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index 67506078..370fca4f 100755 Binary files a/bin/kernel.bin and b/bin/kernel.bin differ diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index 67506078..370fca4f 100755 Binary files a/iso/boot/asuro.bin and b/iso/boot/asuro.bin differ diff --git a/lib/irq.ppu b/lib/irq.ppu index 154ec19a..d25ad090 100644 Binary files a/lib/irq.ppu and b/lib/irq.ppu differ diff --git a/lib/isr.ppu b/lib/isr.ppu index 79422f5a..2af896b6 100644 Binary files a/lib/isr.ppu and b/lib/isr.ppu differ diff --git a/lib/isr45.ppu b/lib/isr45.ppu deleted file mode 100644 index 482b5086..00000000 Binary files a/lib/isr45.ppu and /dev/null differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index d73cb385..195cc5df 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 6ce6905f..aa22a881 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 9f0d4b58..d04d987c 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 1fe72322..98e0df9a 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/src/irq.pas b/src/irq.pas index 6fa4b521..b815853d 100644 --- a/src/irq.pas +++ b/src/irq.pas @@ -28,10 +28,8 @@ begin outb($A1, $02); outb($21, $01); outb($A1, $01); - outb($21, $00); outb($A1, $00); - console.writestringln('IRQ: INIT END.'); end; diff --git a/src/isr.pas b/src/isr.pas index 5cad005b..9b8c1650 100644 --- a/src/isr.pas +++ b/src/isr.pas @@ -16,7 +16,7 @@ uses ISR0, ISR1, ISR2, ISR3, ISR4, ISR5, ISR6, ISR7, ISR8, ISR9, ISR10, ISR11, ISR12, ISR13, ISR14, ISR15, ISR16, ISR17, ISR18, ISR32, ISR33, - ISR40, ISR45; + ISR40, ISR44; procedure init(); @@ -48,7 +48,7 @@ begin ISR32.register(); // 55ms Timer ISR33.register(); // Keyboard ISR40.register(); // 1024/s Timer - ISR45.register(); // Mouse + ISR44.register(); // Mouse console.writestringln('ISR: INIT END.'); end; diff --git a/src/isr/isr45.pas b/src/isr/isr45.pas deleted file mode 100644 index a0bcd5db..00000000 --- a/src/isr/isr45.pas +++ /dev/null @@ -1,91 +0,0 @@ -{ ************************************************ - * Asuro - * Unit: Drivers/ISR45 - * Description: Mouse ISR (IRQ12) - ************************************************ - * Author: K Morris - * Contributors: - ************************************************ } - -unit isr45; - -interface - -uses - util, - console, - isr_types, - IDT; - -procedure register(); -procedure hook(hook_method : uint32); -procedure unhook(hook_method : uint32); - -implementation - -var - Hooks : Array[1..MAX_HOOKS] of pp_hook_method; - -procedure Main(); interrupt; -var - i : integer; - -begin - CLI; - console.writestringln('Mouse INT'); - for i:=0 to MAX_HOOKS-1 do begin - if uint32(Hooks[i]) <> 0 then Hooks[i](void($00000000)); - end; -end; - -procedure register(); -var - status : uint8; - bm : PBitMask; - ak : uint8; - -begin - memset(uint32(@Hooks[0]), 0, sizeof(pp_hook_method)*MAX_HOOKS); - IDT.set_gate(45, uint32(@Main), $08, ISR_RING_0); - outb($64, $20); - status:= inb($64); - ak:= inb($64); - console.writebin8ln(status); - bm:= PBitMask(@status); - bm^.b1:= true; - bm^.b5:= false; - console.writebin8ln(status); - while true do begin end; - outb($64, $60); - ak:= inb($60); - outb($64, status); - ak:= inb($60); -end; - -procedure hook(hook_method : uint32); -var - i : uint32; - -begin - for i:=0 to MAX_HOOKS-1 do begin - if uint32(Hooks[i]) = hook_method then exit; - end; - for i:=0 to MAX_HOOKS-1 do begin - if uint32(Hooks[i]) = 0 then begin - Hooks[i]:= pp_hook_method(hook_method); - exit; - end; - end; -end; - -procedure unhook(hook_method : uint32); -var - i : uint32; -begin - for i:=0 to MAX_HOOKS-1 do begin - If uint32(Hooks[i]) = hook_method then Hooks[i]:= nil; - exit; - end; -end; - -end. \ No newline at end of file