#332 1680k Floppy Images Don't Boot

SVN
open
nobody
5
2012-11-28
2009-06-27
Paul Blair
No

Observed in DOSBox versions 0.72 and 0.73.

1680k floppy images don't boot using DOSBox, although they boot fine in standalone machines.

Example IMG files for easy comparison between 1440k and 1680k images: http://odin.fdos.org/odin2005/
Another example (my own 1680k bootable floppy project): http://www.superkeen.com/peacecorpsfiles/FUZOMA12.IMG

1680k floppies are bootable in just about any PC. Even the NT kernel (NT4-Vista), which broke many other non-standard floppy formats, can read and write 1680k disks.

I don't see any documentation saying that this size is or isn't supposed to be supported, so not sure if this is a bug or a feature request.

Discussion

  • Paul Blair
    Paul Blair
    2010-02-16

    Finally got around to looking into this myself.

    The only place I see floppy sizes called out explicitly in the code is in bios_disk.cpp. Everywhere else it's just a bunch of "<2880k" checks. I tried adding in a few new floppy sizes that were missing, along with their geometries, like so:

    diskGeo DiskGeometryList[] = {
    { 160, 8, 1, 40, 0},
    { 180, 9, 1, 40, 0},
    { 200, 10, 1, 40, 0},
    { 320, 8, 2, 40, 1},
    { 360, 9, 2, 40, 1},
    { 400, 10, 2, 40, 1},
    { 720, 9, 2, 80, 3},
    { 820, 10, 2, 82, 3}, //new
    {1200, 15, 2, 80, 2},
    {1440, 18, 2, 80, 4},
    {1680, 21, 2, 80, 4}, //new
    {1722, 21, 2, 82, 4}, //new
    {2880, 36, 2, 80, 6},
    {0, 0, 0, 0, 0}
    };

    But for some reason my change still didn't make any of the 1680k images boot. 1440k and 2880k seem to boot fine, both before and after my changes.

    1680k images MOUNT just fine in the current build, though. Its only the BOOTING that is the problem. Anyone like to take a stab at this? Thanks!

    I already linked to some bootable 1680k floppy images, but here's another link, both for testing and to demonstrate that these things exist:

    http://www.veder.com/nwdsk/

     
  • Paul Blair
    Paul Blair
    2010-02-16

    Finally got around to looking into this myself.

    Here's the precise wording of the error, line-by-line, starting with the boot command as typed:
    boot 1680k.img
    Opening image file: 1680k.img
    Booting from drive A...
    .Error!.

    And the cursor just sits there, blinking. This happens for all 1680k floppy images I've tried.

    The only place I see floppy sizes called out explicitly in the code is in bios_disk.cpp. Everywhere else it's just a bunch of "<2880k" checks. I tried adding in a few new floppy sizes that were missing, along with their geometries, like so:

    diskGeo DiskGeometryList[] = {
    { 160, 8, 1, 40, 0},
    { 180, 9, 1, 40, 0},
    { 200, 10, 1, 40, 0},
    { 320, 8, 2, 40, 1},
    { 360, 9, 2, 40, 1},
    { 400, 10, 2, 40, 1},
    { 720, 9, 2, 80, 3},
    { 820, 10, 2, 82, 3}, //new
    {1200, 15, 2, 80, 2},
    {1440, 18, 2, 80, 4},
    {1680, 21, 2, 80, 4}, //new
    {1722, 21, 2, 82, 4}, //new
    {2880, 36, 2, 80, 6},
    {0, 0, 0, 0, 0}
    };

    But for some reason my change still didn't make any of the 1680k images boot. 1440k and 2880k seem to boot fine, both before and after my changes.

    1680k images MOUNT just fine in the current build, though. Its only the BOOTING that is the problem. Anyone like to take a stab at this? Thanks!

    I already linked to some bootable 1680k floppy images, but here's another link, both for testing and to demonstrate that these things exist:

    http://www.veder.com/nwdsk/

     
  • Paul Blair
    Paul Blair
    2010-04-05

    A few small clarifications:

    -Booting from the image file has the same result as an "imgmount" followed by a "boot -l a".

    -Pressing a key once the screen gets stuck at "Booting from drive A..." results in a cleared screen with a large serif display of "Reboot Requested, quitting now,"

     
  • Paul Blair
    Paul Blair
    2010-06-27

    I confirmed that this bug still exists in 0.74.

    Out of curiosity I checked and the 1680k floppy images boot fine in VirtualBox, just as a point of reference.