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

395 lines
17 KiB
HTML

<HTML>
<HEAD>
<TITLE>Int 78/AX=0001h
</TITLE>
<META NAME="Description" CONTENT="
Int 78/AX=0001h - HugeRealMode Driver - GET ENTRY POINT -
AX = 0001h
Return: ES:BX - far call entry point (see #03788,#03803)
SeeAlso: AX=0000h
(Table 03787)
Values for HugeRealMode Server error code:
00h successful
01h unknown function
02h A20 disabled
03h A20 enabled
">
<META NAME="robots" CONTENT="none">
</HEAD>
<BODY BGCOLOR="#FFD0A0">
<center>
<h2>Int 78/AX=0001h
</h2>
</center><p>
<table border=1 cellpadding=3 cellspacing=1>
<td>
<a href="rb-7814.htm" tppabs="http://www.ctyme.com/intr/rb-7814.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-7816.htm" tppabs="http://www.ctyme.com/intr/rb-7816.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>HugeRealMode Driver - GET ENTRY POINT</font></h3>
<PRE>
AX = 0001h<br>
<p><b>Return:</b><br>ES:BX -> far call entry point (see #03788,#03803)
</PRE>
<p><b>See Also:</b>
<a href="rb-7814.htm" tppabs="http://www.ctyme.com/intr/rb-7814.htm">AX=0000h</a>
<PRE>
<p>
<a name=table3787></a>
(Table 03787)
Values for HugeRealMode Server error code:
00h successful
01h unknown function
02h A20 disabled
03h A20 enabled
04h memory allocation error
05h memory not fixeable (LOCK)
06h memory not deallocaable
07h memory not moveable (UNLOCK)
08h change in memory allocation size not possible
09h file error (with .XMF-file)
0Ah memory error (with .XMF-file)
0Bh unknown procedure (currently Turbo Pascal unit only)
<p>
<a name=table3788></a>
(Table 03788)
Call HugeRealMode Server "Enable A20" function with:.
AL = 00h<br>
<p><b>Return:</b><br>AX = error code (see #03787)
</PRE>
<p><b>Note:</b>
The HugeRealMode Server requires an XMS-driver like HIMEM.SYS loaded
before HUGEREAL (for XMS-memory allocation and A20 control). It
utilizes some undocumented 386+ features to enable 4G code and data
segments (flat memory model) in the CPUs real-mode. It is not
compatible with V86-mode (as with most EMM386). For maximum speed
and compatibility with DOS it uses a two stage interrupt model
<a href="rb-7815.htm#Table3791" tppabs="http://www.ctyme.com/intr/rb-7815.htm#Table3791">(see #03791)</a>
<p><b>See Also:</b>
#03789 - #03790 - #03791
<PRE>
<p>
<a name=table3789></a>
(Table 03789)
Call HugeRealMode Server "Disable A20" function with:.
AL = 01h<br>
<p><b>Return:</b><br>AX = error code (see #03787)
</PRE>
<p><b>See Also:</b>
#03788 - #03790
<PRE>
<p>
<a name=table3790></a>
(Table 03790)
Call HugeRealMode Server "Query A20 State" function with:.
AL = 02h<br>
<p><b>Return:</b><br>AX = A20 state (0000h disabled, 0001h enabled)
</PRE>
<p><b>See Also:</b>
#03788 - #03789
<PRE>
<p>
<a name=table3791></a>
(Table 03791)
Call HugeRealMode Server "Enable Two-Stage Interrupt Model" function with:.
AL = 03h<br>
<p><b>Return:</b><br>AX = error code (see #03787)
</PRE>
<p><b>Notes:</b>
If the two stage interrupt model is disabled, the IP must stay below
1MB, because the high word of EIP is not saved correctly by the
standard interrupt management in real mode. Routines in extended
memory may only be called with interrupts disabled (only usable for
very short routines)..
If the two stage interupt model is enabled, these conventions are not
required. The outer (transparent) ISRs save the higher word of EIP
<PRE>
<p><b>in the high word of CR3 (possible modification:</b><br>In memory, if this
is not safe) and then invoke the standard ISRs..
Because of this handling, one should use pseudo segmented code even in
extended memory (64K blocks located on 64K boundaries) to avoid the
misalignment of the saved EIP (in CR3). Another way is to track and
realign CR3 each time when jumping over a 64K boundary in extended
memory
</PRE>
<p><b>See Also:</b>
#03788 - #03792
<PRE>
<p>
<a name=table3792></a>
(Table 03792)
Call HugeRealMode Server "Disable Two-Stage Interrupt Model" function with:.
AL = 04h<br>
<p><b>Return:</b><br>AX = error code (see #03787)
</PRE>
<p><b>See Also:</b>
#03788 - #03791
<PRE>
<p>
<a name=table3793></a>
(Table 03793)
Call HugeRealMode Server "Get Segment Address Of Server-Management Range" with:.
AL = 05h<br>
<p><b>Return:</b><br>AX = error code (see #03787)
ES = segment address
</PRE>
<p><b>See Also:</b>
#03803
<PRE>
<p>
<a name=table3794></a>
(Table 03794)
Call HugeRealMode Server "Allocate Memory" function with:.
AL = 06h.
DX = length in KB<br>
<p><b>Return:</b><br>AX = error code (see #03787)
DX = handle
EBX = start address of allocated block
</PRE>
<p><b>See Also:</b>
#03795 - #03796
<PRE>
<p>
<a name=table3795></a>
(Table 03795)
Call HugeRealMode Server "Deallocate Memory" function with:.
AL = 07h.
DX = handle<br>
<p><b>Return:</b><br>AX = error code (see #03787)
</PRE>
<p><b>See Also:</b>
#03794 - #03796
<PRE>
<p>
<a name=table3796></a>
(Table 03796)
Call HugeRealMode Server "Modify Allocated Memory Size" function with:.
AL = 08h.
DX = handle.
BX = new size in KB<br>
<p><b>Return:</b><br>AX = error code (see #03787)
EBX = new address
</PRE>
<p><b>See Also:</b>
#03794 - #03795
<PRE>
<p>
<a name=table3797></a>
(Table 03797)
Call HugeRealMode Server "Load .XMF-file" function with:.
AL = 09h.
ES:BX -> filename <a href="rb-7815.htm#Table3798" tppabs="http://www.ctyme.com/intr/rb-7815.htm#Table3798">(see #03798)</a><br>
<p><b>Return:</b><br>AX = error code (see #03787)
ECX = target address
</PRE>
<p><b>Notes:</b>
Memory must be allocated before loading.
.XMF file format (eXtended Memory executable File format) is supported
by the HugeRealMode server for easier handling of XMS-code..
The utility CONFXMF converts .OBJ-files (.COM 'tiny' model) to
.XMF-format
<p><b>See Also:</b>
#03794
<PRE>
<p>
Format of .XMF program file header:
<a name=table3798></a>
Offset Size Description (Table 03798)
00h DWORD signature "XMF_"
04h WORD length of programs code
06h WORD count of 32bit addresses to relocate
08h WORD offset to code start (releative to file start) <a href="rb-7815.htm#Table3799" tppabs="http://www.ctyme.com/intr/rb-7815.htm#Table3799">(see #03799)</a>
0Ah WORD relocation table
</PRE>
<p><b>Note:</b>
Each word contains a 16bit address, where a relocation has to be
performed
<p><b>See Also:</b>
#03797 - #03799
<PRE>
<p>
Format of .XMF-file code header:
<a name=table3799></a>
Offset Size Description (Table 03799)
00h WORD count of exported functions
02h N PWORDs 48bit pointers (16bit segment+32bit offset) to each function
(16bit segment is always zero)
var start of program's code
</PRE>
<p><b>See Also:</b>
#03797 - #03798
<PRE>
<p>
<a name=table3800></a>
(Table 03800)
Call HugeRealMode Server "Set Segment Limits" function with:.
AL = 0Ah.
BL = segment limits <a href="rb-7815.htm#Table3801" tppabs="http://www.ctyme.com/intr/rb-7815.htm#Table3801">(see #03801)</a><br>
<p><b>Return:</b><br>AX = error code (see #03787)
</PRE>
<p><b>See Also:</b>
#03793
<PRE>
<p>
Bitfields for HugeRealMode Server segment limits:
<a name=table3801></a>
Bit(s) Description (Table 03801)
<p><b>7 CS size:</b><br>1=4GB, 0=64KB
6-5 not used
<p><b>4 SS size:</b><br>1=4GB, 0=64KB
3 GS size
2 FS size
1 ES size
0 DS size
</PRE>
<p><b>See Also:</b>
#03800
<PRE>
<p>
<a name=table3802></a>
(Table 03802)
Call HugeRealMode Server "Transfer Memory From DOS To XMS" function with:.
AL = 0Bh.
ES:SI = source address.
EDI = target address.
ECX = length<br>
<p><b>Return:</b><br>AX = error code
</PRE>
<p><b>See Also:</b>
#03803
<PRE>
<p>
<a name=table3803></a>
(Table 03803)
Call HugeRealMode Server "Transfer Memory From XMS To DOS" function with:.
AL = 0Ch.
ESI = source address.
ES:DI = target address.
ECX = length<br>
<p><b>Return:</b><br>AX = error code
</PRE>
<p><b>See Also:</b>
#03802
<p>
<b>Category: <a href="cat-009.htm" tppabs="http://www.ctyme.com/intr/cat-009.htm">
DOS Extenders</a>
- <a href="int-78.htm" tppabs="http://www.ctyme.com/intr/int-78.htm">
Int 78h</a>
- <a href="alpha-h.htm" tppabs="http://www.ctyme.com/intr/alpha-h.htm">
H</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-7814.htm" tppabs="http://www.ctyme.com/intr/rb-7814.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-7816.htm" tppabs="http://www.ctyme.com/intr/rb-7816.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>