git-svn-id: https://spexeah.com:8443/svn/Asuro@504 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c

This commit is contained in:
kieron
2018-04-12 00:35:11 +00:00
parent c6ed6453e0
commit 3dc6a1d2b3
19 changed files with 55 additions and 10 deletions
+7
View File
@@ -12,6 +12,7 @@ unit mouse;
interface
uses
tracer,
console,
util,
isr44,
@@ -44,6 +45,7 @@ var
r : pchar;
begin
push_trace('mouse.callback');
packet:= PMousePacket(kalloc(sizeof(TMousePacket)));
f:= (uint32(raw) AND $FF000000) SHR 24;
x:= (uint32(raw) AND $00FF0000) SHR 16;
@@ -102,13 +104,16 @@ begin
kfree(void(packet));
//console.writestring('Mouse Packet: ');
//console.writehexln(DWORD(raw));
pop_trace;
end;
function load(ptr : void) : boolean;
begin
push_trace('mouse.load');
isr44.hook(uint32(@callback));
console.outputln('PS/2 MOUSE', 'LOADED.');
load:= true;
pop_trace;
end;
procedure init();
@@ -116,6 +121,7 @@ var
devid : TDeviceIdentifier;
begin
push_trace('mouse.init');
console.outputln('PS/2 MOUSE', 'INIT BEGIN.');
devid.bus:= biUnknown;
devid.id0:= 0;
@@ -126,6 +132,7 @@ begin
devid.ex:= nil;
drivermanagement.register_driver_ex('PS/2 Mouse', @devid, @load, true);
console.outputln('PS/2 MOUSE', 'INIT END.');
pop_trace;
end;
end.
+1
View File
@@ -49,6 +49,7 @@ procedure register();
begin
memset(uint32(@Hooks[0]), 0, sizeof(pp_hook_method)*MAX_HOOKS);
IDT.set_gate(33, uint32(@Main), $08, ISR_RING_0);
inb($60);
end;
procedure hook(hook_method : uint32);
+43 -9
View File
File diff suppressed because it is too large Load Diff
+4 -1
View File
@@ -40,7 +40,8 @@ uses
storagemanagement,
lists,
net,
fat32;
fat32,
isrmanager;
procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall;
@@ -140,6 +141,7 @@ begin
{ Memory/CPU Init }
idt.init();
isr.init();
//isrmanager.init();
irq.init();
pmemorymanager.init();
vmemorymanager.init();
@@ -194,6 +196,7 @@ begin
console.setdefaultattribute(console.combinecolors(Green, Black));
console.writestringln('Asuro Booted Correctly!');
console.setdefaultattribute(console.combinecolors(White, Black));
if INTE then console.writestringln('Interrupts are enabled.') else console.writestringln('Interrupts are disabled.');
console.writestringln('');
console.writestringln('Press any key to boot in to Asuro Terminal...');
tracer.pop_trace;