[Coco] Timing problem with the CoCo and the WD1773 ?

Robert Gault robert.gault at worldnet.att.net
Mon Aug 7 23:29:06 EDT 2006

The important part of this doc is not even/odd bytes. That just uncovers 
timing problems in the 1773. The critical answer to the problem is
not to reload $FF40 in the read/write loops.

That means you don't use a loop such as
readloop lda       $ff4b     get a data byte
          sta       ,x+       store it in the buffer, point to next cell
          stb       $ff40     enable halt mode
          bra       readloop  continue till NMI

Instead you use
readloop  lda       $ff4b     get data from fdc
           sta       ,x+       store byte in buffer
           nop                 one more op code fetch for HALT
           bra       readloop  repeat till NMI occurs

When you change the read or write loops in this manner, the code no 
longer is dependent on odd/even bytes. The BLOB no longer is active.

More information about the Coco mailing list