Outils pour utilisateurs

Outils du site


back2root:ibm-pc-ms-dos:interrupts:old:ms_interrupt_list-17-20

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
back2root:ibm-pc-ms-dos:interrupts:old:ms_interrupt_list-17-20 [2023/01/05 04:01] – supprimée - modification externe (Unknown date) 127.0.0.1back2root:ibm-pc-ms-dos:interrupts:old:ms_interrupt_list-17-20 [2023/01/05 04:01] (Version actuelle) – créée - modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +====== MSDOS - Interrupt List 17h-20h ======
 +
 +===== INT 17 =====
 +
 +----------17----DX0ABC-----------------------
 +INT 17 - PRINTER - LPTx v5.x INSTALLATION CHECK
 + DX = 0ABCh
 +Return: AX = AAAAh
 + DX = BAAAh
 + ES = code segment of resident portion
 +----------17----DX0B90-----------------------
 +INT 17 - PRINTER - LPTx v6.x INSTALLATION CHECK
 + DX = 0B90h
 +Return: DX = ABBBh
 + ES = code segment of resident portion
 +----------17----DX0B91-----------------------
 +INT 17 - PRINTER - LPTx v7.x INSTALLATION CHECK
 + DX = 0B91h
 +Return: DX = ABCBh
 + ES = code segment of resident portion
 +----------17----DX0F5F-----------------------
 +INT 17 - PRINTER - LPTx v4.x INSTALLATION CHECK
 + DX = 0F5Fh
 +Return: AX = AAAAh
 + DX = F555h
 + ES = code segment of resident portion
 +----------1700-------------------------------
 +INT 17 - PRINTER - WRITE CHARACTER
 + AH = 00h
 + AL = character to write
 + DX = printer number (00h-02h)
 +Return: AH = printer status
 +     bit 7: not busy
 + 6: acknowledge
 + 5: out of paper
 + 4: selected
 + 3: I/O error
 + 2: unused
 + 1: unused
 + 0: timeout
 +SeeAlso: AH=84h"AX",AH=F1h,INT 16/AX=FFE3h,INT 1A/AH=11h"NEC"
 +----------1701-------------------------------
 +INT 17 - PRINTER - INITIALIZE PORT
 + AH = 01h
 + DX = printer number (00h-02h)
 +Return: AH = printer status (see AH=00h)
 +SeeAlso: AH=02h,INT 1A/AH=10h"NEC"
 +----------1702-------------------------------
 +INT 17 - PRINTER - GET STATUS
 + AH = 02h
 + DX = printer number (00h-02h)
 +Return: AH = printer status (see AH=00h)
 +SeeAlso: AH=01h,AH=F2h,INT 1A/AH=12h"NEC"
 +----------1702--DX0000-----------------------
 +INT 17 - INSET - INSTALLATION CHECK
 + AH = 02h
 + DX = 0000h
 + CX = 07C3h (1987d)
 +Return: CX = 07C2h (1986d) if installed
 +Note: INSET is a text/graphics integration program
 +----------1720-------------------------------
 +INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER
 + AH = 20h
 + AL = function number
 +     00h installation check
 +     Return: BX = driver version number (BH=major,BL=minor)
 + CH = ??? (00h)
 + CL = ???
 + DX = ??? (0100h)
 + Note: also enables the remaining functions
 +     01h set ??? flag
 +     02h get information
 +     CL = subfunction
 +     00h get printer type
 +     Return: ES:DI -> ASCIZ printer name
 +     01h get paper size
 +     DX = size index
 + Return: ES:DI -> ASCIZ paper size description
 +     02h get ???
 +     Return: BX = ???
 +     03h get printer information???
 +     DX = ???
 + ES:BX -> buffer for ??? (min 134 bytes)
 +     03h ???
 +     ES:BX -> ???
 +     04h get ???
 +     Return: ES:DI -> ???
 +     05h advance printer to next page
 +     Note: also clears flag set by function 01h
 +     06h advance printer to next page and shut down
 +     Note: also clears flag set by function 01h and disables
 +   functions other than 00h
 +     07h not implemented, AX returned unchanged
 + BL = printer number???
 +Return: AX = status
 +     0000h successful
 +     0001h invalid printer???
 +     0002h ???
 +     0003h invalid subfunction
 +     0005h driver disabled, must call function 00h first
 +     0009h unknown printer error
 +     000Bh printer not selected
 +     000Ch printer out of paper
 +     000Eh error while writing to serial printer
 +     000Fh ???
 +     0010h invalid function number
 +     0011h value out of range
 +----------172400-----------------------------
 +INT 17 - Shamrock Software NET.24 v3.11+ - ENABLE/DISABLE API FUNCTIONS
 + AX = 2400h
 + DL = new state
 +     00h disabled
 +     01h enabled
 +Return: DL = 24h if installed
 + DH = minor version number
 + CX = network address of this machine
 + AL = status
 +     00h successful
 +     01h timeout
 +     02h header error
 +     03h data error
 +     04h busy
 +     05h invalid parameters
 +SeeAlso: AX=2403h,INT 16/AX=4500h
 +----------172401-----------------------------
 +INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, NO HANDSHAKE
 + AX = 2401h
 + BL = timeout in clock ticks
 +Return: AL = status (see AX=2400h)
 + DX:BX -> receive buffer
 +SeeAlso: AX=2402h,AX=2404h,AX=2408h
 +----------172402-----------------------------
 +INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT BLOCK, NO HANDSHAKE
 + AX = 2402h
 + transmit buffer filled (see AX=2403h)
 +Return: AL = status (see AX=2400h)
 +SeeAlso: AX=2401h,AX=2403h,AX=2404h,AX=2409h
 +----------172403-----------------------------
 +INT 17 - Shamrock Software NET.24 v3.11+ - GET STATUS AND TRANSMISSION BUFFER
 + AX = 2403h
 +Return: AL = status (see AX=2400h)
 + CX = number of characters in receive ring buffer
 + DX:BX -> transmit buffer
 +SeeAlso: AX=2400h,AX=2402h
 +----------172404-----------------------------
 +INT 17 - Shamrock Software NET.24 v3.11+ - SEND ACK BLOCK
 + AX = 2404h
 + BX = target address
 +Return: AL = status (see AX=2400h)
 +SeeAlso: AX=2402h,AX=2405h
 +----------172405-----------------------------
 +INT 17 - Shamrock Software NET.24 v3.11+ - SEND NAK BLOCK
 + AX = 2405h
 + BX = target address
 +Return: AL = status (see AX=2400h)
 +SeeAlso: AX=2402h,AX=2404h
 +----------172406-----------------------------
 +INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED RECEIVE
 + AX = 2406h
 +Return: AL = status (see AX=2400h)
 +SeeAlso: AX=2407h,AX=240Ah
 +----------172407-----------------------------
 +INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE CHARACTER FROM REMOTE
 + AX = 2407h
 +Return: AL = status (see also AX=2400h)
 +     06h end of data
 + DL = received character
 +SeeAlso: AX=2406h
 +----------172408-----------------------------
 +INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, WITH HANDSHAKE
 + AX = 2408h
 +Return: AL = status (see also AX=2400h)
 +     06h end of data
 + CX = number of bytes in receive buffer
 + DX:SI -> receive buffer
 +SeeAlso: AX=2401h,AX=2405h,AX=2409h
 +----------172409-----------------------------
 +INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT COMMAND, WITH HANDSHAKE
 + AX = 2409h
 + BX = target address
 + CX = number of data bytes
 + DL = command code to send
 + DS:SI -> data bytes for command
 +Return: AL = status (see also AX=2400h)
 +     03h no response
 +     06h remote currently unable to perform command
 +SeeAlso: AX=2405h,AX=2408h
 +----------17240A-----------------------------
 +INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED TRANSMIT
 + AX = 240Ah
 +Return: AL = status (see AX=2400h)
 +SeeAlso: AX=2406h,AX=240Bh,AX=240Ch
 +----------17240B-----------------------------
 +INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT SINGLE CHARACTER TO REMOTE
 + AX = 240Bh
 + DL = character to send
 +Return: AL = status (see also AX=2400h)
 +     03h transmission error
 +     06h write error
 +SeeAlso: AX=2407h,AX=240Ah,AX=240Ch
 +----------17240C-----------------------------
 +INT 17 - Shamrock Software NET.24 v3.11+ - END CHARACTER-ORIENTED TRANSMIT
 + AX = 240Ch
 +Return: AL = status (see also AX=2400h)
 +     03h transmission error
 +     06h remote breaks connection
 +SeeAlso: AX=240Ah,AX=240Bh
 +----------175000-----------------------------
 +INT 17 - AX (Japanese AT) PRINTER - SET PRINTER COUNTRY CODE
 + AX = 5000h
 + BX = country code
 +     0001h USA (English), 0051h Japan
 +Return: AL = status
 +     00h successful
 +     01h bad country code
 +     02h other error
 +SeeAlso: AX=5001h,AH=51h,INT 10/AX=5000h,INT 16/AX=5000h
 +----------175001-----------------------------
 +INT 17 - AX (Japanese AT) PRINTER - GET PRINTER COUNTRY CODE
 + AX = 5001h
 +Return: AL = status
 +     00h successful
 +     BX = country code
 +     02h error
 +SeeAlso: AX=5000h,AH=51h,INT 10/AX=5001h,INT 16/AX=5001h
 +----------1751-------------------------------
 +INT 17 - AX (Japanese AT) PRINTER - JIS to Shift-JIS CONVERSION
 + AH = 51h
 + DX = 2-byte JIS code
 +Return: DX = shift-JIS value or 0000h on error
 +Note: one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
 +   characters to Shift-JIS characters, and the other performs the
 +   opposite conversion
 +SeeAlso: AX=5000h,AH=52h
 +----------1752-------------------------------
 +INT 17 - AX (Japanese AT) PRINTER - Shift-JIS to JIS CONVERSION
 + AH = 52h
 + DX = 2-byte shift-JIS code
 +Return: DX = JIS code or 0000h on error
 +Note: one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
 +   characters to Shift-JIS characters, and the other performs the
 +   opposite conversion
 +SeeAlso: AH=51h
 +----------1760-------------------------------
 +INT 17 - FLASHUP.COM - INSTALLATION CHECK
 + AH = 60h
 +Return: AL = 60h
 + DX = CS of resident code
 +Notes: FLASHUP.COM is part of Flash-Up Windows by The Software Bottling Co.
 + FLASHUP also hooks INT 10 and receives commands via INT 10/AH=09h,0Ah
 +   consisting of an 80h followed by the actual command
 +SeeAlso: INT 10/AH=09h,INT 10/AH=0Ah
 +----------1761-------------------------------
 +INT 17 - SPEEDSCR.COM - INSTALLATION CHECK
 + AH = 61h
 +Return: AL = 61h
 + DX = CS of resident code
 +Note: SPEEDSCR.COM is by The Software Bottling Co.
 +----------1781-------------------------------
 +INT 17 - Alloy NTNX, MW386 - CANCEL JOBS FOR CURRENT USER
 + AH = 81h
 + AL = 00h (NTNX compatibility mode)
 + CL = number of jobs to cancel
 +Return: AL = status
 +     00h success
 +     01h..7Fh warning
 +     80h general failure
 +     81h host overloaded (NTNX only)
 +     82h module busy (NTNX only)
 +     83h host busy (NTNX only)
 +     84h re-entry flag set
 +     85h invalid request
 +     86h invalid printer
 +     87h invalid process ID
 +     89h access denied
 +     8Ah option not available for given port type
 +     8Bh option not available for given task type
 +     91h printer busy
 +     C2h file not found
 +     C3h path not found
 +     C4h file access failure
 +Note: cancels the last CL printouts for the current task
 +SeeAlso: AH=82h
 +----------1782-------------------------------
 +INT 17 - Alloy NTNX, MW386 - CANCEL ALL JOBS FOR CURRENT USER
 + AH = 82h
 + AL = 00h (NTNX compatibility mode)
 +Return: AL = status (see AH=81h)
 +SeeAlso: AH=81h
 +----------1783-------------------------------
 +INT 17 - Alloy NTNX, MW386 - SET NUMBER OF COPIES
 + AH = 83h
 + AL = mode
 +     00h NTNX compatibility
 + CL = number of copies (max 99, default 1)
 +     02h MW386 v2+
 + BX = logical device number
 +     00h-03h = LPT1-LPT4
 +     04h-07h = COM1-COM4
 + CX = number of copies
 +Return: AL = status (see AH=81h)
 +Note: in NTNX compatibility mode, this function only affects LPT1
 +----------1784-------------------------------
 +INT 17 - Alloy NTNX, MW386 - GENERATE PRINT BREAK
 + AH = 84h
 + AL = mode
 +     00h NTNX compatibility
 +     02h MW386 v2+
 + BX = logical device number
 +     00h-03h = LPT1-LPT4
 +     04h-07h = COM1-COM4
 +Note: closes spool file and tells spooler to queue the print job (LPT1 only
 +   under MW386 in NTNX compatibility mode)
 +----------1784-------------------------------
 +INT 17 - AX (Japanese AT) PRINTER - OUTPUT CHARACTER WITHOUT CONVERSION
 + AH = 84h
 + AL = character
 + DX = printer number
 +Return: AH = printer status (see AH=00h)
 +SeeAlso: AH=00h,AH=85h
 +----------1785-------------------------------
 +INT 17 - AX (Japanese AT) PRINTER - ENABLE/DISABLE CHARACTER CONVERSION
 + AH = 85h
 + AL = new state (00h enabled, 01h disabled)
 +SeeAlso: AH=84h"AX"
 +----------1787-------------------------------
 +INT 17 - Alloy NTNX - SET INDOS POINTER
 + AH = 87h
 + AL = 00h
 + CX:BX -> buffer for user-written printer drivers
 +Return: BX,CX destroyed
 +Note: must be executed before the printer is enabled
 +SeeAlso: AH=8Ah
 +----------1788-------------------------------
 +INT 17 - Alloy NTNX, MW386 - REMOVE PRINTER FROM SPOOLER
 + AH = 88h
 + AL = mode
 +     00h NTNX compatibility
 + DX = NTNX printer number
 +     00h host LPT1
 +     01h host LPT2
 +     02h host LPT3
 +     03h host LPT4
 +     04h host COM1
 +     05h host COM2
 +     06h user's logical COM2
 +     07h user's terminal AUX port
 +     08h user's logical COM1 (MW386 only)
 +     01h MW386
 + DX = MW386 printer number
 +Return: AH = status (see AH=81h)
 +Note: removes specified printer from the spooler's list of printers
 +SeeAlso: AH=89h,AH=8Bh
 +----------1789-------------------------------
 +INT 17 - Alloy NTNX, MW386 - ADD PRINTER TO SPOOLER
 + AH = 89h
 + AL = mode
 +     00h NTNX compatibility
 + DX = NTNX printer number (see AH=88h)
 +     01h MW386
 + DX = MW386 printer number
 +Return: AL = status (see AH=81h)
 +Note: the specified printer is added to the spooler's list of available
 +   printers
 +SeeAlso: AH=88h,AH=8Bh
 +----------178A-------------------------------
 +INT 17 - Alloy NTNX - ACTIVATE USER-WRITTEN PRINTER DRIVER
 + AH = 8Ah
 + ???
 +SeeAlso: AH=92h
 +----------178B-------------------------------
 +INT 17 - Alloy MW386 - GET PHYSICAL DEVICE NUMBER FROM NAME
 + AH = 8Bh
 + DS:DX -> ASCIZ printer name
 +Return: AL = status (see also AH=81h)
 +     00h successful
 + DX = physical device number
 +SeeAlso: AH=89h,AH=8Ch,INT 14/AH=20h"Alloy"
 +----------178C-------------------------------
 +INT 17 - Alloy MW386 - GET DEVICE NAME FROM PHYSICAL DEVICE NUMBER
 + AH = 8Ch
 + DX = physical device number
 + ES:DI -> 17-byte buffer for ASCIZ device name
 +Return: AL = status (see also AH=81h)
 +     00h successful
 + ES:DI buffer filled
 +SeeAlso: AH=88h,AH=8Bh
 +----------178D-------------------------------
 +INT 17 - Alloy NTNX,MW386 - RESET SPOOLER
 + AH = 8Dh
 + AL = 00h
 +Notes: clears all buffers and resets spooler to boot-up values
 + MW386 supports this function for compatibility only; it is a NOP
 +Return: AL = status (see AH=81h)
 +----------178E-------------------------------
 +INT 17 - Alloy NTNX - GET INT 28 ENTRY POINT
 + AH = 8Eh
 + AL = 00h
 +Return: CX:BX -> INT 28 entry point
 +SeeAlso: AH=8Fh
 +----------178F-------------------------------
 +INT 17 - Alloy NTNX - GET DOS INTERCEPT ENTRY POINT
 + AH = 8Fh
 + AL = 00h
 +Return: CX:BX -> DOS intercept routine
 +SeeAlso: AH=8Eh
 +----------1790-------------------------------
 +INT 17 - Alloy NTNX, MW386 - SPOOL FILE BY NAME
 + AH = 90h
 + AL = mode
 +     00h NTNX compatibility
 + DL = printer code (FFh=current) (NTNX, MW386 v1.x only)
 + DH = number of copies (FFh=current) (NTNX, MW386 v1.x only)
 +     02h MW386 v2+
 + BX = logical device number
 +     00h-03h = LPT1-LPT4
 +     04h-07h = COM1-COM4
 + CX:SI -> ASCIZ pathname
 +Return: AL = status (see AH=81h)
 +Note: in mode 00h, the file is always sent to logical LPT1
 +SeeAlso: AH=A0h
 +----------1791-------------------------------
 +INT 17 - Alloy NTNX, MW386 - GET USER NUMBER AND CURRENT PRINTER
 + AH = 91h
 + AL = mode
 +     00h NTNX compatibility
 + Return: CX = user number (00h = host)
 + DX = currently selected printer number (00h-08h)
 +     01h MW386
 + Return: CX = user number
 + DX = physical dev number of currently selected printer
 +     02h MW386 v2+
 + BX = logical device number
 +     00h-03h = LPT1-LPT4
 +     04h-07h = COM1-COM4
 + Return: CX = user number
 + DX = physical device number
 +Return: AL = status (see AH=81h)
 +SeeAlso: AH=8Ch
 +----------1792-------------------------------
 +INT 17 - Alloy NTNX - CHECK PRINTER DRIVER
 + AH = 92h
 + AL = 00h
 + CL = 00h
 +Return: CL = driver state
 +     01h initialized
 +     80h not initialized
 + AX = status (see AH=81h)
 +SeeAlso: AH=8Ah
 +----------1794-------------------------------
 +INT 17 - Alloy NTNX, MW386 - SELECT PRINTER
 + AH = 94h
 + AL = mode
 +     00h NTNX compatibility
 + DX = NTNX printer number (see AH=88h)
 +     01h MW386
 + DX = MW386 printer number
 +     02h MW386 v2+
 + BX = logical printer number
 + DX = MW386 printer number
 +Return: AL = status (see AH=81h)
 +Note: modes 00h and 01h affect only logical LPT1
 +SeeAlso: AH=8Bh,AH=95h
 +----------1795-------------------------------
 +INT 17 - Alloy NTNX, MW386 - GET CURRENT PRINTER
 + AH = 95h
 + AL = mode
 +     00h NTNX compatibility
 + Return: DX = NTNX printer number (see AH=88h)
 +     (FFFFh if current printer not compatible with NTNX)
 +     01h MW386
 + Return: DX = MW386 printer number
 +     02h MW386 v2+
 + BX = logical device number
 +     00h-03h = LPT1-LPT4
 +     04h-07h = COM1-COM4
 + Return: DX = MW386 printer number (FFFFh = none)
 +Return: AL = status (see AH=81h)
 +Note: modes 00h and 01h return the printer number of logical LPT1 only
 +SeeAlso: AH=94h
 +----------1796-------------------------------
 +INT 17 - Alloy NTNX - SET SERIAL PORT PARAMETERS
 + AH = 96h
 + AL = 00h
 +Note: documentation states that this is a NOP, doing only XOR AX,AX before
 +   returning
 +SeeAlso: INT 14/AH=24h
 +----------1797-------------------------------
 +INT 17 - Alloy NTNX, MW386 - SET DATA DRIVEN PRINT BREAK
 + AH = 97h
 + AL = mode
 +     00h NTNX compatibility
 +     02h MW386 v2+
 + BX = logical device number
 +     00h-03h = LPT1-LPT4
 +     04h-07h = COM1-COM4
 + CH,CL,DH = three character break sequence
 + DL = subfunction
 +     00h set break string
 +     else reset break
 +Return: AL = status (see AH=81h)
 +Notes: mode 00h affects only logical LPT1
 + when the break string is encountered, the spool file will be closed and
 +   queued for printing automatically
 + the break string is not permanently saved, and will be reset each time
 +   MW386 or the user is rebooted
 +SeeAlso: AH=9Bh
 +----------1798-------------------------------
 +INT 17 - Alloy NTNX,MW386 - RESTART PRINTER
 + AH = 98h
 + AL = 00h
 + DL = printer number (FFh=current)
 +Return: AL = status
 +     00h successful
 +     01h incorrect printer
 +     02h task not found
 +Note: MW386 supports this function for compatibility only; it is a NOP
 +----------1799-------------------------------
 +INT 17 - Alloy NTNX, MW386 - GET/SET PRINTER MODE
 + AH = 99h
 + AL = mode
 +     00h NTNX compatibility
 + DL = NTNX printer number (see AH=88h)
 + (FFh = task's current logical LPT1)
 + DH = mode
 +     bit 0: get mode if 1, set mode if 0
 + 1: private ("attached")
 + 2: direct instead of spooled
 + 3-7 reserved (0)
 +     01h MW386
 + DX = MW386 printer number
 + CL = mode (as for DH above)
 +Return: AL = status (see AH=81h)
 + DH = mode (bits 1 and 2 set as above)
 + DL = printer owner's user number if not spooled
 +----------179A-------------------------------
 +INT 17 - Alloy NTNX,MW386 - SET TAB EXPANSION
 + AH = 9Ah
 + AL = mode
 +     00h NTNX compatibility
 + DX = NTNX printer number (see AH=88h)
 + (FFFFh = current logical LPT1)
 +     01h MW386
 + DX = MW386 printer number
 + CL = tab length (00h = no expansion, 01h-63h = spaces per tab)
 +Return: AL = status (see AH=81h)
 +Note: beginning with MW386 v2.0, tab expansion is set on a per-printer basis
 +   rather than a per-user basis; NTNX and MW386 v1.x ignore DX
 +SeeAlso: AH=A4h
 +----------179B-------------------------------
 +INT 17 - Alloy NTNX,MW386 - SET PRINT BREAK TIMEOUT
 + AH = 9Bh
 + AL = mode
 +     00h NTNX compatibility
 + CX = timeout value in clock ticks (1/18 sec) (00h = never)
 +     01h MW386
 + CX = timeout value in seconds (00h = never)
 +     02h MW386 v2+
 + BX = logical device number
 +     00h-03h = LPT1-LPT4
 +     04h-07h = COM1-COM4
 + CX = timeout value in seconds (00h = never)
 +Return: AL = status (see AH=81h)
 +Notes: modes 00h and 01h affect only the current logical LPT1
 + if no data is sent to a printer for the specified amount of time, the
 +   spool file will be closed and queued for printing automatically
 +SeeAlso: AH=97h
 +----------17A0-------------------------------
 +INT 17 - Alloy MW386 - SPOOL COPY OF FILE
 + AH = A0h
 + AL = mode
 +     00h NTNX compatibility
 + DX = ??? (NTNX, MW386 v1.x only)
 +     02h MW386 v2+
 + BX = logical device number
 +     00h-03h = LPT1-LPT4
 +     04h-07h = COM1-COM4
 + CX:SI -> ASCIZ pathname
 +Return: AL = status (see AH=81h)
 +Notes: makes a copy of the specified file in the spooler's directory, allowing
 +   the original file to be modified or deleted while the copy is printed
 + in mode 00h, the file is printed on logical LPT1
 +SeeAlso: AH=90h
 +----------17A4-------------------------------
 +INT 17 - Alloy MW386 - ENABLE/DISABLE FORM FEED
 + AH = A4h
 + AL = new state
 +     00h form feed after end of print job disabled
 +     01h form feed enabled
 +Return: AL = status (see AH=81h)
 +Note: only affects the current logical LPT1
 +SeeAlso: AH=9Ah,AH=A6h,INT 7F/AH=05h"NTNX (Host)"
 +----------17A6-------------------------------
 +INT 17 - Alloy MW386 - ENABLE/DISABLE BANNER PAGE
 + AH = A6h
 + AL = new state
 +     00h banner page before print job disabled
 +     01h banner page enabled
 +Return: AL = status (see AH=81h)
 +Note: only affects the current logical LPT1
 +SeeAlso: AH=A4h
 +----------17A7-------------------------------
 +INT 17 - Alloy MW386 v2+ - GET/SET SPOOL FLAGS
 + AH = A7h
 + AL = spool flags
 +     bit 0: banner page enabled (see AH=A4h)
 + 1: form feed enabled (see AH=A6h)
 + 2-6: reserved (0)
 + 7: set flags if 1, get flags if 0
 + BX = logical device number
 +     00h-03h = LPT1-LPT4
 +     04h-07h = COM1-COM4
 +Return: AL = status (see AH=81h)
 +Note: the documentation does not state which register contains the result of
 +   a GET
 +SeeAlso: AH=A4h,AH=A6h
 +----------17A8-------------------------------
 +INT 17 - Alloy MW386 - DEFINE TEMPORARY FILENAME
 + AH = A8h
 + CX:SI -> ASCIZ filename without extension (max 8 chars)
 +Return: AL = status (see AH=81h)
 +Note: allows application to specify banner page filename for spool files
 +   collected from the application's printer output
 +SeeAlso: AH=A9h
 +----------17A9-------------------------------
 +INT 17 - Alloy MW386 - CHANGE TEMPORARY SPOOL DRIVE
 + AH = A9h
 + AL = new spool drive (2=C:,3=D:,etc)
 +Return: AL = status (see AH=81h)
 +Note: does not remove previous spooling directory since jobs may be pending
 +SeeAlso: AH=A8h
 +----------17AA-------------------------------
 +INT 17 - Alloy MW386 v2+ - GET REAL-TIME PRINTER STATUS
 + AH = AAh
 + AL = mode
 +     00h NTNX
 + DX = NTNX printer number (see AH=88h)
 +     01h MW386
 + DX = MW386 printer number
 +Return: AH = instantaneous printer status
 +     00h printer ready
 +     01h not ready
 +     12h off line
 +     13h out of paper
 +     14h general device failure
 +     15h device timeout
 +     16h bad device number
 +----------17AF-------------------------------
 +INT 17 - Alloy MW386 - CHECK SPOOLER
 + AH = AFh
 +Return: AX = 55AAh if spooler available
 +----------17C0-------------------------------
 +INT 17 - PC Magazine PCSpool - GET CONTROL BLOCK ADDRESS
 + AH = C0h
 + DX = printer port (0-3)
 +Return: ES:BX -> control block (see below)
 +SeeAlso: AH=C1h
 +
 +Format of control block:
 +Offset Size Description
 + 00h WORD printer number
 + 02h WORD address of printer status port
 + 04h WORD number of first record in queue
 + 06h WORD number of last record in queue
 + 08h DWORD characters already printed
 + 0Ch DWORD number of characters remaining
 + 10h DWORD pointer to dequeue buffer
 + 14h DWORD previous count of characters printed
 + 18h DWORD number of clock ticks taken to print them
 + 1Ch WORD offset of next character to output
 + 1Eh WORD offset of next character to print
 + 20h WORD pointer to spooling queue record
 + 22h BYTE current spooling status
 + 23h BYTE current printer status:
 + 00h OK
 + 01h not ready
 + 02h paused with message
 + 03h paused
 + 04h initializing
 + FEh non-existent port
 + FFh not spooled
 + 24h BYTE current control record type
 + 25h WORD observed printer speed
 + 27h WORD characters to print per service
 + 29h BYTE 01h if disk write needed
 + 2Ah BYTE 01h if queued data should be flushed
 + 2Bh BYTE 01h to update cps status
 +----------17C1--------------------------------
 +INT 17 - PC Magazine PCSpool - BUILD PAUSE CONTROL RECORD
 + AH = C1h
 + DX = printer port (0-3)
 + DS:SI -> ASCIIZ string to save for display
 +Note: flushes pending writes
 +SeeAlso: AH=C0h,AH=C2h
 +----------17C2-------------------------------
 +INT 17 - PC Magazine PCSpool - FLUSH PENDING WRITES
 + AH = C2h
 + DX = printer port (0-3)
 +SeeAlso: AH=C3h
 +----------17C3-------------------------------
 +INT 17 - PC Magazine PCSpool - CANCEL PRINTER QUEUE (FLUSH ALL QUEUED OUTPUT)
 + AH = C3h
 + DX = printer port (0-3)
 +SeeAlso: AH=C2h,AH=C7h
 +----------17C4-------------------------------
 +INT 17 - PC Magazine PCSpool - QUERY SPOOLER ACTIVE
 + AH = C4h
 +Return: DI = B0BFh
 + SI = segment
 +----------17C5-------------------------------
 +INT 17 - PC Magazine PCSpool - JOB SKIP PRINTER QUEUE
 + AH = C5h
 + DX = printer port (0-3)
 +Note: cancels up to the pause record 
 +----------17C6-------------------------------
 +INT 17 - PC Magazine PCSpool - CHECK PRINTER QUEUE STATUS
 + AH = C6h
 + DX = printer port (0-3)
 +Return: AX = 0 printer not active or at pause
 +    = 1 printer busy
 +----------17C7-------------------------------
 +INT 17 - PC Magazine PCSpool - CLOSE QUEUE
 + AH = C7h
 + DX = printer port (0-3)
 +SeeAlso: AH=C3h
 +----------17CD00-----------------------------
 +INT 17 - INSET - EXECUTE COMMAND STRING
 + AX = CD00h
 + DS:DX -> ASCIZ command string (max 80 bytes)
 +Return: CX = 07C2h (1986d)
 +Note: user interface menus pop up after last command, unless that command
 + exits INSET
 +----------17CD01-----------------------------
 +INT 17 - INSET - GET IMAGE SIZE
 + AX = CD01h
 + DS:DX -> ASCIZ name of image file
 +Return: AX = height in 1/720th inch
 + BX = width in 1/720th inch
 + CX = 07C2h (1986d)
 +----------17CD02-----------------------------
 +INT 17 - INSET - INITIALIZE
 + AX = CD02h
 +Return: CX = 07C2h (1986d)
 +Note: all open files are closed and the printer is reset
 +SeeAlso: AX=CD04h
 +----------17CD03-----------------------------
 +INT 17 - INSET - EXECUTE INSET MENU WITHIN OVERRIDE MODE
 + AX = CD03h
 +Return: CX = 07C2h (1986d)
 +----------17CD04-----------------------------
 +INT 17 - INSET - INITIALIZE LINKED MODE
 + AX = CD04h
 + ES:SI -> FAR routine for linked mode
 +Return: CX = 07C2h
 +Note: calling sequence for linked-mode routine
 + AL = 00h send character in BL to printer
 +    = 01h send CX bytes from DS:DX to printer
 +    = 02h move print head to horizontal starting position of image
 + return code for linked-mode routine:
 + AX = 0000h success
 +    = 0001h failure
 +SeeAlso: AX=CD02h,AX=CD08h
 +----------17CD05-----------------------------
 +INT 17 - INSET - START MERGING IMAGE INTO TEXT
 + AX = CD05h
 + DS:DX -> ASCIZ name of PIX file
 + CX = left margin of text in 1/720th inch
 +Return: AH = printer type
 +     00h page-oriented (multiple images may be placed side-by-side)
 +     01h line-oriented (use AX=CD06h for vertical paper movement)
 + CX = 07C2h (1986d)
 +SeeAlso: AX=CD07h
 +----------17CD06-----------------------------
 +INT 17 - INSET - GRAPHICS LINE FEED
 + AX = CD06h
 +Return: AH = completion status
 +     00h image complete
 +     01h image incomplete
 + CX = 07C2h (1986d)
 +SeeAlso: AX=CD09h
 +----------17CD07-----------------------------
 +INT 17 - INSET - FLUSH GRAPHICS FROM MERGE BUFFER
 + AX = CD07h
 +Return: CX = 07C2h
 +SeeAlso: AX=CD05h
 +----------17CD08-----------------------------
 +INT 17 - INSET - CANCEL LINK MODE
 + AX = CD08h
 +Return: CX = 07C2h
 +SeeAlso: AX=CD04h
 +----------17CD09-----------------------------
 +INT 17 - INSET - ALTER TEXT LINE SPACING
 + AX = CD09h
 + CX = line spacing in 1/720th inch
 +Return: CX = 07C2h
 +Note: not yet implemented, line spacing is currently fixed at 1/6 inch
 +SeeAlso: AX=CD06h
 +----------17CD0A-----------------------------
 +INT 17 - INSET - GET SETUP
 + AX = CD0Ah
 + DS:DX -> buffer for IN.SET data
 +Return: CX = 07C2h
 +----------17CD0B-----------------------------
 +INT 17 - INSET - START GETTING SCALED IMAGE
 + AX = CD0Bh
 + DS:SI -> ASCIZ pathname of .PIX file
 + BX = number of bitplanes
 + CX = number of rows in output bitmap
 + DX = number of columns in output bitmap
 +Return: AX = status
 +     0000h OK
 +     FFFFh error
 +Note: image is returned in strips by repeated calls to AX=CD0Ch
 +----------17CD0C-----------------------------
 +INT 17 - INSET - GET NEXT IMAGE STRIP
 + AX = CD0Ch
 +Return: AX = status
 +     0000h OK but not complete
 +     0001h OK and image complete
 +     FFFFh error
 + DS:SI -> buffer (max 4K) for bit map strip 
 + CX = start row
 + DX = number of rows
 + BX = offset in bytes between bit planes
 +Note: buffer may be overwritten by subsequent calls
 +SeeAlso: AX=CD0Bh
 +----------17F0-------------------------------
 +INT 17 - NorthNet Jetstream API - INSTALLATION CHECK
 + AH = F0h
 + DX = printer port (0-3)
 +Return: AX = 0001h Jetstream present
 +      else  non-Jetstream port
 +Note: NorthNet Jetstream is a high-performance DMA-driven parallel card able
 +   to drive printers at up to 80000 characters per second
 +----------17F1-------------------------------
 +INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER
 + AH = F1h
 + CX = data buffer length
 + DX = printer port (0-3)
 + DS:SI -> data buffer
 +Return: AX = status
 +     0000h printer not ready (see also AH=02h)
 +     other printing started
 +SeeAlso: AH=00h,AH=F2h,AH=F3h,AH=F5h
 +----------17F2-------------------------------
 +INT 17 - NorthNet Jetstream API - GET PRINT PROGRESS STATUS
 + AH = F2h
 + DX = printer port (0-3)
 +Return: AX = status
 +     0000h prior print request finished
 +     other number of characters left to print
 +SeeAlso: AH=02h,AH=F1h,AH=F3h
 +----------17F3-------------------------------
 +INT 17 - NorthNet Jetstream API - ABORT PRINT OPERATION
 + AH = F3h
 + DX = printer port (0-3)
 +Return: AX = number of unprinted characters due to abort
 +SeeAlso: AH=F1h,AH=F4h
 +----------17F4-------------------------------
 +INT 17 - NorthNet Jetstream API - SET COMPLETION (POST) ADDRESS
 + AH = F4h
 + DX = printer port (0-3)
 + DS:DS -> FAR post address (called with interrupts on)
 +SeeAlso: AH=F1h,AH=F3h
 +----------17F5-------------------------------
 +INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER FROM EXTENDED MEMORY
 + AH = F5h
 + CX = data buffer length
 + DX = printer port (0-3)
 + DS:SI -> data buffer (32-bit physical address)
 +Return: AX = status
 +     0000h printer not ready (see also AH=02h)
 +     other printing started
 +SeeAlso: AH=F1h
 +
 +===== INT 18 =====
 +
 +----------18---------------------------------
 +INT 18 - START CASSETTE BASIC
 +Note: only PCs produced by IBM contain BASIC in ROM, so the action is
 +   unpredicatable on compatibles; this interrupt often reboots the
 +   system, and often has no effect at all
 +SeeAlso: INT 86"NetBIOS"
 +----------1800-------------------------------
 +INT 18 - NEC PC-9800 series - KEYBOARD - GET KEYSTROKE
 + AH = 00h
 +Return: AX = keystroke
 +SeeAlso: AH=01h,AH=02h,INT 16/AH=00h
 +----------1801-------------------------------
 +INT 18 - NEC PC-9800 series - KEYBOARD - CHECK FOR KEYSTROKE
 + AH = 01h
 +Return: ZF set if no keystroke available
 + ZF clear if keystroke available
 +     AX = keystroke
 +SeeAlso: AH=00h,AH=02h,INT 16/AH=01h
 +----------1802-------------------------------
 +INT 18 - NEC PC-9800 series - KEYBOARD - GET SHIFT STATUS
 + AH = 02h
 +Return: AL = shift flags
 +SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,INT 16/AH=02h
 +----------18---------------------------------
 +INT 18 - NEC PC-9800 series - KEYBOARD
 + AH = function
 +     03h initialize keyboard
 +     04h key pressed
 + ???
 +Return: ???
 +Note: details are not available at this time
 +SeeAlso: INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02h
 +----------18---------------------------------
 +INT 18 - NEC PC-9800 series - VIDEO
 + AH = function
 +     0Ah set video mode
 +     0Bh get video mode
 +     0Ch start text screen display
 +     0Dh end text screen display
 +     0Eh set single display area
 +     0Fh set multiple display area
 +     10h set cursor shape
 +     11h display cursor
 +     12h terminate cursor
 +     13h set cursor position
 +     14h read font patter
 +     16h initialize text video RAM
 +     1Ah define user character
 + ???
 +Return: ???
 +Notes: details are not available at this time
 + text video RAM is located at segments A000h (characters) and A200h
 +   (attributes)
 +
 +===== INT 19 =====
 +
 +----------19---------------------------------
 +INT 19 - SYSTEM - BOOTSTRAP LOADER
 +   Reboot the system without clearing memory or restoring interrupt vectors.
 +   Because interrupt vectors are preserved, this interrupt usually causes a
 +   system hang if any TSRs have hooked vectors from 00h through 1Ch,
 +   particularly INT 08.
 +
 +   Usually, the BIOS will try to read sector 1, head 0, track 0 from drive A:
 +   to 0000h:7C00h.  If this fails, and a hard disk is installed, the BIOS will
 +   read sector 1, head 0, track 0 of the first hard disk.  This sector should
 +   contain a master bootstrap loader and a partition table.  After loading the
 +   master boot sector at 0000h:7C00h, the master bootstrap loader is given
 +   control.  It will scan the partition table for an active partition, and will
 +   then load the operating system's bootstrap loader (contained in the first
 +   sector of the active partition) and give it control.
 +
 +   True IBM PCs issue an INT 18 if neither floppy nor hard disk have a valid
 +   boot sector.
 +
 +Notes: to accomplish a warm boot equivalent to Ctrl-Alt-Del, store 1234h in
 +   0040h:0072h and jump to FFFFh:0000h. For a cold boot equivalent to
 +   a reset, store 0000h at 0040h:0072h before jumping.
 + VDISK.SYS hooks this interrupt to allow applications to find out how
 +   much extended memory has been used by VDISKs (see below).  DOS 3.3+
 +   PRINT hooks INT 19 but does not set up a correct VDISK header block
 +   at the beginning of its INT 19 handler segment, thus causing some
 +   programs to overwrite extended memory which is already in use.
 + default handler is at F000h:E6F2h for 100% compatible BIOSes
 +SeeAlso: INT 14/AH=17h,INT 18
 +
 +Format of VDISK header block (at beginning of INT 19 handler's segment):
 +Offset Size Description
 + 00h 18 BYTEs n/a (for VDISK.SYS, the device driver header)
 + 12h 11 BYTEs signature string "VDISK  Vn.m" for VDISK.SYS version n.m
 + 1Dh 15 BYTEs n/a
 + 2Ch  3 BYTEs linear address of first byte of available extended memory
 +
 +Format of hard disk master boot sector:
 +Offset Size Description
 + 00h 446 BYTEs Master bootstrap loader code
 +1BEh 16 BYTEs partition record for partition 1 (see below)
 +1CEh 16 BYTEs partition record for partition 2
 +1DEh 16 BYTEs partition record for partition 3
 +1EEh 16 BYTEs partition record for partition 4
 +1FEh WORD signature, AA55h indicates valid boot block
 +
 +Format of partition record:
 +Offset Size Description
 + 00h BYTE boot indicator (80h = active partition)
 + 01h BYTE partition start head
 + 02h BYTE partition start sector (bits 0-5)
 + 03h BYTE partition start track (bits 8,9 in bits 6,7 of sector)
 + 04h BYTE operating system indicator (see below)
 + 05h BYTE partition end head
 + 06h BYTE partition end sector (bits 0-5)
 + 07h BYTE partition end track (bits 8,9 in bits 6,7 of sector)
 + 08h DWORD sectors preceding partition
 + 0Ch DWORD length of partition in sectors
 +
 +Values for operating system indicator:
 + 00h empty
 + 01h DOS 12-bit FAT
 + 02h XENIX root file system
 + 03h XENIX /usr file system (obsolete)
 + 04h DOS 16-bit FAT
 + 05h DOS 3.3+ extended partition
 + 06h DOS 3.31+ Large File System
 + 07h QNX
 + 07h OS/2 HPFS
 + 07h Advanced Unix
 + 08h AIX bootable partition, SplitDrive
 + 09h AIX data partition
 + 09h Coherent
 + 0Ah OPUS
 + 10h OPUS
 + 40h VENIX 80286
 + 50h Disk Manager, read-only partition
 + 51h Novell???
 + 51h Disk Manager, read/write partition
 + 52h CP/M
 + 52h Microport System V/386
 + 56h GoldenBow VFeature
 + 61h SpeedStor
 + 63h Unix SysV/386, 386/ix
 + 63h Mach, MtXinu BSD 4.3 on Mach
 + 63h GNU HURD
 + 64h Novell NetWare
 + 75h PC/IX
 + 80h Minix v1.1 - 1.4a
 + 81h Minix v1.4b+
 + 81h Linux
 + 82h Linux Swap partition (planned)
 + 93h Amoeba file system
 + 94h Amoeba bad block table
 + B7h BSDI file system (secondarily swap)
 + B8h BSDI swap partition (secondarily file system)
 + C6h DR-DOS 6.0 LOGIN.EXE-secured partition
 + DBh CP/M, Concurrent CP/M, Concurrent DOS
 + DBh CTOS (Convergent Technologies OS)
 + E1h SpeedStor 12-bit FAT extended partition
 + E4h SpeedStor 16-bit FAT extended partition
 + F2h DOS 3.3+ secondary
 + FEh LANstep
 + FFh Xenix bad block table
 +
 +===== INT 1A =====
 +
 +----------1A00-------------------------------
 +INT 1A - TIME - GET SYSTEM TIME
 + AH = 00h
 +Return: CX:DX = number of clock ticks since midnight
 + AL = midnight flag, nonzero if midnight passed since time last read
 +Notes: there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs
 + IBM and many clone BIOSes set the flag for AL rather than incrementing
 +   it, leading to loss of a day if two consecutive midnights pass
 +   without a request for the time (e.g. if the system is on but idle)
 +SeeAlso: AH=01h,AH=02h,INT 21/AH=2Ch
 +----------1A01-------------------------------
 +INT 1A - TIME - SET SYSTEM TIME
 + AH = 01h
 + CX:DX = number of clock ticks since midnight
 +SeeAlso: AH=00h,AH=03h,INT 21/AH=2Dh
 +----------1A02-------------------------------
 +INT 1A - TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS)
 + AH = 02h
 +Return: CF clear if successful
 +     CH = hour (BCD)
 +     CL = minutes (BCD)
 +     DH = seconds (BCD)
 +     DL = daylight savings flag (00h standard time, 01h daylight time)
 + CF set on error (i.e. clock not running or in middle of update)
 +SeeAlso: AH=00h
 +----------1A03-------------------------------
 +INT 1A - TIME - SET REAL-TIME CLOCK TIME (AT,XT286,PS)
 + AH = 03h
 + CH = hour (BCD)
 + CL = minutes (BCD)
 + DH = seconds (BCD)
 + DL = daylight savings flag (00h standard time, 01h daylight time)
 +SeeAlso: AH=01h
 +----------1A04-------------------------------
 +INT 1A - TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS)
 + AH = 04h
 +Return: CF clear if successful
 +     CH = century (BCD)
 +     CL = year (BCD)
 +     DH = month (BCD)
 +     DL = day (BCD)
 + CF set on error
 +SeeAlso: AH=02h,AH=05h,INT 21/AH=2Ah
 +----------1A05-------------------------------
 +INT 1A - TIME - SET REAL-TIME CLOCK DATE (AT,XT286,PS)
 + AH = 05h
 + CH = century (BCD)
 + CL = year (BCD)
 + DH = month (BCD)
 + DL = day (BCD)
 +SeeAlso: AH=04h,INT 21/AH=2Bh
 +----------1A06-------------------------------
 +INT 1A - TIME - SET ALARM (AT,XT286,PS)
 + AH = 06h
 + CH = hour (BCD)
 + CL = minutes (BCD)
 + DH = seconds (BCD)
 +Return: CF set on error (alarm already set or clock stopped for update)
 + CF clear if successful
 +Note: the alarm occurs every 24 hours until turned off, invoking INT 4A each
 +   time
 +SeeAlso: AH=07h,INT 4A
 +----------1A07-------------------------------
 +INT 1A - TIME - CANCEL ALARM (AT,XT286,PS)
 + AH = 07h
 +Return: alarm disabled
 +Note: does not disable the real-time clock's IRQ
 +SeeAlso: AH=06h,INT 70
 +----------1A08-------------------------------
 +INT 1A - TIME - SET RTC ACTIVATED POWER ON MODE (CONVERTIBLE)
 + AH = 08h
 + CH = hours in BCD
 + CL = minutes in BCD
 + DH = seconds in BCD
 +----------1A09-------------------------------
 +INT 1A - TIME - READ RTC ALARM TIME AND STATUS (CONV,PS30)
 + AH = 09h
 +Return: CH = hours in BCD
 + CL = minutes in BCD
 + DH = seconds in BCD
 + DL = alarm status
 +     00h alarm not enabled
 +     01h alarm enabled but will not power up system
 +     02h alarm will power up system
 +----------1A0A-------------------------------
 +INT 1A - TIME - READ SYSTEM-TIMER DAY COUNTER (XT2,PS)
 + AH = 0Ah
 +Return: CF set on error
 + CF clear if successful
 +     CX = count of days since Jan 1,1980
 +SeeAlso: AH=04h,AH=0Bh
 +----------1A0B-------------------------------
 +INT 1A - TIME - SET SYSTEM-TIMER DAY COUNTER (XT2,PS)
 + AH = 0Bh
 + CX = count of days since Jan 1,1980
 +Return: CF set on error
 + CF clear if successful
 +SeeAlso: AH=05h,AH=0Ah
 +----------1A10-------------------------------
 +INT 1A - NEC PC-9800 series - PRINTER - INITIALIZE
 + AH = 10h
 + ???
 +Return: ???
 +SeeAlso: AH=11h,AH=12h,INT 17/AH=01h
 +----------1A11-------------------------------
 +INT 1A - NEC PC-9800 series - PRINTER - OUTPUT CHARACTER
 + AH = 11h
 + ???
 +Return: ???
 +SeeAlso: AH=10h,AH=12h,INT 17/AH=00h
 +----------1A12-------------------------------
 +INT 1A - NEC PC-9800 series - PRINTER - SENSE STATUS
 + AH = 12h
 + ???
 +Return: ???
 +SeeAlso: AH=10h,AH=11h,INT 17/AH=02h
 +----------1A3601-----------------------------
 +INT 1A - WORD PERFECT v5.0 Third Party Interface - INSTALLATION CHECK
 + AX = 3601h
 +Return: DS:SI = routine to monitor keyboard input, immediately preceded by the
 + ASCIZ string "WPCORP\0"
 +Notes: WordPerfect 5.0 will call this interrupt at start up to determine if a
 +   third party product wants to interface with it.  The third party
 +   product must intercept this interrupt and return the address of a
 +   keyboard monitor routine.
 + Before checking for keyboard input, and after every key entered by the
 +   user, Word Perfect will call the routine whose address was provided
 +   in DS:SI with the following parameters:
 + Entry: AX = key code or 0
 + BX = WordPerfect state flag
 + Exit: AX = 0 or key code
 + BX = 0 or segment address of buffer with key codes
 + See the "WordPerfect 5.0 Developer's Toolkit" for further information.
 +SeeAlso: INT 16/AX=5500h
 +----------1A---------------------------------
 +INT 1A - SNAP.EXE - API
 + AH = function (60h-64h,69h-78h) (see individual entries below)
 + AL = number of words on stack (00h-09h or FFh; FFh is same as 00h)
 + STACK: appropriate arguments
 +Return: AX = status
 +     0000h successful
 +     FFFFh failed (invalid function/parameter)
 + STACK unchanged
 +----------1A6108-----------------------------
 +INT 1A - SNAP.EXE - ???
 + AX = 6108h
 + STACK: WORD index of ??? (0000h-0009h)
 + DWORD pointer to ???
 + WORD ???
 + DWORD pointer to ???
 + WORD ???
 + WORD ???
 +Return: ???
 + STACK unchanged
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +----------1A6205-----------------------------
 +INT 1A - SNAP.EXE - ???
 + AX = 6205h
 + STACK: WORD index of ??? (0000h-0009h)
 + DWORD pointer to ???
 + WORD ???
 + WORD ???
 +Return: ???
 + STACK unchanged
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +----------1A6308-----------------------------
 +INT 1A - SNAP.EXE - ???
 + AX = 6308h
 + STACK: 8 WORDs ???
 +Return: ???
 + STACK unchanged
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +----------1A6405-----------------------------
 +INT 1A - SNAP.EXE - ???
 + AX = 6405h
 + STACK: 5 WORDs ???
 +Return: ???
 + STACK unchanged
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +----------1A6900-----------------------------
 +INT 1A - SNAP.EXE - GET RESIDENT DATA SEGMENT
 + AX = 6900h
 +Return: AX = value used for DS by resident code
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +SeeAlso: AX=6F01h
 +----------1A6A01-----------------------------
 +INT 1A - SNAP.EXE - ???
 + AX = 6A01h
 + STACK: WORD ???
 +Return: AX = ???
 + ???
 + STACK unchanged
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +----------1A6B01-----------------------------
 +INT 1A - SNAP.EXE - SET ???
 + AX = 6B01h
 + STACK: WORD offset within ??? of ???
 +Return: STACK unchanged
 +Notes: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 + this call is a NOP if the specified offset is 0000h
 +----------1A6C04-----------------------------
 +INT 1A - SNAP.EXE - SET ???
 + AX = 6C04h
 + STACK: WORD offset within ??? of destination (nonzero)
 + WORD segment of source buffer
 + WORD offset of source buffer
 + WORD number of bytes to copy
 +Return: AX = offset of byte after last one copied to destination
 + STACK unchanged
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +SeeAlso: AX=6D04h
 +----------1A6D04-----------------------------
 +INT 1A - SNAP.EXE - GET ???
 + AX = 6D04h
 + STACK: WORD offset within ??? of source
 + WORD segment of destination buffer
 + WORD offset of destination buffer
 + WORD number of bytes to copy
 +Return: AX = offset of byte after last one copied from source
 + buffer filled
 + STACK unchanged
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +SeeAlso: AX=6C04h
 +----------1A6E01-----------------------------
 +INT 1A - SNAP.EXE - SET ???
 + AX = 6E01h
 + STACK: WORD new value for ???
 +Return: AX = old value of ???
 + STACK unchanged
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +----------1A6F01-----------------------------
 +INT 1A - SNAP.EXE - INSTALLATION CHECK
 + AX = 6F01h
 + STACK: WORD 0000h
 +Return: AX = status
 +     0000h SNAP is resident
 +     other SNAP not present
 + STACK unchanged
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP, and is
 +   required by PCVENUS (a network shell).  The combination of SNAP and
 +   PCVENUS allows the use of the Andrew File System as one or more
 +   networked drives.
 +SeeAlso: AX=6900h,AX=7400h
 +----------1A7002-----------------------------
 +INT 1A - SNAP.EXE - SET ???
 + AX = 7002h
 + STACK: WORD index of ??? (0000h-0009h)
 + WORD new value for ???
 +Return: AX = status
 +     0000h successful
 +     FFFFh failed (top word on stack not in range 00h-09h)
 + STACK unchanged
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +SeeAlso: AX=7101h
 +----------1A7101-----------------------------
 +INT 1A - SNAP.EXE - GET ???
 + AX = 7101h
 + STACK: WORD index of ??? (0000h-0009h)
 +Return: AX = ???
 + STACK unchanged
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +SeeAlso: AX=7002h
 +----------1A7202-----------------------------
 +INT 1A - SNAP.EXE - ???
 + AX = 7202h
 + STACK: WORD index of ??? (0000h-0009h)
 + WORD offset within resident data segment of ???
 +Return: AX = ???
 + STACK unchanged
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +----------1A7302-----------------------------
 +INT 1A - SNAP.EXE - ???
 + AX = 7302h
 + STACK: WORD index of ??? (0000h-0009h)
 + WORD offset within resident data segment of ???
 +Return: AX = ???
 + ???
 + STACK unchanged
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +----------1A7400-----------------------------
 +INT 1A - SNAP.EXE - GET VERSION
 + AX = 7400h
 +Return: AX = version (AH=major, AL=minor)
 +Notes: this call is only valid if SNAP is installed
 +    SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +SeeAlso: INT 1A/AX=6F01h
 +----------1A75-------------------------------
 +INT 1A - SNAP.EXE - ???
 + AH = 75h
 + AL = ???
 +Return: AX = ??? (0000h)
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +----------1A77-------------------------------
 +INT 1A - SNAP.EXE - ???
 + AH = 77h
 + AL = ??? (at least 01h)
 + STACK: WORD ???
 + ???
 +Return: ???
 + STACK unchanged
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +----------1A7802-----------------------------
 +INT 1A - SNAP.EXE - ???
 + AX = 7802h
 + STACK: WORD ???
 + WORD ???
 +Return: ???
 + STACK unchanged
 +Note: SNAP.EXE is a program written by IBM&CMU included with the Carnegie
 +   Mellon University customized version of FTP, Inc.'s PC/TCP.
 +----------1A7F-------------------------------
 +INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
 + AH = 7Fh
 + ???
 +Return: ???
 +SeeAlso: AH=80h,AH=83h,AH=85h
 +----------1A80-------------------------------
 +INT 1A - PCjr - SET UP SOUND MULTIPLEXOR
 + AH = 80h
 + AL = 00h source is 8253 channel 2
 +      01h source is cassette input
 +      02h source is I/O channel "Audio IN"
 +      03h source is sound generator chip
 +SeeAlso: AH=7Fh,AH=83h
 +----------1A8100-----------------------------
 +INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND - INSTALLATION CHECK
 + AX = 8100h
 +Return: AH > 80h if supported
 +----------1A83-------------------------------
 +INT 1A - Tandy 2500, Tandy 1000L series - START PLAYING DIGITAL SOUND
 + AH = 83h
 + AL = volume (0=lowest, 7=highest)
 + CX = number of bytes to play
 + DX = time between sound samples (multiples of 273 nanoseconds)
 + ES:BX -> sound data (array of 8-bit PCM samples)
 +Return: ???
 +Notes: this call returns immediately while the sound plays in the
 +   background
 + The sound data pointed to by ES:BX probably shouldn't cross a 64k
 +   boundary.  The BIOS appears to call INT 15/AX=91FBh when the sound
 +   device underflows to allow another INT 1A/AH=83h for seamless
 +   playing of long sounds.
 +SeeAlso: AH=84h,INT 15/AH=91h
 +----------1A84-------------------------------
 +INT 1A - Tandy 2500, Tandy 1000L series - STOP PLAYING DIGITAL SOUND
 + AH = 84h
 +Return: ???
 +SeeAlso: AH=83h,AH=85h
 +----------1A85-------------------------------
 +INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
 + AH = 85h
 + ???
 +Return: ???
 +SeeAlso: AH=7Fh,AH=83h
 +----------1AA0-------------------------------
 +INT 1A - Disk Spool II v2.07 - INSTALLATION CHECK
 + AH = A0h
 +Return: AH = B0h if installed
 +     AL = pending INT 1A/AH=D0h subfunction if nonzero???
 +     ES = code segment
 +     ES:BX -> name of current spool file
 +     ES:SI -> current despool file
 +     CL = 00h despooler is disabled
 +        = 41h despooler is enabled
 +     CH = 00h spooler is disabled
 +        = 41h spooler is enabled
 +     DL = 00h despooler is currently active printing a file
 +        = 41h despooler is standing by
 +     DH = 00h ???
 +        = 41h ???
 +     DI = 0000h ???
 + 0001h ???
 +Note: Disk Spool II is a shareware disk-based print spooler by Budget
 +   Software Company
 +SeeAlso: AH=ABh,AH=C0h,AH=D0h
 +----------1AAB-------------------------------
 +INT 1A - Disk Spool II v1.83 - INSTALLATION CHECK
 + AH = ABh
 +Return: AH = BAh if installed
 +     AL = pending INT 1A/AH=ADh subfunction if nonzero???
 +     ES = code segment
 +     ES:BX -> name of current spool file
 +     ES:SI -> current despool file
 +     CL = 00h despooler is disabled
 +        = 41h despooler is enabled
 +     CH = 00h spooler is disabled
 +        = 41h spooler is enabled
 +     DL = 00h despooler is currently active printing a file
 +        = 41h despooler is standing by
 +     DH = 00h ???
 +        = 41h ???
 +     DI = 0000h ???
 + 0001h ???
 +Note: Disk Spool II is a shareware disk-based print spooler by Budget
 +   Software Company
 +SeeAlso: AH=A0h,AH=ACh,AH=ADh
 +----------1AAC-------------------------------
 +INT 1A - Disk Spool II v1.83 - INSTALLATION CHECK
 + AH = ACh
 +Return: (see AH=ABh)
 +Note: this function is identical to AH=ABh
 +SeeAlso: AH=A0h,AH=ABh,AH=ADh
 +----------1AAD-------------------------------
 +INT 1A - Disk Spool II v1.83 - FUNCTION CALLS
 + AH = ADh
 + AL = function code
 +     02h enable spooler only
 +     03h enable the despooler
 +     04h disable the despooler
 +     08h inhibit popup menu
 +     09h enable popup menu
 +     0Ah ???
 +     0Bh disable the spooler
 +     0Ch start despooler after last successfully printed document???
 +     0Dh start despooler at the exact point where it last left off???
 +     0Eh pop up the menu
 +     0Fh ???
 +     11h ???
 +     14h ???
 +     15h ???
 +     16h ???
 +     17h ???
 +     18h ???
 +     19h ???
 +     20h clear file pointed to by the despooler???
 +     21h ???
 +     22h ???
 +     23h ???
 +     30h ???
 +Return: AH = 00h if successful
 +SeeAlso: AH=ABh
 +----------1AC0-------------------------------
 +INT 1A - Disk Spool II v2.07 - ALTERNATE INSTALLATION CHECK
 + AH = C0h
 +Return: (see AH=A0h)
 +Note: this call is identical to AH=A0h
 +SeeAlso: AH=A0h,AH=ABh,AH=D0h
 +----------1AD0-------------------------------
 +INT 1A - Disk Spool II v2.07 - FUNCTION CALLS
 + AH = D0h
 + AL = function code
 +     01h enable spooler and despooler
 +     02h enable spooler only
 +     03h enable despooler at beginning of file
 +     04h disable the despooler
 +     05h disable the despooler and spooler
 +     06h clear the spool file
 +     08h inhibit the popup menu
 +     09h enable the popup menu
 +     0Ah ??? (called by Disk Spool's INT 21 handler)
 +     0Bh disable the spooler
 +     0Ch start despooler after last successfully printed document
 +     0Dh start despooler at the exact point where it last left off
 +     0Eh pop up the menu
 +     0Fh ???
 +     11h start new spool file??? (called by Disk Spool's INT 21 handler
 +     when a program terminates)
 +     14h ???
 +     15h delete despool file and reset ???
 +     16h ??? (writes something to unknown file)
 +     17h ??? (writes something to despool file, then reads something
 +     else and ???)
 +     18h ??? (reads something from despool file, and then ???)
 +     19h ??? (creates/truncates spool file)
 +     20h clear file pointed to by the despooler
 +     21h ??? (writes something to unknown file)
 +     22h ??? (writes something to spool file if spooler/despooler using
 +     same file)
 +     23h ??? (opens/creates unknown file, then ???)
 +     30h ???
 +     31h ???
 +     32h beep
 +     33h append CRLF to spool file???
 +     34h ???
 +     35h ???
 +     36h ???
 +     37h append CRLF to spool file and start a new spool file???
 +     38h ???
 +     51h ??? (called by Disk Spool's INT 21 handler)
 +     52h ??? (called by Disk Spool's INT 21 handler)
 +     57h ???
 +SeeAlso: AH=A0h,AH=ADh
 +----------1AF7-------------------------------
 +INT 1A - RighTime v1.1 - TEMPORARILY DISABLE
 + AH = F7h
 +Notes: RighTime is a TSR by G.T. Becker which continuously adjusts the system
 +   time to correct for clock drift
 + any AH value from F0h-F7h or F9h-FEh will perform this function in
 +   version 1.1, but F7h is the function called by transient portion
 +SeeAlso: AH=F8h,AH=FFh"RighTime"
 +----------1AF8-------------------------------
 +INT 1A - RighTime v1.1 - ENABLE
 + AH = F8h
 +Notes: RighTime is a TSR by G.T. Becker which continuously adjusts the system
 +   time to correct for clock drift
 + RighTime is TeSseRact-compatible (see INT 2F/AX=5453h) and modifies its
 +   TeSseRact program identifier based on its current state: "RighTime"
 +   when enabled, "RighTim"F7h when disabled.
 +SeeAlso: AH=F7h,AH=FFh"RighTime"
 +----------1AFE-------------------------------
 +INT 1A - AT&T 6300 - READ TIME AND DATE
 + AH = FEh
 +Return: BX = day count (0 = Jan 1, 1984)
 + CH = hour
 + CL = minute
 + DH = second
 + DL = hundredths
 +SeeAlso: AH=FFh"AT&T",INT 21/AH=2Ah,INT 21/AH=2Ch
 +----------1AFF-------------------------------
 +INT 1A - AT&T 6300 - SET TIME AND DATE
 + AH = FFh
 + BX = day count (0 = Jan 1, 1984)
 + CH = hour
 + CL = minute
 + DH = second
 + DL = hundredths
 +Return: ???
 +SeeAlso: AH=FEh,INT 21/AH=2Bh,INT 21/AH=2Dh
 +----------1AFF-------------------------------
 +INT 1A - RighTime v1.1 - PERMANENTLY DISABLE
 + AH = FFh
 +Notes: RighTime is a TSR by G.T. Becker which continuously adjusts the system
 +   time to correct for clock drift
 + upon being permanently disabled, RighTime closes the file handle
 +   referencing its executable (which is updated with time correction
 +   information every two minutes while RighTime is enabled).
 +
 +===== INT 1B =====
 +
 +----------1B---------------------------------
 +INT 1B - KEYBOARD - CONTROL-BREAK HANDLER
 +   called when INT 09 determines that Control-Break has been pressed
 +Note: normally points to a short routine in DOS which sets the Ctrl-C flag,
 +   thus invoking INT 23h the next time DOS checks for Ctrl-C.
 +SeeAlso: INT 23
 +
 +===== INT 1C =====
 +
 +==== INT 1C - TIME - SYSTEM TIMER TICK ====
 +
 +called on each clock tick by the INT 08 handler
 +
 +<WRAP round box>
 +preferred interrupt to chain when a program needs to be invoked regularly
 +not available on NEC 9800-series PCs
 +</WRAP>
 +
 +SeeAlso: INT 08
 +
 +===== INT 1D =====
 +
 +==== INT 1D - SYSTEM DATA - VIDEO PARAMETER TABLES ====
 +
 +Note: default parameter table at F000h:F0A4h for 100% compatible BIOSes
 +
 +SeeAlso: INT 10/AH=00h
 +
 +Format of video parameters:
 +
 +^ Offset  ^  Size      ^ Description                                                  ^
 +|  00h    |  16 BYTEs  | 6845 register values for modes 00h and 01h                   |
 +|  10h    |  16 BYTEs  | 6845 register values for modes 02h and 03h                   |
 +|  20h    |  16 BYTEs  | 6845 register values for modes 04h and 05h                   |
 +|  30h    |  16 BYTEs  | 6845 register values for modes 06h and 07h                   |
 +|  40h    |  WORD      | bytes in video buffer for modes 00h and 01h                  |
 +|  42h    |  WORD      | bytes in video buffer for modes 02h and 03h                  |
 +|  44h    |  WORD      | bytes in video buffer for modes 04h and 05h                  |
 +|  46h    |  WORD      | bytes in video buffer for modes 06h and 07h                  |
 +|  48h    |  8 BYTEs   | columns on screen for each of modes 00h through 07h          |
 +|  50h    |  8 BYTEs   | CRT controller mode bytes for each of modes 00h through 07h  |
 +
 +===== INT 1E =====
 +
 +==== INT 1E - SYSTEM DATA - DISKETTE PARAMETERS ====
 +
 +Note: default parameter table at F000h:EFC7h for 100% compatible BIOSes
 +
 +SeeAlso: INT 13/AH=0Fh,INT 41
 +
 +Format of diskette parameter table:
 +
 +^ Offset  ^ Size  ^ Description                                                                                ^
 +| 00h     | BYTE  | first specify byte bits\\   * 7-4: step rate \\    3-0: head unload time (0Fh = 240 ms)  |
 +| 01h     | BYTE  | second specify byte\\  * bits 7-1: head load time (01h = 4 ms)\\  * 0: non-DMA mode (always 0) |
 +| 02h     | BYTE  | delay until motor turned off (in clock ticks)                                              |
 +| 03h     | BYTE  | bytes per sector (00h = 128, 01h = 256, 02h = 512, 03h = 1024)                             |
 +| 04h     | BYTE  | sectors per track                                                                          |
 +| 05h     | BYTE  | length of gap between sectors (2Ah for 5.25", 1Bh for 3.5"                               |
 +| 06h     | BYTE  | data length (ignored if bytes-per-sector field nonzero)                                    |
 +| 07h     | BYTE  | gap length when formatting (50h for 5.25", 6Ch for 3.5"                                  |
 +| 08h     | BYTE  | format filler byte (default F6h)                                                           |
 +| 09h     | BYTE  | head settle time in milliseconds                                                           |
 +| 0Ah     | BYTE  | motor start time in 1/8 seconds                                                            |
 +
 +===== INT 1F =====
 +
 +==== INT 1F - SYSTEM DATA - 8x8 GRAPHICS FONT ====
 +
 +points at 1024 bytes of graphics data, 8 bytes for each character 80h-FFh
 +
 +<WRAP round box>
 +graphics data for characters 00h-7Fh stored at F000h:FA6Eh in 100% compatible BIOSes
 +</WRAP>
 +
 +SeeAlso: INT 10/AX=5000h,INT 43
 +
 +===== INT 20 =====
 +
 +==== INT 20 - Minix - SEND/RECEIVE MESSAGE ====
 +<code>
 + AX = process ID of other process
 + BX -> message
 + CX = 1 send
 +      2 receive
 +      3 send&receive
 +</code>
 +
 +<WRAP round box>
 +the message contains the system call number (numbered as in V7 Unix(tm)) and the call parameters
 +</WRAP>
 +
 +==== INT 20 - DOS 1+ - TERMINATE PROGRAM ====
 +<code>
 + CS = PSP segment
 +</code>
 +<code>
 +Return: never
 +</code>
 +
 +<WRAP round box>
 +(see notes for INT 21/AH=00h)
 +</WRAP>
 +
 +SeeAlso: INT 21/AH=00h,INT 21/AH=4Ch