86-DOS 0.11

86-DOS 0.11
Version of 86-DOS
86-DOS 0.11 First Boot.png
Version0.11
Release date1980-08
Replaces
86-DOS 0.10
Replaced by
86-DOS 0.2

86-DOS 0.11 is the first public release of 86-DOS.[1] It fixed an unspecified bug found in 86-DOS 0.10,[1][2] compiled shortly after version 0.10 was finished, and shipped in August 1980.[2] The Cromemco 4FDC variant of this version of 86-DOS was uploaded to the Internet Archive by Gene Buckle (f15sim) on 29 December 2023.[3]

Due to its earliness, several important features seen in later versions of 86-DOS are missing. The Command Interpreter does not support displaying file sizes, there is no tool for reporting available memory and disk space and it lacks the ability to format disks.

CREATE[edit | edit source]

This version of 86-DOS supports an undocumented internal command named CREATE. It takes one argument, the name of the file to create, and creates an empty file with the specified name.[4] 86-DOS 0.11 is the only known version of 86-DOS with this command.

CHESS[edit | edit source]

CHESS running under 86-DOS 0.11.

A modified[5] 8086 translation of the Z80 version of the chess game Sargon was shipped with 86-DOS 0.11.[1]

The game prompts you for your color and ply depth at the beginning. Then, a user enters their moves in the coordinate notation format (referred to by Tim Paterson as the "algebraic chess notation") FF-TT, with FF being the "from" location and TT being the "to" location, both in uppercase. The computer makes moves in the exact same way, except in lowercase, to differentiate from your moves.

Just like Sargon, you can also restart or resign from the game by entering a capital case R.

86-DOS 0.11 is the only known version of 86-DOS with this game.

EDLIN[edit | edit source]

EDLIN was introduced in this version of 86-DOS. It was created out of need for a text editor, a key part of office work and assembly-language development.[6] It was written in either one[6][7] or two weeks.[2] The creator, Tim Paterson, has called it the "quickest line editor I could imagine"[2] and an "absurdity". It was meant to last only 6 months,[6] 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.[a]

A total of 5 commands are supported – edit line (ENTER), delete line ("D"), list text ("L"), insert line ("I") and end editing ("E"). There are also 2 unimplemented and undocumented commands, "F" and "S". All commands except for "E" can optionally be preceded by a line number, to indicate the line to operate on. Delete line and list text can additionally take a range defined by 2 line numbers separated by a comma.

Text files must be small enough to fit into the memory, and there is no way of aborting an edit.

APIs[edit | edit source]

File search[edit | edit source]

The file search APIs (search first and search next) are different and incompatible with later versions of 86-DOS. This version's file search APIs return the 16-byte directory entry of the file found in the disk transfer address, instead of an unopened FCB containing the filename. Since the directory entry and FCB structures are different, applications such as COMMAND.COM do not work correctly under later versions of 86-DOS, and vice versa.

Log-in vector[edit | edit source]

The log-in vector API (system call 24) for returning a bitmap of logged-in drives is supported by this version of 86-DOS, albeit completely undocumented in the manual. It iterates through all drives and decides on whether each drive is in use based on whether the FAT cached for that drive is dirty. This approach is inherently different from CP/M's implementation of the same system call, and therefore, in a way proves that 86-DOS did not copy CP/M code at all.

Absolute disk I/O[edit | edit source]

The absolute disk read/write functions (interrupts 37 and 38) operate in terms of 128-byte records, instead of logical sectors. As a result, they are incompatible with 86-DOS 0.42 and later.

Bugs and quirks[edit | edit source]

Creating multiple TEST.DOCs and erasing them all.
Filenames containing *.
  • Multiple files are allowed to have the same name, and ERASE erases all files with the specified name.[4] Existing files are not overwritten when new files with the same names are created (via the CREATE command or the file creation API).
  • The wildcard character * is not supported. This makes it very inconvenient to copy multiple files at once, and as a side effect, * can be used in filenames. Erasing files with names containing *, such as *.*, using a later version of 86-DOS may cause undesired data loss.
  • Various system utilities (such as the assembler) make use of high bit terminated strings, and characters with the 7th bit set may be outputted to the console. The high bits will be automatically stripped when characters are displayed through dumb terminals, but they may cause problems when video card/CRT is used.
  • By design, the filesystem supports files of any size; however, in this version, file sizes are assumed to be divisible by 128. If not, they will be rounded (up or down) to the nearest 128 bytes (instead of always rounding up) when accessed. This may cause files created by later versions of 86-DOS to appear truncated.

Notes[edit | edit source]

  1. 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.

References[edit | edit source]

  1. 1.0 1.1 1.2 Paterson, Tim (5 February 2024). Document:Tim_Paterson_05-Feb-2024_Email
  2. 2.0 2.1 2.2 2.3 Hunter, David (March 1983). The Roots of DOS: Tim Paterson. Softalk for the IBM Personal Computer. p. 12-15.
  3. https://archive.org/details/86-dos-version-0.1-c-serial-11-original-disk
  4. 4.0 4.1 PorkyPiggy (January 2024). Earliest known copies of 86-DOS... (post #61)
  5. PorkyPiggy (February 2024). 86-DOS 0.11 Source Code Reconstruction (post #11)
  6. 6.0 6.1 6.2 Paterson, Tim (June 1983). A Short History of MS-DOS. BYTE Magazine. p. 246.
  7. Paterson, Tim (4 August 2018). VCF West XIII -- Tim Paterson -- Original DOS and the old days. Vintage Computer Federation.