________________________________
Hi, all,
I was staring at an SBC I have here with a 6MHz Z-80, some ROM, some RAM,
and a 26-pin off-board bus for some Z80-PIO boards (this thing was built
as a multi-parallel-printer switcher). I've been musing about what it
would take to boot CP/M up on this.
For user I/O, I was planning on a console serial port and a
terminal/terminal
emulator. I have IM6402s on hand, but I'd be interested in hearing if
certain other chips are preferred, based on what BIOS code is floating
around out there. I also have a 16550, but I don't think I have any
Z80-SIO chips handy.
For mass storage, I was planning on either Compact Flash or an SD card.
I think I've seen both as I googled around for modern SBCs. Any of the
media I have lying around is plenty large enough (I even have some 4MB
CFs and a 2.5MB full-sized PCMCIA flash card on hand).
I am a little unclear, though, about how traditional CP/M systems
were set up for ROM and RAM. Was it common to use a "shadow ROM"
in low mem at reset, then have the BIOS live at the top of memory?
How did 64K RAM CP/M machines handle the BIOS? Did they temporarily
ghost the ROM on top of RAM until some bit of code could read ROM
and write RAM then bank out the ROM? Since I think I "need" at
least 48K of RAM, I was planning on a pair of 62256s. I could easily
do 56K of RAM low and 8K of ROM high, I think, unless there's some
other arrangement that's obvious to try for a simple design.
I've never tried writing a BIOS for a CP/M machine, but my understanding
is that things are modular enough that once you know what I/O chips
you have and at what I/O addresses, for a straightforward, non-clever
design, the coding is equally straightforward and non-clever (but please
feel free to enlighten me if otherwise).
Thanks for any tips, especially from anyone on the list who has ever
rolled their own CP/M machine.
-ethan
--
Ethan Dicks, A-333-S Current South Pole Weather at 4-May-2008 at 19:40
Z
South Pole Station
PSC 468 Box 400 Temp -74.2 F (-59.0 C) Windchill -105.4 F (-76.4
C)
APO AP 96598 Wind 7.4 kts Grid 77 Barometer 691.6 mb (10194
ft)
Ethan.Dicks at
usap.gov <http://www.classiccmp.org/mailman/listinfo/cctalk>
http://penguincentral.com/penguincentral.html
-----REPLY-----
Hi Ethan,
Funny you should mention the subject, I am working on a very similar
project.
Last year, I made a completely home brew Z80 computer with prototype boards.
It is a fun project and you can definitely build your own CP/M computer from
scratch. It really is not that hard.
This year, I am remaking the design using manufactured PCBs.
I recently got my first batch of prototype PCBs and have been building up
and testing them.
So far, I have gotten the CPU, ROM, RAM, UART, and most of the glue logic
working and tested.
It is not complete yet as I still need to wring out much of the hardware and
have not even started on the PPI or RTC.
However, last year I was able to boot the previous system into its monitor
and even boot CP/M.
CP/M used a 32K ROM drive for drive A:, a 448K RAM drive for drive B:. I
implemented an IDE port and a hard disk for drive C:.
Those all worked pretty good. I built but never tested a floppy drive
interface.
The whole system is pretty simple, uses plain 74LSxxx chips, no programmable
parts (except the EPROM) or hard to get parts.
No SMT or funky technologies, just plain through hole DIP chips.
I have all the software and am presently going through the library
reinstalling it on the new system.
So far, I have most of the easy stuff working. I do have the RAMless
monitor working and next will be the regular monitor.
Finally it will be the CP/M system and the RTC software.
Anyway, if your interested, I am keeping a small Google group of files and
photos at:
http://groups.google.com/group/n8vem
Thanks!
Andrew Lynch