[net.micro.6809] Yes, Coco has DMA, but...

knudsen@ihnss.UUCP (11/08/83)

The good news is:  Coco can do DMA.  Bad nnews: not all the 6809 pins
needed to do the most efficient job of it are brought out to the
cart connector.
	To steal a DMA cycle (from the CPU, not the SAM), your peripheral
must first assert a lead that tells the 6809E to suspend operation and
get off (tri-state, hi-Z) the busses AFTER it completes its current instruction.
I forget this lead's name; it does not sound anything like "DMA".
I believe it is on the cart connector, tho I may be thinking of the conn
signal that kicks other *peripherals* (inlcuding memories) off the bus
(for phantom addressing).
	A 6809 pin definitely not connected to anything is the BA (or BS?)
which tells the peripheral that the 6809 has indeed finsihed its last instruction
and relinquished the bus.  Without this lead, your peripheral DMA device
must blindly wait a "safe" number of clock cycles after asserting the
first signal before using the bus.  The worst-case 6809 instr is CWAI,
taking about 21 cycles.  OS-9 would probably shoot anyone caught using that
one, so the next longest instr is ?? (sorry, my manuals are at home).
Sooo, best to transfer several bytes once you get the bus, so as to cover
that overhead.  You can, of course, solder onto the BA and BS 6809 pins
and bring them out the back thru a 'LSTTL buffer -- I've considered installing
some kind of connector on the back for that and other signals the outside
should have.
	Bottom line:  the Coco didn't do much to help us run DMA,
but it did nothing to stop us either!	mike k