Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Can our drivers handle single-density disks?

Developers
2008-11-22
2013-05-16
  • Robert Gault
    Robert Gault
    2008-11-22

    A user of the coco3.com forums, stated that based on a schematic, Tandy controllers use $FF40 bit-5 to toggle not only single/double density but also NMI pass through. I don't have any known single density disks nor do I have a circuit diagram of a Tandy floppy controller. That means I have no way of testing or evaluating this claim.

    If $FF40 bit-5 really controls NMI pass through, then our floppy driver won't work with single density disks even though the code checks the density settings in the descriptor. That's because the sector read/write loops require an NMI to exit. The only exception is with a no-halt controller.

    Does anyone have opinions or facts relating to this issue?

     
    • tim lindner
      tim lindner
      2008-11-22

      The poster is correct. Bit 5 does exactly what he says. A year ago I wrote a patch to see if I could modify RSDOS to create and read/write single density disks.

      The theory is that you don't need to use the NMI/Halt method of reading/writing to disk in single density mode since you have twice the amount of time available.

      I have no opinion on how this relates to NitrOS-9.

       
      • Robert Gault
        Robert Gault
        2008-11-23

        I'd rather not have to add more code to the rb1773 driver to handle both single and double density disks. That would be necessary if the NMI did not function.

        However, on a one-off personal use basis, Tim did you consider breaking the link to the DDEN line so that NMI was active regardless of density? That could be done by disconnecting U7 from U5 and tying pin-6 of the U5 OR gate to ground. Then you would not need to modify any DOS software to read/write single density disks.

         
        • tim lindner
          tim lindner
          2008-11-24

          No I didn't consider that. Since I had to rewrite the DSKINI routine, I didn't find it cumbersome to patch DSKCON as well.

          But you are correct. Because of the tying of the NMI with density, you do have to create separate routines for each density.