I am trying to set up some basic interrupt handlers (Real mode, assembler),
using the following code
Code: Select all
hlt
iret
idt_data:
dw (base_addr + isr0 - $$) & 0xFFFF
dw 0x8
db 0x0
db 0x8E
dw (base_addr + handler - $$) >> 16
dw (base_addr + isr1 - $$) & 0xFFFF
dw 0x8
db 0x0
db 0x8E
dw (base_addr + handler - $$) >> 16
dw (base_addr + isr2 - $$) & 0xFFFF
dw 0x8
db 0x0
db 0x8E
dw (base_addr + handler - $$) >> 16
dw (base_addr + isr3 - $$) & 0xFFFF
dw 0x8
db 0x0
db 0x8E
dw (base_addr + handler - $$) >> 16
dw (base_addr + isr4 - $$) & 0xFFFF
dw 0x8
db 0x0
db 0x8E
dw (base_addr + handler - $$) >> 16
loadints:
cli
pusha
lidt [load]
popa
sti
ret
end_of_idt:
load:
dw end_of_idt - idt_data - 1
dd idt_data
error db "FIND has suffered something painful and has to quit :(", 0
Code: Select all
int 01h
Code: Select all
Plex86/Bochs VGABios (PCI) 0.7a 30 Oct 2011
This VGA/VBE Bios is released under the GNU LGPL
Please visit :
. http://bochs.sourceforge.net
. http://www.nongnu.org/vgabios
Bochs VBE Display Adapter enabled
Bochs BIOS - build: 11/24/11
$Revision: 10789 $ $Date: 2011-11-24 17:03:51 +0100 (Do, 24. Nov 2011) $
Options: apmbios pcibios pnpbios eltorito rombios32
Press F12 for boot menu.
Booting from Floppy...
Loading Boot Image
..............
..................
............
Welcome to FIND (C) 2011 Ben Jackson. Enter 'help' for a lis of commands
ß
Code: Select all
call loadints
int 01h
[CPU0 ] prefetch: EIP [00010000] > CS.limit [0000ffff]
[CPU0 ] interrupt(real mode) vector > idtr.limit
: