DOS API: Difference between revisions

Content deleted Content added
SmackBot (talk | contribs)
m Date the maintenance tags or general fixes
System86 (talk | contribs)
complere rewrite, old version had numerous inaccuracies (cmd.exe is NOT MS-DOS, etc.), will add more later
Line 1:
{{Unreferenced|date=April 2008}}
The '''MS-DOS API''' is an [[API]] used in [[MS-DOS]], [[PC-DOS]] and other compatible operating systems. The MS-DOS API hasis based on software interrupt 21h (int 21h). By calling beenint extended21h with the so-calledsubfunction in ah and the other parameters in other registers, one invokes various [[DOS extender]]sservices. DOS extendersservices suchinclude askeyboard [[DOS/4GW]]input, havevideo beenoutput, useddisk infile computeraccess, gamesexecuting writtenprograms, formemory DOSallocation, and various other things. There Theare various implementations of the MS-DOS API, isincluding mostlyMS-DOS, basedPC-DOS, onDR-DOS, [[x86]]FreeDOS, codePTS-DOS, and others.
[[Microsoft Windows]] versions 1.0 through 3.1 were graphical shells that ran on MS-DOS and relied on the MS-DOS API. [[Windows 9x]] was also DOS based, but used a custom version of MS-DOS mainly as a bootloader and did not use the MS-DOS API much after booting. [[Windows NT]] is not based on MS-DOS, but features a DOS emulator called [[NTVDM]]. NTVDM works by running a DOS program in [[virtual 8086 mode]] (an emulation of [[real mode]] available on [[80386]] and higher processors). [[DOSEMU]] for [[linux]] uses a similar approach.
 
==Current state of the MS-DOS API==
The MS-DOS API lives on in [[Microsoft Windows]] as a subsystem on [[cmd.exe]].
 
Modern movements to maintain compatibility of the MS-DOS API involve [[FreeDOS]] and [[DOSBox]]. They are both an installable operating system and an emulator respectively. DOSBox has even extended the MS-DOS API to other chipsets outside of [[x86]]. The other chipsets DOSBox has extended MS-DOS's API support to include [[PowerPC]], [[ARM Architecture]], [[MIPS]], [[SPARC]], etc.
 
The MS-DOS API has made its way onto [[handheld game console]]s, such as the [[GP2X]]; thanks to DOSBox being ported to the system. And has enabled some DOS games to be played on a handheld device. However, commonly ported DOS games such as [[DOOM]], [[Quake]] and [[Duke Nukem 3D]] don't need to rely on the MS-DOS API because they were extended to other operating systems and processor architectures through [[source port]]s.
 
The MS-DOS API may not be compatible with older DOS drivers when run on MS-DOS subsystems on Windows, thereby rendering some older hardware unusable, or creating a dependency for Windows-specific drivers. But the advent of [[USB]] renders older parallel and serial port devices unusable anyway as newer PCs omit them. The same for [[game port]]s as well.
 
However, some USB drivers have been written for DOS. But as long as the host OS supports USB, the MS-DOS API will be able to read data off USB mass storage devices with no problem.
 
==Operating systems with support for the MS-DOS API==
*[[FreeDOS]] (free, open source)
*[[Microsoft Windows]] (with1.x, the2.x, aid3.x, ofand a9x DOSwere subsystem)based on DOS
**All versions prior to [[Windows XP]] (all non-NT versions are based on DOS anyway, excluding [[Windows CE]] and [[Windows Mobile]])
**Windows XP (home, pro, media center)
**[[Windows Server 2003]]
**[[Windows Vista]]
*[[MS-DOS]] (most famous example)
*[[PC-DOS]]
Line 25 ⟶ 11:
 
==Programs with support for the MS-DOS API==
*[[NTVDM]].EXE for [[Windows NT]]
*[[cmd.exe]]
*[[DOSEMU]] for [[Linux]]
*[[DOSBox]]
*[[NTVDM]]
 
==Brief list of programs on the MS-DOS API==
*[[Alley Cat]] (classic IBM PC game)
*[[COMMAND.COM]] (command line shell for DOS)
*[[Windows 1.0]]
*[[Windows 2.0]]
*[[Windows 3.0]]
*[[Windows 3.1]]
 
==See also==