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

443 lines
19 KiB
HTML

<HTML>
<HEAD>
<TITLE>Int 17/AX=0200h/BX=5050h
</TITLE>
<META NAME="Description" CONTENT="
Int 17/AX=0200h/BX=5050h - Enhanced Parallel Port (EPP) BIOS - INSTALLATION CHECK -
AX = 0200h
BX = 5050h ('PP')
CH = 45h ('E')
DX = printer port number (00h-02h)
Return: AH = status
00h if installed and port is an enhanced parallel port
CX:AL = installed BIOS type
5050h:45h ('PPE') if EPP v3.0+ BIOS installed
4550h:50h ('EPP') if EPP v1.0 BIOS installed
---EPP 1.0, 3.0---
">
<META NAME="robots" CONTENT="none">
</HEAD>
<BODY BGCOLOR="#FFD0A0">
<center>
<h2>Int 17/AX=0200h/BX=5050h
</h2>
</center><p>
<table border=1 cellpadding=3 cellspacing=1>
<td>
<a href="rb-2101.htm" tppabs="http://www.ctyme.com/intr/rb-2101.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-2103.htm" tppabs="http://www.ctyme.com/intr/rb-2103.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>Enhanced Parallel Port (EPP) BIOS - INSTALLATION CHECK</font></h3>
<PRE>
AX = 0200h
BX = 5050h ('PP')
CH = 45h ('E')
DX = printer port number (00h-02h)<br>
<p><b>Return:</b><br>AH = status
00h if installed and port is an enhanced parallel port
CX:AL = installed BIOS type
5050h:45h ('PPE') if EPP v3.0+ BIOS installed
4550h:50h ('EPP') if EPP v1.0 BIOS installed
---EPP 1.0, 3.0---
DX:BX -> far entry point to Advanced BIOS <a href="rb-2102.htm#Table632" tppabs="http://www.ctyme.com/intr/rb-2102.htm#Table632">(see #00632)</a>
---EPP Revision 7---
DX = EPP I/O base address
ES:BX -> far entry point to EPP BIOS <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 #00632,#00633)
03h if installed but specified port not supported
CF set
</PRE>
<p><b>Program:</b>
The Enhanced Parallel Port BIOS provides support for parallel
port peripherals using the enhanced modes of the IEEE 1284.
<p><b>See Also:</b>
<a href="rb-2231.htm" tppabs="http://www.ctyme.com/intr/rb-2231.htm">AH=E0h</a> - MEM 0040h:0008h - MEM 0040h:00DCh
<PRE>
<p>
<a name=table632></a>
(Table 00632)
Call EPP BIOS entry point with:.
DL = port number (v1.0,v3.0).
DX = (Revision 7) EPP port I/O base address.
AH = function
00h Query Configuration
<p><b>Return:</b><br>AH = 00h if successful
AL = IRQ number used by port or FFh if no IRQ
BH = EPP BIOS revision (major in high nybble,
minor in low nybble)
BL = I/O capabilities <a href="rb-2102.htm#Table635" tppabs="http://www.ctyme.com/intr/rb-2102.htm#Table635">(see #00635)</a>
ES:DI -> ASCIZ driver information/version text
---v1.0,v3.0---
CX = I/O port base address for parallel port
---Revision 7---
CL = EPP chipset code <a href="rb-2102.htm#Table636" tppabs="http://www.ctyme.com/intr/rb-2102.htm#Table636">(see #00636)</a>
CH = hardware manufacturer's product code
01h Set Mode
AL = mode bits <a href="rb-2102.htm#Table637" tppabs="http://www.ctyme.com/intr/rb-2102.htm#Table637">(see #00637)</a>
<p><b>Return:</b><br>AX,BX destroyed
02h Get Mode
<p><b>Return:</b><br>AL = mode bits (see also #00637)
<p><b>bit 7:</b><br>EPP port interrupts enabled
AH = 00h
CF clear
BX destroyed
03h Interrupt Control
AL = subfunction
00h enable parallel port interrupts
01h disable parallel port interrupts
<p><b>Return:</b><br>AH = status (00h,05h,06h) (see also #00634)
04h EPP Reset
<p><b>Return:</b><br>AH = 00h if successful
AL destroyed
05h perform Address-Write/Device-Select I/O cycle
AL = device address
<p><b>Return:</b><br>AH = status
AL destroyed
06h perform Address-Read I/O cycle
<p><b>Return:</b><br>AL = returned address/device data
AH = status
07h write byte
AL = data byte to write
<p><b>Return:</b><br>AH = status
08h output block of data
DS:SI -> block of data to be sent to parallel port
CX = number of bytes to output
<p><b>Return:</b><br>AH = status (see #00634)
CX = number of unsent bytes
09h read byte of data
<p><b>Return:</b><br>AH = status (see #00634)
AL = byte read from parallel port
0Ah read block of data
ES:DI -> buffer for received data
CX = number of bytes to read from paralle port
<p><b>Return:</b><br>AH = status (see #00634)
ES:DI buffer filled if successful
CX = number of bytes not transferred
0Bh Address/Byte-Read
AL = device address
<p><b>Return:</b><br>AH = status (see #00634)
AL = byte read if successful
0Ch Address/Byte-Write
AL = device address
DH = data byte (v1.0,v3.0)
CL = data byte (Revision 7)
<p><b>Return:</b><br>AH = status (see #00634)
0Dh Address/Block-Read
AL = device address
ES:DI -> buffer for received data
CX = number of bytes to read
<p><b>Return:</b><br>AH = status (see #00634)
CX = number of bytes NOT transferred
0Eh Address/Block-Write
AL = device address
ES:DI -> data to be sent (v1.0,v3.0)
DS:SI -> data to be send (Revision 7)
CX = number of bytes to write
<p><b>Return:</b><br>AH = status (see #00634)
CX = number of bytes NOT transferred
0Fh Lock Port
AL = multiplexor port number
<p><b>bits 7-4:</b><br>Daisy chain port number (1-8)
<p><b>bits 3-0:</b><br>Mux device port number (1-8, 0 if no mux)
<p><b>Return:</b><br>AH = status (00h,03h,05h) (see #00634)
10h Unlock Port
AL = multiplexor port number
<p><b>bits 7-4:</b><br>Daisy chain port number (1-8)
<p><b>bits 3-0:</b><br>Mux device port number (1-8, 0 if no mux)
<p><b>Return:</b><br>AH = status (00h,03h,05h) (see #00634)
11h Device Interrupt
BL = multiplexor port number
00h if no multiplexor, else mux device port (01h-08h)
AL = subfunction
00h disable device interrupts
01h enable device interrupt
ES:DI -> interrupt event handler
<p><b>Return:</b><br>AH = status (00h,03h,05h,06h) (see #00634)
</PRE>
<p><b>Note:</b>
AMI BIOS v1.00.12.AX1T ignores the multiplexor port
number; it also always sets INT 0F to the address
specified in ES:DI
12h Real-Time Mode
AL = subfunction
00h check whether any real-time devices present
01h add (advertise) real-time device
02h remove real-time device
<PRE>
<p><b>Return:</b><br>AH = status (00h,05h,06h,07h) (see #00634)
AL = real-time devices present? (00h no, 01h yes)
</PRE>
<p><b>Note:</b>
Unlike all other functions, this one does not use DL/DX<br>
<PRE>
<p><b>Return:</b><br>AH = status (see #00634)
CF clear if successful
CF set on error
BX destroyed
</PRE>
<p><b>See Also:</b>
#00633
<PRE>
<p>
<a name=table633></a>
(Table 00633)
Call EPP BIOS (Revision 7) entry point multiplexor functions with:.
DX = EPP port base I/O address.
AH = function
40h Query Mux
<p><b>Return:</b><br>AH = status (see #00634)
AL = currently-selected port
CH = status flags
<p><b>bit 0:</b><br>Channel locked
<p><b>bit 1:</b><br>Interrupt pending
BH destroyed
</PRE>
<p><b>Note:</b>
The PhoenixBIOS v4.0 documentation lists BL as the
currently-selected port and AL as the status flags
41h Query Device Port
AL = EPP multiplex device port (1-8)
<PRE>
<p><b>Return:</b><br>AH = status (see #00634)
CH = status flags <a href="rb-2102.htm#Table638" tppabs="http://www.ctyme.com/intr/rb-2102.htm#Table638">(see #00638)</a>
BX = EPP product/device ID (0000h if undefined)
</PRE>
<p><b>Note:</b>
The PhoenixBIOS v4.0 documentation lists AL as the
status flags and CX as the device ID
42h Set Product ID
AL = EPP multiplex device port (1-8)
CX = EPP product ID
<PRE>
<p><b>Return:</b><br>AH = status (see #00634)
BX destroyed
50h Query Daisy Chain
AL = EPP multiplexor device port (1-8)
<p><b>Return:</b><br>AH = status (see #00634)
CH = status flags
<p><b>bit 0:</b><br>Channel locked
<p><b>bit 1:</b><br>Interrupt pending
BL = currently-selected device
BH = EPP daisy chain revision (high nybble = major)
CL = daisy-chain depth (00h if no daisy chain)
ES:DI -> ASCIZ driver vendor identification string
</PRE>
<p><b>Note:</b>
The PhoenixBIOS v4.0 documentation lists AH=51h as
"Query Daisy Chain" and BL as the multiplexor port;
it also lists AL as status flags on return
51h Rescan Daisy Chain (dynamically reassign port numbers)
AL = EPP multiplexor device port (1-8)
<PRE>
<p><b>Return:</b><br>AH = status (see #00634)
BX destroyed
</PRE>
<p><b>Note:</b>
The PhoenixBIOS v4.0 documentation lists AH=50h as
"Rescan Daisy Chain" and BL as the multiplexor port
<p><b>Notes:</b>
These functions are only valid if a port multiplexor or daisy chain
is present.
PhoenixBIOS 4.0 documents function 50h as "Rescan" and 51h as
"Query Daisy Chain"
<p><b>See Also:</b>
#00632 - INT 2D/AL=DCh
<PRE>
<p>
<a name=table634></a>
(Table 00634)
Values for EPP BIOS function status:
00h successful
02h unsupported command/feature
03h unsupported parallel port
05h unsupported in current mode
06h invalid subfunction
07h already ???
20h multiplexor not present (AMI)
40h multiplexor not present
41h multiplexor currently locked
80h I/O timeout
FFh invalid/unsupported function
</PRE>
<p><b>See Also:</b>
#00632 - #00633
<PRE>
<p>
Bitfields for EPP (v3.0, Revision 7) I/O capabilities:
<a name=table635></a>
Bit(s) Description (Table 00635)
0 multiplexor present
1 PS/2 bi-directional capable
2 daisy chain present
3 ECP capable
4 EPP software emulation supported
5 EPP capable
6 fast Centronics supported
7 standard EPP I/O map
</PRE>
<p><b>See Also:</b>
#00632
<PRE>
<p>
<a name=table636></a>
(Table 00636)
Values for EPP (Revision 7) chipset code:
00h Intel SL
01h FarPoint Communications
02h SMC
03h Chips&Technologies
04h Western Digital
05h National Semiconductor
</PRE>
<p><b>See Also:</b>
#00632
<PRE>
<p>
Bitfields for EPP BIOS mode bits:
<a name=table637></a>
Bit(s) Description (Table 00637)
0 set compatibility mode
1 set bi-directional mode
2 set EPP mode
---Revision 7,v3.0---
3 set ECP mode
4 set EPP software emulation
5 set fast Centronics mode
6-7 reserved (0)
</PRE>
<p><b>See Also:</b>
#00632 - #M0053
<PRE>
<p>
Bitfields for EPP BIOS multiplex status flags:
<a name=table638></a>
Bit(s) Description (Table 00638)
0 port is selected
1 port is locked
2 interrupts are enabled
3 interrupt pending
</PRE>
<p><b>See Also:</b>
#00633
<p>
<b>Category: <a href="cat-044.htm" tppabs="http://www.ctyme.com/intr/cat-044.htm">
Vendor-specific BIOS Extensions</a>
- <a href="int-17.htm" tppabs="http://www.ctyme.com/intr/int-17.htm">
Int 17h</a>
- <a href="alpha-e.htm" tppabs="http://www.ctyme.com/intr/alpha-e.htm">
E</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-2101.htm" tppabs="http://www.ctyme.com/intr/rb-2101.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-2103.htm" tppabs="http://www.ctyme.com/intr/rb-2103.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>