There was a kind of MS-DOS 6.3 on the internet, but this was just 6.22 with some strings in command.com hacked. The bulk of the files were indeed straight out of 6.22. and the program happily reported 6.22 to any program seeking 'dosver'.
What i wanted was an MS-DOS that was actually MS-DOS 6.3, reporting 6.30 to any proggie that asked. For example, it should load PC-DOS 6.3 stuff without worry.
The actual chore is made supprisingly easy, if ye have lying around, MS-DOS 6.21, MS-DOS 6.20, and some handy tools.
MS-DOS 6.22 consists of something like 191 files over four diskettes (we're adding in the supplement files). This is 'MS-DOS and Additional Tools', so we cull out the additional tools, to leave 'MS-DOS'.
- QBASIC110 - Edit, Help. May need to dismantle QBHELP - in hand.
- DOSSHELL - no changes needed
- SCANDISK - We could use the ME version here! - but see if 6.22 works!
- MSAV - It was nasty in its day
- DRVSPACE - From 6.20
- DBLSPACE - From 6.22
- MSDRIVER - himem, emm386, mouse, msd, etc - no need to change
- MSBACKUP - apparently version free - see Win95 disk
- INTERLNK - version free since 5.02 - version free
- MEMMAKER - version free = see win95 diskette
- NETWORLS - dos upgrades include network files
- DEFRAG - needs some work.
You first need to unpack files with PKLITE. The files needed to do things from floppies (like fdisk, debug, qhasic), are compressed with PKLITE. The rest are packed with COMPRESS v 1 [this is rather obscure software, not v 2 in the Win3.1 sdk]
Most of these are incessently nasty, but it seems little work is needed here, since these all turn out to be version-free stuff (ie don't care what DOS it uses), the exception being DBLSPACE and SCANDISK.
We are then left with something like 85 files, which consist of setup, dos5, dos6, and some odds and ends. dos5 stuff (like IO.SYS, MSDOS.SYS, etc) typically ask for version, while DOS6 stuff (DELTREE, MOVE, ...) do not. Doing something like CRC + CRCCHK sorts out what is different.
Supprisingly many files just need the DOS versions and copyright date changed. The versions in 6.21 and 6.22 differ by a handful of bytes. Some of the files have large data segments that have changed to reflect the new state of the world (like new SORT tables, new DOSVER tables, etc), still require this change, others, like KEYBOARD.SYS and EGA3.SYS do not.
The actual hand-hacked files that require a manual fc/b entry into the batch file, is then fixed along with the balance of the files. You end up with a batch file like the output from fc /b file1 file2.
Comparing files 622\CHKDSK.EXE and 621\CHKDSK.EXE 00000012: 4A 52 00000013: 80 87 000007BB: 34 33 0000136A: 16 14 00001B1E: 16 14 00001F5D: 16 14 00002267: 16 14 00002491: 16 14 00002918: 16 14 0000293C: 16 14
It's just a matter of writing a suitable command processor to process this. The relevant commands are
One can even do things to the dos kernel (IO.SYS and COMMAND.COM), so that MS-DOS 6.3 can run in 6.20 or 6.21 or 6.22 mode. Neato.
- files Open a new file to edit + print file name.
- 16 14Change binary DOS version
- 34 33 Change 1981-1994 to 1981-1983
- 32 31Change string '6.22' to '6.21'
- else print the line.
Of course, what this tells us is that MS-DOS 6.x is pretty much the same, and that the thing about checking for DOS version is more a commercial, rather than technical reason.