-----Original Message-----
From: cctalk-bounces at
classiccmp.org
[mailto:cctalk-bounces at
classiccmp.org] On Behalf Of Jeff Jonas
Sent: Wednesday, May 07, 2008 4:23 PM
To: cctech
Subject: Re: Minimal CP-M SBC design
I'm slow to enter the discussion because I'm still
busy sorting my z80 parts and single board systems
instead of enjoying them :-(
I'm of 2 minds regarding the Z80:
The "classic" vs. the "embedded" mind-set.
The embedded solution:
I have a Zilog 50 MHz eZ80 development board with more built-in features
that I may ever use: ethernet, InfraRed,
a LOT of flash and static RAM.
My frustration is the lack of support and community activity
despite some high profile contests using the board.
A clever fellow made an expansion board that adds
2 compact flash slots so it runs CP/M really fast!
That appeals to me since it allows it to run stand-alone
even for editing, storing and compiling applications.
And there's still the programming/debugging pod
for using a host system to debug the system
should it require external assistance.
Back to the original query:
the Zilog ez80 board may be appealing because
- it's fast (50MHz) and has a lot built in:
MMU, RAM, flash ROM, serial and ethernet ports.
- allows much more powerful tools on the host system
for source control, compilers, debugging via the pod.
- others are using it too
The classic side:
My first "at home" computer was a Servo-8 single board computer
(6 MHz Z80B, 64k ram, 2 serial ports, parallel port, SASI port).
I chose that over the 4 MHz Z80A Ampro Littleboard.
It cost about $500 (with CP/M and schematics)
so I was really hesitant to interface it to my own things
until I had some experience with cheaper Z80 systems
(particularly since all the parts were soldered in!)
Long long ago I breadboarded a 4 MHz z80a with 10K static RAM
(intending to use battery backup).
I originally intended to use a front panel of
LEDs and toggle switches (inspired by the Altair).
I gave that up while wiring up all the switches,
and instead used a Timex Sinclair 1000 as the front panel
(hey, a keyboard and display!) to the dual-port static RAM.
(the Timex is a complete Z80 system with just 4 chips:
z80 CPU, ROM, RAM and Programmable Logic Array for the rest).
I still want to use discrete Z80 chips because
- I have a logic analyzer to watch it run
(I've disassembled some embedded z80 terminals using it)
- I like the way the Z80 family chips interface so directly,
even for vectored interrupt mode.
- I still want to explore "clever" tricks for memory management such as
. using the "M" line to differentiate instruction from data reads
. implementing true "cycle stealing"
(access to memory not currently active by the CPU).
I salvaged many z80 based devices (terminals, modems, terminal servers)
and pondered reverse engineering them to reprogram for my own uses.
Perhaps I'm too impatient but it seemed easier to just
start from scratch, or buy a single board system and work from there.
I suspect I'll finally get brave enough to just interface
the additional Z80 chips to the Servo-8 Z80B SBC
since I like that more than the ez80 (so far).
Jeffrey Jonas
e-mail: jeffj at
panix.com
-----REPLY-----
Jeff,
I am building a Z80 SBC as mentioned previously. If you want to add the
Z80 peripherals to a Z80 based SBC, have you considered just building an
ECB peripheral card?
My Z80 SBC design is based on the ECB bus and supports its optional use.
Maybe the best approach is to build of my SBCs and the ECB backplane and
you design the peripheral card to go along with it.
The Z80 SBC now only supports IO accesses on the ECB. I may extend the
design in the next version to allow full memory accesses across the ECB
for the next SBC design but so far I don't see much use in it since the
SBC already includes 1MB EPROM and 512K SRAM. The ECB pin out is the
same but the control logic of the SBC would have to change.
In addition, the Z80 SBC supports a IEI/IEO lines on the ECB including a
2200 ohm pull up resistor. The Z80 SBC supports the Z80 open drain /INT
line directly to the ECB coupled with a 2N2222 TO-18 transistor to drive
it. So far the only device attached to the Z80 /INT line is the 16550
UART. None of the current software uses the /INT line yet since I
implemented everything in polling mode only.
Maybe this is an opportunity to collaborate? A Z80 PIO/DART board
probably wouldn't be too difficult to implement on ECB. Check my
website if you are interested. I am using KiCad for EDA which is free
software.
Please let me know if interested. Thanks!
Andrew Lynch