Make your own free website on Tripod.com
Up ] Docs Home ]

Call EPP BIOS entry point with

Back ] Next ]

Data:
DL = port number (v1.0,v3.0)
DX = (Revision 7) EPP port I/O base address
AH = function
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:
AX = mode bits (see #00637)
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:
AX = device address
Return:
AH = status
AL = destroyed
06h
Perform Address-Read I/O cycle
Return:
AH = status
AL = returned address/device data
07h
Write Byte
Data:
AL = data byte to write
Return:
AH = status
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:
AL = device address
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:
AH = AH = status (see #00634)
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?
00h - no
01h - yes
Note: Unlike all other functions, this one does not use DL/DX.
Return:
AH = status (see #00634)
CF =
clear if successful
set on error
BX = destroyed
See Also: #00633