MIDAS (operating system)
MIDAS (Microsoft Interrupt Driven Asynchronous System, MDOS or M-DOS as it was named before 1980) refers to an operating system that was designed by Marc McDonald of Microsoft in 1979. It was designed for the 8080/Z80 microprocessors, popular due to CP/M at the time.
The Microsoft Disk Operating System was designed to use terminal input/output and offered the following features:
- Terminal interrupts for input and output
- Ability to turn output terminal interrupts on and off without sending garbage characters
- Clock interrupts used for MDOS/MIDAS scheduling and time accounting
- Disk interrupts taking advantage of multiple sector I/O
- 8, 10, 12, and 16-bit File Allocation Table
MDOS/MIDAS was designed as a single user version as well as a multi-user version (using relocation hardware). It was modelled closely on TOPS-10 on the DEC System-10. As such it was designed to offer the following commands:
- Continue - Continue execution until CTRL-C or exit.
- DELete - Delete file
- Deposit - Deposit value into location
- EArom - Modify EAROM parameters
- Examine - Examine location
- DIrect - List file directory
- Load - Load program into memory
- Mount - Mount diskette
- REMove - Remove diskette
- REName - Rename file
- Run - Run file
- Save - Save user program
- TErm - List/change terminal characteristics
- Type - List file on terminal
It also included the following new commands (which at the time of design had no abbreviations):
- MEMORY - List amount of memory being used
- HEX - Make typein/type-out in Hex
- OCTAL - Make type-in/typeout in octal
- ASSIGN - Assign device to user
- DEASSIGN - De assign device from user
- RESOURCE - List available resources
- MAP - List users and locations
- PERFORM - List MDOS/MIDAS performance data
MDOS/MIDAS included many systems calls (more than 65). Its interrupt driven design enabled the system software to use idle I/O time (when slow devices are being accessed) to do other tasks. It was designed to use structures (similar to structures in the C language) to keep tabs on every user and every task. Thus a high priority operation could stop a user task and restart it without losing anything. MDOS/MIDAS was designed to occupy only 9 kilobytes for its code and 2-3 kilobytes for its data. Multi-user installations would need additional 50 bytes/user and 550-600 bytes per terminal. Upgrading the single user version to the multi-user would be no different to a program.
MDOS/MIDAS was designed to run on any 8080 or Z80 processor (and even support the 8086 and the Z8000 processors at a later stage). It used data blocks such as a File Data Block (FDB) handling device independent I/O, a Unit Data Block (UDB) for physical disk I/O, a Structure Data Block (SDB) for logical data I/O and a Line Data Block (LDB) for Terminal I/O.
Every job contained a Job Data Area in the first 256 bytes (400 octal) memory locations (similar to MS-DOS). The user program starts at 100 hex (400 octal) and runs until the top of user memory (called .JBLOW).
MDOS/MIDAS also introduced the idea of memory garbage collection (implemented in Unix systems) for personal computers. Pointers to the free areas were arranged so that areas closer to the base of the area would be used first, and areas within larger free areas would be deleted and the larger area adjusted accordingly. Garbage collection would take place in single user mode, as free memory would be accessed.
Microsoft abandoned MIDAS when they bought a Unix license to release as XENIX. The unrelated QDOS/86-DOS from Seattle Computer Products borrowed the FAT concept from Stand-alone Disk BASIC-86 and later became MS-DOS, shipped as PC DOS with the IBM PC in 1981/1982.
Although MS-DOS has a command structure where the old (file name, action etc.) precedes the new, MDOS/MIDAS followed the CP/M notation where new precedes the old. For example the copy command would be:
- COPY <new file>=<old file>
instead of the MS-DOS
- COPY <old file> <new file>
- Conversation between Marc McDonald and Tim Paterson in June 1979 as recounted by Paterson.
- Manes, Stephen; Paul Andrews (1993). Gates: How Microsoft's Mogul Reinvented an Industry—and Made Himself the Richest Man in America. Doubleday. ISBN 0-385-42075-7.
- Ray Duncan (1988). The MS-DOS Encyclopedia - version 1.0 through 3.2. Microsoft Press. ISBN 1-55615-049-0.
- Marc McDonald. Structure in MIDAS manual specifies bits over 8 for cluster size. I can probably hunt down the original data structure definitions.
- At that time computers offered memory with bank switching, similar to the relocation hardware referred here
- MICROSOFT DISK OPERATING SYSTEM (MDOS), Copyright 1979 Microsoft, Bellevue, WA
- Microsoft Disk Operating System Technical Manual (MDOS), Copyright 1979, Microsoft, Bellevue, WA
- Microsoft Interrupt Driven Asynchronous System, User's manual, Copyright 1980 Microsoft