QDOS 0.10

QDOS 0.10 was the first beta release of QDOS/86-DOS. It was in a roughly half-complete state when compiled.

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

Disk
QDOS 0.10 chose to use 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.

Taking from CP/M, QDOS also added file control blocks.

Commands
QDOS' 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 the filename.

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 the text editing software MicroPro WordMaster. It was then translated using a Z80 to 8086 translator (which was later ported to 86-DOS) and tested on an 8086 machine. QDOS was ready for shipping in July, with the creator (Tim Paterson) spending about half of his time on the 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 the source code patterns in QDOS and arguments about being a CP/M clone exist to this day. It has also been rumored that QDOS' development was aided by not only the CP/M manuals, but the source code 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 the 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.

State of Shipment
It is unknown whether QDOS 0.10 actually shipped to consumers - sources conflict on the topic, with BYTE claiming that it was shipped and Softalk claiming that it wasn't. What is known is what Tim Paterson revealed in an email to comp.os.cpm member bill_h - less than 30 people ever saw 86-DOS 0.3, and Bill estimates that less than 10 people ever saw version 0.10.

This could be explained in two ways. First, people may not have been aware of QDOS' existence. The first ad for QDOS/86-DOS showcases version 0.2, and even Microsoft hasn't contacted Seattle Computer Products yet. The alternative is that version 0.10 was never shipped to the general public, which would make sense based on the small number of people to ever see it in action.