[Coco] Largest supported HDD size?
mechacoco at gmail.com
Thu Dec 1 21:10:35 EST 2016
On Thu, Dec 1, 2016 at 6:47 PM, RETRO Innovations wrote:
> Is there a page that describes "no-halt"? I think I understand the
> concept, but clarity is great.
The floppy disk controllers for the CoCo make use of the CPU's HALT line as
a handshake control during floppy I/O. Here is how the "Disk Basic
Unraveled" book describes it:
"Data transfer between the computer and the disk drives through the FDC is
accomplished through a series of hardware and software 'tricks'. The slow
clock speed of the Color Computer will not allow data to be transferred in
the 'normal' method of getting a byte from the computer, giving it to the
FDC and then performing status checks until the FDC is not busy. There is
just not enough time for this when operating at double density. Part of the
Color Computer's solution is a hardware trick whereby the disk controller
board will allow the FDC to halt the 6809 while the FDC is storing or
retrieving data. The halt flag will allow the DRQ signal from the FDC to
halt the 6809 so that the 6809 will wait while the FDC is processing a data
request. This trick will allow the 6809 to pass data to the FDC as fast as
the FDC can take it by executing a fast loop of: grab a byte from RAM, give
it to the FDC and loop back to get another byte. The analogous loop for
getting data will also work."
In reality, the 6809 at 0.89 Mhz is quite capable of running a polling loop
to handle double-density data transfers with the FDC. If the designer(s)
of the CoCo floppy controller had provided a way for software to read the
DRQ signal (other than from the FDC Status register), there would have been
no need for the HALT trick.
More information about the Coco