World Library  
Flag as Inappropriate
Email this Article

MIDAS (operating system)


MIDAS (operating system)

"M-DOS" redirects here. For Digital Research MDOS, see Multiuser DOS. For Siemens European MS-DOS 4.0, see multi-tasking DOS. For other uses, see MDOS (disambiguation).

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.[1][2][3] It was designed for the 8080/Z80 microprocessors,[2][3] 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,[3] 10, 12, and 16-bit[4] File Allocation Table


MDOS/MIDAS was designed as a single user version as well as a multi-user version (using relocation hardware).[5] It was modelled closely on TOPS-10 on the DEC System-10.[3] 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 =

instead of the MS-DOS

  • COPY

See also


  • 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
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.