Commit Fix Hopefully.
git-svn-id: https://spexeah.com:8443/svn/Asuro@207 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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;
|
||||
|
||||
|
||||
+2
-2
@@ -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;
|
||||
|
||||
|
||||
@@ -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.
|
||||
Reference in New Issue
Block a user