86-DOS 0.2

86-DOS 0.2
Version of 86-DOS
Placeholder.png
Version0.2
Release date1980-08
Replaces
QDOS 0.11
Replaced by
86-DOS 0.3

86-DOS 0.2, also known as QDOS 0.2 while in development,[1] is the third beta[2] build and first public release of QDOS/86-DOS. It added the line editor EDLIN[3] and cost $95[1] or $195[4] at launch.[note 1]

This version had preliminary documentation created for it, but it was never released to the general public and only appeared as an exhibit in a 1986 lawsuit between Seattle Computer Products and Microsoft.[5] Tim Paterson later scanned the documentation and uploaded it to his website.

New features[edit | edit source]

Though not much different from QDOS 0.10, version 0.2 adds a line editor and has other minor changes to internals. BASIC for 86-DOS (dubbed BASIC-86) was also provided by Microsoft for this version, and was for purchase with 86-DOS by September 1980.[6]

EDLIN[edit | edit source]

EDLIN[note 2] is a line editor, created for 86-DOS. It was meant to last only 6 months,[3] but ended up being the only text editor until MS-DOS 5.0 and is supported in all Windows NT versions up to Windows 10.[note 3]

The creator, Tim Paterson, has called it the "quickest line editor I could imagine"[7] and an "absurdity".[3] Software critic Bill Machrone called a later version of 86-DOS' EDLIN "just as bad as any other line editor I have attempted to use".[8]

History[edit | edit source]

EDLIN, being a line editor, was not a new concept. Its look, feel, and syntax have been compared to CP/M's ed,[9] which itself is loosely similar to Unix's ed and its predecessor qed.[10]

EDLIN was created out of need for a text editor - a key part of office work and assembly-language development.[3] It was written in either one[3][11] or two weeks.[7]

Usage[edit | edit source]

EDLIN was a line editor, reading a text file line-by-line.[note 4] Line numbers were printed along with each line.[12]

To call EDLIN, use the command EDLIN <file>. If the file already exists, it will be opened - otherwise, it will be created and the message "New file" will be shown.[12]

The editor contained commands for users to control the document. They are denoted by the asterisk symbol (*) and appear after every line.[12]

Command Description Notes Extra controls
<number> Jump to and edit a specific line number. If no line number is entered, the line after the current line is selected. When editing, the DEC VT-52 function key escape sequences are available to use.[note 5]

ESC + S (F1) - Copy one character from the old line to the new line.

ESC + T (F2) - After pressing, the user must press one character. All text in the old line up to the first occurrence of that character is copied to the new line.

ESC + U (F3) - Copy all remaining characters from the old line to the new line.

ESC + V (F4) - Skip over one character in the old line.

ESC + W (F5) - After pressing, the user must press one character. All text in the old line including and after the first occurrence of that character is copied to the new line.

ESC + P (BLUE) - Enter insert mode. As characters are typed, the position in the old line will not advance.

ESC + Q (RED) - Exit insert mode. The position in the old line is advanced for each character typed.

ESC + R (GRAY) - Make the new line the old line.

<numbers> L List content of lines. One or multiple numbers can be selected, in the format line1,line2.

If none are specified, then the last 21 are selected.

<number> I Insert a new line at a specific line number. If no line number is selected, the last line plus 1 is the selected. To finish editing, press control and Z together. Then, press enter.
<numbers> D Delete lines by number. One or multiple numbers can be selected, in the format line1,line2.
E End editing and save the current file. After saving, a backup of the previous version is saved as <filename>.BAK.

Though not described in detail, the preliminary manual states that global searching and text replacement are available.[12]

Commands[edit | edit source]

The following list includes only newly confirmed commands, and not the ones already known to be present in QDOS 0.10. They are all sourced from the preliminary manual.[12]

Command Type Notes
CLEAR Internal Possibly was in QDOS 0.10
EDLIN External New
RDCPM External
SYS External

Lomas OEM[edit | edit source]

86-DOS 0.2 is known to have been sold by Lomas Data Products with their LDP88, an 8088 processor, and LDP72, their floppy disk controller. 2 ads were posted for this OEM, with one being from October 1980[13] and another being from December 1980.[14][note 6] In both ads, the OEM was priced $195, having no markup on the original price.[13][14][6]

Microsoft license[edit | edit source]

While not actually licensed by Microsoft, version 0.2 was the version that was originally going to be licensed. On the morning on September 22, 1980, a month after 0.2 was released, Paul Allen of Microsoft called Rod Brock of Seattle Computer Products and told him they had an anonymous customer interested in sublicensing 86-DOS.[15] The next day, they reached a verbal agreement, and on the 24th the terms of the nonexlusive sublicense were set in stone.[15]

Dumped sections[edit | edit source]

The preliminary manual includes version 0.2's BOOT.ASM and DOSIO.ASM files.[12]

Compared to the same files at the end of the version 0.3 manual, there some major differences.[16] All differences are in the DOSIO.ASM file - the BOOT.ASM files are identical minus the system-dependent switches.[note 7]

Preliminary (0.2) Manual 0.3 Programmer's Manual
STPSPD: EQU     1

ERASE:  EQU     1

WRTDLY: EQU     236

VERON:  EQU     STPSPD+4

VEROFF: EQU     0

VERIFY: EQU     VERON
MOV     [FCB+33],0

MOV     CX,200H
MOV     [FCB+33],0

MOV     B,[FCB+35],0

MOV     CX,200H
MOV     SP,40H
MOV     SP,5CH
MOV     AL,1CH
MOV     AL,1CH+STPSPD
MOV     AL,58H

CALL    DCOM
MOV     AL,58H+VERIFY

CALL    STPHEAD
MOV     AL,0CH

CALL    DCOM
MOV     AL,0CH+STPSPD

CALL    STPHEAD
STPHEAD:

        IF      ERASE

        PUSH    AX

        MOV     AX,WRTDLY

DLYLP:

        DEC     AX

        JNZ     DLYLP

        POP     AX

        ENDIF

Naming[edit | edit source]

This version's name is shrouded in mystery. It has never been mentioned in official 86-DOS documents, and only the existence of an operating system between QDOS 0.11 and 86-DOS 0.3 is known.[1][3][7]

Version number[edit | edit source]

The assumed version number - 0.2 - isn't certain. Though a version between 0.11 and 0.3 is probably 0.2, the addition of an extra "0" (0.20) is very possible. Also, as seen in later versions such as 0.42 and 0.56, the version number could be anything from 0.21 to 0.29.

Notes[edit | edit source]

  1. The $95 price tag might be a mistake - the August 25, 1980 issue of Computer Business News shows a similar 86-DOS ad, but it costs $195 instead. This higher price is used in all other 86-DOS ads as well.
  2. Capitalizations vary between "EDLIN" and "Edlin". For example, the OS/2 1.0 user manual (published in 1987) uses "Edlin", while the MS-DOS 3.3 user manual (published in 1988 and revised in 1989) uses "EDLIN". However, most references to 86-DOS' line editor between 1980 and 1982, including in the MS-DOS 2.00 source code, use an all-capital case.
  3. EDLIN is supported only in Windows 10 32-bit with NTVDM installed, as well as Windows 7 32-bit and below by default. Windows 11 does not have IA-32 support.
  4. EDLIN defines lines as text ending in a carriage return, or a line shorter than 255 characters if a carriage return is not found in the first 255.
  5. The Altair 8080 simulator used for 86-DOS emulation does not support these control key sequences.
  6. The second ad, posted in December, was most likely submitted by October due to press deadlines.
  7. In the below table, comments are removed to save space. However, it should be noted that version 0.3's DOSIO.ASM file has many more comments than 0.2's.

References[edit | edit source]

  1. 1.0 1.1 1.2 Seattle Computer Products (August 1980). BYTE Ad. BYTE Magazine. p. 173.
  2. Hemmings, Bill (5 May 1999). Dos 1.1. comp.os.cpm.
  3. 3.0 3.1 3.2 3.3 3.4 3.5 Paterson, Tim (June 1983). A Short History of MS-DOS. BYTE Magazine. p. 246.
  4. Seattle Computer Products (25 August 1980). Computer Business News Ad. Computer Business World. p. 16 & 18.
  5. Paterson, Tim (2005). 86-DOS Manuals. PatersonTech.
  6. 6.0 6.1 Seattle Computer Products (November 1980). BYTE Ad. BYTE Magazine.
  7. 7.0 7.1 7.2 Hunter, David (March 1983). The Roots of DOS: Tim Paterson. Softalk for the IBM Personal Computer. p. 12-15.
  8. Machrone, Bill (Late 1981). Seattle Computer Products' 8086 System. Microsystems Magazine. p. 24.
  9. United States District Court for the Western District of Washington (25 July 2007). Paterson v. Little, Brown, and Co., et al. - Order. Seattle Times. Case 2:05-cv-01719-TSZ Document 29.
  10. Darwin, Ian (1984). A History of UNIX before Berkeley. /sys/doc/ Documentation Archive.
  11. Paterson, Tim (4 August 2018). VCF West XIII -- Tim Paterson -- Original DOS and the old days. Vintage Computer Federation.
  12. 12.0 12.1 12.2 12.3 12.4 12.5 Paterson, Tim (October 1980). 86-DOS Preliminary Instruction Manual. PatersonTech.
  13. 13.0 13.1 Lomas Data Products (October 1980). BYTE Ad. BYTE Magazine.
  14. 14.0 14.1 Lomas Data Products (December 1980). BYTE Ad. BYTE Magazine.
  15. 15.0 15.1 Manes, Stephen; Andrews, Paul (1993). Gates: How Microsoft's Mogul Reinvented an Industry—and Made Himself the Richest Man in America. Doubleday. p. 285-286. ISBN 0-385-42075-7.
  16. Paterson, Tim (December 1980). 86-DOS Version 0.3 Programmer's Manual. PatersonTech.