232 lines
14 KiB
HTML
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>
|