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

232 lines
14 KiB
HTML

<HTML>
<HEAD>
<TITLE>Int 21/AX=3306h
</TITLE>
<META NAME="Description" CONTENT="
Int 21/AX=3306h - DOS 5+ - GET TRUE VERSION NUMBER -
AX = 3306h
Return: BL = major version
BH = minor version
DL = revision (bits 2-0, all others 0)
DH = version flags
bit 3: DOS is in ROM
bit 4: DOS is in HMA
AL = FFh if true DOS version 5.0
Notes: this function always returns the true version number, unlike AH=30h,
whose return value may be changed with SETVER
">
<META NAME="robots" CONTENT="none">
</HEAD>
<BODY BGCOLOR="#FFD0A0">
<center>
<h2>Int 21/AX=3306h
</h2>
</center><p>
<table border=1 cellpadding=3 cellspacing=1>
<td>
<a href="rb-2729.htm" tppabs="http://www.ctyme.com/intr/rb-2729.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-2731.htm" tppabs="http://www.ctyme.com/intr/rb-2731.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 5+ - GET TRUE VERSION NUMBER</font></h3>
<PRE>
AX = 3306h<br>
<p><b>Return:</b><br>BL = major version
BH = minor version
DL = revision (bits 2-0, all others 0)
DH = version flags
<p><b>bit 3:</b><br>DOS is in ROM
<p><b>bit 4:</b><br>DOS is in HMA.
AL = FFh if true DOS version < 5.0
</PRE>
<p><b>Notes:</b>
This function always returns the true version number, unlike AH=30h,
whose return value may be changed with SETVER.
Because of the conflict from the CBIS redirector (see next
entry), programs should check whether BH is less than 100 (64h)
and BL is at least 5 before accepting the returned BX as the true
version number; however, even this is not entirely reliable when
that redirector is loaded.
Under MS-DOS/PC DOS, DR DOS, PTS-DOS, S/DOS this function does not
use any of the DOS internal stacks and thus is fully reentrant.
OS/2 v2.1 will return BX=0A14h (version 20.10).
Windows 95 and Windows 95 SP1 return version 7.00; Windows 95 OSR2
and OPK3 (OSR2.5) return version MS 7.10..
The Windows NT DOS box returns BX=3205h (version 5.50).
Novell DOS 7 returns IBM v6.00, which some software displays as
IBM DOS v6.10 (because of the version mismatch in true IBM DOS
mentioned for INT 21/AH=30h); versions through Update 15 all
return revision code 00h.
Windows95 and Windows95 SP1 return version 7.00; Windows95 OSR2 returns
version 7.10.
Heiko Goeman's Advanced WinDOS 2.10/2.11/2.21 returns DOS 5.00,
revision 0..
Novell DOS 7, OpenDOS 7.01, DR-OpenDOS 7.02, DR-DOS 7.02, DR-DOS 7.03
all return IBM 6.00, which some software displays as IBM DOS 6.10
(because of the version mismatch in true IBM DOS mentioned for
INT 21/AH=30h); versions through Novell DOS 7 Update 15.2 (01/1996)
all return revision code 00h. The DOS revision is stored in bits 7-0
of the "patch_version" field in the PCM_HEADER structure in the
IBMDOS.COM file (see also INT 21/AX=4452h !!!). The version
flags (DH) are stored in bits 15-8 of "patch_version", but is updated
at runtime to reflect the actual status. "patch_version" is also
reported as DX in INT 21/AX=4452h..
Unlike MS-DOS, under Novell DOS 7+ IBMDOS.COM will also allow to
SETVER the returned "true" DOS version same as with INT 21/AX=3000h
and INT 21/AX=3001h..
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 enables a three staged model of
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
allow BDOS and DOS version faking (see INT 21/AX=4452h). In /X mode,
a set sub-version of y = 128..255 will be reported as 0..127 DOS
sub-version, sub-versions of y = 100..127 will be used to report this
value as BDOS version (64h..7Fh) with INT 21/AX=4452h instead while
bits 6-0 of the DOS revision stored in PCM_HEADER in the IBMDOS.COM
file will be used to report the BH DOS sub-version 0..127 (usually
this holds 0, but it can be patched to other values)..
DR-DOS SHARE 2.05 (1998-01-05) has relaxed version checking now, and
will install on any DOS revision 0..127 (formerly it was bound to
DOS revision 0 only), as long as run on a DR-DOS 72h or 73h BDOS
kernel. Hence, if there will be changes in the SHARE implementation
without changing the BDOS version, DR-DOS SHARE 2.05 can still be
stopped from installing by changing the DOS revision in PCM_HEADER
to something in the range 128..255..
Under Novell DOS 7+, the version SETVERing also affects the version
number WORD stored at offset +40h in each program's PSP (see
Table xxxx at INT 21/AH=26h). This holds true even for special
sub-versions of 100..255 (see INT 21/AX=4452h)..
S/DOS 1.0 (1995) returns a DOS revision of 9, while its own PTS OEM
revision still defaults to 0 (see also INT 21/AH=20h"S/DOS").
<p><b>BUG:</b>
DR DOS 5.0 and 6.0 return CF set/AX=0001h for INT 21/AH=33h
subfunctions other than 00h-02h and 05h, while MS-DOS returns AL=FFh
for invalid subfunctions
<p><b>See Also:</b>
<a href="rb-2711.htm" tppabs="http://www.ctyme.com/intr/rb-2711.htm">AH=30h</a> - <a href="rb-4415.htm" tppabs="http://www.ctyme.com/intr/rb-4415.htm">INT 2F/AX=122Fh</a> - <a href="rb-5618.htm" tppabs="http://www.ctyme.com/intr/rb-5618.htm">INT 2F/AX=E000h"SETDRVER"</a>
<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-2729.htm" tppabs="http://www.ctyme.com/intr/rb-2729.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-2731.htm" tppabs="http://www.ctyme.com/intr/rb-2731.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>