Photo of Diskette Label. The
"6172212" on the line just above "DOS" is IBM's
part number for the diskette. The words at the bottom of the label state in part:
"Version 1.00 © Copyright IBM Corp. 1981." (Photo©Daniel B.
Sedory).
IBM® Personal Computer DOS 1.00 was a result of the vision and efforts of many different people; including various employees of both IBM® and Microsoft®. Some would say that DOS owes a great deal more to the creator of CP/M (Gary Kildall) than either IBM® or Microsoft® would ever admit to. If you want an honest assessment, I suggest you find a group of disinterested x86 assembly programmers to compare the code from CP/M and DOS rather than relying on Net rumors! Most would say the majority of the initial work had been accomplished by Tim Paterson, who created much of the Disk Operating System code while employed at Seattle Computer Products where he wrote QDOS (Quick and Dirty Operating System). Bill Gates and Marc McDonald, however, actually invented the File Allocation Table (FAT) file system for Microsoft's standalone BASIC in 1977 which Paterson later used to store and work with files under QDOS.
Apart from the DOS system code, Paterson also produced two system utilities that found their way onto IBM's diskette, the most notable being DEBUG. After Microsoft® acquired the rights to sell what was then called 86-DOS, Paterson joined that company in order to help complete their 'secret project' for IBM® (i.e., Personal Computer DOS 1.00). At least one other Microsoft employee, Robert O'Rear (whose name is embedded in the Boot Sector), spent a great deal of time on this project as well. There were a number of IBM employees who worked on hardware interface code, wrote applications software for the operating system and spent time testing each change made along the way (some of their names are embedded in various BASIC and system programs on the diskette; see our forensic analysis for details).
Of the 40 files on this diskette, 38 of them can be listed using the operating system's DIR command; they all had the same date: 08-04-81. However, the two Hidden System files have different dates: The earliest file on the disk, IBMBIO.COM, was dated July 23, 1981, and latest one, IBMDOS.COM, had a date of August 13, 1981 (see Disk Contents).
On our Tech Notes page we discuss some implications of the fact that its files were distributed on a 160 KiB diskette.
The following illustration shows how IBM® Personal Computer DOS version 1.00 would appear on a display screen when booting up. Since a date must be entered in order to continue, we've shown an example date entry using green text here:
|
Some Command Examples while running IBM® Personal Computer DOS 1.00 under BOCHS:
|
Notice the output from the chkdsk command above: It shows that there are 40 files on the diskette. However, when using the DIR command, you can view only 38 file names and their relevant data. Thus chkdsk will show the actual total number of files on the diskette; including any hidden or system files!
Using the "L" (Load) command under debug, with the parameters 100 0 3 1, allows us to copy 1 sector of data from Absolute Sector 3 of the diskette in the A drive (0; 1 = B drive, 2 = C drive, etc.) to offset 100h in DEBUG's memory segment. Forensic investigators could use DEBUG to view all the bytes contained in any sector exactly as they appeared on a diskette! In the example above, we see the beginning of the Directory entries (starting at the fourth sector on the diskette); with the two hidden system files, IBMBIO.COM and IBMDOS.COM listed first.
On April 5, 1982, the front page of the New York Times
revealed that IBM®'s BASIC program was returning an error when users tried to
divide 0.1 by 10. (David S. Walonick, who'd discovered the problem, was also
mentioned in the article COMPANY NEWS; Flaw in an I.B.M. Computer by Andrew Pollack in Section D, page 4 of
that edition.)
Although almost everyone who had an IBM 5150 at that time would have had the original 'flawed' ROM
BASIC 1.0 upgraded to one that did not contain the erroneous code, we found an original
version being offered along with PCE (the PC Emulator) by Hampa Hug (and independently verified). See our page: Using PCE.
The following screen shows a simple BASIC program which always results in that math error being
produced under the original BASIC ROM code:
You can download that BASIC program as the only file on a 160 KiB diskette image file inside this Zip file.
Note: We verified with certainty that the 32 KiB ROM code file that
comes with the IBM PC 1.00 version of PCE ("ibm-basic-1.00.rom") from
Hampa Hug is the original BASIC ROM code by comparing its content byte for byte with the code we
found online from engineers who obtained it directly from four original IBM PC BASIC ROM chips!
Here are the part numbers and checksums of the code we obtained; which could be found in both
rev 1 (04/24/81) and rev 2 (10/19/81) machines:
IBM ROM Part Numbers and SHA1 Checksums; from any IBM PC 5150 with ROM Basic 1.0:
5700019 (U29), SHA1 (7a5db95370194c73b7921f2d69267268c69d2511), MD5 (2AC2E97EDDB3F344641CDD9DC3747F8E),
5700027 (U30), SHA1 (ca2f126ba69c1613b7b5a4137d8d8cf1db36a8e6), MD5 (8B2A0F2EA97D0ADB9C1C834387AAD5D9),
5700035 (U31), SHA1 (89af8138185938c3da3386f97d3b0549a51de5ef), MD5 (9A3253AD9F1D8213D33E04476E3ED482),
5700043 (U32), SHA1 (22fe58bc853ffd393d5e2f98defda7456924b04f), MD5 (2686DBC7F261F10D54553C4C5F93A3D5).
After combining the code from the four chips above into a single file, the
bytes were identical to the PCE file: "ibm-basic-1.00.rom"; and its overall
checksum, for those who wish to verify it, is:
SHA1 checksum: 815B13C6DA5CDC215200E504B80013666CBDEF16, MD5: 2AD31DA203A49B504FAD3A34AF0C719F.
For comparison, the newer replacement BASIC ROM chips, in which the error
mentioned above was corrected (and some other changes made), have the following IBM Part Numbers and checksums:
IBM ROM Part Numbers and SHA1 Checksums; from any rev 3 (10/27/82) IBM PC 5150 with ROM Basic 1.1:
5000019 (U29), SHA1 (64769b7a8b60ffeefa04e4afbec778069a2840c9), MD5 (69E2BD1D08C893CBF841607C8749D5BD),
5000021 (U30), SHA1 (082ae803994048e225150f771794ca305f73d731), MD5 (5F85FF5EA352C1EC11B084043FBB549E),
5000022 (U31), SHA1 (c9e0529470edf04da093bb8c8ae2536c688c1a74), MD5 (04A285D5DC8D86C60679E8F3C779DCC4),
5000023 (U32), SHA1 (5134dd64721cbf093d059ee5d3fd09c7f86604c7). MD5 (B086A6980FC5736098269E62B59726EF).
When combined into one 32 KiB file, such as the file
"ibm-basic-1.10.rom" from PCE, the overall checksum is:
SHA1 checksum: 07449EBCA18F979B9AB748582B736E402F2BF940, MD5: EB28F0E8D3F641F2B58A3677B3B998CC.
Updated: September 18, 2005 (2005.09.18); July 27, 2011 (2011.07.27); February 13, 2015 (2015.02.13);
February 21, 2015 (2015.02.21); June 16, 2017 (2017.06.16); December 7, 2021 (2021.12.07).
Last Update: February 8, 2022 (2022.02.08); made MATHERR.BAS file available on 160 KiB diskette image.
You can reply to us here.
MBR
and Boot Records Index
The Starman's Realm Index