Stupid BIOS tricks

From: Jack Peacock <peacock_at_simconv.com>
Date: Tue Feb 17 16:24:34 1998

> I just downloaded the assembly source to a generic XT bios. It compiles,
> but I can't apparently run it from a command line, or boot off a floppy
> disk that has the thing rawritten on it.

A BIOS is linked to run at a preset address, usually F000 (64K Z80) or
F000:0000 (last 64KB segment on an 8086 in real mode). What I have done
when debugging a BIOS is to link it at a lower address (say, 8000:0000),
then load it into memory at that address with a debugger, set the CS segment
register to 8FFF (a true reset puts it at FFFF), then jump to 8FFF:0000
(simulating a reset to FFFF:0000). Since this is an XT I assume you will be
running in real mode, so address translation isn't a problem unless your
machine has some kind of additional address mapping logic.

Of course you can't run the debugger after that as the BIOS will trash all
your vectors. Be sure to modify the BIOS code to stop the memory sizing
test below segment 8000 or you will memory test right over your BIOS image.
        Hope this helps, Jack Peacock
Received on Tue Feb 17 1998 - 16:24:34 GMT

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:30:53 BST