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

405 lines
18 KiB
HTML

<HTML>
<HEAD>
<TITLE>Int 2F/AX=FBA1h/BX=0082h
</TITLE>
<META NAME="Description" CONTENT="
Int 2F/AX=FBA1h/BX=0082h - TKERNEL (Borland DOS extender) - GET ENTRY POINT -
AX = FBA1h
BX = 0082h
ES:DI - response buffer (see #03135)
Return: ES:DI buffer filled
SeeAlso: AX=FBA1h/BX=0081h,AX=FBA1h/BX=0084h
Format of TKERNEL response buffer:
Offset Size Description (Table 03135)
00h 4 BYTEs signature IABH
04h DWORD pointer to FAR extender entry point (see #03136)
">
<META NAME="robots" CONTENT="none">
</HEAD>
<BODY BGCOLOR="#FFD0A0">
<center>
<h2>Int 2F/AX=FBA1h/BX=0082h
</h2>
</center><p>
<table border=1 cellpadding=3 cellspacing=1>
<td>
<a href="rb-5767.htm" tppabs="http://www.ctyme.com/intr/rb-5767.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-5769.htm" tppabs="http://www.ctyme.com/intr/rb-5769.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>TKERNEL (Borland DOS extender) - GET ENTRY POINT</font></h3>
<PRE>
AX = FBA1h
BX = 0082h
ES:DI -> response buffer <a href="rb-5768.htm#Table3135" tppabs="http://www.ctyme.com/intr/rb-5768.htm#Table3135">(see #03135)</a><br>
<p><b>Return:</b><br>ES:DI buffer filled
</PRE>
<p><b>See Also:</b>
<a href="rb-5767.htm" tppabs="http://www.ctyme.com/intr/rb-5767.htm">AX=FBA1h/BX=0081h</a> - <a href="rb-5769.htm" tppabs="http://www.ctyme.com/intr/rb-5769.htm">AX=FBA1h/BX=0084h</a>
<PRE>
<p>
Format of TKERNEL response buffer:
<a name=table3135></a>
Offset Size Description (Table 03135)
00h 4 BYTEs signature "IABH"
04h DWORD pointer to FAR extender entry point <a href="rb-5768.htm#Table3136" tppabs="http://www.ctyme.com/intr/rb-5768.htm#Table3136">(see #03136)</a>
<p>
<a name=table3136></a>
(Table 03136)
Call TKERNEL entry point with:.
AX = function number
0000h initialize???
<p><b>STACK:</b><br>WORD ???
<p><b>Return:</b><br>AX = status???
STACK unchanged
0001h get version???
<p><b>Return:</b><br>AX = 0200h for v2.0.34
0002h get ???
<p><b>Return:</b><br>AX = ??? (011Eh or 0182h seen)
0003h load protected-mode executable
<p><b>STACK:</b><br>DWORD -> ASCIZ filename of executable
DWORD ???
DWORD -> program arguments (counted string plus CR)
DWORD -> environment for protected-mode executable
(terminated with two consecutive NULs)
DWORD -> WORD buffer for ???
<p><b>Return:</b><br>AX = status???
STACK unchanged
0004h get descriptor
<p><b>STACK:</b><br>WORD selector for which to get descriptor
WORD segment number (when running in real mode)
DWORD -> buffer for descriptor
<p><b>Return:</b><br>CF clear if successful
buffer filled
CF set on error
AX destroyed???
STACK unchanged
0005h ???
<p><b>STACK:</b><br>WORD selector for ???
WORD subfunction number???
0000h run previously-loaded program???
0001h ??? (similar to 0000h)
0002h
0003h
0005h ??? (similar to 0000h and 0001h)
<p><b>Return:</b><br>AX = status???
STACK unchanged
0006h ???
<p><b>STACK:</b><br>WORD ???
DWORD -> WORD (call) max iterations of ???
(ret) remaining iterations
<p><b>Return:</b><br>AX = ???
STACK unchanged
0007h unused
<p><b>Return:</b><br>AX = 0001h
0008h unused
<p><b>Return:</b><br>AX = 0001h
0009h copy protected-mode memory into conventional memory
<p><b>STACK:</b><br>WORD selector for source segment
WORD segment of source if in real mode???
DWORD offset of source
WORD number of bytes to copy
DWORD -> low-memory destination
<p><b>Return:</b><br>AX = status
STACK unchanged
000Ah copy conventional memory into protected-mode memory
<p><b>STACK:</b><br>WORD selector for destination segment
WORD segment of destination if in real mode???
DWORD offset of destination
WORD number of bytes to copy
DWORD -> low-memory source
<p><b>Return:</b><br>AX = status
STACK unchanged
000Bh get ??? pointers
<p><b>STACK:</b><br>WORD desired pointer
0000h get ???
0002h get protected-mode CR3
0003h get 4K page table buffer pointer
<p><b>else Return:</b><br>DX:AX = FFFFh:FFFFh
<p><b>Return:</b><br>DX:AX = requested pointer
STACK unchanged
000Ch set ??? pointers
<p><b>STACK:</b><br>WORD desired pointer
0000h set ???
0002h set protected-mode CR3
0003h set 4K page table buffer pointer
else ignore
DWORD new value for pointer
<p><b>Return:</b><br>STACK unchanged
000Dh get ??? pointers
<p><b>STACK:</b><br>WORD desired pointer
0000h get ???
0001h get ???
0002h get ???
0003h get ???
0004h get ???
0005h get ???
0006h get ???
0007h get ???
<p><b>else Return:</b><br>DX:AX = FFFFh:FFFFh
<p><b>Return:</b><br>DX:AX = desired pointer
STACK unchanged
000Eh set ??? pointer
<p><b>STACK:</b><br>WORD desired pointer
0000h set ???
0001h set ???
0002h set ???
0003h set ???
0004h set ???
0005h set ???
0006h set ???
0007h set ???
<p><b>else Return:</b><br>DX:AX = FFFFh:FFFFh
<p><b>Return:</b><br>STACK unchanged
000Fh get ???
<p><b>Return:</b><br>AX = ??? (seen 0008h)
0010h get ???
<p><b>Return:</b><br>AX = ???
0011h determine whether selector is valid
<p><b>STACK:</b><br>WORD possible selector
<p><b>Return:</b><br>AX = selector or 0000h if invalid
STACK unchanged
0012h get physical address
<p><b>STACK:</b><br>WORD selector for desired segment
WORD segment number if in real mode
DWORD offset within segment
<p><b>Return:</b><br>DX:AX = 32-bit physical address or 00000000h on error
BX destroyed
STACK unchanged
0013h ???
</PRE>
<p><b>Note:</b>
Normally jumps to code for function 0012h
0014h copy protected-mode memory to conventional memory, with ???
<PRE>
<p><b>STACK:</b><br>WORD selector for source segment
WORD segment of source if in real mode???
DWORD offset of source
WORD number of bytes to copy
DWORD -> low-memory destination
<p><b>Return:</b><br>AX = status???
STACK unchanged
0015h copy conventional memory to protected-mode memory, with ???
<p><b>STACK:</b><br>WORD selector for destination segment
WORD segment of destination if in real mode???
DWORD offset of destination
WORD number of bytes to copy
DWORD -> low-memory source
<p><b>Return:</b><br>AX = status???
STACK unchanged
0016h set ??? pointer
<p><b>STACK:</b><br>WORD unused
DWORD -> ??? or 0000h:0000h
<p><b>Return:</b><br>AX = 0000h
STACK unchanged
0017h allocate real-mode procedure???
<p><b>STACK:</b><br>DWORD ASCIZ name of procedure
DWORD ???
DWORD address of subroutine to invoke
<p><b>Return:</b><br>AX = status
0032h procedure by that name exists
0033h no more real-mode procedures available
DX destroyed
STACK unchanged
0018h unused
<p><b>Return:</b><br>AX = 0001h
0019h get parameter block
<p><b>Return:</b><br>DX:AX -> parameter block (format unknown at this time,
but 92h bytes)
(preceded by signature "!!PARAM-BLOCK!!")
001Ah get ???
<p><b>Return:</b><br>AX = ??? (0148h seen)
001Bh free real-mode procedure???
<p><b>STACK:</b><br>DWORD -> ASCIZ name of procedure
<p><b>Return:</b><br>???
STACK unchanged
001Ch check whether packets from protected mode task pending
<p><b>Return:</b><br>AX = 0001h if packets pending, 0000h if not
001Dh set ???
<p><b>STACK:</b><br>DWORD ??? or 0000h:0000h
<p><b>Return:</b><br>AX,BX destroyed
STACK unchanged
001Eh ???
<p><b>STACK:</b><br>WORD ??? (high byte ignored)
DWORD -> data structure (below)
<p><b>Return:</b><br>AX,BX,CX,DX destroyed
data structure updated
STACK unchanged
Format of data structure:
Offset Size Description
00h 2 BYTEs unused
02h WORD ???
04h WORD ???
06h WORD ???
08h 2 BYTEs unused
0Ah WORD ???
0Ch WORD (call) ???
(ret) offset of this data structure (BUG?)
001Fh set ???
<p><b>STACK:</b><br>WORD ??? (set to 0001h if zero)
<p><b>Return:</b><br>AX destroyed
STACK unchanged
0020h ???
<p><b>STACK:</b><br>DWORD -> ??? (8 bytes of data)
<p><b>Return:</b><br>AX = ???
STACK unchanged
0021h ???
<p><b>STACK:</b><br>DWORD -> ??? (8 bytes of data)
WORD ???
WORD ???
<p><b>Return:</b><br>AX = ???
STACK unchanged
0022h ???
<p><b>STACK:</b><br>DWORD -> ??? (8 bytes of data)
DWORD -> 4-byte buffer for results
<p><b>Return:</b><br>AX = ???
STACK unchanged
0023h ???
<p><b>STACK:</b><br>DWORD -> ??? (8 bytes of data)
<p><b>Return:</b><br>AX = ???
STACK unchanged
0024h set ???
<p><b>STACK:</b><br>WORD ???
<p><b>Return:</b><br>AX destroyed
STACK unchanged
0025h get ???
<p><b>Return:</b><br>AX = ??? (value set with func 0024h)
<p><b>0026h BUG:</b><br>Jumps to hyperspace due to fencepost error
FFFFh set DOS memory management functions
BX:SI -> FAR routine for allocating DOS memory
(called with AH=48h,BX=number of paragraphs to alloc;
returns CF clear, AX=segment of allocated memory, or
CF set on error)
CX:DI -> FAR routine for freeing DOS memory
(called with AH=49h,ES=segment of block to free;
returns CF set on error, AX=error code)
</PRE>
<p><b>Note:</b>
Each of these pointers normally points at INT 21/RETF
<PRE>
<p><b>other Return:</b><br>AX = 0001h
</PRE>
<p><b>Note:</b>
BX may be destroyed by any of the API calls
<p>
<b>Category: <a href="cat-009.htm" tppabs="http://www.ctyme.com/intr/cat-009.htm">
DOS Extenders</a>
- <a href="int-2f-1.htm" tppabs="http://www.ctyme.com/intr/int-2F.htm">
Int 2Fh</a>
- <a href="alpha-t.htm" tppabs="http://www.ctyme.com/intr/alpha-t.htm">
T</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-5767.htm" tppabs="http://www.ctyme.com/intr/rb-5767.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-5769.htm" tppabs="http://www.ctyme.com/intr/rb-5769.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>