Subject: Re: CP-M Z80 home brew computer circuit board
From: "Eric Smith" <eric at brouhaha.com>
Date: Mon, 16 Jun 2008 13:58:30 -0700 (PDT)
To: "General Discussion: On-Topic and Off-Topic Posts" <cctalk at
classiccmp.org>
Chuck wrote:
the 1770/72/73 have just about everything in a
neat little 28-pin package.
[...]
DMA not required.
Whether DMA is required or not has nothing to do with which member of
the 177x/179x/279x/MB88xx family you use. It's determined by whether
you can write tight enough transfer loops to avoid write underruns and
read overruns.
On a 6502 a typical read transfer loop takes a minimum of 22 cycles,
so a 1 MHz 6502 can keep up with 5.25 inch single and double density and
8 inch single density with programmed I/O. 8 inch double-density
requires a faster processor, DMA, or special tricks.
With a Z80 a typical read transfer loop takes a minimum of 52 clocks,
which on a 2 MHz Z80 meets the requirements for all but 8" double density,
which requires a faster processor, DMA, or special tricks.
On either processor, unrolling the loop does not shave off enough cycles
to get to the 8" double density transfer rate.
Note that the read loop has to be capable of reading bytes at about
20% faster than the nominal rate or overruns become likely.
nominal nominal required read loop
format xfer rate byte time byte time
---------- ---------- --------- -------------------
5.25" FM 125 Kbps 64 us 52 us
5.25" MFM 250 Kbps 32 us 26 us
8" FM 250 Kpbs 32 us 26 us
8" MFM 500 Kbps 16 us 13 us
The 765-based all-in-ones such as the National
8473 and the WD37C65A
are about as hard to obtain and are a little more difficult to
interface to a Z80 (just about require DMA and interrupts to work
right).
The 765-based controllers work fine with or without DMA. Again, the
issue is the data rate.
Eric
You hit the nail on the head. Interfacing 765 or 179x or any of the
other flavors is about the same from the bus side be it 8080/8085/z80
or 6502. As long as you can poll within the minimum read/write loop
time it's fairly easy. If not in the 8080/8085/z80 world you can use
processor ready line to do a stall-wait on DRQ to keep the loop in
sync and save some 22 T-states. I forget if 6502 has a ready wait
line.
From a simple SBC perspective even the 1770 series
requires some glue
and will inflate the parts count a fair amount. The more
common
1793 or 765 will require enough parts to double or triple the parts
count. All of the 37C65 (and 37C665) parts work ok (witness the P112)
but go scarce as the PC industry drives their existance and disappearance.
Easy yes, simple, only if your not doing the work. However add a floppy
and who's supporting all them when someone wants to interface some oddball
pertec or CDC or Amdek 3" that "doesnt work with the SBC floppy"?
I've built my fill of floppy based, IDE based, CF based, ROMdisk based
systems and the latter two are far easier to construct and get going
and if your trying to run CP/M and mess with programming and applications
the smaller lower power SBC can be its own form of fun as you can
put it in a small box with a wall wart and use the laptop as a terminal
anywhere. Having a few PX-8s, Darth Vaders lubch boxes and S100 systems
with all the disks and what not is fine but when you want to move them
it's not so fun using hand truck. Where my tiny Z80 with 32MB CF
in a 5x4x1.5" box is rather fun to bring and show CP/M and what it
can still do, on batteries!
Allison