diff --git a/Asuro.iso b/Asuro.iso index 2a7d8ac3..f30be34b 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index bbf21804..4c1436d7 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 bbf21804..4c1436d7 100755 Binary files a/iso/boot/asuro.bin and b/iso/boot/asuro.bin differ diff --git a/lib/isr0.ppu b/lib/isr0.ppu index 60e5b98b..a867d5df 100644 Binary files a/lib/isr0.ppu and b/lib/isr0.ppu differ diff --git a/lib/isr1.ppu b/lib/isr1.ppu index d1e73edf..7989855b 100644 Binary files a/lib/isr1.ppu and b/lib/isr1.ppu differ diff --git a/lib/isr10.ppu b/lib/isr10.ppu index 9379dd89..6ce534ce 100644 Binary files a/lib/isr10.ppu and b/lib/isr10.ppu differ diff --git a/lib/isr11.ppu b/lib/isr11.ppu index 482ffb84..32f833bc 100644 Binary files a/lib/isr11.ppu and b/lib/isr11.ppu differ diff --git a/lib/isr12.ppu b/lib/isr12.ppu index dc374988..c575d87f 100644 Binary files a/lib/isr12.ppu and b/lib/isr12.ppu differ diff --git a/lib/isr13.ppu b/lib/isr13.ppu index e24abd86..9537e9f2 100644 Binary files a/lib/isr13.ppu and b/lib/isr13.ppu differ diff --git a/lib/isr14.ppu b/lib/isr14.ppu index d7f19467..eaa0fd59 100644 Binary files a/lib/isr14.ppu and b/lib/isr14.ppu differ diff --git a/lib/isr15.ppu b/lib/isr15.ppu index 244b1290..284adc82 100644 Binary files a/lib/isr15.ppu and b/lib/isr15.ppu differ diff --git a/lib/isr16.ppu b/lib/isr16.ppu index 0f884324..561377f9 100644 Binary files a/lib/isr16.ppu and b/lib/isr16.ppu differ diff --git a/lib/isr17.ppu b/lib/isr17.ppu index 4a5cb396..73f77f51 100644 Binary files a/lib/isr17.ppu and b/lib/isr17.ppu differ diff --git a/lib/isr18.ppu b/lib/isr18.ppu index ec0fde94..9babd66f 100644 Binary files a/lib/isr18.ppu and b/lib/isr18.ppu differ diff --git a/lib/isr2.ppu b/lib/isr2.ppu index 33b56169..f1dbea57 100644 Binary files a/lib/isr2.ppu and b/lib/isr2.ppu differ diff --git a/lib/isr3.ppu b/lib/isr3.ppu index 2cc07a54..3a18ee8c 100644 Binary files a/lib/isr3.ppu and b/lib/isr3.ppu differ diff --git a/lib/isr4.ppu b/lib/isr4.ppu index d6598973..fce0a61e 100644 Binary files a/lib/isr4.ppu and b/lib/isr4.ppu differ diff --git a/lib/isr5.ppu b/lib/isr5.ppu index 12d68a11..457a70d4 100644 Binary files a/lib/isr5.ppu and b/lib/isr5.ppu differ diff --git a/lib/isr6.ppu b/lib/isr6.ppu index 1950c967..7673df5f 100644 Binary files a/lib/isr6.ppu and b/lib/isr6.ppu differ diff --git a/lib/isr7.ppu b/lib/isr7.ppu index 47973135..e74432be 100644 Binary files a/lib/isr7.ppu and b/lib/isr7.ppu differ diff --git a/lib/isr8.ppu b/lib/isr8.ppu index decd6a2d..451b4902 100644 Binary files a/lib/isr8.ppu and b/lib/isr8.ppu differ diff --git a/lib/isr9.ppu b/lib/isr9.ppu index 718c54a8..dedac14c 100644 Binary files a/lib/isr9.ppu and b/lib/isr9.ppu differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index ce204ac4..b0c72778 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 7d430c6e..930a437f 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index d5b93d6b..4a29ede8 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index b2c075e6..8bb3dd67 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/src/isr/isr0.pas b/src/isr/isr0.pas index fe865d14..2b102c90 100644 --- a/src/isr/isr0.pas +++ b/src/isr/isr0.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(0)); end; + BSOD('DBZ', 'Divide By Zero Exception.'); console.writestringln('Divide by Zero Exception.'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr1.pas b/src/isr/isr1.pas index d0dc9aa6..9e0fbf83 100644 --- a/src/isr/isr1.pas +++ b/src/isr/isr1.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(1)); end; + BSOD('DE', 'Debug Exception'); console.writestringln('Debug Exception.'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr10.pas b/src/isr/isr10.pas index 0cd513df..2db31c84 100644 --- a/src/isr/isr10.pas +++ b/src/isr/isr10.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(10)); end; + BSOD('TSS', 'Bad TSS Exception.'); console.writestringln('Bad TSS Exception.'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr11.pas b/src/isr/isr11.pas index a9601444..046f36bb 100644 --- a/src/isr/isr11.pas +++ b/src/isr/isr11.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(11)); end; + BSOD('SNS', 'Segment Not Present Exception.'); console.writestringln('Segment Not Present Exception.'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr12.pas b/src/isr/isr12.pas index 8077bc3a..6cace3ca 100644 --- a/src/isr/isr12.pas +++ b/src/isr/isr12.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(12)); end; + BSOD('SF', 'Stack Fault Exception.'); console.writestringln('Stack Fault Exception.'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr13.pas b/src/isr/isr13.pas index 550fc2e4..d5209fa7 100644 --- a/src/isr/isr13.pas +++ b/src/isr/isr13.pas @@ -40,6 +40,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(13)); end; + BSOD('GPF', 'General Protection Fault.'); console.writestringln('General Protection Fault.'); console.writestring('Flags: '); console.writehexln(Regs^.EFlags); diff --git a/src/isr/isr14.pas b/src/isr/isr14.pas index edf72fe1..91f5f88c 100644 --- a/src/isr/isr14.pas +++ b/src/isr/isr14.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(14)); end; + BSOD('PF', 'Page Fault.'); console.writestringln('Page Fault.'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr15.pas b/src/isr/isr15.pas index 727f8de2..b8f764c9 100644 --- a/src/isr/isr15.pas +++ b/src/isr/isr15.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(15)); end; + BSOD('UI', 'Unknown Interrupt Exception.'); console.writestringln('Unknown Interrupt Exception.'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr16.pas b/src/isr/isr16.pas index 4403b6fb..830dc53e 100644 --- a/src/isr/isr16.pas +++ b/src/isr/isr16.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(16)); end; + BSOD('CF', 'Coprocessor Fault Exception.'); console.writestringln('Coprocessor Fault Exception.'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr17.pas b/src/isr/isr17.pas index af897656..eaa336c3 100644 --- a/src/isr/isr17.pas +++ b/src/isr/isr17.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(17)); end; + BSOD('AC', 'Alignment Check Exception.'); console.writestringln('Alignment Check Exception.'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr18.pas b/src/isr/isr18.pas index f89905c3..4c1cd5c1 100644 --- a/src/isr/isr18.pas +++ b/src/isr/isr18.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(18)); end; + BSOD('MC', 'Machine Check Exception.'); console.writestringln('Machine Check Exception.'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr2.pas b/src/isr/isr2.pas index d68bcee7..fb3cde92 100644 --- a/src/isr/isr2.pas +++ b/src/isr/isr2.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(2)); end; + BSOD('NMI', 'Non-Maskable Interrupt Exception.'); console.writestringln('NMI Exception.'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr3.pas b/src/isr/isr3.pas index 2df4599b..8cb38e39 100644 --- a/src/isr/isr3.pas +++ b/src/isr/isr3.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(3)); end; + BSOD('BE', 'Breakpoint Exception.'); console.writestringln('Breakpoint Exception'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr4.pas b/src/isr/isr4.pas index 3e770a69..5dde21c0 100644 --- a/src/isr/isr4.pas +++ b/src/isr/isr4.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(4)); end; + BSOD('IDO', 'Into Detected Overflow Exception.'); console.writestringln('IDO Exception.'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr5.pas b/src/isr/isr5.pas index 31b759c5..e4352b0e 100644 --- a/src/isr/isr5.pas +++ b/src/isr/isr5.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(5)); end; + BSOD('OOB', 'Out of Bouunds Exception.'); console.writestringln('OOB Exception.'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr6.pas b/src/isr/isr6.pas index 6b404170..a060504e 100644 --- a/src/isr/isr6.pas +++ b/src/isr/isr6.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(6)); end; + BSOD('IO', 'Invalid OPCode Exception.'); console.writestringln('Invalid OPCode Exception.'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr7.pas b/src/isr/isr7.pas index 0feef9cb..bef6292e 100644 --- a/src/isr/isr7.pas +++ b/src/isr/isr7.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(7)); end; + BSOD('NC', 'No Coprocessor Exception.'); console.writestringln('No Coprocessor Exception.'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr8.pas b/src/isr/isr8.pas index 27dcef0d..2d17e9a1 100644 --- a/src/isr/isr8.pas +++ b/src/isr/isr8.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(8)); end; + BSOD('DF', 'Double Fault.'); console.writestringln('Double Fault.'); util.halt_and_catch_fire; end; diff --git a/src/isr/isr9.pas b/src/isr/isr9.pas index 27f31bbf..91dce611 100644 --- a/src/isr/isr9.pas +++ b/src/isr/isr9.pas @@ -35,6 +35,7 @@ begin for i:=0 to MAX_HOOKS-1 do begin if uint32(Hooks[i]) <> 0 then Hooks[i](void(9)); end; + BSOD('CSO', 'Coprocessor Seg Overrun Exception.'); console.writestringln('Coprocessor Seg Overrun Exception.'); util.halt_and_catch_fire; end; diff --git a/src/kernel.pas b/src/kernel.pas index 2540d1cf..e06577b8 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -87,10 +87,6 @@ var atmp : puint32; test : puint8; - LList : PLinkedListBase; - Elem : Void; - Str : PChar; - begin multibootinfo:= mbinfo;