86-DOS 0.10

86-DOS 0.10
Version of 86-DOS
Replaced by
86-DOS 0.11

86-DOS 0.10 is the first beta[1] build of QDOS/86-DOS. It was in a roughly half-complete state when compiled.[2] An estimate of only 10 people have ever seen it,[1] and it was never shipped.[3]

Features[edit | edit source]

86-DOS 0.10 was a preliminary release, including a very limited number of commands crammed into 6 KB of object code.[4]

Disk[edit | edit source]

86-DOS 0.10 used a modified version of BASIC-86's FAT file system, chosen because of the small cluster sizes, speed, and error handling capabilities. The modifications included supporting 12-bit table elements (allowing for 64MB disks), and reducing the number of FATs from 3 to 2.[5] The filesystem was additionally adapted to allow for CP/M (8.3) filenames.[6]

Directory format[edit | edit source]

Offset Length Field
0 8 Name
8 3 Extension
11 2 First Cluster
13 3 File Size

File sizes are recorded in terms of bytes; however, like CP/M, files are accessed with record-granularity, with the size of a record being fixed at 128 bytes. This means all file sizes are divisible by 128.

Commands[edit | edit source]

86-DOS's commands were split into internal and external commands. External commands were .COM files in the root directory, while internal commands were not visible.[7]

Command Type Source Notes
DIR Internal [6]
RENAME Internal [6]


COPY Internal [8]
TYPE Internal [9] "It had all the basic utilities for assembly-language development except an editor"
ASM External [5] Originally written in Z80 assembler as ASM86[10]
TRANS External [5] Originally written in September 1979[11] in Z80 assembler as TRANS86[10]
HEX2BIN External [9] "It had all the basic utilities for assembly-language development except an editor"

While not counted as a command in the later version 0.3 manual, it should also be noted that 86-DOS had the ability to run executable files by inputting their filenames.[12][13]

Program Segment Prefix[edit | edit source]

86-DOS 0.10 created the Program Segment Prefix (PSP), a 256-byte data structure used to store program states.[12] It takes clear inspiration from CP/M-80's Zero Page, using a similar far call entry and exit.[14][15][16]

References[edit | edit source]

  1. 1.0 1.1 Hemmings, Bill (5 May 1999). Dos 1.1. comp.os.cpm.
  2. Hunter, David (March 1983). The Roots of DOS: Tim Paterson. Softalk for the IBM Personal Computer. p. 12-15.
  3. Paterson, Tim (4 August 2018). VCF West XIII -- Tim Paterson -- Original DOS and the old days. Vintage Computer Federation.
  4. Allen, Paul (2011). Idea Man. Penguin. p. 135. ISBN 1-59184-537-8.
  5. 5.0 5.1 5.2 Paterson, Tim (30 September 2007). Design of DOS. DosMan Drivel.
  6. 6.0 6.1 6.2 6.3 Paterson, Tim; Wharton, John (3 October 1994). From the Mailbox: The Origins of DOS. Microprocessor Report. p. 1-2.
  7. Paterson, Tim (December 1980). 86-DOS Version 0.3 User Manual. Seattle Computer Products.
  8. Manes, Stephen; Andrews, Paul (1993). Gates: How Microsoft's Mogul Reinvented an Industry—and Made Himself the Richest Man in America. Doubleday. p. 280-281. ISBN 0-385-42075-7.
  9. 9.0 9.1 Paterson, Tim (June 1983). A Short History of MS-DOS. BYTE Magazine. p. 246.
  10. 10.0 10.1 Microsoft Macro Assembler (MASM) Unofficial Changelist. BytePointer.
  11. United States District Court for the Western District of Washington (18 January 2007). Paterson v. Little, Brown, and Co., et al. - Deposition Upon Oral Examination of Tim Paterson. PACER. Case 2:05-cv-01719-TSZ Document 14-2.
  12. 12.0 12.1 Bornstein, Howard (1986). MS-DOS (Versions 1.0-3.2) Technical Reference Encyclopedia. Microsoft Press. p. 8. ISBN 0-914845-69-1.
  13. Duncan, Ray (1988). The MS-DOS Encyclopedia. Microsoft Press. ISBN 1-55615-049-0.
  14. Necasek, Michal (13 September 2011). Who needs the address wraparound, anyway?. OS/2 Museum.
  15. Brown, Ralf (July 2000). Format of Program Segment Prefix (PSP). Delorie Software.
  16. Jurgens, David (1991). DOS Program Segment Prefix Layout. HelpPC Reference Library.