Sponsoring website: Emergency Boot Kit


IBM® Personal Computer
DOS Version 1.00 (1981)


Copyright © 2005, 2015, 2017, 2021, 2022 by Daniel B. Sedory

NOT to be reproduced in any form without Permission of the Author!


Index

Introduction
Boot Up Screen
References

For further study, see: Boot Sector, Disk Contents, Forensic Analysis and Tech Notes pages.

Introduction


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.

 

Boot Up Screen

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 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.

 


Historical Notes and References

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