Archives
- March 2025
- February 2025
- January 2025
- December 2024
- November 2024
- October 2024
- September 2024
- August 2024
- July 2024
- June 2024
- May 2024
- April 2024
- March 2024
- February 2024
- January 2024
- October 2023
- September 2023
- August 2023
- July 2023
- June 2023
- May 2023
- April 2023
- March 2023
- January 2023
- December 2022
- November 2022
- October 2022
- September 2022
- July 2022
- June 2022
- May 2022
- April 2022
- March 2022
- February 2022
- January 2022
- December 2021
- November 2021
- October 2021
- September 2021
- August 2021
- July 2021
- June 2021
- May 2021
- April 2021
- March 2021
- February 2021
- January 2021
- December 2020
- November 2020
- October 2020
- September 2020
- August 2020
- July 2020
- June 2020
- May 2020
- April 2020
- March 2020
- February 2020
- January 2020
- December 2019
- November 2019
- October 2019
- September 2019
- August 2019
- July 2019
- June 2019
- May 2019
- April 2019
- March 2019
- February 2019
- January 2019
- December 2018
- November 2018
- October 2018
- August 2018
- July 2018
- June 2018
- May 2018
- April 2018
- March 2018
- February 2018
- January 2018
- December 2017
- November 2017
- October 2017
- August 2017
- July 2017
- June 2017
- May 2017
- April 2017
- March 2017
- February 2017
- January 2017
- December 2016
- November 2016
- October 2016
- September 2016
- August 2016
- July 2016
- June 2016
- May 2016
- April 2016
- March 2016
- February 2016
- January 2016
- December 2015
- November 2015
- October 2015
- September 2015
- August 2015
- July 2015
- June 2015
- May 2015
- April 2015
- March 2015
- February 2015
- January 2015
- December 2014
- November 2014
- October 2014
- September 2014
- August 2014
- July 2014
- June 2014
- May 2014
- April 2014
- March 2014
- February 2014
- January 2014
- December 2013
- November 2013
- October 2013
- September 2013
- August 2013
- July 2013
- June 2013
- May 2013
- April 2013
- March 2013
- February 2013
- January 2013
- December 2012
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- January 2011
- November 2010
- October 2010
- August 2010
- July 2010
DOS 3.3
The Mature DOS
IBM PS/2
On April 2, 1987 IBM announced the long-awaited new line of personal computers, the Personal System/2. The PS/2 line was a radical redesign of the PC platform, a very bold but ultimately unsuccessful move (perhaps because it was too bold). IBM attempted to strengthen its control of the PC platform, but achieved the opposite.
The PS/2 machines were technically excellent, far ahead of the clones. Unfortunately, the PS/2 systems were also quite different and incompatible, in many ways needlessly so. For example, PS/2 machines came standard with 31⁄2” 1.44MB drives (and a few years later, even 2.88MB drives), certainly an improvement over the existing 1.2MB drives. But the rest of the world only had 360KB or 1.2MB 51⁄4” drives, which made data exchange difficult. Many existing systems could not be upgraded to 1.44MB drives (that included IBM’s first two PC/AT generations), and a 51⁄4” drive for a PS/2 was an extra which was expensive and in the first few months after the release, also near impossible to get.
The PS/2 systems used a brand new bus called the Microchannel Architecture or MCA. The new bus supported 16-bit or 32-bit operation, advanced arbitration, bus mastering, and transfer speeds with theoretical maximum of well over 100MB/sec. MCA was fully software configurable, more or less Plug and Play, although the term didn’t exist yet. MCA was also completely incompatible with every single existing ISA expansion board. For many users who invested in memory cards, network controllers, storage adapters, etc., that made switching to PS/2 a very expensive proposal indeed (the high end 386-based PS/2 Model 80 cost over 10,000ドル). Compaq, Intel, et al. did not repeat that mistake with EISA and PCI, providing a much smoother upgrade path.
The first generation PS/2 machines were 386-based (Model 80), 286-based (Model 60 and 50), and 8086-based (Model 30). The 8086-based Model 30 was not a "true" PS/2 as it used the ISA bus rather than MCA. The PS/2 introduced VGA graphics, 1.44MB drives, and PS/2 keyboards and mice, all of which stayed around for a very long time. As usual, a new version of DOS was required to take advantage of the new hardware.
DOS 3.3
DOS 3.3 was announced on April 2, 1987 with immediate availability. IBM again changed the pricing structure, with the base price raised to 120ドル. However, upgrade pricing was now available for owners of any previous version of DOS at 75ドル. That was cheaper than DOS 3.2 (95ドル) for which there was no upgrade pricing.
IBM also changed the packaging. With DOS 3.2, there were separate 51⁄4” and 31⁄2” releases. In version 3.3, IBM simply included both media types—two 360KB 51⁄4” disks and a single 31⁄2” 720KB disk. There was no danger of accidentally getting the wrong package and there was (again) only a single DOS part number.
A much less obvious but no less significant change was that unlike all previous versions, DOS 3.3 development was done solely at IBM. Microsoft was busy working on OS/2 (not yet under that name) and the OS/2 development team included many core DOS developers, such as Mark Zbikowski.
The copyright messages in DOS 3.3 hinted that IBM alone had developed that version. The COMMAND.COM banner read "Copyright International Business Machines Corp 1981, 1987" but "Copyright Microsoft Corp 1981, 1986".
Changes and additions
One of the most significant new capabilities of DOS 3.3 was the support for extended partitions. DOS 3.3 did not remove the 32MB partition limit, but for the first time it was possible to easily partition larger disks and map several partitions to multiple drive letters. Since the new PS/2 systems supported disks with capacity over 100MB, this enhancement was very welcome, or perhaps overdue. However, the support for larger than 32MB partitions still had to wait.
It should be noted that various OEMs (notably Compaq) had supported partitioning even earlier, but always with the help of special drivers. Since DOS 3.3, custom partition drivers were not necessary.
The FASTOPEN.EXE utility was a strange beast, essentially a rudimentary disk cache which hooked into DOS but wasn’t quite part of it. Clearly an IBM creation, possibly developed earlier and simply bundled with DOS 3.3.
New on the floppy side was naturally support for 1.44MB media, the mainstay of PC removable storage for the next decade and more.
The CALL internal command allowed batch files to execute other batch files. This was previously only possible by starting another copy of COMMAND.COM, which was a workable but not very efficient solution.
The DOS INT 21h API was extended with calls to set the file handle count and commit files without having to close and re-open them. The latter was an important optimization for networked systems, where the overhead of closing and opening a file again was too great.
The XCOPY.EXE external command finally allowed copying of directory trees. The internal COPY command was still limited to files within a single directory.
The FDISK.COM, BACKUP.COM, and RESTORE.COM utilities were rewritten in C. JOIN.EXE and SUBST.EXE had already been written in C when first introduced in DOS 3.1, in addition to ATTRIB.EXE, the first DOS utility written in C and shipped with DOS 3.0.
With version 3.3, IBM finally retired the Disk BASIC because the systems which were expected to run DOS 3.3 had enough memory and the higher memory usage by the Advanced BASIC version did not matter any longer. A BASIC.COM executable was still shipped with DOS, but simply launched BASICA.COM.
In keeping with the merge, BASIC was now called simply "The IBM Personal Computer Basic" and only the A3.30 version marker indicated that this was the Advanced BASIC.
With DOS 3.3 started a gradual shift towards less technical users of DOS. LINK.EXE and EXE2BIN.EXE, the BASIC sample programs, and the VDISK.SYS listing were no longer shipped with DOS. To obtain them, customers had to separately purchase the DOS Version 3.30 Technical Reference from IBM. DEBUG.COM was still shipped with DOS, but was only documented in detail in the Technical Reference.
Internationalization
One of the less visible but very important changes in DOS 3.3 was significantly improved internationalization support. Country information was now separately stored in COUNTRY.SYS (a data file, not an installable driver, despite the extension). The COUNTRY statement in CONFIG.SYS could be used to provide the path to COUNTRY.SYS.
The approach of having separate KEYBxx.COM utilities for each language (utilized in previous versions of DOS) didn’t scale and in version 3.3, KEYB.COM was a generic utility which read keyboard description data from KEYBOARD.SYS (again not an installable driver), where they were stored in a somewhat compressed form, and built translation tables on the fly.
The new NLSFUNC.EXE Terminate and Stay Resident (TSR) utility enhanced the INT 21h API to allow retrieval of country information for country codes other than the currently active one. The new internal CHCP command allowed users to switch the active code page (used for the screen, keyboard, and printer) on the fly. The MODE.COM command was also enhanced with code page support.
Impact
DOS 3.3 was an extraordinarily long-lived release. On June 11, 1991 (coinciding with the release of DOS 5.0) IBM announced the withdrawal of DOS version 3.3 from marketing, together with DOS 4 and Windows 2.x. The planned withdrawal date was June 11, 1992. But on June 9, 1992 IBM in a rather unusual move announced that DOS 3.3 would continue to be available with no new withdrawal date. The cited reasons were a cleaner operating environment and more available memory on 286 and older systems than DOS 5.0 would provide, calling DOS 3.3 "an operating system considered to be one of the standards of the industry". And that was five years after the release of DOS 3.3.
Because DOS 4.0 never managed to displace its predecessor, DOS 3.3 was in widespread use for at least 4 or 5 years, significantly longer than any other version—at least as long as DOS mattered.
There are interesting parallels between DOS 3.3 and Windows XP. Like Windows XP, DOS 3.3 didn’t bring any radically new technology, it was rather a refinement of the preceding groundbreaking version (Windows 2000 and DOS 3.1, respectively). Like Windows XP, DOS 3.3 stubbornly resisted to be replaced by its successor (Windows Vista and DOS 4.0, respectively) and stayed on the market for far longer than anyone expected.
OEM DOS 3.3
Microsoft was of course still supporting DOS OEMs, even if IBM did most of the development work. And as a side effect of the Joint Development Agreement (JDA) with IBM, Microsoft obtained rights to hardware-specific DOS utilities such as MODE.COM or FDISK.COM. Starting with version 3.3, Microsoft shipped the same utilities as IBM, although OEMs were still free to write their own.
One of the most significant OEM releases was COMPAQ DOS 3.31 in late 1987. That version pioneered support for 32-bit logical sector numbers and thus partitions larger than 32MB. The same support appeared a few months later in DOS 4.0 and OS/2 1.1.
With the support for large partitions, DOS 3.31 removed one of the biggest shortcomings and proved formidable competition to later versions of DOS. An unavoidable casualty of the change were disk utilities (PC Tools, Norton Utilities, etc.) which had to be updated to understand the new disk structure.
Starting around 1988, Microsoft was also shipping non-branded MS-DOS ("packaged product") in significant quantities. At that time, DOS was still not a retail product, but small OEMs could buy generic MS-DOS from Microsoft directly. Larger OEMs (COMPAQ, Zenith, HP) still chose to customize DOS, but for cheaper no-name OEMs that was an unnecessary expense. At that time, the PC platform had stabilized to the point where a generic "PC compatible" was able to run MS-DOS without requiring any customization.
Legacy
With DOS 3.3, the DOS API matured and more or less stabilized. Missing features like larger than 32MB partition support made a big difference to users, but no difference to applications except for specialized disk utilities. Because DOS 3.3 was so widespread and feature complete, few applications required a higher version. DOS 4.0 was something of a cul-de-sac, and DOS 5.0 was designed to be less different from 3.x, not more.
Enhanced OEM versions such as Compaq’s DOS 3.31 with larger than 32MB partition support were quite suitable for hosting Windows 3.0 and 3.1, a plethora of networking packages (Microsoft last DOS network client from 1995 still only required DOS 3.3), and just about any DOS based application.
References
The MS-DOS Encyclopedia, edited by Ray Duncan, Microsoft Press, 1987. ISBN 1-55615-049-0
IBM Blames DOS 3.3 Problems on Non-IBM Hard Disk Drives, InfoWorld, Jun 1, 1987, page 6
Compaq’s New DOS Version Cripples Leading Disk Utilities, InfoWorld, Dec 14, 1987, page 22
5 Responses to DOS 3.3
“Because DOS 3.3 was so widespread and feature complete, few applications required a higher version. ”
Actually, most later DOS apps (particularly those released closer to the mid-1990s) did require DOS 5.0, particularly TSRs that depended on DOS internal data structures which often changed between 3.x, 4.x, and 5.0.
Can you name five or ten such major apps or TSRs? Preferably released before 1996 or so, when DOS still mattered…
Also, the DOS internal structures were less different between DOS 3.x and 5.0 than they were between DOS 3.x and 4.0.
AFAIK, TSRs that depended on DOS’s internal data structures like network redirectors generally had separate versions or code paths for 3.x, 4.x, and 5.x+.
In fact, one of the reason SETVER was invented in DOS 5.0 is to deal with these kinds of programs, which usually checked the major version of DOS and return with an error message like “Incorrect DOS version” if the version is unknown. MS when developing DOS 5.0 would consider the internal data structures of both 3.x and 4.x, consider which kinds of programs were depending on them, choose which version is best to imitate for each kind, and ensure that DOS 5.0 emulated the specific DOS version enough for this particular kind of program and then added the program to the SETVER list with the correct version number. For example, network redirectors generally was SETVERed to version 4.01.
I used to have a PCjr with a Racore/Rapport expansion kit (with a so-called PC/PCjr toggle switch). I was able to boot PC-DOS 3.3 on it. About halfway through the boot process, I would get multi-colored ascii garbage on the screen (nothing CLS in AUTOEXEC.BAT couldn’t cure).
I even tried PC-DOS 4.01. That wouldn’t even boot. That machine would hard lock tight as a drum!
This site uses Akismet to reduce spam. Learn how your comment data is processed.