On 24 Apr 2007 at 12:01, Ethan Dicks wrote:
Right. That much I get... so once CP/M is running,
it's ordinary not
to refer to the boot ROMs? There's typically not a requirement to
keep some low-level BIOSy stuff in ROM?
Nope. CP/M installations are typically self-contained, though there
are a few systems that keep ROM around for I/O servicing. Since
you'll be writing your own boot code, you can do ROM mapping however
you'd like. A simple way is to keep your boot code and monitor at
0000 and have the boot routine from diskette simply unmap the ROM.
Note that the CBIOS code (which not only provides I/O, but also loads
the rest of the operating system is located in high memory and
doesn't require anything in low memory to get going.
One caution here. If you need interrupt service (say, if you're
interfacing a PC keyboard), do not give in to the temptation to use
the Z80 NMI line. NMI vectors to 0066H, which happens to be right in
the middle of FCB2. There are some very messy workarounds for this
for some systems, but the best thing to do is to avoid it. Use a
"regular" interrupt if you need one.
I think that the old Tarbell disk controller used a 82S23 bipolar ROM
to read one sector from disk. That's only 32 bytes, but it was
enough.
Cheers,
Chuck