ISR0 added

git-svn-id: https://spexeah.com:8443/svn/Asuro@39 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
kieron
2017-05-17 11:59:47 +00:00
parent 4eb5012a8d
commit cbb1ec6f88
19 changed files with 16 additions and 24 deletions

View File

@ -5,6 +5,12 @@ interface
uses
util;
const
ISR_RING_0 = $8E;
ISR_RING_1 = $AE;
ISR_RING_2 = $CE;
ISR_RING_3 = $EE;
type
TIDT_Entry = bitpacked record
base_low : uint16;

View File

@ -3,29 +3,15 @@ unit isr;
interface
uses
idt,
console,
util;
ISR0;
procedure init();
implementation
procedure CLI(); assembler; nostackframe;
asm
CLI
end;
procedure isr0(); interrupt;
begin
CLI;
console.writestringln('Divide by Zero Exception.');
util.halt_and_catch_fire;
end;
procedure init();
begin
idt.set_gate(0, uint32(@isr0), $08, ISR_RING_0);
ISR0.register();
end;
end.

View File

@ -2,12 +2,6 @@ unit system;
interface
const
ISR_RING_0 = $8E;
ISR_RING_1 = $AE;
ISR_RING_2 = $CE;
ISR_RING_3 = $EE;
type
//internal types
cardinal = 0..$FFFFFFFF;

View File

@ -4,6 +4,7 @@ unit util;
interface
procedure CLI();
function hi(b : uint8) : uint8;
function lo(b : uint8) : uint8;
function switchendian(b : uint8) : uint8;
@ -28,6 +29,11 @@ begin
lo:= b AND $0F;
end;
procedure CLI(); assembler; nostackframe;
asm
CLI
end;
function switchendian(b : uint8) : uint8; [public, alias: 'util_switchendian'];
begin
switchendian:= (lo(b) SHL 4) OR hi(b);