Template:Short description Template:Use dmy dates Template:Use list-defined references Template:Infobox OS

86-DOS (known internally as QDOS,<ref name="Paterson_2019_Presentation">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> for Quick and Dirty Operating System) is a discontinued operating system developed and marketed by Seattle Computer Products (SCP) for its Intel 8086-based computer kit.

86-DOS shared a few of its commands with other operating systems such as OS/8 and CP/M, which made it easy to port programs from the latter. Its application programming interface was very similar to that of CP/M. The system was licensed and then purchased by Microsoft and developed further as MS-DOS and PC DOS.<ref name="Beley_1986_MS-DOS_Encyclopedia"/>

HistoryEdit

OriginsEdit

86-DOS was created because sales of the Seattle Computer Products 8086 computer kit, demonstrated in June 1979 and shipped in November,<ref name="Hunter_1983_Roots_of_DOS"/> were languishing due to the absence of an operating system. The only software that SCP could sell with the board was Microsoft's Standalone Disk BASIC-86, which Microsoft had developed on a prototype of SCP's hardware.<ref name="Hunter_1983_Roots_of_DOS"/> SCP wanted to offer the 8086-version of CP/M that Digital Research had initially announced for November 1979, but it was delayed and its release date was uncertain.Template:R 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 disk drives. In April 1980, SCP assigned 24-year-old Tim Paterson to develop a substitute for CP/M-86.<ref name="Hunter_1983_Roots_of_DOS"/>

Using a CP/M-80 manual as reference,<ref name="nerds2"/> Paterson modeled 86-DOS after its architecture and interfaces, but adapted to meet the requirements of Intel's 8086 16-bit processor, for easy (and partially automated) source-level translatability of the many existing 8-bit CP/M programs;<ref name="paterson198306"/> porting them to either DOS or CP/M-86 was about equally difficult<ref name="edlin19820607"/> and eased by the fact that Intel had already published a method that could be used to automatically translate software from the Intel 8080 processor, for which CP/M had been designed, to the new 8086 instruction set.Template:R 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 become 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 drew on Microsoft Standalone Disk BASIC-86's File Allocation Table (FAT) file system.<ref name="Beley_1986_MS-DOS_Encyclopedia"/>

By mid-1980 SCP advertised 86-DOS, priced at Template:Currency for owners of its Template:Currency 8086-board and Template:Currency for others. It touted the software's ability to read Zilog Z80 source code from a CP/M disk and translate it to 8086 source code, and promised that only "minor hand correction and optimization" was needed to produce 8086 binaries.Template:R

IBM interestEdit

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 that 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 (née 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 Template:Currency in exchange for as many copies as IBM could sell, insisting on the usual royalty-based plan.<ref name="Freiberger_1984_Fire_Valley"/> 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.Template:Citation needed

Creation of PC DOSEdit

Microsoft purchased a non-exclusive license for 86-DOS from Seattle Computer Products<ref name="86-DOS_License"/> in December 1980 for Template:Currency.Template:Citation needed In May 1981, it hired Tim Paterson to port the system to the IBM PC,<ref name="Hunter_1983_Roots_of_DOS"/> which used the slower and less expensive Intel 8088 processor and had its own specific family of peripherals. IBM watched the developments daily,<ref name="Hunter_1983_Roots_of_DOS"/> submitting 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 Template:Currency.<ref name="Hunter_1983_Roots_of_DOS"/><ref name="86-DOS_Sale"/><ref name="Duncan_1988_MS-DOS_Encyclopedia"/> It met IBM's main criteria: it looked like CP/M,<ref name="Beley_1986_MS-DOS_Encyclopedia"/> 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 Template:Currency million settlement payment.

Intellectual property disputeEdit

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 came from Jerry Pournelle, who said that Kildall personally demonstrated to him that DOS contained CP/M code by entering a command in DOS that displayed Kildall's name,<ref name="TWIT_2006"/><ref group="nb" name="NB_Paterson_EasterEgg"/> but Pournelle never 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;<ref name="Evans_2004_They_Made_America"/> 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.<ref name="Paterson_1994_Origins_DOS"/><ref name="Paterson_1997"/> After the 2004 book appeared, he sued the authors and publishers for defamation.<ref name="USA_Today_2005_Programmer_Sues"/> The court ruled in summary judgment that no defamation had occurred, as the book's claims were opinions based on research or were not provably false.<ref name="Paterson_v_Little_2007"/>

Template:AnchorTemplate:AnchorVersionsEdit

Template:Rh | QDOS 0.10 1980-07<ref name="Hunter_1983_Roots_of_DOS"/> Roughly half completed version of the OS.<ref name="Hunter_1983_Roots_of_DOS"/> 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 Standalone Disk BASIC-86, this variant already supported 12-bit table elements,<ref name="Paterson_2007_Design-DOS"/> reduced the number of FATs from 3<ref name="Schulman_1994_Undocumented-DOS"/> 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. Paterson also increased the previous 9-character length limit to 11 characters in order to support CP/M-style 8.3 filenames and File Control Blocks. This variant, however, still used 16-byte directory entries and therefore is not compatible with what became later known as FAT12 in MS-DOS/PC DOS. Possibly shipped already.<ref name="Paterson_1983_Byte_Short_History"/>
Template:Rh | QDOS/86-DOS 0.11 1980-08 Bug fix<ref name="Hunter_1983_Roots_of_DOS"/> shipment.<ref name="Hunter_1983_Roots_of_DOS"/>
Template:Rh | QDOS/86-DOS 0.2 1980-08 EDLIN added. Renamed to 86-DOS by August 1980.<ref name="BYTE_1980_86-DOS"/>
Template:Rh | 86-DOS 0.3 15 November 1980 First version licensed by SCP to Microsoft.<ref name="86-DOS_License"/>
Template:Rh | 86-DOS 0.33 1980-12 First version distributed by SCP to OEMs and Microsoft as 86-DOS.<ref name="Hunter_1983_Roots_of_DOS"/><ref name="86-DOS_License"/>
Template:Rh | 86-DOS 0.34<ref name="Paterson_2014_MSDOS125"/> 29 December 1980<ref name="Paterson_2014_MSDOS125"/> Cleaned up release for SCP OEMs including Microsoft.
Template:Rh | 86-DOS 0.42<ref name="Paterson_2014_MSDOS125"/> 25 February 1981<ref name="Paterson_2014_MSDOS125"/> At the indirect request of IBM (through Microsoft<ref name="86-DOS_Sale"/>) 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),<ref name="SCP_1981_86-DOS_1.0_Addendum"/> 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 MS-DOS 1.14 at the least, whereas generic MS-DOS 1.20 / PC DOS 1.1 and higher no longer supported it.
Template:Rh | 86-DOS 0.56<ref name="Paterson_2014_MSDOS125"/> 23 March 1981<ref name="Paterson_2014_MSDOS125"/> Support for disk blocking/deblocking as requested since 1981-01-15.<ref name="86-DOS_Sale"/>
Template:Rh | 86-DOS 0.60<ref name="Paterson_2014_MSDOS125"/> 27 March 1981<ref name="Paterson_2014_MSDOS125"/> 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".<ref name="86-DOS_Files"/>
Template:Rh | 86-DOS 0.74<ref name="Paterson_2014_MSDOS125"/> 15 April 1981<ref name="Paterson_2014_MSDOS125"/> Added device files.
Template:Rh | 86-DOS 0.75<ref name="Paterson_2014_MSDOS125"/> 17 April 1981<ref name="Paterson_2014_MSDOS125"/> Bug fix.
Template:Rh | 86-DOS 0.76<ref name="Paterson_2014_MSDOS125"/> 23 April 1981<ref name="Paterson_2014_MSDOS125"/> Bug fix.
Template:Rh | 86-DOS 0.80<ref name="Paterson_2014_MSDOS125"/> 27 April 1981<ref name="Paterson_2014_MSDOS125"/> Added system calls.
Template:Rh | 86-DOS 1.00<ref name="Paterson_1983_Byte_Short_History"/><ref name="Paterson_2014_MSDOS125"/> 28 April 1981<ref name="Paterson_2014_MSDOS125"/> Modified system calls.<ref name="Hunter_1983_Roots_of_DOS"/><ref name="Paterson_1983_Byte_Short_History"/><ref name="86-DOS_Files"/><ref name="SCP_86-DOS_1.0_Files"/>
Template:Rh | 86-DOS 1.01<ref name="Paterson_2014_MSDOS125"/> 12 May 1981<ref name="Paterson_2014_MSDOS125"/> Bug fix.
Template:Rh | 86-DOS 1.10<ref name="Paterson_2014_MSDOS125"/> 21 July 1981<ref name="Paterson_2014_MSDOS125"/> Purchased by Microsoft and renamed to MS-DOS on 27 July 1981,<ref name="86-DOS_Sale"/><ref name="Paterson_1983_Byte_Short_History"/> therefore the last version with genuinely matching 86-DOS and MS-DOS version numbers. First version known to implement the 'hidden' attribute.
Template:Rh | 86-DOS 1.14<ref name="Paterson_1983_Byte_Short_History"/> 1981-10/11 According to Tim Paterson PC DOS 1.0 basically reflects 86-DOS 1.14,<ref name="Paterson_1983_Byte_Short_History"/> other sources find a match of PC DOS 1.0 with MS-DOS/86-DOS 1.10 as of 21 July 1981 more likely.

FeaturesEdit

CommandsEdit

The following list of commands is supported by 86-DOS.<ref name="SCP_1980_86-DOS-UM"/>

Internal commandsEdit

Template:Div col

Template:Div col end

External commandsEdit

Template:Div col

Template:Div col end

EDLINEdit

By 1982, when IBM asked Microsoft to release a version of DOS that was compatible with a hard disk drive, PC DOS 2.0 was an almost complete rewrite of DOS, so by March 1983, very little of 86-DOS 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 text-based user interface editor called MS-DOS Editor, based on QBasic. EDLIN can still be used on contemporary machines, since there is an emulated DOS environment up to Windows 10 (32 bit).

Supported disk formatsTemplate:AnchorEdit

Seattle Computer Products' 86-DOS supported the FAT12 filesystem on a range of 8-inch and 5.25-inch 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. Later, SCP offered advanced floppy disk controllers, like the Disk Master series.

86-DOS did not take advantage of a FAT ID byte<ref group="nb" name="NB_FATID_FEh" /> or BIOS parameter block (BPB), as later DOS versions 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 meant, depending on its type, a disk had to be addressed under a certain drive letter to be recognized correctly. This concept was later emulated with more flexibility by DRIVER.SYS under DOS 3.x and later versions.

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 in absence of a BPB it falls back to retrieve the FAT ID in the FAT entry for cluster 0 to choose among hard-coded disk geometry profiles. In all formats of a volume formatted under MS-DOS that would otherwise be supported by both systems and typically also in all other formats, this ID is located in the first byte of logical sector 1—that is, the volume's second sector with physical cylinder-head-sector (CHS) address 0/0/2 or logical block addressing (LBA) address 1—since MS-DOS assumes a single reserved sector, the boot sector. Under 86-DOS, the reserved sectors area is significantly larger (whole tracks), and therefore the prototypical FAT ID <syntaxhighlight lang="text" class="" style="" inline="1">0xFE</syntaxhighlight> (and <syntaxhighlight lang="text" class="" style="" inline="1">0xFF</syntaxhighlight>) is located elsewhere on disk, making it impossible for MS-DOS to retrieve it, and even if it would, the hard-coded disk profile associated with it would not take this larger reserved sectors region under 86-DOS into account.<ref group="nb" name="NB_FATID_FEh" />

CP/M 2 floppy media were readable through RDCPM.

86-DOS did not offer any specific support for fixed disks, 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 Technologies, making hard disks accessible similar to superfloppies within the size limits of the FAT12 file system.

Size 8 inch 8 inch 8 inch 5.25 inch 5.25 inch
Density SD DD DD SD SD
Modulation FM MFM MFM FM FM
Formatted capacity (KB) 250.25<ref name="86-DOS_Files" /> 616<ref name="86-DOS_Files" /> 1232<ref name="86-DOS_Files" /> 90<ref name="86-DOS_Files" /> 87.5<ref name="86-DOS_Files" />
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 Template:Dunno Template:Dunno 64 Template:N/A
Total logical sectors 2002 616 1232 720 350
Logical sectors / FAT Template:Dunno Template:Dunno Template:Dunno Template:Dunno Template:Dunno
Hidden sectors 0 0 0 0 0
Logical sector order Template:Dunno Template:Dunno Template:Dunno Template:Dunno Template:Dunno
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 Template:No (FEh)<ref group="nb" name="NB_FATID_FEh" /> Template:No (FEh)<ref group="nb" name="NB_FATID_ELSE" /> Template:No (FEh)<ref group="nb" name="NB_FATID_ELSE" /> Template:No (FEh)<ref group="nb" name="NB_FATID_ELSE" /> Template:No (FEh)<ref group="nb" name="NB_FATID_ELSE" />
BPB presence Template:No Template:No Template:No Template:No Template:No

Various OEM versions of MS-DOS 1.2x and 2.x supported a number of similar 8-inch FAT12 floppy disk formats as well, although not identical to those supported by 86-DOS.<ref group="nb" name="NB_FATID_FEh" />

Disk formats supported by one of the last versions developed by Tim Paterson at Microsoft, MS-DOS 1.25 <ref name="Paterson_2014_MSDOS125" /><ref name="SCP_MS-DOS_1.25_Files" /><ref name="Shustek_2014_MS-DOS" /><ref name="Levin_2014_MS-DOS" /> (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 in 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 in disk formats since 0.42 as well):

Size 8 inch 8 inch 8 inch 8 inch 8 inch 5.25 inch 5.25 inch 5.25 inch
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<ref group="nb" name="NB_BPB_0Dh" /> 26 26 8 8 8 18 8 8
Number of heads<ref group="nb" name="NB_BPB_0Fh" /> 1 1 1 2 2 1 1 2
Byte payload / physical sector 128 128 1024 1024 1024 128 512 512
Bytes / logical sector<ref group="nb" name="NB_BPB_00h" /> 128 128 1024 1024 1024 128 512 512
Logical sectors / cluster<ref group="nb" name="NB_BPB_02h" /> 4 4 1 1 1 2 1 2
Reserved logical sectors<ref group="nb" name="NB_BPB_03h" /> 52 (2 tracks) 1 1 1 1 54 (3 tracks) 1 1
Number of FATs<ref group="nb" name="NB_BPB_05h" /> 2 2 2 2 2 2 2 2
Root directory entries
(á 32 bytes)<ref group="nb" name="NB_BPB_06h" />
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<ref group="nb" name="NB_BPB_08h" /> 2002 2002 616 1232 1232 720 320 640
Logical sectors / FAT<ref group="nb" name="NB_BPB_0Bh" /> Template:Dunno 6 1 Template:Dunno 2 4 1 1
Hidden sectors<ref group="nb" name="NB_BPB_11h" /> 0 0<ref group="nb" name="NB_Microsoft_Hidden" /> 0 0 0 0 0 0
Total number of clusters Template:Dunno 497 Template:Dunno Template:Dunno 1227 Template:Dunno 313 315
Logical sector order Template:Dunno Template:Dunno Template:Dunno Template:Dunno Template:Dunno Template:Dunno Template:Dunno Template:Dunno
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<ref group="nb" name="NB_FATID_FEh" /><ref group="nb" name="NB_BPB_0Ah" /> FEh FEh FEh FEh FEh FEh FEh FFh
BPB Presence Template:No Template:No Template:No Template:No Template:No Template:No Template:No Template: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 in 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.<ref name="Bob_2009" />

See alsoEdit

NotesEdit

Template:Reflist

ReferencesEdit

Template:Reflist

Further readingEdit

External linksEdit

Template:Disk operating systems