86-DOS

From Wikipedia, the free encyclopedia
Jump to: navigation, search
86-DOS
86-DOS logo.svg
86-DOS running assembler and HEX2BIN (screenshot).png
A sample 86-DOS session (simulated).
Company / developer Seattle Computer Products / Tim Paterson
Programmed in 8086-Assembly language
OS family DOS
Working state Historic
Source model Closed source
Initial release 1980
Latest stable release 86-DOS 1.10 / July 1981
Marketing target S-100-based micro-computers with 8086 processor
Available language(s) English
Available programming languages(s) 8086-Assembly language
Package manager N/A
Supported platforms x86
Kernel type Monolithic kernel
Default user interface Command line interface
License Proprietary

86-DOS was an operating system developed and marketed by Seattle Computer Products (SCP) for its Intel 8086-based computer kit. Initially known as QDOS (Quick and Dirty Operating System) the name was changed to 86-DOS once SCP started licensing the operating system in 1980.

86-DOS had a command structure and application programming interface that imitated that of Digital Research's CP/M operating system, which made it easy to port programs from the latter. The system was purchased by Microsoft and developed further as MS-DOS and PC DOS.

Contents

Origins [edit]

86-DOS was created because sales of the Seattle Computer Products 8086 computer kit, demonstrated in June 1979 and shipped in November,[1] were languishing due to the absence of an operating system. The only software which SCP could sell with the board was Microsoft's Stand-alone Disk BASIC-86, which Microsoft had developed on a prototype of SCP's hardware.[1] SCP wanted to offer the 8086-version of CP/M that Digital Research had announced, but its release date was uncertain. This was not the first time Digital Research had lagged behind hardware developments; two years earlier it had been slow to adapt CP/M for new floppy disk formats and hard disks. In April 1980 SCP assigned 24-year-old Tim Paterson to develop a substitute for CP/M-86.[1]

Paterson designed 86-DOS with an API that was source-compatible with legacy CP/M programs. At the same time he made a number of changes and enhancements to address what he saw as CP/M's shortcomings. CP/M cached file system information in memory for speed, but this required a user to force an update to a disk before removing it; if the user forgot, the disk would be corrupt. Paterson took the safer but slower approach of updating the disk with each operation. CP/M's PIP command, which copied files, supported several special file names that referred to hardware devices such as printers and communication ports. Paterson built these names into the operating system as device files so that any program could use them. He gave his copying program the more intuitive name COPY. Rather than implementing CP/M's file system, he draw on Microsoft Stand-alone Disk BASIC-86's FAT filesystem to maintain some form of compatibility with systems that SCP had already shipped.[citation needed]

IBM interest [edit]

In October 1980, IBM was developing what would become the original IBM Personal Computer. CP/M was by far the most popular operating system in use at the time, and IBM felt it needed CP/M in order to compete. IBM's representatives visited Digital Research and discussed licensing with Digital Research's licensing representative, Dorothy Kildall (nee McEwen), who hesitated to sign IBM's non-disclosure agreement. Although the NDA was later accepted, Digital Research would not accept IBM's proposal of $250,000 in exchange for as many copies as IBM could sell, insisting on the usual royalty-based plan.[2] In later discussions between IBM and Bill Gates, Gates mentioned the existence of 86-DOS and IBM representative Jack Sams told him to get a license for it.[citation needed]

Creation of PC DOS [edit]

Microsoft purchased a non-exclusive license for 86-DOS from Seattle Computer Products[3] in December 1980 for $25,000.[citation needed] In May 1981, it hired Tim Paterson to port the system to the IBM PC,[1] which used the slower and less expensive Intel 8088 processor and had its own specific family of peripherals. IBM watched the developments daily,[1] submitted over 300 change requests before it accepted the product and wrote the user manual for it.

In July 1981, a month before the PC's release, Microsoft purchased all rights to 86-DOS from SCP for $50,000.[4][1][5] It met IBM's main criteria: it looked like CP/M, and it was easy to adapt existing 8-bit CP/M programs to run under it, notably thanks to the TRANS command which would translate source files from 8080 to 8086 machine instructions. Microsoft licensed 86-DOS to IBM, and it became PC DOS 1.0. This license also permitted Microsoft to sell DOS to other companies, which it did. The deal was spectacularly successful, and SCP later claimed in court that Microsoft had concealed its relationship with IBM in order to purchase the operating system cheaply. SCP ultimately received a 1 million dollar settlement payment.

Intellectual property dispute [edit]

When Digital Research founder Gary Kildall examined PC DOS and found that it duplicated CP/M's programming interface, he wanted to sue IBM, which at the time claimed that PC DOS was its own product. However, Digital Research's attorney did not believe that the relevant law was clear enough to sue. Nonetheless, Kildall confronted IBM and persuaded them to offer CP/M-86 with the PC in exchange for a release of liability.

Controversy has continued to surround the similarity between the two systems. Perhaps the most sensational claim comes from Jerry Pournelle, who claims that Kildall personally demonstrated to him that DOS contained CP/M code by entering a command in DOS that displayed Kildall's name;[6] as of 2006 Pournelle has not revealed the command and nobody has come forward to corroborate his story. A 2004 book about Kildall says that he used such an encrypted message to demonstrate that other manufacturers had copied CP/M, but does not say that he found the message in DOS;[7] instead Kildall's memoir (a source for the book) pointed to the well-known interface similarity. Paterson insists that the 86-DOS software was his original work, and has denied referring to or otherwise using CP/M code while writing it.[8] After the 2004 book appeared, he sued the authors and publishers for defamation.[9] The court ruled in summary judgement that no defamation had occurred, as the book's claims were opinions based on research or were not provably false.[10]

EDLIN [edit]

By 1982, when IBM asked Microsoft to release a version of DOS that was compatible with a hard disk, PC DOS 2.0 was an almost complete rewrite of DOS, so by March 1983, very little of QDOS remained. The most enduring element of 86-DOS was its primitive line editor, EDLIN, which remained the only editor supplied with Microsoft versions of DOS until the June 1991 release of MS-DOS 5.0, which included a TUI-based editor, MS-DOS Editor based on QBasic. EDLIN can still be used on contemporary machines, since it is bundled with the emulated DOS environment up to Windows 7.

Versions [edit]

QDOS 0.10 July 1980 Roughly half completed version of the OS.[1] It implemented the original form of Paterson's derivation of Microsoft's FAT filesystem. In contrast to the earlier 8-bit FAT filesystem found in Stand-alone Disk BASIC-86, this variant already supported 12-bit table elements,[11] reduced the number of FATs from 3[12] to 2, redefined the semantics of some of the reserved cluster values, and modified the disk layout, so that the root directory was now located between the FAT and the data area. This variant, however, still used 16-bytes directory entries and therefore is not compatible with what became later known as FAT12 in MS-DOS/PC DOS.
QDOS 0.11 August 1980 Bug fix.[1]
QDOS 0.2 August 1980 EDLIN added.
86-DOS 0.3 1980-11-15 Renamed to 86-DOS. First version licensed by SCP to Microsoft.[3]
86-DOS 0.33 1980-12 First version distributed by SCP to OEMs and Microsoft as 86-DOS.[1][3]
86-DOS 0.34 1980-12-29 Cleaned up release for SCP OEMs including Microsoft.
86-DOS 0.42 1981-02-25 At the indirect request of IBM (through Microsoft[4]) size of directory entries changed from 16 to 32 bytes (similar to MDOS/MIDAS) in order to add support for a last-modified date stamp (2 bytes) and theoretical file sizes larger than 16 MB (4 bytes),[13] thereby implementing the earliest form of the 12-bit FAT file system logically fully compatible with what became known as FAT12 in MS-DOS/PC DOS later on. 86-DOS retained the capability to read volumes written under older versions of 86-DOS up to SCP MS-DOS 1.25 the least, whereas generic MS-DOS 1.20 / PC DOS 1.1 and higher no longer supported it.
86-DOS 0.56 1981-03-23 Support for disk blocking/deblocking as requested since 1981-01-15.[4]
86-DOS 0.60 1981-03-27 The file DOSIO.ASM found in 86-DOS 1.00 mentions that it is the "I/O System for 86-DOS version 0.60 and later."[14]
86-DOS 1.00[15] 1981-04-28 Modified system calls.[14][16][1][15]
86-DOS 1.10 1981-07-21 Purchased by Microsoft and renamed to MS-DOS on 1981-07-27,[4][15] therefore the last version with genuinely matching 86-DOS and MS-DOS version numbers. First version known to implement the 'hidden' attribute.
86-DOS 1.14[15] 1981-10/11 According to Tim Paterson PC DOS 1.0 basically reflects 86-DOS 1.14,[15] other sources find a match of PC DOS 1.0 with MS-DOS/86-DOS 1.10 as of 1981-07-21 more likely.

Disk formats [edit]

Seattle Computer Products' 86-DOS supported the FAT12 filesystem on a range of 8.0" and 5.25" floppy disk drives on S-100 floppy disk controller hardware manufactured by Cromemco, Tarbell Electronics and North Star Computers. The Western Digital FD1771-based Cromemco and Tarbell boards supported one-sided single-density soft-sectored drives. A Tarbell double-density board utilizing the FD1791 was supported as well. At a later stage, SCP offered advanced floppy disk controllers like the Disk Master series themselves.

86-DOS itself did not take advantage of a FAT ID byte[nb 1] or BPB (as later DOS issues do) to distinguish between different media formats; instead different drive letters were hard-coded (at time of compilation) to be associated with different physical floppy drives, sides and densities, that is, depending on its type, a disk had to be addressed under a certain drive letter to be recognized correctly (a concept later emulated with more flexibility by DRIVER.SYS under DOS 3.x and higher).

Two logical format variants of the 86-DOS 12-bit FAT format existed, the original format with 16-byte directory entries and the later format (since 86-DOS 0.42) with 32-byte directory entries. Only the second one is logically compatible with the FAT12 format known since the release of MS-DOS and PC DOS. MS-DOS still cannot mount such volumes as it is hard-coded to assume a single reserved sector, whereas the number of reserved sectors is larger under 86-DOS.[nb 1]

CP/M 2 floppy media were readable through RDCPM.

86-DOS did not offer any specific support for fixed disks by itself, but third-party solutions in form of hard disk controllers and corresponding I/O system extensions for 86-DOS were available from companies like Tallgrass, making hard disks accessible similar to superfloppies within the size limits of the FAT12 file system.

Size 8" 8" 8" 5.25" 5.25"
Density SD DD DD SD SD
Modulation FM MFM MFM FM FM
Formatted capacity (KB) 250.25[14] 616[14] 1232[14] 90[14] 87.5[14]
Cylinders (CHS) 77 77 77 40 35
Physical sectors / track 26 8 8 18 10
Number of heads 1 1 2 1 1
Byte payload / physical sector 128 1024 1024 128 256
Bytes / logical sector 128 1024 1024 128 256
Logical sectors / cluster 4 1 1 2 1
Reserved logical sectors 52 (2 tracks) 1 1 54 (3 tracks) 30 (3 tracks)
Number of FATs 2 2 2 2 2
Root directory entries (á 32 bytes, 86-DOS 0.42 and higher only) 64 (16 sectors) 96 (3 sectors) 128 (4 sectors) 64 (16 sectors) 64 (8 sectors)
Root directory entries (á 16 bytes) 64  ?  ? 64 N/A
Total logical sectors 2002 616 1232 720 350
Logical sectors / FAT 6?  ?  ?  ?  ?
Hidden sectors 0 0 0 0 0
Logical sector order  ?  ?  ?  ?  ?
Sector mapping sector / track sector / track sector / head / track sector / track sector / track
First physical sector 1 1 1 1 0
Sector index Soft Soft Soft Soft Hard (10+1)
Controller type Cromemco/Tarbell FD1771 Tarbell FD1791 Tarbell FD1791 Cromemco FD1771 NorthStar
FAT ID No (FEh)[nb 1] No (FEh)[nb 2] No (FEh)[nb 2] No (FEh)[nb 2] No (FEh)[nb 2]
BPB Presence No No No No No

Various OEM versions of MS-DOS 1.2x and 2.x supported a number of similar 8.0" FAT12 floppy disk formats as well, although not identical to those supported by 86-DOS.[nb 1]

Disk formats supported by one of the last versions developed by Tim Paterson at Microsoft, MS-DOS 1.25[17] (March 1982) for the SCP Gazelle computer with SCP controller or Cromemco 16FDC controller (by default, this version only supported the MS-DOS-compatible variants of the 8.0" formats with a single reserved sector but it could be built to provide two extra drive letters to read and write floppies in the previous SCP 86-DOS 8.0" disk formats, including those with 16-byte directory entries, as well):

Size 8" 8" 8" 8" 8" 5.25" 5.25" 5.25"
Density SD SD DD DD DD SD DD DD
Modulation FM FM MFM MFM MFM FM MFM MFM
Formatted capacity (KB) 250.25 (SCP) 250.25 (MS) 616 1232 (SCP) 1232 (MS) 90 160 320
Cylinders (CHS) 77 77 77 77 77 40 40 40
Physical sectors / track[nb 3] 26 26 8 8 8 18 8 8
Number of heads[nb 4] 1 1 1 2 2 1 1 2
Byte payload / physical sector 128 128 1024 1024 1024 128 512 512
Bytes / logical sector[nb 5] 128 128 1024 1024 1024 128 512 512
Logical sectors / cluster[nb 6] 4 4 1 1 1 2 1 2
Reserved logical sectors[nb 7] 52 (2 tracks) 1 1 1 1 54 (3 tracks) 1 1
Number of FATs[nb 8] 2 2 2 2 2 2 2 2
Root directory entries (á 32 bytes)[nb 9] 64 (16 sectors) 68 (17 sectors) 96 (3 sectors) 128 (4 sectors) 192 (6 sectors) 64 (16 sectors) 64 (4 sectors) 112 (7 sectors)
Total logical sectors[nb 10] 2002 2002 616 1232 1232 720 320 640
Logical sectors / FAT[nb 11] 6? 6 1  ? 2 4 1 1
Hidden sectors[nb 12] 0 0[nb 13] 0 0 0 0 0 0
Total number of clusters  ? 497  ?  ? 1227  ? 313 315
Logical sector order  ?  ?  ?  ?  ?  ?  ?  ?
Sector mapping sector / track sector / track sector / track sector / head / track sector / head / track sector / track sector / track sector / head / track
First physical sector 1 1 1 1 1 1 1 1
Sector index Soft Soft Soft Soft Soft Soft Soft Soft
Controller type Cromemco / Tarbell FD1771 Cromemco / Tarbell FD1771 Tarbell FD1791 / FD1793 Tarbell FD1791 / FD1793 Tarbell FD1791 / FD1793 Cromemco 4FDC FD1771 SCP / Cromemco 16FDC SCP / Cromemco 16FDC
FAT ID[nb 1][nb 14] FEh FEh FEh FEh FEh FEh FEh FFh
BPB Presence No No No No No No No No

In 1984 Seattle Computer Products released an OEM version of MS-DOS 2.0 for the SCP S-100 computer with SCP-500 Disk Master Floppy controller. It added support for 5.25" DD/1S (180 KB) and DD/2S (360 KB) FAT12 formats and supported the older formats as well, although possibly with some of the parameters modified compared to MS-DOS 1.25.[18]

Notes [edit]

  1. ^ a b c d e 8.0" 250.25 KB images formatted under 86-DOS 1.00 sport a FAT ID of FEh, however, in contrast to MS-DOS/PC DOS, 86-DOS does not seem to use this to detect the disk format, as this information is hard-coded into disk profiles associated to certain drive letters at compile-time. MS-DOS would not be able to mount such volumes as (in absence of a BPB) it expects the FAT ID in logical sector 1, assuming only one reserved sector of 512 bytes (the boot sector in logical sector 0) instead of the 52 reserved sectors á 128 bytes used by 86-DOS here. This works for MS-DOS, because the system files are not part of the reserved area under MS-DOS, while under 86-DOS there are no system files and the ca. 6 KB large DOS kernel is located in the reserved area.
  2. ^ a b c d Executing the CLEAR command under 86-DOS 1.00 COMMAND.COM seems to initialize a volume's FAT ID byte to FEh regardless of disk drive and format used.
  3. ^ DOS 1.x does not support a BPB, but this entry for the number of physical sectors per track corresponds with BPB offset 0x0D under DOS 3.0 and higher.
  4. ^ DOS 1.x does not support a BPB, but this entry for the number of heads corresponds with BPB offset 0x0F under DOS 3.0 and higher.
  5. ^ DOS 1.x does not support a BPB, but this entry for the bytes per logical sector corresponds with BPB offset 0x00 under DOS 2.0 and higher.
  6. ^ DOS 1.x does not support a BPB, but this entry for the logical sectors per cluster (allocation units) corresponds with BPB offset 0x02 under DOS 2.0 and higher.
  7. ^ DOS 1.x does not support a BPB, but this entry for the number of reserved logical sectors corresponds with BPB offset 0x03 under DOS 2.0 and higher.
  8. ^ DOS 1.x does not support a BPB, but this entry for the number of FATs corresponds with BPB offset 0x05 under DOS 2.0 and higher.
  9. ^ DOS 1.x does not support a BPB, but this entry for the number of root directory entries (á 32 bytes) corresponds with BPB offset 0x06 under DOS 2.0 and higher.
  10. ^ DOS 1.x does not support a BPB, but this entry for the total number of logical sectors corresponds with BPB offset 0x08 under DOS 2.0 and higher.
  11. ^ DOS 1.x does not support a BPB, but this entry for the number of logical sectors per FAT corresponds with BPB offset 0x0B under DOS 2.0 and higher.
  12. ^ DOS 1.x does not support a BPB, but this entry for the number of hidden sectors corresponds with BPB offset 0x11 under DOS 3.0 and higher.
  13. ^ For unknown reasons, some Microsoft documents give a value of 3 for this entry, where 0 seems correct technically. SCP MS-DOS 1.25 implicitly assumes 0 as well.
  14. ^ DOS 1.x does not support a BPB, but this entry for the FAT ID corresponds with the media descriptor byte at BPB offset 0x0A under DOS 2.0 and higher.

References [edit]

  1. ^ a b c d e f g h i j Hunter, David (1983). ""The Roots of DOS"". Retrieved 2007-06-18. 
  2. ^ Freiberger, Paul; Michael Swaine (2000) [1984]. Fire in the Valley: The Making of the Personal Computer (2nd ed.). New York: McGraw-Hill. pp. 332–333. ISBN 0-07-135892-7. 
  3. ^ a b c 86-DOS version 0.3 (1980-11-15) License Agreement between Seattle Computer Products and Microsoft, signed 1981-01-06, published as part of the Comes v. Microsoft case as exhibit #1/#2, retrieved 2013-04-01.
  4. ^ a b c d 86-DOS Sales Agreement between Seattle Computer Products and Microsoft, dated 1981-07-27 (or 1981-07-21?), published as part of the Comes v. Microsoft case as exhibit #2/#3, retrieved 2013-04-01. (NB. The handwritten date is difficult to decipher and reads either 1981-07-27 or 1981-07-21. The document also carries what appears to be a typed date stamp as of 1981-07-22. Other sources state the 1981-07-27 as the date of purchase.)
  5. ^ Duncan, Ray (1988) [1988]. The MS-DOS Encyclopedia. Microsoft Press. p. 20. ISBN 1-55615-049-0. 
  6. ^ "this WEEK in TECH". The TWiT Netcast Network (Podcast). 2006-10-16. http://www.twit.tv/73. Retrieved 2006-11-28.
  7. ^ Evans, Harold; Gail Buckland, and David Lefer (2004). They Made America. Little, Brown and Co. ISBN 0-316-27766-5. 
  8. ^ Paterson, Tim (1994-10-03). "The Origins of DOS". Microprocessor Report 8 (13). ISSN 0899-9341. 
  9. ^ "Programmer sues author over role in Microsoft history". USA Today. Associated Press. 2005-02-03. Retrieved 2006-11-28. 
  10. ^ Order (2007-07-25). Paterson v. Little, Brown, and Co., et al. W. D. Wash.. Retrieved on 2007-08-03.
  11. ^ Tim Paterson (2007-09-30). "Design of DOS". DosMan Drivel. Retrieved 2011-07-04. 
  12. ^ Andrew Schulman, Ralf Brown, David Maxey, Raymond J. Michels, Jim Kyle (1994). Undocumented DOS. Addison Wesley, second edition. ISBN 0-201-63287-X, ISBN 978-0-201-63287-3.
  13. ^ Seattle Computer Products (1981). "SCP 86-DOS 1.0 Addendum". Retrieved 2013-04-02. 
  14. ^ a b c d e f g http://www.86dos.org/downloads/86DOS_FILES.ZIP, A ZIP file containing most of the files from 86-DOS 0.75 (1981-04-18) to 1.00 (1981-07-21)
  15. ^ a b c d e Paterson, Tim (June 1983). "A Short History of MS-DOS". Byte. ISSN 0360-5280.  NB. This source mentions 1981-07-27 as the date of purchase, whereas the actual Sales Agreement (as revealed in the Comes v. Microsoft case) is dated either 1981-07-21 or 1981-07-27 (the handwritten date itself is difficult to decipher, however, the document also carries what appears to be a typed date stamp as of 1981-07-22.
  16. ^ 86-DOS 1.00 disk images for SIMH simulator
  17. ^ MS-DOS 1.25 disk images for SIMH simulator
  18. ^ Picture of 8.0" DD/1S MS-DOS 2.0 distribution floppy disks

See also [edit]

External links [edit]