• Jeffrey Lee's avatar
    Remove legacy 700us DRQ timeout for write ops · e527e619
    Jeffrey Lee authored
      Early versions of the ATA spec mandated that drives should assert DRQ within 700us of a write command being issued. However later versions of the spec have dropped this limit, and some devices (e.g. CF cards) are known to regularly exceed the limit.
      Remove the 700us timeout from ADFS, so that these devices can operate correctly.
      s/Adfs14 - Modify DRQ timeout check so that it will fall back to polling from TickerV if the initial 700us loop times out.
      s/StaticsIDE - Add extra word to workspace, so that the TickerV routine can still timeout the operation
      Tested on IOMD (~4M FSBash ops), Tungsten (~500K FSBash ops)
      Fixes "disc error 20" seen when using IDE-CF adapter on RiscPC, thanks to reasarch by Jon Abbot:
    Version 3.54. Tagged as 'ADFS-3_54'
VersionASM 1015 Bytes