DOS Versions (Was: IBM PC-DOS 2.10 explorations
cisin at xenosoft.com
Sun Oct 4 12:06:18 CDT 2020
On Sun, 4 Oct 2020, Richard Cini wrote:
> I would only emphasize that 3.5 support didnt exist before DOS 3 (I
> forget if it was 3 or 3.1; it was when the PS/2 came out). So you have
> to watch the image sizes.
PS/2 came out with PC-DOS 3.30 But also an IBM push for OS/2
DOS versions according to media support (ignoring other IMPORTANT changes,
such as file handles, hierarchical DIRectories, etc.)
DOS 1.00 160k 40 tracks single sided 8 sectors per track.
MS-DOS 1.25 320K 40 tracks per side double sided 8 sectors per track.
DOS 2.00 360K 9 sectors per track
MS-DOS 2.11 customized by SOME OEMs 720K 3.5"; not all are
same format as PC-DOS!
DOS 3.00 1.2M
DOS 3.10 CD-ROM "network redirector"
DOS 3.20 720K
DOS 3.30 1.4M
MS-DOS 3.31 HDD >32M customized by OEMs
MS-DOS 5.00 first version sold RETAIL
PC-DOS 6.10 cartload of bundled third party add-ons
MS-DOS 6.20 patched for reliability, including changing SMARTDRV to
stop trashing disks (blamed on compression)
MS-DOS 6.21 compression not provided (copyright lawsuit)
MS-DOS 6.22 non-infringing compression
Note that 2.11 and 3.31, due to OEM customization will OFTEN have a
different FORMAT program (different drives), and different MODE.COM (some
had different video modes available). Sometimes some other bundled
programs had differences.
Note that DOS version is a numeral, a period, then a two digit decimal
number. It is ALWAYS 2.10, NOT 2.1; 3.10, NOT 3.1, etc.
What we call 2.1 is ACTUALLY version TWO point TEN!
what we call 3.2 is ACTUALLY version THREE point TWENTY!
what we call 3.31 is ACTUALLY version THREE point THIRTY-ONE!
what we call 4.01 is actually version FOUR point ONE.
MOV AH, 30h
returns the major version in AL.
Then print a period.
Minor version is in AH.
print that as a 2 digit decimal number.
2.10 has AX: 0A02
3.10 has AX: 0A03
3.20 has AX: 1403
3.30 has AX: 1E03
3.31 has AX: 1F03
Note: SETVER (since 5.00) lets a version of DOS lie about its age.
There's an important reason.
When PC-DOS 1.10 came out, with double sided drives, people sometimes ran
CHKDSK from DOS 1.00 (sometimes even having 1.00 CHKDSK on a 1.10 boot
disk), which proceeded to "FIX" the disk into an unusable form.
To prevent that and similar disasters, in addition to modifying CHKDSK to
not make changes without confirmation, henceforth, EVERY program
distributed with DOS had a MOV AH,30h/INT21h/CMP AX... so that programs
could only run with "correct version of DOS. When they stopped including
EXE2BIN.EXE and even LINK.EXE with DOS, it became necessary to either step
on the version checking code (with DEBUG.COM) or use SETVER.
I'll do a separate post about DRIVER.SYS and DRIVPARM.
Grumpy Ol' Fred cisin at xenosoft.com
More information about the cctalk