For my own purposes I need to test some self-booting IBM PC sofware in a slightly altered environment. More specifically, the idea is to boot first into my own code, which does the following:
- Copy a small BIOS data table to somewhere in RAM and modify it
- Target the relevant pointer (in the IVT) at my modified copy
- Prompt for a new disk (the software I wish to run) and let its boot loader take over
This should all be fairly straightforward... except for one thing: How to minimize the odds that next program will clobber my data table. I know I can't make it *impossible*, so "somehwat unlikely" will have to do.
Most booter software doesn't tend to hog every last drop of RAM; so my current idea is to place my table at the top of memory, and reduce the reported memory size in the BIOS Data Area (1K will do) before transferring control to the next program. A reasonably safe approach? Any downsides/other considerations I might be missing?
- Copy a small BIOS data table to somewhere in RAM and modify it
- Target the relevant pointer (in the IVT) at my modified copy
- Prompt for a new disk (the software I wish to run) and let its boot loader take over
This should all be fairly straightforward... except for one thing: How to minimize the odds that next program will clobber my data table. I know I can't make it *impossible*, so "somehwat unlikely" will have to do.
Most booter software doesn't tend to hog every last drop of RAM; so my current idea is to place my table at the top of memory, and reduce the reported memory size in the BIOS Data Area (1K will do) before transferring control to the next program. A reasonably safe approach? Any downsides/other considerations I might be missing?