Subject: Re: Hand-rolling a CP/M machine
From: Warren Wolfe <wizard at voyager.net>
Date: Tue, 24 Apr 2007 15:36:14 -0400
To: "General Discussion: On-Topic and Off-Topic Posts" <cctalk at
classiccmp.org>
On Tue, 2007-04-24 at 12:01 -0400, 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?
No, there is no requirement to keep ANY ROM available after boot.
It is preferable, in most cases, to have the entire address space made
up of RAM once the system is actually running, as opposed to booting.
Some cases involve copying the ROM contents to RAM during boot, and then
disabling ROM. Again, as has been implied, EVERYBODY chose their own
method -- some were better than others, naturally enough. As a matter
of fact, for those systems which implement ROM at 0000 for booting, the
ROM *MUST* be disabled for any even half-way normal CP/M system to run.
(See the previous discussions on CP/M for Radio Shack Models)
Basically I like to call it this way.
CP/M doesn't care how it gets there, only that it does.
Right. I know
that there are *many* CP/M hardware configurations; I
am trying to get down the nub of as minimal a hardware design as
possible.
CPU, 64k RAM, disk(ette) controller, ROM able to be disabled (could
be on controller), serial port. Anything else is gravy.
I'd simplify diskette controller to mass storage (any form).
Sure. For the
minimal system I have in mind, I'm planning on a VT100
or some modern machine running a terminal emulator (Kermit, et al.) to
handle screen formatting.
Perfect.
Yep. Works well enough.
A video card will chew up valuable RAM, and many of
them are only 16x64,
but it does let you do real-time screen updates, games etc.
Ah... now we are onto something - games... are there many games for
CP/M that require a video card, or were most happy with whatever sort
of TTY-type device (ANSI codes or not) was out there?
Video card manufacturers often produced games. Probably the most
common target video card was the VDM-1 card, as in the Sol-20 by
Processor Technology. I have one of those cards in my IMSAI. 16x64,
and takes up 1 K of memory. I've seen boots that involve a VDM-1, and
one 2708 (1K EPROM) that leaves 62K for RAM, and uses the VDM-1 memory
for stack during boot, IIRC. Ugly, but it works. VDM-1 cards require
S-100 bus, or massive hacking. That makes them, probably, outside the
parameters of the "quickest and cheapest" setup you've set.
the logic for rolling your own VDM1 equivilent is 1K of ram in the
address space and a screen refresh (H and V timing, line counters)
are about 10 or so TTL peices. It's actiully simple if you do not
have to build a S100 bus interface. You can copy the screen logic
for TRS80 as that is a basic 64x16 as well.
Real time updates are possible as the refresh/scan logic keep the video
going and the CPU does the memory updates for games.
Allison