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

My Floppy Drive Image tool 1.00

  • Filter
  • Time
  • Show
Clear All
new posts

    My Floppy Drive Image tool 1.00

    Hi Everyone,

    I used to have another floppy disk tool that I wrote that I used for reading and writing diskettes, but it was only for 1.44mb diskettes and its compression made my 8088 come to a slow slow crawl. I decided to write a new tool that is a simple disk image read/write/verify, but this time it supports multiple formats and can also optionally split a disk image into multiple pieces to help for those times where you can't fit a disk image on a disk for example. I've learned that some of my other DOS tools wouldn't run on my 8088 because they had been compiled for 286, 386, etc. as well, so I made sure this tool would work on 8088's. There is also a windows version (WIN32 console application) that autodetects NT or 9X style environment and uses the correct system calls to work with a floppy, so you can run FDIMAGEW on 32-bit or 64-bit Windows operating systems as well.

    Here is the help file for the tool and I've attached a ZIP with the help, DOS version, and Windows version. Let me know if you encounter any bugs that need to be fixed!

    FDIMAGE 1.00
    __________________________________________________ _____________________________

    FDIMAGE is a floppy drive image tool that can image:
    from drive to file
    from file to drive
    from drive to drive (effectively a diskcopy)
    from file to file (for splitting or combining)

    Here is the help and usage:

    SA Development Floppy Drive Image 1.00 (WIN32)
    Free to use; no warranty or responsibility provided.

    Usage: FDIMAGEW [options] source target

    The source and target can be a filename or floppy drive (a: or b: ).
    /y will skip target filename overwrite prompting.
    /v will verify an operation (the target will be verified, not written).
    The source media format is determined automatically, but can be overridden
    with /160, /180, /320, /360, /720, /1200, /1440, or /2880.
    The target media format is checked unless the /smfc option is specified.
    The /k will prompt the user to press a key before all operations so the
    user can swap disks if necessary.
    The /s2, /s4, and /s8 options indicate that the source is multiple files.
    The /t2, /t4, and /t8 options indicate that the target is multiple files.
    Options may appear anywhere on the command line.
    /? will show this help.
    __________________________________________________ _____________________________

    There are two versions of this tool:

    FDIMAGE.EXE - DOS version (16-bit) that can run under DOS as well as
    environments that emulate dos bios calls for floppy drive
    access. It also works under 32-bit versions of windows that
    emulate the 16-bit environment, though the windows version may
    be more optimal. This tool is compiled so that it can run
    on machines even with old CPU's like the 8088.

    FDIMAGEW.EXE - WIN32 version (32-bit) that can run under Windows 32-bit or
    64-bit operating systems. This tool is compiled to run on
    80386 and above.

    Both versions have exactly the same options and functionality.
    __________________________________________________ _____________________________

    FDIMAGE generally works like a copy command except that the source and target
    can be either a floppy drive letter (a: or b: ) or a filename. Given this, you
    can copy from a file to drive, drive to file, or even drive to drive or file
    to file.

    The (/y) will skip overwrite prompting for files. There is no overwrite
    prompting for disks. Be sure to have the correct command and correct disk
    mounted in the correct drive so that a disk you care about is not overwritten
    by accident. It is always safer to set any disk you don't want changed to
    read only so that it can't occur. I am not be responsible for lost data.

    The (/v) verify option does not do a copy, but verifies or compares the source
    and target. *** No writing will be done with the /v command. ***

    It currently supports these floppy formats:
    5.25" - 160K, 180K, 320K, 360K, and 1200K (1.2M)
    3.50" - 720K, 1440K (1.44M), and 2880K (2.88M)

    It will determine the format automatically by looking at the media in the
    source. If you want to override the format, you can use the /160, /180,
    /320, /360, /720, /1200, /1440, or /2880 option.

    It will also look at the target media format (if a drive) to verify it is
    the correct media. You can override this with the /smfc (skip media format
    check) option.

    The (/k) option will prompt the user to press a key before each operation.
    This gives the user the option to swap disks if necessary. The design of the
    tool is that it uses available memory as a track buffer so it will load as
    many tracks into memory as it can to reduce unnecessary swapping.

    The (/s2, /s4, /s8, /t2, /t4, /t8 ) options allow you to specify that the file
    is being referenced by the source or target is split into 2, 4, or 8 parts.
    If a file is split, it will be mydisk.img, mydisk.002, mydisk.003, and so on.
    This allows you to build up a full disk image even on drives that are smaller
    than the disk image. It is very useful to use with the (/k) command.
    __________________________________________________ _____________________________

    Example #1 - read a disk in drive A: to a file.

    If you want to read the disk in drive A: and store it to a file in the current
    path, you can use:

    FDIMAGE A: mydisk

    It will automatically add a .img file extension if one is not specified.

    In this case, it will read the entire disk in drive A: (autodetecting the
    format) and store it in a file called mydisk.img in the current path.

    If mydisk.img exists, it will ask if you want to overwrite it unless you also
    add the /y option.
    __________________________________________________ _____________________________

    Example #2 - read a file and write a disk in drive B:

    The opposite of example #1, one can use:

    FDIMAGE mydisk b:

    Again, it will automatically append .img to mydisk to look for mydisk.img.

    It will read the contents of mydisk.img in the current path, check the disk in
    drive B: to make sure it is the same format, and then write that disk.
    __________________________________________________ _____________________________

    Example #3 - verify the disk from example #2:

    FDIMAGE mydisk b: /v

    The /v option means that drive B: will not be written, instead it will be read
    and compared to the file in mydisk.img. Any difference in data will be
    __________________________________________________ _____________________________

    Example #4 - write a 360K diskette on a system without a hard drive:

    One issue with creating a disk from an image is that you need a drive that is
    able to hold the size of that full image in a file. You can't fit a 360K disk
    image for example on a 360K because of filesystem overhead. FDIMAGE has a
    solution for this where it can split an image file into 2, 4, or 8 pieces.

    I had an old Compaq Portable (8088 ) that had two 360K floppy drives and no
    hard drive yet. I had an older bootable DOS disk, so I could boot that, but I
    wanted to make a DOS 6.22 bootable diskette. I had a 360K disk image of DOS
    6.22, but no other system that could write 5.25" disks. The solution is to
    split the image into 2 pieces so that each piece will fit on a 360K disk, and
    then recombine them back to a single diskette. I was able to transfer files
    across a serial link to the machine.

    Step #1 - split the image on the computer with the image:

    FDIMAGE dos622.img dossplit.img /t2

    This produced a dossplit.img and dossplit.002. I copied these over the serial
    connection along with the FDIMAGE.EXE tool to two separate disks. I then ran:

    FDIMAGE dossplit.img /s2 b: /k

    In this case I was using a: as my source drive, and b: as my target drive,
    though I could have used a: as my target drive too if I had had only one

    The /s2 says that the source file will be split into two files, so it will
    expect 2 files. The /k option will pause before each disk operation so I can
    swap the correct disk into place. When it prompts for the dossplit.img file,
    I can put that disk in, then when it prompts for the dossplit.002 file, I can
    put that disk in. I had enough memory that it could cache a full disk in
    memory, so it will prompt for dossplit.img, then prompt for dossplit.002,
    and then finally prompt to write the disk.
    Attached Files

    Limited to 512 byte sectors and MFM encoding, as well as plain-jane sector ID schemes?

    Can you do 1.23MB PC98 DOS-formatted floppies?
    Reach me: vcfblackhole _at_ protonmail dot com.


      Yes exactly, it is limited to 512 byte sectors and plain-jane sector ID schemes (if that means all tracks have the same sectors, etc.)

      It uses the number of sectors/maxsect/maxhead values found in the FAT header to automatically determine the tracks, heads, and sectors. You can override that with an option though. Either way, ultimately it attempts to use the BIOS to load a track at a time by iterating through the tracks/heads into memory.

      I'm not sure the encoding comes into play as I think that would be abstracted from my code in the hardware, right? I don't think you can change the encoding in the BIOS as all, right?

      I don't know much about PC98 formats - do they have a FAT boot sector or do they use a different filesystem?


        1) By encoding, I mean modulation scheme. Many floppy controllers can handle FM as well as MFM, even though there's no support for it in the BIOS. Interestingly there was support for it in SC-DOS.

        2. PC98 uses 8x1024 byte sectors and an HD drive spinning at 360 RPM (not 300). Interestingly, most USB floppies can handle it just fine. No so much for legacy controllers, unless you have a 3-mode drive.
        Reach me: vcfblackhole _at_ protonmail dot com.


          That is interesting. I am using the BIOS only for floppy access (in FDIMAGE), and operating system calls in the Windows version (FDIMAGEW) which probably get translated and make it down the BIOS in 9X, but are likely emulated in NT/2K/XP/7/8/10/etc.


            Here is version 1.01 - I added DMF (1.68M) support to it last night.
            Attached Files