Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
86-DOS
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==History== ===Origins=== 86-DOS was created because sales of the [[Seattle Computer Products]] 8086 [[electronic kit|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.{{r|paterson198306}} 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 drive]]s. 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.{{r|paterson198306}} At the same time he made a number of changes and enhancements to address what he saw as CP/M's shortcomings. CP/M [[cache (computing)|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 [[Peripheral Interchange Program|PIP]] command, which copied files, supported several special file names that referred to hardware devices such as [[printer (computing)|printers]] and [[Computer port (hardware)|communication ports]]. Paterson built these names into the operating system as [[device file]]s so that any program could use them. He gave his copying program the more intuitive name [[COPY (DOS command)|COPY]]. Rather than implementing [[CP/M#File_system|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 {{currency|amount=95|code=USD|linked=yes}} for owners of its {{currency|amount=1290|code=USD|linked=no}} 8086-board and {{currency|amount=195|code=USD|linked=no}} 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.{{r|BYTE_1980_86-DOS}} ===IBM interest=== 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 {{currency|amount=250,000|code=USD|linked=no}} in exchange for as many copies as IBM could sell, insisting on the usual [[Royalties|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.{{citation needed|date=July 2011}} ===Creation of PC DOS=== Microsoft purchased a non-exclusive license for 86-DOS from Seattle Computer Products<ref name="86-DOS_License"/> in December 1980 for {{currency|amount=25000|code=USD|linked=no}}.{{Citation needed|date=April 2013}}<!-- Lots of third-party sources state 1980-12 and US$25,000, however, the license agreement was signed on 1981-01-06 and the total payments described in there depended on some conditions. This needs to be sorted out in better detail. --> 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 request]]s 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 {{currency|amount=50000|code=USD|linked=no}}.<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)|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 {{currency|amount=1|code=USD|linked=no}} million settlement payment. ===Intellectual property dispute=== 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"/> ==={{anchor|0.10|0.11|0.20|0.30|0.33|0.34}}{{anchor|0.42|0.56|0.60|0.74|0.75|0.76|0.80|1.00|1.01|1.10}}Versions=== {| class="wikitable" |- ! {{rh|style=white-space:nowrap;}} | QDOS 0.10<!-- pending zero --> | 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<!-- well, at least 0.3 is known for this --> 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<!-- according to Marc McDonald in 2012-08 -->, and modified the disk layout, so that the root directory was now located between the FAT and the data area<!-- according to Marc McDonald in 2012-08 -->. Paterson also increased the previous 9-character length limit<!-- in Standalone Disk BASIC-80/86 --> to 11 characters in order to support [[CP/M]]-style [[8.3 filename]]s and [[File Control Block]]s. 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.<!-- and supported since 86-DOS 0.42 --> Possibly shipped already.<ref name="Paterson_1983_Byte_Short_History"/> |- ! {{rh|style=white-space:nowrap;}} | QDOS/86-DOS 0.11 | 1980-08 | Bug fix<ref name="Hunter_1983_Roots_of_DOS"/> shipment.<ref name="Hunter_1983_Roots_of_DOS"/><!-- Definitely shipped --> |- ! {{rh|style=white-space:nowrap;}} | QDOS/86-DOS 0.2 | 1980-08 | [[EDLIN]] added. Renamed to 86-DOS by August 1980.<ref name="BYTE_1980_86-DOS"/> |- ! {{rh|style=white-space:nowrap;}} | 86-DOS 0.3<!-- no pending zero --> | 15 November 1980 || First version licensed by SCP to Microsoft.<ref name="86-DOS_License"/> |- ! {{rh|style=white-space:nowrap;}} | 86-DOS 0.33 | 1980-12 | First version distributed by SCP to [[Original equipment manufacturer|OEM]]s and Microsoft as 86-DOS.<ref name="Hunter_1983_Roots_of_DOS"/><ref name="86-DOS_License"/> |- ! {{rh|style=white-space:nowrap;}} | 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. |- ! {{rh|style=white-space:nowrap;}} | 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<!-- according to Marc McDonald in 2012-08 --> (similar to [[MIDAS (operating system)|MDOS/MIDAS]]<!-- unknown, if the same layout of 32-byte entries as in MIDAS was used in 86-DOS or not, but both supported 32-byte directory entries -->) in order to add support for a last-modified date stamp (2 bytes) and theoretical file sizes larger than 16 MB (4 bytes)<!-- not sure how it was organized in earlier versions right now, as I'm not sure if earlier versions supported byte-level granular file access already -->,<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<!-- SCP 86-DOS 1.0 tested, SCP MS-DOS 2.0 not tested yet. SCP MS-DOS 1.25 was thought to support this as well, but now that MS has published the source code (in 2014-03) of what they claim is MS-DOS 1.25, I couldn't find it in there. -->, whereas generic [[MS-DOS 1.20]] / [[PC DOS 1.1]] and higher no longer supported it.<!-- [[PC DOS 1.0]] possibly still supported it, but not tested yet. It is known, that SMALLDIR support was removed for MS-DOS 1.20 / 1981-12-31. --> |- ! {{rh|style=white-space:nowrap;}} | 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"/> |- ! {{rh|style=white-space:nowrap;}} | 86-DOS 0.60<ref name="Paterson_2014_MSDOS125"/> | 27 March 1981<ref name="Paterson_2014_MSDOS125"/> || The file <code>DOSIO.ASM</code> 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"/> |- ! {{rh|style=white-space:nowrap;}} | 86-DOS 0.74<ref name="Paterson_2014_MSDOS125"/> | 15 April 1981<ref name="Paterson_2014_MSDOS125"/> || Added [[device file]]s. |- ! {{rh|style=white-space:nowrap;}} | 86-DOS 0.75<ref name="Paterson_2014_MSDOS125"/> | 17 April 1981<ref name="Paterson_2014_MSDOS125"/> || Bug fix. |- ! {{rh|style=white-space:nowrap;}} | 86-DOS 0.76<ref name="Paterson_2014_MSDOS125"/> | 23 April 1981<ref name="Paterson_2014_MSDOS125"/> || Bug fix. |- ! {{rh|style=white-space:nowrap;}} | 86-DOS 0.80<ref name="Paterson_2014_MSDOS125"/> | 27 April 1981<ref name="Paterson_2014_MSDOS125"/> || Added system calls. |- ! {{rh|style=white-space:nowrap;}} | 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"/> |- ! {{rh|style=white-space:nowrap;}} | 86-DOS 1.01<ref name="Paterson_2014_MSDOS125"/> | 12 May 1981<ref name="Paterson_2014_MSDOS125"/> || Bug fix. |- ! {{rh|style=white-space:nowrap;}} | 86-DOS 1.10<ref name="Paterson_2014_MSDOS125"/> | 21 July 1981<ref name="Paterson_2014_MSDOS125"/><!-- not a typo here --> || 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.<!-- not sure when the 'system' attribute support was added, as it was not needed by 86-DOS, but it was supported by PC DOS 1.0 already. --> |- ! {{rh|style=white-space:nowrap;}} | 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. |}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)