Date: Sat, 25 Dec 2010 15:38:05 -0500
From: dmabry at
mich.com
To:
Subject: Re: C64-C128 CP-M Cartridge Interest
dwight elvey said the following on 12/25/2010 10:30 AM:
---snip---
Hi
I suspect that the reason for this may have been that the original
CP/M was done on computers with 0 based RAM and methods to
load code at 0 on boot.
I don't recall how the MDS800s did this but I do know that early
work on CP/M was done with one of Torode's early controllers.
These were DMA and had there own state machine that
could auto transfer the first boot sector into RAM on reset, independent
of what processor was in the machines.
I have one of his later controllers in my IMSAI and that is how it
works.
Adding hardware to do the ROM/RAM transfer on boot is relatively
easy with the addition of a 7474. Most machines decode a I/O
address. You use the first I/O to toggle the 7474 and that turns
on the RAM and the ROM off. Reset is connected to the 7474.
Most ROM and RAM boards use some type of comparator to
determine the addess ( a 74688 was what I recall ). Normally
the input was tied to ground. This could be tied to the 7474.
On newer boards, there was the phantom signal.
The boot ROM would transfer all the needed ROM to RAM
and then switch to all RAM.
Dwight
While I remember, at least I *think* I remember, I'll fill in one
question here. The MDS800 had a switch on the front panel called
"boot." When in the up position it switched a small EPROM (1702) into
low memory that had the initial boot code in it. That was enough to
load the first track of the floppy disk into RAM. That boot switch only
affected the *read* cycles. *Writes* were still deposited into the RAM
at low memory.
Once the boot code from the disk was read into low RAM the execution
from the 1702 went into a tight loop waiting. There was an indication
of that in an LED on the front panel, INT2 as I recall. The user would
toggle the "boot" switch and execution would continue but now from the
ram that was just loaded. The boot process would finish by bringing in
the operating system from the disk, either ISIS-II, CP/M, FORTH, or
whatever you were using.
Pretty sure I remember that correctly. Wish I never sold mine. It was
definitely a classic!
Dave
Hi Dave
I think you are correct. It has been a long time since I booted an MDS800.
Still, it is well documented that the early Kildall's machines used Torode's
disk controller that would DMA the first sector into RAM on reset.
This was before he had a MDS800 as was used for later versions of
CP/M. I would guess that Kildall's first machines had no ROMs in them
at all.
Dwight