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 assembly programmers to compare the code from CP/M and DOS rather than relying on Net rummors! Most would say the majority of the initial work had been accomplished by Tim Paterson, who created much of the 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:
Enter today's date (m-d-y): 12-27-1981 The IBM Personal Computer DOS Version 1.00 (C)Copyright IBM Corp 1981 A>_
Some Command Examples while running IBM® Personal Computer DOS 1.00 under BOCHS:
Enter today's date (m-d-y): 10-16-2004 The IBM Personal Computer DOS Version 1.00 (C)Copyright IBM Corp 1981 A>dir *.exe LINK EXE 43264 08-04-81 A>dir *.com COMMAND COM 3231 08-04-81 FORMAT COM 2560 08-04-81 CHKDSK COM 1395 08-04-81 SYS COM 896 08-04-81 DISKCOPY COM 1216 08-04-81 DISKCOMP COM 1124 08-04-81 COMP COM 1620 08-04-81 DATE COM 252 08-04-81 TIME COM 250 08-04-81 MODE COM 860 08-04-81 EDLIN COM 2392 08-04-81 DEBUG COM 6049 08-04-81 BASIC COM 10880 08-04-81 BASICA COM 16256 08-04-81 A>chkdsk 40 disk files 160256 bytes total disk space 6144 bytes remain available 654336 bytes total memory 642192 bytes free A>date Current date is 10-16-04 Enter new date: A>time Current time is 15:03:05.64 Enter new time: A>debug -l 100 0 3 1 -d 049F:0100 49 42 4D 42 49 4F 20 20-43 4F 4D 06 00 00 00 00 IBMBIO COM..... 049F:0110 00 00 00 00 00 00 00 00-F7 02 02 00 80 07 00 00 ........w....... 049F:0120 49 42 4D 44 4F 53 20 20-43 4F 4D 06 00 00 00 00 IBMDOS COM..... 049F:0130 00 00 00 00 00 00 00 00-0D 03 06 00 00 19 00 00 ................ 049F:0140 43 4F 4D 4D 41 4E 44 20-43 4F 4D 00 00 00 00 00 COMMAND COM..... 049F:0150 00 00 00 00 00 00 00 00-04 03 13 00 9F 0C 00 00 ................ 049F:0160 46 4F 52 4D 41 54 20 20-43 4F 4D 00 00 00 00 00 FORMAT COM..... 049F:0170 00 00 00 00 00 00 00 00-04 03 1A 00 00 0A 00 00 ................ -q A>
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:, 2=C:, 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 of 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 upgraded to one that did not contain the erroneous code, we've finally found the original version being offered along with PCE (PC Emulator) by Hampa Hug. The following screen shows a simple BASIC program which always results in the error being produced:
5700019 (U29), SHA1(7a5db95370194c73b7921f2d69267268c69d2511); 5700027 (U30), SHA1(ca2f126ba69c1613b7b5a4137d8d8cf1db36a8e6); 5700035 (U31), SHA1(89af8138185938c3da3386f97d3b0549a51de5ef); 5700043 (U32), SHA1(22fe58bc853ffd393d5e2f98defda7456924b04f).
The newer BASIC ROM chips, in which the error above was corrected and other changes made, have the
following IBM Part Numbers and SHA1 hashes (its 32 KiB file having a SHA1 checksum of: 07449EBCA18F979B9AB748582B736E402F2BF940):
5000019 (U29), SHA1 (64769b7a8b60ffeefa04e4afbec778069a2840c9); 5000021 (U30), SHA1(082ae803994048e225150f771794ca305f73d731); 5000022 (U31), SHA1 (c9e0529470edf04da093bb8c8ae2536c688c1a74); 5000023 (U32), SHA1(5134dd64721cbf093d059ee5d3fd09c7f86604c7).
You can write to me
using this: online reply form. (It opens in a new window.)
MBR and Boot Records Index
The Starman's Realm Index