Files
oldlinux-files/docs/interrupts/int-html/rb-2711.htm
2024-02-19 00:23:35 -05:00

325 lines
19 KiB
HTML

<HTML>
<HEAD>
<TITLE>Int 21/AH=30h
</TITLE>
<META NAME="Description" CONTENT="
Int 21/AH=30h - DOS 2+ - GET DOS VERSION -
AH = 30h
---DOS 5+ ---
AL = what to return in BH
00h OEM number (see #01394)
01h version flag
Return: AL = major version number (00h if DOS 1.x)
AH = minor version number
BL:CX = 24-bit user serial number (most versions do not use this)
---if DOS 5 or AL=00h---
BH = MS-DOS OEM number (see #01394)
">
<META NAME="robots" CONTENT="none">
</HEAD>
<BODY BGCOLOR="#FFD0A0">
<center>
<h2>Int 21/AH=30h
</h2>
</center><p>
<table border=1 cellpadding=3 cellspacing=1>
<td>
<a href="rb-2710.htm" tppabs="http://www.ctyme.com/intr/rb-2710.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-2712.htm" tppabs="http://www.ctyme.com/intr/rb-2712.htm">
<img src="ldown.gif" tppabs="http://graphics.ctyme.com/gif/ldown.gif" border=0 alt=Next></a>
<a href="javascript:if(confirm('http://www.ctyme.com/rbrown.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/rbrown.htm'" tppabs="http://www.ctyme.com/rbrown.htm">
<img src="lhome.gif" tppabs="http://graphics.ctyme.com/gif/lhome.gif" border=0 alt=Ralf Brown Page></a>
<td><a href="int.htm" tppabs="http://www.ctyme.com/intr/int.htm">Interrups</a></td>
<td><a href="cat.htm" tppabs="http://www.ctyme.com/intr/cat.htm">Categories</a></td>
<td><a href="alpha.htm" tppabs="http://www.ctyme.com/intr/alpha.htm">Contents</a></td>
</td></table><p>
<p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
<h3><font color=#C00040>DOS 2+ - GET DOS VERSION</font></h3>
<PRE>
AH = 30h
---DOS 5+ ---
AL = what to return in BH
00h OEM number <a href="rb-2711.htm#Table1394" tppabs="http://www.ctyme.com/intr/rb-2711.htm#Table1394">(see #01394)</a>
01h version flag<br>
<p><b>Return:</b><br>AL = major version number (00h if DOS 1.x)
AH = minor version number
BL:CX = 24-bit user serial number (most versions do not use this)
---if DOS <5 or AL=00h---
BH = MS-DOS OEM number <a href="rb-2711.htm#Table1394" tppabs="http://www.ctyme.com/intr/rb-2711.htm#Table1394">(see #01394)</a>
---if DOS 5+ and AL=01h---
BH = version flag
<p><b>bit 3:</b><br>DOS is in ROM
<p><b>other:</b><br>Reserved (0)
</PRE>
<p><b>Notes:</b>
The OS/2 v1.x Compatibility Box returns major version 0Ah (10).
The OS/2 v2.x Compatibility Box returns major version 14h (20).
OS/2 Warp 3.0 Virtual DOS Machines report v20.30; Warp 4 VDMs report
v20.40..
The Windows NT DOS box returns version 5.00, subject to SETVER.
DOS 4.01 and 4.02 identify themselves as version 4.00; use
INT 21/AH=87h to distinguish between the original European MS-DOS 4.0
and the later PC-DOS 4.0x and MS-DOS 4.0x.
IBM DOS 6.1 reports its version as 6.00; use the OEM number to
distinguish between MS-DOS 6.00 and IBM DOS 6.1 (there was never an
IBM DOS 6.0).
IBM's PC DOS 7 and Y2K updates report themselves as IBM 7.0 to be
distinguished from the MS-DOS 7.0 portion of Windows 95..
MS-DOS 6.21 reports its version as 6.20; version 6.22 returns the
correct value.
Windows95 returns version 7.00 (the underlying MS-DOS), as did the
"Chicago" beta (reported in _Microsoft_Systems_Journal_,August 1994);
Windows95 OSR2 and OSR2.5 (OPK3) return MS version 7.10.
DR DOS 5.0 and 6.0 report version 3.31; Novell DOS 7 reports IBM v6.00,
which some software displays as IBM DOS v6.10 (because of the version
mismatch in true IBM DOS, as mentioned above). The Novell DOS 7
SETVER.EXE has an undocumented option /G x.y which sets the "global"
DOS version returned by this function for all executables not given
a specific version number in SETVER to major version x and minor
version y..
Heiko Goeman's Advanced WinDOS 2.10/2.11/2.21 returns "IBM" DOS 5.00
(subject to SETVER) and serial number 0..
All versions of CCI Multiuser DOS up to "CCI Multiuser DOS 7.22 Gold"
as of 1997-02-10 report DOS 3.31..
DR DOS 3.31, 3.32, 3.33, 3.34, 3.35, 3.40, 3.41, 5.0, 6.0 and
DR PalmDOS/NetWare PalmDOS 1.0 report version 3.31;
DR DOS "Panther" BETA 1 and "StarTrek" report as 5.0.
Novell DOS 7, OpenDOS 7.01, DR-OpenDOS 7.02, DR-DOS 7.02, DR-DOS 7.03
all report themselves as IBM 6.00, which some software displays as
IBM DOS 6.10 (because of the version mismatch in true IBM DOS,
as mentioned above). Use INT 21/AX=4452h to distinguish the DR-DOS
family from PC DOS..
The Novell DOS 7 and OpenDOS 7.01 SETVER.EXE has an undocumented
option /G x.y which sets the "global" DOS version returned by this
function for all executables not given a specific version number in
SETVER to major version x >= 5 and minor version y = 0..254,
y = 255 is used to disable the BDOS version check at INT 21/AX=4452h..
A slightly modified option has been documented for DR-OpenDOS 7.02+:
in /X mode it now allows for x >= 1, while y >= 100 requires /X mode,
and y >= 128 is used to control advanced version control means now
(see below)..
DR-DOS 7.02+ IBMDOS.COM (since 1998-01-10) now recognizes optional
paths to filenames stored in the SETVER list. Previously such entries
were never found. This allows for a three staged model for SETVERed
versions:
highest priority = entry with path is matching.
middle priority = entry without path is matching.
lowest priority = use global version (SETVER /G)..
The DR-DOS 7.02+ SETVER 1.01+ (1998-01-12) has also been enhanced to
<PRE>
<p><b>allow DOS *and* BDOS version faking (see INT 21/AX=4452h):</b><br>In /X mode,
setting a sub-version of y = 128..255 will be reported as 0..127 DOS
sub-version, sub-versions of y = 100..127 will instead be used to
report this value as BDOS version (64h..7Fh) via INT 21/AX=4452h, and
the DOS revision stored in PCM_HEADER in the IBMDOS.COM file will
be used to report the DOS sub-version (usually this holds 0, but it
can be patched to other values, see INT 21/AX=4452h !!!).
Note, that DR-DOS SHARE 2.05+ (1998-01-05) has relaxed version
checking, and will install on any DOS revision 0..127, as long as
run on a DR-DOS 72h+ kernel (formerly it was bound to a revision
byte of 0 only)..
Under Novell DOS 7+, the SETVERing also affects the version number
WORD stored at offset +40h in each program's PSP <a href="rb-2682.htm#Table1378" tppabs="http://www.ctyme.com/intr/rb-2682.htm#Table1378">(see #01378)</a>.
This holds true even for special sub-versions of 100..255
(see INT 21/AX=4452h)..
Generic MS-DOS 3.30, Compaq MS-DOS 3.31, and others identify themselves
as PC-DOS by returning OEM number 00h.
The version returned under DOS 4.0x may be modified by entries in
the special program list <a href="javascript:if(confirm('http://www.ctyme.com/intr/rb-0000.htm \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/intr/rb-0000.htm#Table0'" tppabs="http://www.ctyme.com/intr/rb-0000.htm#Table0"></a>(see #01662 at AH=52h); the version returned
under DOS 5+ may be modified by SETVER--use AX=3306h to get the true
version number
</PRE>
<p><b>See Also:</b>
<a href="rb-2716.htm" tppabs="http://www.ctyme.com/intr/rb-2716.htm">AX=3000h/BX=3000h</a> - <a href="rb-2730.htm" tppabs="http://www.ctyme.com/intr/rb-2730.htm">AX=3306h</a> - <a href="rb-2920.htm" tppabs="http://www.ctyme.com/intr/rb-2920.htm">AX=4452h</a> - <a href="rb-3251.htm" tppabs="http://www.ctyme.com/intr/rb-3251.htm">AH=87
<p><b>See Also:</b>
<a href="rb-2596.htm" tppabs="http://www.ctyme.com/intr/rb-2596.htm">AH=20h"S/DOS"</a> - <a href="rb-4415.htm" tppabs="http://www.ctyme.com/intr/rb-4415.htm">INT 2F/AX=122Fh</a> - <a href="rb-4754.htm" tppabs="http://www.ctyme.com/intr/rb-4754.htm">INT 2F/AX=4010h</a> - <a href="javascript:if(confirm('http://www.ctyme.com/intr/rb-4859 \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/intr/rb-4859'" tppabs="http://www.ctyme.com/intr/rb-4859"
<p><b>See Also:</b>
<a href="rb-5623.htm" tppabs="http://www.ctyme.com/intr/rb-5623.htm">INT 2F/AX=E002h</a>
<PRE>
<p>
<a name=table1394></a>
(Table 01394)
Values for DOS OEM number:
00h * IBM
- (Novell DOS, Caldera OpenDOS, DR-OpenDOS, and DR-DOS 7.02+ report IBM
as their OEM)
01h * Compaq
02h * MS Packaged Product
04h * AT&T
05h * ZDS (Zenith Electronics, Zenith Electronics).
</PRE>
<p><b>Note:</b>
Zenith DOS 3.30 supports >32MB hard disks; this OEM ID can be
used to detect that support
06h * Hewlett-Packard
07h * Zenith Data Systems (ZDS, Groupe Bull), for DOS 5.0+
08h * Tandon
09h * AST (AST Europe Ltd.)
0Ah * Asem
0Bh * Hantarex
0Ch * SystemsLine
0Dh * Packard-Bell
0Eh * Intercomp
0Fh * Unibit
10h * Unidata
16h * DEC
17h * Olivetti DOS
23h * Olivetti (may have been a typo, since 23 = 17h)
28h * Texas Instruments
29h * Toshiba
33h - Novell (Windows/386 device IDs only)
34h * MS Multimedia Systems (Windows/386 device IDs only)
35h * MS Multimedia Systems (Windows/386 device IDs only)
4Dh * Hewlett-Packard (HP)
5Eh - RxDOS (Api Software & Mike Podanoffsky) http://www.freedos.org/
66h - PhysTechSoft (PTS-DOS) http://www.phystechsoft.com/.
Probably Paragon Technology Systems Corporation PTS-DOS as well
99h - General Software's Embedded DOS
CDh - Paragon Technology Systems Corporation ("Source DOS" S/DOS 1.0+).
(see also INT 21/AH=20h"S/DOS")
EDh - reserved for future OpenDOS/DR-DOS based projects http://www.drdos.org
EEh DR DOS
EFh Novell DOS.
<p><b>Note:</b>
Released versions of Novell DOS 7 use OEM ID 00h instead
FDh FreeDOS http://www.freedos.org/
FFh * Microsoft, Phoenix (listed as "undefined" by Microsoft)
<p><b>Notes:</b>
'*' indicates an OEM release of MS-DOS, while '-' indicates an OEM
number used by a non-Microsoft DOS.
Known OEM releases of MS-DOS:
AT&T DOS 3.10 (uses DOS 2.x cluster sizes and FAT structures)
Commodore DOS 3
Compaq DOS 3.31 (>32MB partitions similar to MS-DOS 4+)
Computerland DOS 3.10 (mix of DOS 2.x and 3.x disk mechanisms)
Eagle MS-DOS 1.25 (DOS 1.x with some hard disk support and built-in
ANSI.SYS functionality)
Epson Equity III DOS 3.10 (different clustering)
Leading Edge
NEC DOS 3.3
Olivetti DOS 2.11
Phoenix DOS 3.3, 4.01
Sanyo DOS 3.2
Tandy
Toshiba DOS
Unisys
Wyse MS-DOS 3
Zenith DOS 2.x (uses Zenith disk mechanism, extra drives at G:)
Zenith DOS 3.x (can be configured for Zenith or MS-DOS mechanism)
Zenith DOS 3.3 PLUS (>32MB partitions similar to MS-DOS 4+)
<p>
<b>Category: <a href="cat-010.htm" tppabs="http://www.ctyme.com/intr/cat-010.htm">
DOS Kernel</a>
- <a href="int-21.htm" tppabs="http://www.ctyme.com/intr/int-21.htm">
Int 21h</a>
- <a href="alpha-d.htm" tppabs="http://www.ctyme.com/intr/alpha-d.htm">
D</a>
</b><p><p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
<table border=1 cellpadding=3 cellspacing=1>
<td>
<a href="rb-2710.htm" tppabs="http://www.ctyme.com/intr/rb-2710.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-2712.htm" tppabs="http://www.ctyme.com/intr/rb-2712.htm">
<img src="ldown.gif" tppabs="http://graphics.ctyme.com/gif/ldown.gif" border=0 alt=Next></a>
<a href="javascript:if(confirm('http://www.ctyme.com/rbrown.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/rbrown.htm'" tppabs="http://www.ctyme.com/rbrown.htm">
<img src="lhome.gif" tppabs="http://graphics.ctyme.com/gif/lhome.gif" border=0 alt=Ralf Brown Page></a>
<td><a href="int.htm" tppabs="http://www.ctyme.com/intr/int.htm">Interrups</a></td>
<td><a href="cat.htm" tppabs="http://www.ctyme.com/intr/cat.htm">Categories</a></td>
<td><a href="alpha.htm" tppabs="http://www.ctyme.com/intr/alpha.htm">Contents</a></td>
</td></table><p>
<!-- Bottom Link Start -->
<center>
<p><table border=1 bgcolor="#ffff99"><tr><td>
<table border=0 height=80>
<tr align=center><td width="65">
<a href="javascript:if(confirm('http://www.ctyme.com/sponsor.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/sponsor.htm'" tppabs="http://www.ctyme.com/sponsor.htm">
<img src="tip.gif" tppabs="http://graphics.ctyme.com/gif/tip.gif" ALT="Sponsors" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://www.ctyme.com/sponsor.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/sponsor.htm'" tppabs="http://www.ctyme.com/sponsor.htm">Shopping</a>
</td><td width="65">
<a href="javascript:if(confirm('http://talk.ctyme.com/webx.cgi?13@@.ee6b2be \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://talk.ctyme.com/webx.cgi?13@@.ee6b2be'" tppabs="http://talk.ctyme.com/webx.cgi?13@@.ee6b2be">
<img src="comment.gif" tppabs="http://graphics.ctyme.com/gif/comment.gif" ALT="Forum" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://talk.ctyme.com/webx.cgi?13@@.ee6b2be \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://talk.ctyme.com/webx.cgi?13@@.ee6b2be'" tppabs="http://talk.ctyme.com/webx.cgi?13@@.ee6b2be">Forum</a>
</td><td width="65">
<a href="javascript:if(confirm('http://www.ctyme.com/mail.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/mail.htm'" tppabs="http://www.ctyme.com/mail.htm">
<img src="mail.gif" tppabs="http://graphics.ctyme.com/gif/mail.gif" ALT="email" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://www.ctyme.com/mail.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/mail.htm'" tppabs="http://www.ctyme.com/mail.htm">EMail</a>
</td><td width="65">
<a href="javascript:if(confirm('http://www.ctyme.com/map.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/map.htm'" tppabs="http://www.ctyme.com/map.htm">
<img src="toc.gif" tppabs="http://graphics.ctyme.com/gif/toc.gif" ALT="Index" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://www.ctyme.com/map.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/map.htm'" tppabs="http://www.ctyme.com/map.htm">Index</a>
</td><td width="65">
<a href="javascript:if(confirm('http://www.ctyme.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/'" tppabs="http://www.ctyme.com/">
<img src="home.gif" tppabs="http://graphics.ctyme.com/gif/home.gif" ALT="Home" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://www.ctyme.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/'" tppabs="http://www.ctyme.com/">Home</a>
</td><td width="90">
<center>
<FORM ACTION="https://secure.paypal.com/cgi-bin/webscr" tppabs="https://secure.paypal.com/cgi-bin/webscr" METHOD="POST" traget="_blank">
<INPUT TYPE="hidden" NAME="cmd" VALUE="_xclick">
<INPUT TYPE="hidden" NAME="business" VALUE="marc@perkel.com">
<INPUT TYPE="hidden" NAME="return" VALUE="http://www.perkel.com">
<INPUT TYPE="hidden" NAME="item_name" VALUE="Donation To Support this Site">
<INPUT TYPE="hidden" NAME="no_intl" VALUE="1">
<INPUT TYPE="image" SRC="x-click-but7.gif" tppabs="http://images.paypal.com/images/x-click-but7.gif" vspace=9
NAME="submit" ALT="Make payments with PayPal - it's fast, free and secure!">
</FORM>
</td></tr></table></td></tr></table><p>
<center>
<p>
<a href="javascript:if(confirm('http://www.ctyme.com/hosting/index.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/hosting/index.htm'" tppabs="http://www.ctyme.com/hosting/index.htm" target="_blank">
<img src="ctymehost.gif" tppabs="http://graphics.ctyme.com/gif/ctymehost.gif"
border=3 height=60 width=468></a>
<p>
<!-- Ad End --->
</center>
<FORM ACTION="http://service.bfast.com/bfast/click" target="_blank">
<INPUT TYPE="hidden" NAME="siteid" VALUE="30472466" >
<INPUT TYPE="hidden" NAME="bfpage" VALUE="horizontal">
<INPUT TYPE="hidden" NAME="bfmid" VALUE="27253343" >
<INPUT TYPE="hidden" NAME="num" VALUE="30">
<table bgcolor=white border=3><tr><td>
<table bgcolor=white border=0>
<tr><td>
<IMG SRC="serve-bfmid=27253343&siteid=30472466&bfpage=horizontal.gif" tppabs="http://service.bfast.com/bfast/serve?bfmid=27253343&siteid=30472466&bfpage=horizontal" BORDER="0" WIDTH="1" HEIGHT="1" align=right NOSAVE >
<center><b>Search the web with Google</b></center>
</td></tr><tr><td>
<TABLE cellpadding=0 cellspacing=5 bgcolor="#FFFFFF">
<tr><td bgcolor="#0000cc"><IMG SRC="cleardot.gif" tppabs="http://www.google.com/images/cleardot.gif" height=1 border="0" ALT="Google"></td></tr><tr><td>
<IMG SRC="affiliate_logo.gif" tppabs="http://www.google.com/affiliates/affiliate_logo.gif" border="0" ALT="Google" align="center">
<INPUT TYPE=text name=q size=30 maxlength=255 value="">
<INPUT type=submit name=sa VALUE="Go">
</td></tr>
<tr><td bgcolor="#0000cc"><IMG SRC="cleardot.gif" tppabs="http://www.google.com/images/cleardot.gif" height=1 border="0" ALT="Google"></td></tr></TABLE>
</td></tr></table>
</tr></td></table>
</FORM>
</center>
<p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
<!-- Bottom Link End -->
</BODY>
</HTML>