QDOS 0.10

QDOS 0.10 was the first beta build of QDOS/86-DOS. It was in a roughly half-complete state when compiled. An estimate of only 10 people ever saw it, and it was never shipped.

Features
QDOS 0.10 was a preliminary release, including a very limited number of commands crammed into 6 KB of code.

Disk
QDOS 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), reducing the number of FATs from 3 to 2, and using 16-byte directory entries. The filesystem was additionally adapted to allow for CP/M (8.3) filenames.

QDOS also added file control blocks from CP/M as well.

Commands
QDOS's commands were split into internal and external commands. External commands were .COM files in the root directory, while internal commands were not visible.

While not counted as a command in the later version 0.3 manual, it should also be noted that QDOS had the ability to run executable files by inputting their filenames.

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

Development
Development of QDOS 0.10 began in April 1980 out of the growing need for an 8086 operating system, as CP/M-86 had been delayed since December 1979. QDOS was written on a Z80 computer running Cromemco's CDOS, in a text editing software called MicroPro WordMaster. It was then translated using a Z80 to 8086 translator called TRANS-86 (which was later ported to 86-DOS and renamed to simply TRANS) and tested on the Seattle Computer Products 16-bit Computer System. QDOS was ready to ship in July, with Tim Paterson, the creator, spending about half of his time on its development. Though the operating system wasn't completely finished, Paterson figured a quick release was more important than adding all the features.

Though some parts of QDOS were written from scratch or by referencing the CP/M-80 manual, others were created in Z80 assembly and then translated using the TRANS command. This led to controversy as some recognized similarities between QDOS and CP/M, which eventually lead to arguments about QDOS being a CP/M clone as far as a defamation case. It has also been rumored that QDOS' development was aided by not only the CP/M manuals, but the source code as well (or even Digital Research's original OEM translation tools). However, these rumors are both unsourced and unlikely.

Paterson later revealed he had mostly worked on hardware before QDOS, and that the idea came during his work on Seattle Computer products' 8086 board. He decided on aspects of the OS because of his experience with North Star and Cromemco's variants of CP/M, UCSD p-System, and Unix. He also took inspiration for the filesystem from an unfinished 8-bit operating system known as Microsoft Interrupt Driven Asynchronous System (MIDAS or M-DOS, called MDOS before 1980 ), written by Marc McDonald, which he learned about during the 1979 National Computer Conference.