On 12/25/2010 07:11 AM, Tony Duell wrote:
>
> I'll try to ask a different question here
>
> What is needed to CREATE (and not build) a CP/M compatible computer?
>
> Now it got me puzzled. I have some circuit adaptations of MSX and TRS-80
> computers, as minimal computers to run CP/M code. But what is needed -
> beyond Z80 and 64K of RAM - to run CPM? Is there any kind of doc discussing
> it?
Minimal system:
8080, 8085, NsC800, Z80, or Z180 cpu. The prefered CPU is z80 as
it's easy to interface and there are some CP/M apps that require it.
64K ram, (technically cp/m runs in 20k or more but useful apps are
minimally 48K)
Boot rom(eprom/flash) that maps out of the 0000h startup address
Mass storage, this can be floppy, CF, SD, Or some form of rom/ram to
look like disk.
User IO, typically a serial line for a terminal can be a memory mapped video
and keyboard or similar.
CP/M is self contained, howeer for any hardware configuration there is
a thing
called BIOS and is unique to that hardware. The BIOS provides hardware
abstraction
layer from the physical to the logical interface that CP/M expects. For
most systems
it can be trivial.
The base TRS80 cannot do that as all the IO (keyboard, video) and rom
are mapped
into the low ram address space. it's possible to hack that to high
space and dump
the tTRS roms but thats a bit of work.
Allison
Actaully, AFAIK you don't need either of those...
An 8080 procesosr will do, so will an 8085 to run CP/M. However some
application programs did use the Z80-only instructions so it probably
makes a lot of sense ot sue that processor
You don't need 64K RAM. There have been 32K or 48K CP/M machines, it
wouldn't suprise me if 16K was done too. Again, though, it's probably
sensible to have 64K these days.
Unless you want to run a modified CP/M and applications, you need RAM
starting at location 0. Since the Z80 starts at location 0 when you reset
it, the normal thing to do is to have a boot ROM [1] that replaces RAM at
locaiton 0 on resetm and is then switched out 9or relocated to the top fo
the memory map) once the machine has loaded the OS into RAM.
[1] Some machines -- I think Cromemco was one -- had a little bit of
hardware to force a jump instruction onto the processor data bus
immediately after rest, thus forcing th CPU to execute thr boot ROM at
the tom of the memory map. Whether you want to call this a 'ROM at
location 0' is up to you ;-)
You presumably need some kidn of mass storage. It doesn't have to be
floppy disks.
You need a text terminal or something equivelent to it. You can have a
seiral port to a normal terminal, or memory mapped video, or whatever
you like.
And I think that's about it.
-tony