top of page
  • learcompminquidrea

MS-DOS 6.22 Source 28: How to Customize and Optimize MS-DOS with Enhanced Tools



Unfortunately, the Computer History Museum decided not to share the precise contents of the diskettes in its possession.Instead, they released a ZIP archive that aggregated the contents of the MS-DOS 2.00 diskettes (pictured above) into twofolders, v20object and v20source, with no clear indication which files came from which disk, why some files were renamed,what the original file names and timestamps were, and what (if anything) was omitted.


The 2.11 source files were further organized into folders corresponding to their respective binaries,along with makefiles where appropriate(eg, MSDOS.MAK).Also, in the 2.11 INC folder,DOSMAC_v211.ASM was copied to DOSMAC.ASM, and DOSSYM_v211.ASM was copied to DOSSYM.ASM.




Ms-dos 6.22 Source 28



Other files have been modified here as well, primarily to eliminate extraneous characters that caused warnings orerrors during the build process. Which raises the question: which version of MASM was originally used to buildthese sources? The MASM.EXE that was bundled with this snapshot is dated Feb 1, 1983 and reports:


For reasons unknown, the Computer History Museum decided not to share the precise contents of the diskettes in its possession.Instead, they released a ZIP archive that aggregated the contents of the MS-DOS 2.00 diskettes (pictured above) into twofolders, v20object and v20source, with no clear indication which files came from which disk, why some files were renamed,what the original file names and timestamps were, and what (if anything) was omitted.


As I explained on the Microsoft MS-DOS 2.00 page, I decided to organize allthe source files into folders that corresponded to their respective binaries, along with makefiles where appropriate(eg, MSDOS.MAK).Also, in the INC folder,DOSMAC_v211.ASM was copied to DOSMAC.ASM, and DOSSYM_v211.ASM was copied to DOSSYM.ASM, since the rest of the sourcesare for MS-DOS 2.11 as well.


I'm trying to set the handler of Interrupt 28h to my own routine, restore all the registers and flags involved, and restore the original Interrupt handler.I'm using NASM Assembler, under DOSBox and MS-DOS 6.22 in VirtualBox.


Use a FIND or a FINDSTR filter. For help with FIND, typefind /?For help with FINDSTR (enhanced version of FIND), typefindstr /?For example, suppose your date separator is the / character:DIR *.* find "/">FILENAME.EXTwill redirect a listing filtering IN only lines containing / character.You can use multiple FINDs in a multi-stage pipe. For exampleif your time separator is : [colon] then you can filter IN that,and filter out DIRECTORY to avoid the "directory" line(s):DIR *.* find ":" find /v /i "DIRECTORY"or, as above, you can redirect the result to a file instead ofthe display screen:DIR *.* find ":" find /v /i "DIRECTORY">FILENAME.EXTSee Note 1 for a simple guide to Batch operations.--(pp) William AllenNote 1======Quick summary of Windows 95/98/ME Batch/MS-DOS information===Internal Commands:Common internal commands (coded in COMMAND.COM) include: ECHO, IF, SET,CALL, DIR, DATE, TIME, COPY, TYPE, PAUSE, PROMPT, PATH, SHIFT, GOTO,CLS, FOR, LFNFOR, CD, MD, RD, REN, DEL, ERRORLEVEL, REM and the@ prefix(=ECHO off for one line).===External Commands:Command external commands (stand-alone utilities) include: attrib,choice, debug, deltree, fc, find, more, move, sort, start, xcopy.===Online help with /? switchGet help with any of these supported on your system by typing (at theDOS prompt) the CommandName with the /? help switch, for example:dir /?prompt /?xcopy /?(but note that ERRORLEVEL is explained under the corresponding IF test).===Batch operatorsThere are also three important operators. They are: > >> and 1) The > or NewFile redirection operator: ECHO. Message>NEWFILE.TXTwrites " Message" to NEWFILE.TXT (deleting any existing same-name file).2) The >> or AppendToFile operator: ECHO. Additions>>OLDFILE.TXTadds " Additions" to existing OLDFILE.TXT (but >> creates a new file ifthere is no pre-existing file).3) The or Pipe operator sends the output of one command to another:TYPE FileName.EXT find "keyword"types FileName.EXT through FIND, displaying lines that contain "keyword".(The pipe operator is the ASCII 124 character)===Batch parametersTo access parameters passed in a Batch file command line, as in:mybatch.bat Parameter1 Parameter2 Parameter3use the symbols %1, %2, %3 and so on to %9. The %0 symbol holds thename with which the Batch file was invoked (and would hold mybatch.batin the example above). Use SHIFT to access any parameters beyond theinitial %9 value. SHIFT shifts remaining parameters into the scope ofthe %0 - %9 symbols (losing previous values in the process).===Environment variablesTo expand environment variables, use %VarName%, thus:SET MYVAR=SomeStringECHO. Variable MYVAR=%MYVAR%===ECHOing % literallyTo ECHO a % symbol as a literal, double it:ECHO. Display [PercentSymbol]1 literally: %%1ECHO. Display [PercentSymbol]MYVAR[PercentSymbol] literally: %%MYVAR%%===File/Folder names with [Space]sFile or folder names that include [Space]s need to have "quotes" aroundthe entire specification when they're used in command lines, thus:COPY /y "C:\Folder 1\Source file.txt" "C:\Folder 2\Destination file.txt"(for names that don't include [Space]s, you can either use "quotes" ifyou wish, or leave them out)===WildcardsMany commands accept wildcard-specified filenames (using * and ?). Use* to mean any number of characters (including none) and use ? to meanexactly one character in that position, eg:DEL *.BAK (delete files with any basename and extension BAK)DIR WIN*.EXE (files matching basename WIN[anything] and extension EXE)DIR WIN???.EXE (files matching WIN[ExactlyThreeCharacters].EXENote on wildcard deletion:DEL *?.*Matches all files (except Hidden, System, or Read-only files) incurrent folder without confirmation prompt, so use with care!===Legacy MS-DOS 6.22 help systemWindows 95/98/ME users can install the legacy MS-DOS 6.22 help system.On your Windows CD-ROM, locate the three files:HELP.COM HELP.HLP QBASIC.EXE(these are typically in OTHER/OLDMSDOS or similar). Copy these filesto the folder C:\WINDOWS\COMMAND to install the help system.With legacy MS-DOS help installed, use the Help command, for example:help batch(to find details of simple batch commands). The help system has extensivedocumentation for the legacy version MS-DOS 6.22. Much of this information(but NOT all) still applies to Windows 95/98/ME. At DOS prompt, simplytype: "help" to start the main help index.


Every compiler has its specific procedure to compile and build a program from the source C files.Which compiler are you using? MS-DOS 6.22 does not have a built-in C compiler.If you need to compile C code using an old version of the Turbo C compiler, you can download Turbo C 2.01 from


When you boot using this CD, it will go straight into DOS. But since Microsoft DOS version 6.22 is a very old operating system, some of the newer DOS based programs (that were developed on a FreeDOS system) might not work or fail to run properly using this bootable CD.


[Compaq Presario 633 DOS 6.22 / Win 3.1 DX4 100 Overdrive 28M RAM SB16 CT2770A SPEA Media FX (Soundscape S2000) ][GA-6BXC R2.0 Win98SE Via C3 Ezra 866 384M RAM TNT2 32M Voodoo2 8M SB32 CT3670 Ensoniq Soundscape Opus]


You will need an old, slow computer running MS-DOS to execute the programming software. It would NOT start up on my laptop computers equipped with an 850 MHz Pentium-III processor or even a 100 MHz Pentium-I processor, apparently it's from the era before the speed fix was made to the RSS. It ran just fine on a 25 MHz, 80486-based system running MS-DOS 3.3 and a color 40 MHz 80386-based system running MS-DOS 6.22. It probably requires a 25 to 40 MHz, 386 or 486-based computer to run properly, as these were the available models back in the early 1990s. Isn't modern technology wonderful?


If you previously installed an IC socket, you can now plug the new 28C64 EEPROM into it. Make sure you properly orient it (pin 1 is marked on the logic board and is the furthest away from the microprocessor), it's fully seated, and no pins are bent over. The markings on the EEPROM were only visible when the IC was held at a critical angle to the light source. It IS stamped with the 28C64 part number; it just would not show up in any of my photographs. 2ff7e9595c


1 view0 comments

Recent Posts

See All
bottom of page