Image Map Image Map
Page 2 of 3 FirstFirst 123 LastLast
Results 11 to 20 of 23

Thread: DOS File Level access to Secondary (370H) FDC - Driver Nightmares

  1. #11
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    33,374
    Blog Entries
    18

    Default

    That'd be a rewrite--CP/M file system organization is very different from DOS FAT.

  2. #12
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    33,374
    Blog Entries
    18

    Default

    Sprechen Sie x86 assembly? I might have something that could be modified.

  3. #13

    Default

    Quote Originally Posted by Chuck(G) View Post
    Sprechen Sie x86 assembly? I might have something that could be modified.
    Not exactly, I learned assembly on the Z80 but that was years ago. I guess now's as good a time as ever to learn. Having a place to start by modifying some existing code would be wonderful.

  4. #14

    Default

    You would really need a device driver which accessed the secondary floppy controller (370h-377h) for DOS to see the drives since PC BIOSes only access the primary controller for INT 13h access which is what the DOS builtin disk driver uses. Even then DOS may not recognize the disks since they aren't in a standard floppy format (160KB, 180KB, 320KB, 360KB, 720KB, 1.2MB, 1.44MB, 2.88MB). I don't recall a specific media descriptor byte code for 8" floppy drives though there were two old unused codes (FAh and FBh).

    Would it be possible to use a null modem serial cable to transfer over whatever data you have from whatever computer used the 8" floppy drives to a PC ? Seems like that would be easier than trying to get an anachronistic device from the 70s to work with a PC from the 80s.

  5. #15
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    33,374
    Blog Entries
    18

    Default

    That's what I offered. Other than using the standard DMA2, IRQ6, the code allows for specifying the FDC base address.

    I have a little experience in this. Said code that I was looking at was for an Eagle 1600 DOS driver. Since I don't know what 8" format was used (I seem to recall that there were two), you'd have to figure that one out and change the device parameters and recompile. I've got a similar driver for NEC APC 8" floppies, but I don't think the native SCP 86-DOS ones were the same.

  6. #16

    Default

    Quote Originally Posted by Chuck(G) View Post
    That's what I offered. Other than using the standard DMA2, IRQ6, the code allows for specifying the FDC base address.
    Sounds perfect, I'm sure I can figure it out from there

  7. #17

    Default

    And remember if you get something working sharing is caring!
    Current Wish List: 1. IBM 7531 Industrial Series PC 2. NEC MultiSync XL (JC-2001) Monitor 3. MicroSolutions MatchPoint AND/OR UniDOS card 4. Compaq 14" VGA CRT Monitor (the one that came with the SystemPro). 5. Stacker HW CoProcessor Board MCA BUS. If you have any of the above for sale please PM me. Thank you!

  8. #18

    Default

    Quote Originally Posted by Shadow Lord View Post
    And remember if you get something working sharing is caring!
    Of course. I haven't started in on it yet because there's going to be a bit of learning curve, but rest assured if I get a working binary to build I will post it.

  9. #19

    Default

    Starting to awaken from the nightmare. A certain resident floppy disk expert here (you may know him from his eponymous XT-IDE mod) has handed me a powerful floppy disk I/O library and a nifty DOS block device driver template to wrap around it. I've managed to get a proof of concept driver working that allows file level access to a bog standard DS/DD 5.25 disk on a secondary FDC. All the heavy lifting for toggling the DMA bit in the DORs of the primary and secondary controllers was already implemented in the library, so it's even able to copy files back and forth directly between drives on different controllers.

    The main issue I'm having right now is how to handle turning the motor(s) off on the secondary FDC. The primary FDC uses a timer in the BDA to shut the motor off after a certain period. The BIOS of course doesn't service the secondary FDC so that method is unavailable. Currently I have the driver turning the secondary motors off at the end of every block level transfer, which of course is woefully non-performant since file transactions are composed of many block transfers.

    Any thoughts on the proper way to handle that?

    PS does anyone have any IMD images of an SCP 86-DOS double density 8" disk? I have single density FM ones but nothing MFM.
    Last edited by maxtherabbit; January 20th, 2020 at 02:34 PM.

  10. #20

    Default

    would hooking INT 08H at the time of driver initialization with a handler be an appropriate way to time the motor shutdown?

    bear in mind this is my first foray into DOS programming of any kind so this is probably obvious to others, but I'm just not sure if this is the "right way" to do it

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •