Announcement

Collapse

Forum Rules and Etiquette

Our mission ...

This forum is part of our mission to promote the preservation of vintage computers through education and outreach. (In real life we also run events and have a museum.) We encourage you to join us, participate, share your knowledge, and enjoy.

This forum has been around in this format for over 15 years. These rules and guidelines help us maintain a healthy and active community, and we moderate the forum to keep things on track. Please familiarize yourself with these rules and guidelines.


Rule 1: Remain civil and respectful

There are several hundred people who actively participate here. People come from all different backgrounds and will have different ways of seeing things. You will not agree with everything you read here. Back-and-forth discussions are fine but do not cross the line into rude or disrespectful behavior.

Conduct yourself as you would at any other place where people come together in person to discuss their hobby. If you wouldn't say something to somebody in person, then you probably should not be writing it here.

This should be obvious but, just in case: profanity, threats, slurs against any group (sexual, racial, gender, etc.) will not be tolerated.


Rule 2: Stay close to the original topic being discussed
  • If you are starting a new thread choose a reasonable sub-forum to start your thread. (If you choose incorrectly don't worry, we can fix that.)
  • If you are responding to a thread, stay on topic - the original poster was trying to achieve something. You can always start a new thread instead of potentially "hijacking" an existing thread.



Rule 3: Contribute something meaningful

To put things in engineering terms, we value a high signal to noise ratio. Coming here should not be a waste of time.
  • This is not a chat room. If you are taking less than 30 seconds to make a post then you are probably doing something wrong. A post should be on topic, clear, and contribute something meaningful to the discussion. If people read your posts and feel that their time as been wasted, they will stop reading your posts. Worse yet, they will stop visiting and we'll lose their experience and contributions.
  • Do not bump threads.
  • Do not "necro-post" unless you are following up to a specific person on a specific thread. And even then, that person may have moved on. Just start a new thread for your related topic.
  • Use the Private Message system for posts that are targeted at a specific person.


Rule 4: "PM Sent!" messages (or, how to use the Private Message system)

This forum has a private message feature that we want people to use for messages that are not of general interest to other members.

In short, if you are going to reply to a thread and that reply is targeted to a specific individual and not of interest to anybody else (either now or in the future) then send a private message instead.

Here are some obvious examples of when you should not reply to a thread and use the PM system instead:
  • "PM Sent!": Do not tell the rest of us that you sent a PM ... the forum software will tell the other person that they have a PM waiting.
  • "How much is shipping to ....": This is a very specific and directed question that is not of interest to anybody else.


Why do we have this policy? Sending a "PM Sent!" type message basically wastes everybody else's time by making them having to scroll past a post in a thread that looks to be updated, when the update is not meaningful. And the person you are sending the PM to will be notified by the forum software that they have a message waiting for them. Look up at the top near the right edge where it says 'Notifications' ... if you have a PM waiting, it will tell you there.

Rule 5: Copyright and other legal issues

We are here to discuss vintage computing, so discussing software, books, and other intellectual property that is on-topic is fine. We don't want people using these forums to discuss or enable copyright violations or other things that are against the law; whether you agree with the law or not is irrelevant. Do not use our resources for something that is legally or morally questionable.

Our discussions here generally fall under "fair use." Telling people how to pirate a software title is an example of something that is not allowable here.


Reporting problematic posts

If you see spam, a wildly off-topic post, or something abusive or illegal please report the thread by clicking on the "Report Post" icon. (It looks like an exclamation point in a triangle and it is available under every post.) This send a notification to all of the moderators, so somebody will see it and deal with it.

If you are unsure you may consider sending a private message to a moderator instead.


New user moderation

New users are directly moderated so that we can weed spammers out early. This means that for your first 10 posts you will have some delay before they are seen. We understand this can be disruptive to the flow of conversation and we try to keep up with our new user moderation duties to avoid undue inconvenience. Please do not make duplicate posts, extra posts to bump your post count, or ask the moderators to expedite this process; 10 moderated posts will go by quickly.

New users also have a smaller personal message inbox limit and are rate limited when sending PMs to other users.


Other suggestions
  • Use Google, books, or other definitive sources. There is a lot of information out there.
  • Don't make people guess at what you are trying to say; we are not mind readers. Be clear and concise.
  • Spelling and grammar are not rated, but they do make a post easier to read.
See more
See less

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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #31
    There is a bug where the request packet or the pointer to it occasionally gets corrupted, resulting in the driver doing random things (including occasionally clobbering track0).
    Once that's fixed I'll do a release

    Comment


      #32
      OK I've squashed the bug, it was stack corruption. Release attached to the post. To the best of my knowledge this version is working, but PLEASE do not use this driver to try to read irreplaceable disks without write-protecting them. If you do you are bad and should feel bad.

      DEVICE=DOSFDRV.SYS /U:unit [/D:type] [/Port] [/SC]

      Where "unit" is a physical unit number (0-3) and "type" is a DOS floppy type. If no type is specified, the profile defined at build time will be used. In this build, that is a standard 40 track DSDD 5.25" disk, but it is there to give me the ability to easily make custom builds for odd disks. Type 3 refers to a MSDOS formatted SSSD 8" disk. Type 4 is 8" DSDD but is disabled until I get blocking/deblocking implemented. With type 3/4, an optional "/SC" may be added to have the driver use the original SCP 86-DOS format. "/Port" is optional and specifies the hex address of the controller to be used.

      The other valid types are:
      0 360kB DSDD 5.25"
      1 1.2MB DSHD 5.25"
      2 720kB DSDD 3.5"
      7 1.44MB DSHD 3.5"
      9 2.88MB DSED 3.5" (untested, I don't have any drives or media)

      If you make an error in the switches, the driver will not load and will pause the system, beep at you and remind you the correct syntax. If you specify a drive on a secondary FDC, the driver will reset said FDC and attempt to seek the unit specified to track 0 at initialization. If this fails, (due to incorrect unit number, drive not attached, etc.) the driver will not load and will pause the system with an error message. Formatting IS implemented, but may be buggy. Needless to say, IBM-compatible MSDOS FORMAT.COM is not going to write out boot sectors compatible with SCP S-100 machines. The disks will be accessible for R/W operations on original hardware, just not bootable.

      One more thing - there is no support implemented in this release for using disks smaller than the profile associated with the device type. I.e 720kB disk in HD 3.5" drive, 360kb disk in 1.2MB HD drive, or 160kb/180kB/320kB disks in anything.
      Attached Files

      Comment


        #33
        Originally posted by maxtherabbit View Post
        One more thing - there is no support implemented in this release for using disks smaller than the profile associated with the device type. I.e 720kB disk in HD 3.5" drive, 360kb disk in 1.2MB HD drive, or 160kb/180kB/320kB disks in anything.
        Excellent. Thanks for the release. A few questions:

        1. So what does this driver exactly do? I.e. if a BIOS does not support a drive type (say 2.88MB) does this driver allow support for that drive type as long as the controller chip does so? This would be applicable in many EISA/VLB systems where the system BIOS provides the SW end of drive access but the FDC is on an add in card many times w/o a built in BIOS. So the FDC can do 2.88MB drives but the motherboard BIOS only allows for 1.44MB disks.
        2. How does this compare to the config.sys option DRIVEPARM or the DOS device driver DRIVER.SYS? Is it complimentary, a replacement, or something completely different?
        3. Any plans to implement the SS DOS formats (160KB/180KB) or the 320KB format? or 720KB in 1.2MB drives?
        4. I have a 2.88MB drive and disks connected to a CCIV. What kind of testing would you need?

        Great work!
        Current Wish List: 1. IBM 7531 Industrial Series PC 2. NEC MultiSync XL (JC-2001) Monitor 3. MicroSolutions 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!

        Comment


          #34
          1) yes the purpose of it essentially is to transcend BIOS limits. If the hardware can support the drive type it will work
          2) it is meant to be a more-fully featured replacement for DRIVER.SYS - with support for secondary FDC and 8" drives that DRIVER.SYS lacks
          3) not at this time, since it is easy enough to use them in drives driven by the BIOS - I could easily define a custom profile for one of those situations if you really need it. Making it "just work" would be a bit more work than I'm interested in just now
          4) just run it and let me know if you can access files and such, if it works it works

          Comment


            #35
            Originally posted by maxtherabbit View Post
            I thought DOS supported 1024 byte sectors? Is there some other parameter I need to change to trick it into allowing that? (media byte, DOS drive type - I'm using '4') ?
            According to Microsoft, DOS does for 1.2MB DSDD 8" Disks

            Code:
            Standard Floppy Disk Formats Supported by MS-DOS
            
            3.5 Inch - Formatted Capacity 
            
            			720K      1.44 MB   2.88 MB
            # of Heads (Sides)         2         	2         2
            # of Cyls (Tracks)        80           80        80
            # of Sectors/Track         9           18        36
            Total # of Sectors      1440         2880      5760
            # of Free Sectors       1426         2847      5726
            # Sectors/Cluster          2            1         2
            Total # of Clusters      713         2847      2863
            # Sectors/FAT              3            9         9
            # of FAT Copies            2     	2         2
            # of Root Dir Sectors      7           14        15
            # Reserved Sectors         1            1         1
            # of Hidden Sectors        0    	0         0
            # of Bytes/Sector        512          512       512
            # of Bytes/Cluster      1024          512      1024
            # Root Dir Entries       112          224       240
            Media Descriptor          F9           F0        F0
            Recorded Density      Double         High      High
            MS-DOS Version Began    3.20         3.30      5.00
            DRIVER.SYS Switch       /F:2         /F:7      /F:9
            FORMAT.EXE Switch     /F:720      /F:1.44   /F:2.88
            Change-Line Support      YES          YES       YES
            
            5.25 Inch - Formatted Capacity 
            
            			160K     180K	     320K 	360K      1.2 MB
            # of Heads (Sides)         1        1       	2           2           2
            # of Cyls (Tracks)        40       40          40          40          80
            # of Sectors/Track         8        9           8           9          15
            Total # of Sectors       320      360         640         720        2400
            # of Free Sectors        313      351         630         708        2371
            # Sectors/Cluster          1        1           2           2           1
            Total # of Clusters      313      351         315         354        2371
            # of Sectors/FAT           1        2           1           2           7
            # of FAT Copies            2        2           2           2           2
            # of Root Dir Sectors      4        4           7           7          14
            # Reserved Sectors         1        1           1           1           1
            # of Hidden Sectors        0        0           0           0           0
            # of Bytes/Sector        512      512         512         512         512
            # of Bytes/Cluster       512      512        1024        1024         512
            # Root Dir Entries        64       64         112         112         224
            Media Descriptor          FE       FC          FF          FD          F9
            Recorded Density      Double   Double      Double      Double        High
            MS-DOS Version Began    1.00     2.00        1.10        2.00        3.00
            DRIVER.SYS Switch       /F:0     /F:0        /F:0        /F:0        /F:1
            FORMAT.EXE Switch     /F:160   /F:180      /F:320      /F:360      /F:1.2
            Change-Line Support       NO       NO          NO          NO         YES
            
            8-Inch - Formatted Capacity
            
            			250K     500K     1.2 MB
            # of Heads (Sides)         1        2          2
            # of Cyls (Tracks)        77       77         77
            # of Sectors/Track        26       26          8
            Total # of Sectors      2002     4004       1232
            # of Bytes/Sector        128      128       1024
            # of Bytes/Cluster       512      512       1024
            # Sectors/Cluster          4        4          1
            Total # of Clusters      497      997       1227
            # Reserved Sectors         1        4          1
            # of Hidden Sectors        3        0          0
            # Sectors/FAT              6        6          2
            # of FAT Copies            2        2          2
            # Root Dir Entries        68       68        192
            Media Descriptor          FE       FD         FE
            Recorded Density      Single   Single     Double
            MS-DOS Version Began    1.00     2.00       2.00
            Change-Line Support       NO       NO         NO
            This is according to "Standard Floppy Disk Formats Supported by MS-DOS" MS Article ID: Q75131
            Current Wish List: 1. IBM 7531 Industrial Series PC 2. NEC MultiSync XL (JC-2001) Monitor 3. MicroSolutions 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!

            Comment


              #36
              I implemented those parameters exactly as specified in the article into my BPB. When I passed the BPB to DOS, it said "sector size too large" and kicked the driver. Somewhere along the way, MS must have pulled support for 1024 byte sectors. I'm testing on PC-DOS 7

              Comment


                #37
                The information may be a bit dated; it's true that MS-DOS for the NEC systems does support the 8*1024 track size (Windows NT does also), but the later stock domestic versions seems to have 512 byte sectors hardwired in. Years ago, there was some discussion about this and it was ventured that if MSDOS boots from 1024 byte/sector media (as specified by the DIPT pointed to by the interrupt 1eh vector) , then the large sector support is enabled. One can verify this by checking the MSDOS 6.0 source available on the web.

                My guess is that this support went the way of the "set switch character" DOS API call.
                Reach me: vcfblackhole _at_ protonmail dot com.

                Comment


                  #38
                  Well the article is last updated in 2003. However, it does clearly say it only applies to DOS 1.0 to 6.22. Have you tried testing the driver under Microsoft dos 6.22? IBM may have removed the support much earlier.
                  Current Wish List: 1. IBM 7531 Industrial Series PC 2. NEC MultiSync XL (JC-2001) Monitor 3. MicroSolutions 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!

                  Comment


                    #39
                    Originally posted by Shadow Lord View Post
                    Well the article is last updated in 2003. However, it does clearly say it only applies to DOS 1.0 to 6.22. Have you tried testing the driver under Microsoft dos 6.22? IBM may have removed the support much earlier.
                    Haven't but I can

                    Comment


                      #40
                      It doesn't matter. It's simple enough to write a blocker/deblocker for any sector size (that's a power of 2) and fake 512 byte sectors.
                      Reach me: vcfblackhole _at_ protonmail dot com.

                      Comment


                        #41
                        Originally posted by Chuck(G) View Post
                        It doesn't matter. It's simple enough to write a blocker/deblocker for any sector size (that's a power of 2) and fake 512 byte sectors.
                        Can't comment on this but if it works as is under MSDOS 6.22 then that would at least be a good start. Also if it is working under DOS 6.22 couldn't the work around for PCDOS 7 break it? I am just asking as I have no idea either way...
                        Current Wish List: 1. IBM 7531 Industrial Series PC 2. NEC MultiSync XL (JC-2001) Monitor 3. MicroSolutions 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!

                        Comment


                          #42
                          Originally posted by Shadow Lord View Post
                          Can't comment on this but if it works as is under MSDOS 6.22 then that would at least be a good start. Also if it is working under DOS 6.22 couldn't the work around for PCDOS 7 break it? I am just asking as I have no idea either way...
                          I'm like 90% confident that if it doesn't work in PCDOS it won't work in MSDOS either. However I do plan to test on a variety of PC and MS DOS versions out of curiosity. Implementing the workaround would not break anything. DOS would just think the sectors are 512 and carry on

                          Comment


                            #43
                            Remember the IBM OS/2 XDF floppies? Tracks formatted with 8K, 2K, 1K and 512 bytes per sector = 16+4+2+1 = 23 512 byte sectors. Magic done in the driver. Turned out to be something of a headache for IBM wrt compatibility with some non-IBM machines.
                            Reach me: vcfblackhole _at_ protonmail dot com.

                            Comment


                              #44
                              Originally posted by Chuck(G) View Post
                              The information may be a bit dated; it's true that MS-DOS for the NEC systems does support the 8*1024 track size (Windows NT does also), but the later stock domestic versions seems to have 512 byte sectors hardwired in. Years ago, there was some discussion about this and it was ventured that if MSDOS boots from 1024 byte/sector media (as specified by the DIPT pointed to by the interrupt 1eh vector) , then the large sector support is enabled. One can verify this by checking the MSDOS 6.0 source available on the web.

                              My guess is that this support went the way of the "set switch character" DOS API call.
                              Code:
                              mov	ax,es:[bp].DPB_SECTOR_SIZE
                              	cmp	ax,maxsec		; Q:is this the largest sector so far
                              	jbe	notmax			; N:
                              	mov	maxsec,ax		; Y: save it in maxsec

                              Comment


                                #45
                                Thought I'd seen that somewhere. bios\msinit.asm it is.

                                So biggest sector found on boot; installable drivers aren't checked.

                                That figures--by the time you've booted the system up, it's too late to change the sector size.

                                But I wonder how many utilities have 512 byte sectors hard-wired in.
                                Reach me: vcfblackhole _at_ protonmail dot com.

                                Comment

                                Working...
                                X