Commit Fix Hopefully.

git-svn-id: https://spexeah.com:8443/svn/Asuro@207 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
kieron 2017-10-22 00:00:27 +00:00
parent 1eb8256044
commit 4becc26686
13 changed files with 2 additions and 95 deletions

BIN
Asuro.iso

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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;

View File

@ -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;

View File

@ -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.