[Coco] Disto SC (NOT) needed

Darren A mechacoco at gmail.com
Sat Nov 15 18:31:11 EST 2008


On 11/15/08, Joel Ewy wrote:

>>
>>
>> Even with a standard Tandy controller, it is possible to burn a new
>> Disk Basic EPROM with a modified version of the DSKCON routine which
>> does not enable HALT (but still requires that interrupts be masked).
>> The same could be done for the rb1773 driver for OS-9 and NitrOS-9.
>> This would allow a CoCo whose CPU has a blown HALT line to be able to
>> run most disk-based software. Programs which implement their own disk
>> I/O functions would still be inoperable.
>>
>> Darren
>>
>>
> So it would just poll the FDC register in a busy loop until a sector was
> ready?
>
> JCE

DSKCON already polls the FDC in a busy loop for the first DRQ
indicating that a sector is ready. HALT is enabled after the first
byte is transferred so that the CPU then runs only when DRQ is
asserted. This allows the read or write loop to just run forever until
the NMI, with no polling of DRQ.

A version which does not enable HALT would have to poll for DRQ on
every byte. There is not much time to do this so it must be coded
carefully.

Since DRQ polling is involved, you also need to be certain that all
instructions which poll the FDC status register for DRQ are located at
a safe address. This is due to a timing issue that occurs with
controllers using a WD1773 FDC. This is easy to solve when creating a
new Disk Basic EPROM, but a new rb1773 driver would require code to
detect the actual runtime address and then fork to one of two
alternate read/write loops.

It's a fair amount of work which could be more easily solved by
obtaining a new CPU with a good HALT line.

Darren



More information about the Coco mailing list