Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 

jaclaz

DOS FORMAT /B and label

Recommended Posts

All DOS (MSDOS) up to and INCLUDING MS-DOS 6.22 need IO.SYS as first file and MSDOS.SYS as second.

Starting from MS-DOS 7.0 (Windows 95) this is not needed anymore.

In a nutshell the bootsector code was changed in 7.0 and could access IO.SYS no matter where in Root Entries it was, whilst previous DOS versions needed both IO.SYS and MSDOS.SYS as first root entries. (and only IO.SYS is used, MSDOS.SYS having become a ".ini" file)

http://thestarman.pcministry.com/asm/mbr/index.html#Flop

http://thestarman.pcministry.com/asm/mbr/DOS50FDB.htm

http://thestarman.pcministry.com/asm/mbr/WIN98FDB.htm

Using the FORMAT command

MSDOS 5.00, when using NO switch (AND giving a label) creates:

  1. the given label in the bootsector
  2. a first entry in "Root"with the SAME label as the bootsector

MSDOS 5.00, when using ONLY the /B switch (AND giving a label) creates:

  1. the given label in the bootsector
  2. a first entry in "Root" pointing to IO.SYS
  3. a second entry in "Root" pointing to MSDOS.SYS
  4. a third entry in "Root" with the SAME label as the bootsector
  5. makes the needed FAT table "allocated" for the mentioned two system files
  6. writes some "garbage" where the two files should go

MSDOS 5.00, when using ONLY the /S switch (AND giving a label) creates:

  1. the given label in the bootsector
  2. a first entry in "Root" pointing to IO.SYS
  3. a second entry in "Root" pointing to MSDOS.SYS
  4. a third entry in "Root" pointing to COMMAND.COM
  5. a fourth entry in "Root" with the SAME label as the bootsector
  6. makes the needed FAT table "allocated" for the mentioned two system files AND copies them, as well as COMMAND.COM

MSDOS 6.00 when using NO switch (AND giving a label) creates an IDENTICAL formatted floppy as 5.00.

MSDOS 6.00, when using ONLY the /B switch (AND giving a label) creates a SIMILAR formatted floppy as 5.00 (the "garbage" is different)

MSDOS 6.00, when using ONLY the /S switch (AND giving a label) creates a SIMILAR formatted floppy as 6.22 (including the DRVSPACE.BIN entry

  1. the given label in the bootsector
  2. a first entry in "Root" pointing to IO.SYS
  3. a second entry in "Root" pointing to MSDOS.SYS
  4. a third entry in "Root" pointing to COMMAND.COM
  5. a fourth entry in "Root" with DBLSPACE.BIN
  6. a fifth entry in "Root" with the SAME label as the bootsector
  7. makes the needed FAT table "allocated" for the mentioned two system files AND copies them, as well as COMMAND.COM AND DBLSPACE.BIN

MSDOS 6.22 when using NO switch (AND giving a label) creates an IDENTICAL formatted floppy as 6.00 (and 5.00).

MSDOS 6.22, when using ONLY the /B switch (AND giving a label) creates a SIMILAR formatted floppy as 6.00 and 5.00 (the "garbage" is different)

MSDOS 6.22, when using ONLY the /S switch (AND giving a label) creates:

  1. the given label in the bootsector
  2. a first entry in "Root" pointing to IO.SYS
  3. a second entry in "Root" pointing to MSDOS.SYS
  4. a third entry in "Root" pointing to COMMAND.COM
  5. a fourth entry in "Root" with DRVSPACE.BIN
  6. a fifth entry in "Root" with the SAME label as the bootsector
  7. makes the needed FAT table "allocated" for the mentiuoned two system files AND copies them, as well as COMMAND.COM AND DRVSPACE.BIN

MSDOS 7.0 (Win95a) when using NO switch (AND giving a label) creates a SIMILAR formatted floppy as 6.22, the LABEL is both in the bootsector and as first entry.

MSDOS 7.0, when using ONLY the /B switch (AND giving a label) creates a SIMILAR formatted floppy as 6.22 (the "garbage" is different and is very few bytes)

MSDOS 7.0, when using ONLY the /S switch (AND giving a label) creates a SIMILAR formatted floppy as 6.22 (including DRVSPACE.BIN)

MSDOS 7.01 (Win95b) when using NO switch (AND giving a label) creates an IDENTICAL formatted floppy as 7.00, the LABEL is both in the bootsector and as first entry. (BUT the boot sector code is different)

MSDOS 7.01, when using ONLY the /B switch (AND giving a label) creates an IDENTICAL formatted floppy as 7.00

MSDOS 7.01, when using ONLY the /S switch (AND giving a label) creates a SIMILAR formatted floppy as 7.00 (including DRVSPACE.BIN)

MSDOS 7.1 (Win98FE 4.10.1998) when using NO switch (AND giving a label) creates an IDENTICAL formatted floppy as 7.01, the LABEL is both in the bootsector and as first entry. ( BUT the boot sector code is different)

MSDOS 7.1, when using ONLY the /B switch (AND giving a label) creates an IDENTICAL formatted floppy as 7.01

MSDOS 7.1, when using ONLY the /S switch (AND giving a label) creates a SIMILAR formatted floppy as 7.01 (including DRVSPACE.BIN)

MSDOS 7.1 (win98SE 4.10.2222) behaves exactly as 4.10.1998

MSDOS 8.0 (Windows ME 4.90.3000) creates an IDENTICAL formatted floppy as 7.x

MSDOS 8.0 has NOT anymore a /b switch.

MSDOS 8.0 has NOT anymore a /s switch.

(the test was made with the Me bootdisk, so it is not "definitive")

Quite interestingly the "garbage" that is written when the /b switch is used has a size that is NOT exactly the same as the actual files that it "fakes".

NOW the tests running on each OS the SYS command on the floppy previously formatted by the SAME OS, WITHOUT ANY switch AND writing to the empty formatted floppy a "random" file before running the SYS, as to have first entry the label and second the file:.

MSDOS 5.00 System transferred (no error) <- this is UNLIKE MS info, the root entries are re-ordered with IO.SYS first, MSDOS.SYS second and LABEL third.

MSDOS 6.22 same as above.

MSDOS 7.0 root entries are NOT reordered (as expected) LABEL remains first entry.

....

MSDOS 8.0 has NOT anymore a SYS command working on B: drive.

(the test was made with the Me bootdisk, so it is not "definitive")

What happened in DOS 6.0 (and EVIDENTLY also though undocumented by MS in 5.00) was simply the same behaviour as bootpart, when you use the SYS command the root entries are shifted so that IO.SYS is first and MSDOS.SYS is second, and the volume needs not having being previously prepared with the /B switch.

I will see if I can get my hands on a 3.3 and 4.0 or 4.01 boot disk and check that oooold versions.

I tested DOS 4.01 in the meantime.

It works allright WITHOUT needing the /B switch.

The effect of format /s is IDENTICAL to the 5.00 version (bootcode is different).

By doing SYS on a "no-switches" formatted floppy after having copied to it a file the IO.SYS and MSDOS.SYS are correctly "bubblesorted" to the top.

Queerly whilst with format /s the COMMAND.COM is copied, with the SYS on the pre-formatted floppy it is not (and needs to be copied manually and as expected "goes last", i.e. after the label and the copied file).

I managed to get a 3.3 version but it is not really-really DOS, it's a NEC OEM DOS, and in it the /b switch seemingly does not work.

(or possibly it needs some additional parameter, I'll have to check)

Also, this verson of format does NOT prompt for a LABEL and there is no label command in the image I found.

BUT finally I found what we were looking for, when trying to SYS the floppy previously formatted with no switch and to which I had copied a file, I finally got:

A>SYS B:

No room for system on destination disk

So all in all, AS EXPECTED, the MS info is either inaccurate or deceiving or late or all of them at the same time! :whistle:

BTW I found while checking another couple "strange" things.

ALL DOS versions tested have an attribute of the label as 0x28 (i.e. Archive+Label), whilst XP uses the 0x08 (Label Only).

This has a nice side effect.

If you access the floppy image with 7-zip you can actually see the LABEL, it's created date & time, modified date & time and the last accessed date.

XP, though it writes 0x08 treats the 0x28 just as the 0x08, i.e. somehow the 0x08 is "prevailing" on the 0x20 :unsure:

@All

This is as always a quickly put together report, if you spot any error/typo/whatever in the above, please post about it and I all correct it. :)

jaclaz

Edited by jaclaz

Share this post


Link to post
Share on other sites

I’m impressed by your inquisitiveness! :w00t:

I didn’t check the thing you wrote about here, I trust it is just as you say. But I can repay you with something that admittedly didn’t require that much work, but is also an example of how Microsoft caused harm… to itself.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...