00h |
Query Configuration |
Return: |
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 (see #00635) |
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 (see #00636) |
CH |
= |
hardware manufacturer's product
code |
|
|
01h |
Set Mode |
Data: |
|
Return: |
AX |
= |
destroyed |
BX |
= |
destroyed |
|
|
02h |
Get Mode |
Return: |
AL |
= |
mode bits (see also #00637)
bit 7: EPP port interrupts enabled |
AH |
= |
00h |
CF |
= |
clear |
BX |
= |
destroyed |
|
|
03h |
Interrupt Control |
Data: |
AX |
= |
subfunction
00h |
- |
enable parallel port interrupts |
01h |
- |
disable parallel port interrupts |
|
|
Return: |
AH |
= |
status (00h,05h,06h) (see also #00634) |
|
|
04h |
EPP Reset |
Return: |
AH |
= |
00h if successful |
AL |
= |
destroyed |
|
|
05h |
Perform
Address-Write/Device-Select I/O cycle |
Data: |
|
Return: |
AH |
= |
status |
AL |
= |
destroyed |
|
|
06h |
Perform Address-Read
I/O cycle |
Return: |
AH |
= |
status |
AL |
= |
returned address/device data |
|
|
07h |
|
08h |
Output Block of Data |
Data: |
DS:SI |
|
block of data to be sent to parallel port |
CX |
= |
number of bytes to output |
|
Return: |
AH |
= |
status (see #00634) |
CX |
= |
number of unsent bytes |
|
|
09h |
Read Byte of Data |
Return: |
AH |
= |
status (see #00634) |
AL |
= |
byte read from parallel port |
|
|
0Ah |
Read Block of Data |
Data: |
ES:DI |
|
buffer for received data |
CX |
= |
number of bytes to read from paralle port |
|
Return: |
AH |
= |
status (see #00634) |
ES:DI |
= |
buffer filled if successful |
CX |
= |
number of bytes not transferred |
|
|
0Bh |
Address/Byte-Read |
Data: |
|
Return: |
AH |
= |
status (see #00634) |
AL |
= |
byte read if successful |
|
|
0Ch |
Address/Byte-Write |
Data: |
AL |
= |
device address |
DH |
= |
data byte (v1.0,v3.0) |
CL |
= |
data byte (Revision 7) |
|
Return: |
|
|
0Dh |
Address/Block-Read |
Data: |
AL |
= |
device address |
ES:DI |
|
buffer for received data |
CX |
= |
number of bytes to read |
|
Return: |
AH |
= |
status (see #00634) |
CX |
= |
number of bytes NOT transferred |
|
|
0Eh |
Address/Block-Write |
Data: |
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 |
|
Return: |
AH |
= |
status (see #00634) |
CX |
= |
number of bytes NOT transferred |
|
|
0Fh |
Lock Port |
Data: |
AL |
= |
multiplexor port number
bits 7 - 4 |
: |
daisy chain port number (1-8) |
bits 3 - 0 |
: |
mux device port number (1-8, 0 if no mux) |
|
|
Return: |
AH |
= |
status (00h,03h,05h) (see #00634) |
|
|
10h |
Unlock Port |
Data: |
AL |
= |
multiplexor port number
bits 7 - 4 |
: |
daisy chain port number (1-8) |
bits 3 - 0 |
: |
mux device port number (1-8, 0 if no mux) |
|
|
Return: |
AH |
= |
status (00h,03h,05h) (see #00634) |
|
|
11h |
Device Interrupt |
Data: |
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 |
|
Return: |
AH |
= |
status (00h,03h,05h,06h) (see #00634) |
|
Note: |
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 |
Data: |
AL |
= |
subfunction:
00h |
- |
check whether any real-time devices
present |
01h |
- |
add (advertise) real-time device |
02h |
- |
remove real-time device |
|
|
Return: |
AH |
= |
status (00h, 05h, 06h, 07h) (see #00634) |
AL |
= |
real-time devices present?
|
|
Note: |
Unlike all other functions, this one does not use DL/DX.
|
|