On 11/21/2024 8:52 AM, David Schwab via Freedos-devel wrote:
I'm working my way through Norton's Advanced Assembly Language, and in
one section he shows how to the find interrupt vector for the BIOS
keyboard service (int 9). I've found the vector and unassembled it
(being sure to use little endian), but that doesn't look like an
interrupt to me: for one thing, it doesn't begin with STI.
Am I looking in the right place?
The interrupt vectors (pointers to the actual ISR (Interrupt Service
Routine, for ALL interrupts) are located in the first 1KB of RAM
(0x00000 through 0x003FF), this is a fundamental requirement of any x86
(compatible) CPU. Otherwise interrupts don't work.
And no, as others already mentioned, an interrupt routine doesn't have
to start with an STI, and you can find the assembly source of the IBM
PC/AT BIOS in the IPM-PC/AT Technical Reference manual, which is freely
available on the internet, in various places, to confirm that...
There are also at least a couple of XT compatible BIOS available in
source code on the Internet as well.
Ralf
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel