Outils pour utilisateurs

Outils du site


back2root:ibm-pc-ms-dos:interrupts:old:ms_interrupt_list-16

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
Prochaine révision
Révision précédente
back2root:ibm-pc-ms-dos:interrupts:old:ms_interrupt_list-16 [2023/01/05 04:01] – supprimée - modification externe (Unknown date) 127.0.0.1back2root:ibm-pc-ms-dos:interrupts:old:ms_interrupt_list-16 [2023/01/19 21:03] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +====== MSDOS - Interrupt List 16h ======
 +
 +
 +===== 00h - KEYBOARD - GET KEYSTROKE =====
 +<code>
 + AH = 00h
 +</code>
 +<code>
 +Return: AH = BIOS scan code
 + AL = ASCII character
 +</code>
 +
 +<WRAP round box>
 +on extended keyboards, this function discards any extended keystrokes, returning only when a non-extended keystroke is available
 +
 +the BIOS scan code is usually, but not always, the same as the hardware scan code processed by INT 09.  It is the same for ASCII keystrokes and most unshifted special keys (F-keys, arrow keys, etc.), but differs for shifted special keys.
 +</WRAP>
 +SeeAlso: [[back2root:ibm-pc-ms-dos:hardware:informations:keyboard-make-code|Keyboard ScanCode]] AH=01h,AH=05h,AH=10h,AH=20h,INT 18/AH=00h
 +
 +===== 01h - KEYBOARD - CHECK FOR KEYSTROKE =====
 +<code>
 + AH = 01h
 +</code>
 +<code>
 +Return: ZF set if no keystroke available
 + ZF clear if keystroke available
 +     AH = BIOS scan code
 +     AL = ASCII character
 +</code>
 +<WRAP round box>
 +if a keystroke is present, it is not removed from the keyboard buffer; however, any extended keystrokes which are not compatible with 83/84-key keyboards are removed in the process of checking whether a non-extended keystroke is available
 +</WRAP>
 +
 +SeeAlso: AH=00h,AH=11h,AH=21h,INT 18/AH=01h
 +
 +===== 02h - KEYBOARD - GET SHIFT FLAGS =====
 +<code>
 + AH = 02h
 +</code>
 +<code>
 +Return: AL = shift flags
 +     bit 7: Insert active
 + 6: CapsLock active
 + 5: NumLock active
 + 4: ScrollLock active
 + 3: Alt key pressed (either Alt on 101/102-key keyboards)
 + 2: Ctrl key pressed (either Ctrl on 101/102-key keyboards)
 + 1: left shift key pressed
 + 0: right shift key pressed
 +</code>
 +
 +SeeAlso: AH=12h,AH=22h,INT 18/AH=02h
 +===== 03h - KEYBOARD - SET TYPEMATIC RATE AND DELAY =====
 +<code>
 + AH = 03h
 + AL = subfunction
 +     00h set default delay and rate (PCjr and some PS/2)
 +     01h increase delay before repeat (PCjr)
 +     02h decrease repeat rate by factor of 2 (PCjr)
 +     03h increase delay and decrease repeat rate (PCjr)
 +     04h turn off typematic repeat (PCjr and some PS/2)
 +     05h set repeat rate and delay (AT,PS)
 + BH = delay value (00h = 250ms to 03h = 1000ms)
 + BL = repeat rate (00h=30/sec to 0Ch=10/sec [def] to 1Fh=2/sec)
 +     06h get current typematic rate and delay (newer PS/2s)
 + Return: BL = repeat rate (see above)
 + BH = delay (see above)
 +</code>
 +<WRAP round box>
 +use INT 16/AH=09h to determine whether some of the subfunctions are supported
 +</WRAP>
 +SeeAlso: INT 16/AH=09h
 +===== 04h - KEYBOARD - SET KEYCLICK (PCjr only) =====
 +<code>
 + AH = 04h
 + AL = keyclick state
 +     00h off
 +     01h on
 +</code>
 +
 +SeeAlso: AH=03h
 +
 +===== 05h =====
 +
 +==== 05h - KEYBOARD - STORE KEYSTROKE IN KEYBOARD BUFFER (AT/PS w enh keybd only) ====
 +<code>
 + AH = 05h
 + CH = scan code
 + CL = ASCII character
 +</code>
 +<code>
 +Return: AL = 00h if successful
 +      01h if keyboard buffer full
 +</code>
 +<WRAP round box>
 +under DESQview, the following "keystrokes" invoke the following actions when they are read from the keyboard buffer:
 +<code>
 +38FBh or FB00h switch to next window (only if main menu popped up)
 +38FCh or FC00h pop up DESQview main menu
 +38FEh or FE00h close the current window
 +38FFh or FF00h pop up DESQview learn menu
 +</code>
 +</WRAP>
 +
 +SeeAlso: AH=00h,AH=71h,AH=FFh,INT 15/AX=DE10h
 +==== 05h - KEYBOARD - SELECT KEYBOARD LAYOUT (PCjr only) ====
 +<code>
 + AH = 05h
 + AL = function
 +     01h set keyboard layout to French
 +     02h set keyboard layout to German
 +     03h set keyboard layout to Italian
 +     04h set keyboard layout to Spanish
 +     05h set keyboard layout to UK
 +     80h check if function supported
 +     Return: AL <> 80h if supported
 +</code>
 +<code>
 +Return: ???
 +</code>
 +<WRAP round box>
 +called by DOS 3.2 KEYBxx.COM
 +</WRAP>
 +
 +SeeAlso: AH=92h,AH=A2h
 +
 +===== 09h - KEYBOARD - GET KEYBOARD FUNCTIONALITY =====
 +<code>
 + AH = 09h
 +</code>
 +<code>
 +Return: AL = keyboard functions supported
 +     bit 7: reserved
 +     bit 6: 
 +     bit 5:
 +     bit 4: INT 16/AH=0Ah supported
 +     bit 3: INT 16/AX=0306h supported
 +     bit 2: INT 16/AX=0305h supported
 +     bit 1: INT 16/AX=0304h supported
 +     bit 0: INT 16/AX=0300h supported
 +</code>
 +<WRAP round box>
 +this function is only available if bit 6 of the second feature byte returned by INT 15/AH=C0h is set
 +</WRAP>
 +
 +SeeAlso: AH=03h,AH=0Ah,INT 15/AH=C0h
 +===== 0Ah - KEYBOARD - GET KEYBOARD ID =====
 +
 + AH = 0Ah
 +Return: BX = keyboard ID
 +Note: check return value from AH=09h to determine whether this function is
 +   supported
 +SeeAlso: AH=09h
 +===== 10h - KEYBOARD - GET ENHANCED KEYSTROKE (enhanced kbd support only) =====
 +<code>
 + AH = 10h
 +</code>
 +<code>
 +Return: AH = BIOS scan code
 + AL = ASCII character
 +</code>
 +<WRAP round box>
 +
 +if no keystroke is available, this function waits until one is placed in the keyboard buffer
 +
 +the BIOS scan code is usually, but not always, the same as the hardware scan code processed by INT 09.  It is the same for ASCII keystrokes and most unshifted special keys (F-keys, arrow keys, etc.), but differs for shifted special keys.
 +
 + unlike AH=00h, this function does not discard extended keystrokes
 +</WRAP>
 +
 +SeeAlso: AH=00h,AH=11h,AH=20h
 +
 +===== 11h - KEYBOARD - CHECK FOR ENHANCED KEYSTROKE (enh kbd support only) ======
 + AH = 11h
 +Return: ZF set if no keystroke available
 + ZF clear if keystroke available
 +     AH = BIOS scan code
 +     AL = ASCII character
 +Notes: if a keystroke is available, it is not removed from the keyboard buffer
 + unlike AH=01h, this function does not discard extended keystrokes
 +SeeAlso: AH=01h,AH=10h,AH=21h
 +
 +===== 12h - KEYBOARD - GET EXTENDED SHIFT STATES (enh kbd support only) =====
 + AH = 12h
 +Return: AL = shift flags 1 (same as returned by AH=02h)
 +     bit 7: Insert active
 + 6: CapsLock active
 + 5: NumLock active
 + 4: ScrollLock active
 + 3: Alt key pressed (either Alt on 101/102-key keyboards)
 + 2: Ctrl key pressed (either Ctrl on 101/102-key keyboards)
 + 1: left shift key pressed
 + 0: right shift key pressed
 + AH = shift flags 2
 +     bit 7: SysRq key pressed
 + 6: CapsLock pressed
 + 5: NumLock pressed
 + 4: ScrollLock pressed
 + 3: right Alt key pressed
 + 2: right Ctrl key pressed
 + 1: left Alt key pressed
 + 0: left Ctrl key pressed
 +Notes: AL bit 3 set only for left Alt key on many machines
 + AH bits 7 through 4 always clear on a Compaq SLT/286
 +SeeAlso: AH=02h,AH=22h,AH=51h
 +===== 20h - KEYBOARD - GET 122-KEY KEYSTROKE???  =====
 + AH = 20h
 +Return: ??? see AH=10h
 +Note: use AH=09h to determine whether this function is supported
 +SeeAlso: AH=00h,AH=10h,AH=21h
 +===== 21h - KEYBOARD - CHECK FOR 122-KEY KEYSTROKE??? =====
 + AH = 21h
 +Return: ??? see AH=11h
 +Note: use AH=09h to determine whether this function is supported
 +SeeAlso: AH=01h,AH=11h,AH=20h
 +===== 22h - KEYBOARD - GET 122-KEY SHIFT STATUS??? =====
 + AH = 22h
 +Return: ??? see AH=12h
 +Note: use AH=09h to determine whether this function is supported
 +SeeAlso: AH=02h,AH=12h
 +----------164252-----------------------------
 +INT 16 - TEXTCAP 2.0 - INSTALLATION CHECK
 + AX = 4252h
 +Return: AX = 5242h if installed
 +Note: TEXTCAP 2.0 is a heavily modified (by Gisbert W. Selke) version of the
 +   PC Magazine utility CAPTURE written by Tom Kihlken
 +SeeAlso: AX=4253h,AX=4254h
 +----------164253-----------------------------
 +INT 16 - TEXTCAP 2.0 - UNINSTALL
 + AX = 4253h
 +Return: AX = segment of resident code
 +Notes: the uninstall code does not check whether interrupt vectors have been
 +   chained by other programs
 + the caller must free the main memory block (using the returned segment)
 +SeeAlso: AX=4252h,AX=4254h
 +----------164254-----------------------------
 +INT 16 - TEXTCAP 2.0 - DUMP TEXT SCREEN TO FILE
 + AX = 4254h
 +Return: AX = status
 +     4254h if screen dump will be written as soon as disk becomes idle
 +     5442h if screen dump written
 +SeeAlso: AX=4252h,AX=4253h
 +----------164500-----------------------------
 +INT 16 - Shamrock Software EMAIL - GET STATUS
 + AX = 4500h
 + DL = port number (01h = COM1)
 + ES:BX -> 13-byte buffer for ASCIZ name
 +Return: AX = 4D00h if EMAIL installed on specified port
 +     ES:BX -> "" if no connection
 +   -> "*" if connection but caller has not identified name
 +   -> name otherwise
 +     CX = version (CH = major, CL = minor)
 +     DL = privilege level of user (00h = guest)
 +     DH = chosen language (00h German, 01h English)
 +SeeAlso: AX=4501h,AX=4502h
 +----------164501-----------------------------
 +INT 16 - Shamrock Software EMAIL - GET ELAPSED ONLINE TIME AND MAXIMUM TIME
 + AX = 4501h
 + DL = port number (01h = COM1)
 +Return: AX = 4D00h if EMAIL installed on specified port
 +     BX = maximum connect time in clock ticks
 +     CX = maximum connect time for guests (without name) in clock ticks
 +     DX = elapsed connect time of current user in clock ticks
 +SeeAlso: AX=4500h
 +----------164502-----------------------------
 +INT 16 - Shamrock Software EMAIL - GET CURRENT COMMUNICATIONS PARAMETERS
 + AX = 4502h
 + DL = port number (01h = COM1)
 +Return: AX = 4D00h if EMAIL installed on specified port
 +     BL = current value of serial port's Line Control Register
 +     BH = flags
 + bit 0: ISO code
 +     1: pause
 +     2: linefeed
 +     3: ANSI sequences
 +     CX = selected country code (33 = France, 49 = Germany, etc)
 +     DX = baudrate divisor (115200/DX = baudrate)
 +SeeAlso: AX=4500h
 +----------164503-----------------------------
 +INT 16 - Shamrock Software EMAIL - SPECIFY COMMAND-WORD FOR USER FUNCTION
 + AX = 4503h
 + DL = port number (01h = COM1)
 + DH = maximum execution time in clock ticks (00h = 5 seconds)
 + ES:BX -> ASCIZ string with new user command-word
 +Return: AX = 4D00h if EMAIL installed on specified port
 +Notes: a single user command (consisting of only uppercase letters and digits)
 +   may be defined, and remains valid until it is overwritten or the
 +   EMAIL program terminates; the user command must be activated by
 +   calling AX=4504h at least once.
 + an existing command word may be redefined with this function
 +SeeAlso: AX=4504h,AX=4505h
 +----------164504-----------------------------
 +INT 16 - Shamrock Software EMAIL - CHECK FOR USER FUNCTION COMMAND-WORD
 + AX = 4504h
 + DL = port number (01h = COM1)
 + ES:BX -> 80-byte buffer for ASCIZ user input line
 +Return: AX = 4D00h if EMAIL installed on specified port
 +     DL = flags
 + bit 0: user function supported (always set)
 +     1: user entered user-function command word
 +     if DL bit 1 set,
 + ES:BX buffer contains line entered by user which begins with
 + the defined command word and has been converted to all
 + caps
 +Note: caller must process the returned commandline and invoke AX=4505h
 +   within five seconds with the result of that processing
 +SeeAlso: AX=4503h,AX=4505h
 +----------164505-----------------------------
 +INT 16 - Shamrock Software EMAIL - SEND RESULT OF USER FUNCTION
 + AX = 4505h
 + DL = port number (01h = COM1)
 + DH = error flag
 +     bit 3: set on error
 + ES:BX -> ASCIZ text to return to user, max 1024 bytes
 +Return: AH = 4Dh if EMAIL installed on specified port
 + AL = status
 +     00h successful
 +     02h unable to perform function (timeout, prev call not complete)
 +     other error
 +Notes: if the error flag in DH is set, the string is not sent and an error
 +   message is generated instead; if this function is not called within
 +   five seconds of AX=4504h, EMAIL automatically generates an error
 +   message
 + the string is copied into an internal buffer, allowing this function's
 +   caller to continue immediately
 +SeeAlso: AX=4503h,AX=4504h,INT 17/AX=2400h
 +----------164506-----------------------------
 +INT 16 - Shamrock Software EMAIL - MONITOR XMODEM DOWNLOAD
 + AX = 4506h
 + DL = port number (01h = COM1)
 + ES:BX -> 13-byte buffer for ASCIZ filename
 +Return: AX = 4D00h if EMAIL installed on specified port
 +     DH = Xmodem status
 + 00h no XGET command given
 + 01h XGET in progress
 + 02h XGET completed successfully
 +     ES:BX buffer filled with last filename given to XGET command
 + (without path)
 +Note: DH=02h will only be returned once per XGET; subsequent calls will
 +   return DH=00h
 +SeeAlso: AX=4500h,INT 17/AX=2408h
 +----------165000-----------------------------
 +INT 16 - KEYBOARD - AX PC - SET KEYBOARD 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,INT 10/AX=5000h,INT 17/AX=5000h
 +----------165001-----------------------------
 +INT 16 - KEYBOARD - AX PC - GET KEYBOARD COUNTRY CODE
 + AX = 5001h
 +Return: AL = status
 +     00h successful
 +     BX = country code
 +     02h error
 +SeeAlso: AX=5000h,INT 10/AX=5001h,INT 17/AX=5001h
 +----------1651-------------------------------
 +INT 16 - KEYBOARD - AX PC - READ SHIFT KEY STATUS
 + AH = 51h
 +Return: AL = standard shift key states (see AH=12h)
 + AH = Kana lock (00h off, 01h on)
 +SeeAlso: AH=02h,AH=12h,AH=22h
 +----------165500-----------------------------
 +INT 16 - Microsoft Word internal - MICROSOFT WORD COOPERATION WITH TSR
 + AX = 5500h
 +Return: AX = 4D53h ('MS') if keyboard TSR present
 +Notes: during startup, Microsoft Word tries to communicate with any TSRs
 +   that are present through this call.
 + if the return is not 4D53h, Word installs its own INT 09 and INT 16
 +   handlers; otherwise it assumes that the TSR will handle the keyboard
 +SeeAlso: INT 1A/AX=3601h
 +----------1655FF-----------------------------
 +INT 16 - Swap Utilities - ???
 + AX = 55FFh
 + BX >= 0004h
 + CX = function
 +     0000h set ??? flag
 +     other clear ??? flag
 +Note: present in SWAPSH and SWAPDT v1.77j, distributed with PC Tools 7
 +----------166969BX6968-----------------------
 +INT 16 - PC Tools v5.1+ BACKTALK - UNHOOK
 + AX = 6969h
 + BX = 6968h
 +Return: resident code unhooked, but not removed from memory
 +----------166969BX6969-----------------------
 +INT 16 - PC Tools v5.1+ BACKTALK - INSTALLATION CHECK
 + AX = 6969h
 + BX = 6969h
 + DX = 0000h
 +Return: DX nonzero if installed
 +     BX = CS of resident code
 +     DX = PSP segment of resident code
 +     DS:SI -> ASCIZ identification string "CPoint Talk"
 +----------166F00BX0000-----------------------
 +INT 16 - HP Vectra - ??? - INSTALLATION CHECK
 + AX = 6F00h
 + BX = 0000h
 +Return: BX = 4850h if present
 +Note: called by recent MS Mouse drivers
 +----------166F0D-----------------------------
 +INT 16 - HP Vectra - ???
 + AX = 6F0Dh
 + ???
 +Return: ???
 +Note: called by MS Windows HPSYSTEM.DRV and HPEBIOS.386
 +SeeAlso: AX=6F0Eh
 +----------166F0E-----------------------------
 +INT 16 - HP Vectra - ???
 + AX = 6F0Eh
 + ???
 +Return: ???
 +Note: called by MS Windows HPSYSTEM.DRV and HPEBIOS.386
 +SeeAlso: AX=6F0Dh
 +----------1670-------------------------------
 +INT 16 - FAKEY.COM - INSTALLATION CHECK
 + AH = 70h
 +Return: AX = 1954h if installed
 +Note: FAKEY is a keystroke faking utility by System Enhancement Associates
 +----------1671-------------------------------
 +INT 16 - FAKEY.COM - PUSH KEYSTROKES
 + AH = 71h
 + CX = number of keystrokes
 + DS:SI -> array of words containing keystrokes to be returned by AH=00h
 +Note: FAKEY is a keystroke faking utility by System Enhancement Associates
 +SeeAlso: AH=05h,AH=72h
 +----------1672-------------------------------
 +INT 16 - FAKEY.COM - CLEAR FAKED KEYSTROKES
 + AH = 72h
 +Note: FAKEY is a keystroke faking utility by System Enhancement Associates
 +SeeAlso: AH=71h
 +----------1673-------------------------------
 +INT 16 - FAKEY.COM - PLAY TONES
 + AH = 73h
 + CX = number of tones to play
 + DS:SI -> array of tones (see below)
 +Note: FAKEY is a keystroke faking utility by System Enhancement Associates
 +SeeAlso: INT 15/AX=1019h
 +
 +Format of tone array entries:
 +Offset Size Description
 + 00h WORD divisor for timer channel 2
 + 02h WORD duration in clock ticks
 +----------1675-------------------------------
 +INT 16 - pcANYWHERE III - SET TICK COUNT FOR SCANNING
 + AH = 75h
 + AL = number of ticks between checks for new screen changes
 +----------1676-------------------------------
 +INT 16 - pcANYWHERE III - SET ERROR CHECKING TYPE
 + AH = 76h
 + AL = error checking type
 +     00h none
 +     01h fast
 +     02h slow
 +----------1677-------------------------------
 +INT 16 - pcANYWHERE III - LOG OFF
 + AH = 77h
 + AL = mode
 +     00h wait for another call
 +     01h leave in Memory Resident Mode
 +     02h leave in Automatic Mode
 +     FFh leave in current operating mode
 +----------167761-----------------------------
 +INT 16 - WATCH.COM v2.x-v3.0 - INSTALLATION CHECK
 + AX = 7761h ('wa')
 +Return: AX = 5741h ('WA') if installed
 +Note: WATCH.COM is part of the "TSR" package by Kim Kokkonen
 +SeeAlso: INT 21/AX=7761h
 +----------167788BX7789-----------------------
 +INT 16 - PC Magazine PUSHDIR.COM - INSTALLATION CHECK
 + AX = 7788h
 + BX = 7789h
 + DS:SI -> signature "PUSHDIR VERSION 1.0"
 +Return: AX = 7789h if installed and signature correct
 + BX = 7788h
 + SI destroyed       
 +----------1679-------------------------------
 +INT 16 - pcANYWHERE III - CHECK STATUS
 + AH = 79h
 +Return: AX = status
 +     FFFFh if resident and active
 +     FFFEh if resident but not active
 +     FFFDh if in Memory Resident mode
 +     FFFCh if in Automatic mode
 +     other value if not resident
 +SeeAlso: AX=7B00h,INT 21/AX=2B44h
 +----------167A-------------------------------
 +INT 16 - pcANYWHERE III - CANCEL SESSION
 + AH = 7Ah
 +----------167B00-----------------------------
 +INT 16 - pcANYWHERE III - SUSPEND
 + AX = 7B00h
 +SeeAlso: AH=79h,AX=7B01h
 +----------167B01-----------------------------
 +INT 16 - pcANYWHERE III - RESUME
 + AX = 7B01h
 +SeeAlso: AH=79h,AX=7B00h
 +----------167C-------------------------------
 +INT 16 - pcANYWHERE III - GET PORT CONFIGURATION
 + AH = 7Ch
 +Return: AH = port number
 + AL = baud rate
 +     00h = 50 baud
 +     01h = 75 baud
 +     02h = 110 baud
 +     03h = 134.5 baud
 +     04h = 150 baud
 +     05h = 300 baud
 +     06h = 600 baud
 +     07h = 1200 baud
 +     08h = 1800 baud
 +     09h = 2000 baud
 +     0Ah = 2400 baud
 +     0Bh = 4800 baud
 +     0Ch = 7200 baud
 +     0Dh = 9600 baud
 +     0Eh = 19200 baud
 +----------167D-------------------------------
 +INT 16 - pcANYWHERE III - GET/SET TERMINAL PARAMETERS
 + AH = 7Dh
 + AL = subfunction
 +     00h set terminal parameters
 +     01h get terminal parameters
 +     02h get configuration header and terminal parameters
 + DS:CX -> terminal parameter block
 +----------167E-------------------------------
 +INT 16 - pcANYWHERE III - COMMUNICATIONS I/O THROUGH PORT
 + AH = 7Eh
 + AL = subfunction
 +     01h port input status
 + Return AX = 0 if no characer ready,
 +        AX = 1 if character ready
 +     02h port input character
 + Return AL = received character
 +     03h port output character in CX
 +     11h hang up phone
 +----------167F-------------------------------
 +INT 16 - pcANYWHERE III - SET KEYBOARD/SCREEN MODE
 + AH = 7Fh
 + AL = subfunction
 +     00h enable remote keyboard only
 +     01h enable host keyboard only
 +     02h enable both keyboards
 +     08h display top 24 lines
 +     09h display bottom 24 lines
 +     10h Hayes modem
 +     11h other modem
 +     12h direct connect
 +----------1680-------------------------------
 +INT 16 - MAKEY.COM - INSTALLATION CHECK
 + AH = 80h
 +Return: AX = 1954h if installed
 +Note: MAKEY is a utility by System Enhancement Associates
 +----------168765BX4321-----------------------
 +INT 16 - AT.COM version 8/26/87 - API
 + AX = 8765h
 + BX = 4321h
 + CX = ??? or FFFFh
 + if CX = FFFFh
 + DX = number of event to remove or FFFFh
 +Return: ES:BX -> event record array
 +Note: AT.COM is a resident scheduler by Bill Frolik
 +
 +Format of event record:
 +Offset Size Description
 + 00h BYTE in-use flag (00h free, 01h in use, FFh end of array)
 + 01h BYTE day of date on which to trigger
 + 02h BYTE month of date on which to trigger
 + 03h BYTE trigger time, minute
 + 04h BYTE trigger time, hour
 + 05h WORD offset of command to be executed
 +----------1692-------------------------------
 +INT 16 - ???
 + AH = 92h
 +Return: AH <= 80h if ???
 +Note: called by DOS 3.2 KEYBxx.COM and DOS 5.0 KEYB.COM
 +SeeAlso: AH=05h"PCjr",AH=A2h
 +----------1699-------------------------------
 +INT 16 - SCOUT v5.4 - GET ???
 + AH = 99h
 +Return: AX = ABCDh
 + BX:CX -> ??? (appears to be start of PSP for resident portion)
 +Note: Scout is a memory-resident file manager by New-Ware
 +SeeAlso: AH=9Eh
 +----------169E-------------------------------
 +INT 16 - SCOUT v5.4 - INSTALLATION CHECK
 + AH = 9Eh
 +Return: AX = ABCDh if installed
 +Note: Scout is a memory-resident file manager by New-Ware
 +SeeAlso: AH=99h
 +----------16A2-------------------------------
 +INT 16 - ???
 + AH = A2h
 +Return: AH <= 80h if ???
 +Note: this function is called by DOS 5.0 KEYB.COM
 +SeeAlso: AH=92h
 +----------16AA-------------------------------
 +INT 16 - PTxxx.COM - (xxx=CGA,EGA,VGA,HER...) CALL GATE FOR GRAPHICS
 + AH = AAh
 + Various registers set up by high level language.
 +Return: Graphics performed
 +Note: PT stands for Paint Tools which is a graphics library for Turbo Pascal,
 +   Modula 2 and others from DataBiten in Sweden. The library is
 +   installed as a memory resident driver.
 +----------16CA--BX736B-----------------------
 +INT 16 - CtrlAlt Associates STACKEY.COM v3.00 - API
 + AH = CAh
 + BX = 736Bh ("sk")
 + CX = 736Bh
 + AL = function
 +     00h installation check
 +     Return: DX = words available in keyboard buffer
 +     01h place keystroke in buffer
 +     DX = keystroke (DH = scan code, DL = ASCII character)
 + Return: DX = words available in keyboard buffer
 +     FFFFh on error
 +     02h flush STACKEY and BIOS keyboard buffers
 +Return: AX = CAFFh if installed
 +     BX = segment of resident code
 +     CX = STACKEY version (CH = major, CL = minor)
 +Note: STACKEY is a shareware keyboard-input faking TSR
 +----------16CA00BX6570-----------------------
 +INT 16 - CtrlAlt Associates EGAPAL.COM v1.00 - INSTALLATION CHECK
 + AX = CA00h
 + BX = 6570h ("ep")
 + CX = 6570h
 +Return: AX = CAFFh if installed
 +     BX = segment of resident code
 +     CX = ??? (0090h)
 +Note: EGAPAL is a TSR supplied with STACKEY which makes EGA palette settings
 +   permanent across mode switches
 +SeeAlso: AX=CA00h/BX=7670h
 +----------16CA--BX7670-----------------------
 +INT 16 - CtrlAlt Associates VGAPAL.COM v1.00 - INSTALLATION CHECK
 + AX = CA00h
 + BX = 7670h ("vp")
 + CX = 7670h
 +Return: AX = CAFFh if installed
 +     BX = segment of resident code
 +     CX = ??? (0090h)
 +Note: VGAPAL is a TSR supplied with STACKEY which makes VGA palette settings
 +   permanent across mode switches
 +SeeAlso: AX=CA00h/BX=6570h
 +----------16E0E0-----------------------------
 +INT 16 - TurboPower TSRs - ALTERNATE INSTALLATION CHECK
 + AX = E0E0h
 +Return: AX = 1F1Fh if installed
 +     DWORD 0040h:00F0h -> last data block in TSR list (see AX=F0F0h)
 +Note: the returned TSR list provides support for communication among TSRs
 +   built with TurboPower's Turbo Professional and Object Professional
 +   libraries for Turbo Pascal
 +SeeAlso: AX=F0F0h
 +----------16ED--BHED-------------------------
 +INT 16 - BORLAND TURBO LIGHTNING - API
 + AH = EDh
 + BH = EDh
 + BL = function
 +     00h installation check
 + Return: AX = 5205h
 + CH = major version
 + CL = minor version
 +     01h ???
 +     02h get resident CS
 + Return: AX = code segment of resident portion
 +     03h get resident ???
 + Return: AX = offset of some buffer in resident code seg
 +     04h ???
 +     05h set ???
 + AL = 0 to 0Ch
 + Return: AX = status
 +     0000h if OK
 +     0001h if out of range.
 +     06h ???
 +     07h ???
 +     08h ???
 + AL = char???
 + CX = ???
 + DX = ???
 + Return: AX = 0, 1 or 2
 +     09h ???
 +     0Ah ???
 + CX = ???
 + DX = ???
 + Return: AX = ???
 +     0Bh ???
 + DS:SI -> ???
 + Return: AX = 0, 40h, 80h
 +     0Ch ???
 + DS:SI -> ???
 + Return: AH = 0
 + AL = ???
 +     0Dh set ???
 + (sets an internal flag)
 +     0Eh ???
 + DS:SI -> ???
 + Return: AX = 0, 1 or 2.
 +     0Fh ???
 +     10h ???
 +Notes: AX in general returns an error code from most functions.
 +----------16F0-------------------------------
 +INT 16 - Compaq 386 - SET CPU SPEED
 + AH = F0h
 + AL = speed
 +     00h equivalent to 6 MHz 80286 (COMMON)
 +     01h equivalent to 8 MHz 80286 (FAST)
 +     02h full 16 MHz (HIGH)
 +     03h toggles between 8 MHz-equivalent and speed set by system board
 + switch (AUTO or HIGH)
 +     08h full 16 MHz except 8 MHz-equivalent during floppy disk access
 +     09h specify speed directly
 + CX = speed value, 1 (slowest) to 50 (full), 3 ~= 8088
 +SeeAlso: AH=F1h,AH=F3h
 +----------16F0F0-----------------------------
 +INT 16 - TurboPower TSRs - INSTALLATION CHECK
 + AX = F0F0h
 +Return: AX = 0F0Fh if installed
 +     ES:DI -> last data block in TSR list
 +Note: the returned TSR list provides support for communication among TSRs
 +   built with TurboPower's Turbo Professional and Object Professional
 +   libraries for Turbo Pascal
 +SeeAlso: AX=E0E0h
 +
 +Format of data block:
 +Offset Size Description
 + 00h DWORD pointer to program tag (counted ASCII string)
 + 04h WORD interface version number (0400h)
 + 06h DWORD pointer to command entry point
 + 0Ah DWORD pointer to previous data block (0000h:0000h if none)
 + 0Eh DWORD pointer to next data block (0000h:0000h if none)
 +---swappable TSRs only---
 + 12h DWORD pointer to swapping data
 + 16h DWORD pointer to user data
 + more???
 +----------16F1-------------------------------
 +INT 16 - Compaq 386 - READ CURRENT CPU SPEED
 + AH = F1h
 +Return: AL = speed code (see AH=F0h)
 +      if AL = 09h, CX = speed code
 +SeeAlso: AH=F0h,AH=F3h
 +----------16F2-------------------------------
 +INT 16 - Compaq 386 - DETERMINE ATTACHED KEYBOARD TYPE
 + AH = F2h
 +Return: AL = type
 +     00h if 11-bit AT keyboard is in use
 +     01h if 9-bit PC keyboard is in use 
 +----------16F3-------------------------------
 +INT 16 - Compaq 80286s - SET CPU SPEED LIMIT (OVERRIDE JUMPER)
 + AH = F3h
 + AL = 00h limit is 6 Mhz
 +    = 01h limit is 8 Mhz/6 Mhz
 +SeeAlso: AH=F0h,AH=F1h
 +----------16F398-----------------------------
 +INT 16 U - NORTON GUIDES - INSTALLATION CHECK
 +        AX = F398h
 +Return: AX = 6A73h ("js")
 +        BH = scan code of current hot key
 +        BL = ASCII code of current hot key
 +Note: NG.EXE was written by John Socha
 +----------16F400-----------------------------
 +INT 16 - Compaq Systempro - CACHE CONTROLLER STATUS
 + AX = F400h
 +Return: AH = E2h
 + AL = status
 +     00h not present
 +     01h enabled
 +     02h disabled
 +SeeAlso: AX=F401h,AX=F402h
 +----------16F401-----------------------------
 +INT 16 - Compaq Systempro - ENABLE CACHE CONTROLLER
 + AX = F401h
 +Return: AX = E201h
 +SeeAlso: AX=F400h,AX=F402h
 +----------16F402-----------------------------
 +INT 16 - Compaq Systempro - DISABLE CACHE CONTROLLER
 + AX = F402h
 +Return: AX = E202h
 +SeeAlso: AX=F400h,AX=F401h
 +----------16FEA4-----------------------------
 +INT 16 - PC Tools 7 CPSCHED/DESKTOP - ???
 + AX = FEA4h
 + ???
 +Return: ???
 +----------16FEC6-----------------------------
 +INT 16 - PC Tools 7 CPSCHED - ???
 + AX = FEC6h
 + DL = ???
 + ???
 +Return: ???
 +----------16FED3-----------------------------
 +INT 16 - PC Tools 7 CPSCHED/DESKTOP - ???
 + AX = FED3h
 + ???
 +Return: ???
 +----------16FEDC-----------------------------
 +INT 16 - PC Tools 7 CPSCHED - ???
 + AX = FEDCh
 + ???
 +Return: ???
 +----------16FEEFCX0000-----------------------
 +INT 16 - PC Tools 7 CPSCHED/DESKTOP - INSTALLATION CHECK
 + AX = FEEFh
 + CX = 0000h
 +Return: CX = ABCDh if PC Tools scheduler (CPSCHED or DESKTOP) installed
 +     BX = segment of resident portion
 +SeeAlso: AX=FFEFh
 +----------16FEF1-----------------------------
 +INT 16 - PC Tools 7 CPSCHED/DESKTOP - ???
 + AX = FEF1h
 + ???
 +Return: ???
 +
 +===== FFh =====
 +
 +==== FFh - KEYBOARD - KBUF extensions - ADD KEY TO TAIL OF KEYBOARD BUFFER ====
 + AH = FFh
 + DX = scan code
 +Return: AL = status
 +     00h success
 +     01h failure
 +Note: KBUF is a keyboard buffer expander by Mark Adler
 +SeeAlso: AH=05h
 +==== FFh - OPTIMA 1024 VGA-Sync - QUERY ZOOM INTERRUPT ====
 + AH = FFh
 +Return: AL = interrupt number to which BIOS keyboard handler has been relocated
 + AL+1 = Zoom interrupt number
 + BX = hotkey
 +Note: The default interrupts are 60h for keyboard and 61h for Zoom interrupt;
 +   the default hot key is F10
 +SeeAlso: INT 60"OPTIMA"
 +----------16FF91-----------------------------
 +INT 16 - PC Tools 7 DESKTOP - ???
 + AX = FF91h
 + ???
 +Return: AX = 0000h
 +SeeAlso: AX=FF92h
 +----------16FF92-----------------------------
 +INT 16 - PC Tools 7 DESKTOP - ???
 + AX = FF92h
 + ???
 +Return: AX = 0000h
 +Note: like AX=FF91h, but temporarily sets ??? to 3
 +SeeAlso: AX=FF91h
 +----------16FF93-----------------------------
 +INT 16 - PC Tools 7 DESKTOP - SET ??? FLAG
 + AX = FF93h
 + ???
 +Return: ???
 +----------16FF94-----------------------------
 +INT 16 - PC Tools 7 DESKTOP - SET ???
 + AX = FF94h
 + CX = ???
 + ???
 +Return: ???
 +----------16FF95-----------------------------
 +INT 16 - PC Tools 7 DESKTOP - SET ???
 + AX = FF95h
 + BX = ???
 + ???
 +Return: ???
 +----------16FF96-----------------------------
 +INT 16 - PC Tools 7 DESKTOP - ???
 + AX = FF96h
 + CL = ???
 +Return: ???
 +----------16FF97-----------------------------
 +INT 16 - PC Tools 7 DESKTOP - ???
 + AX = FF97h
 + ???
 +Return: ???
 +----------16FF98-----------------------------
 +INT 16 - PC Tools 7 DESKTOP - READ ??? FROM \DESK.OVL FILE
 + AX = FF98h
 + DX = offset in file
 + ???
 +Return: ???
 +----------16FF99-----------------------------
 +INT 16 - PC Tools 7 DESKTOP - ???
 + AX = FF99h
 + ???
 +Return: ???
 +----------16FF9A-----------------------------
 +INT 16 - PC Tools 7 DESKTOP - GET NAME OF COLOR SCHEME
 + AX = FF9Ah
 +Return: ES:BX -> name of current color scheme
 +Note: available even if not popped up
 +----------16FF9B-----------------------------
 +INT 16 - PC Tools 7 DESKTOP - UNUSED???
 + AX = FF9Bh
 + ???
 +Return: ???
 +Note: sounds triple-length beep
 +----------16FF9E-----------------------------
 +INT 16 - PC Tools 7 DESKTOP - ???
 + AX = FF9Eh
 + DL = ???
 + ???
 +Return: ???
 +----------16FFA1-----------------------------
 +INT 16 - PC Tools 7 DESKTOP - ???
 + AX = FFA1h
 + ???
 +Return: ???
 +----------16FFA2-----------------------------
 +INT 16 - PC Tools 7 DESKTOP - ???
 + AX = FFA2h
 + ???
 +Return: ???
 +----------16FFA3BX0000-----------------------
 +INT 16 - PC Tools 7 DATAMON - INSTALLATION CHECK
 + AX = FFA3h
 + BX = 0000h
 + CX = 0000h
 +Return: AX = segment of resident code
 + BX = 5555h
 + CX = 5555h
 +----------16FFA3BX0001-----------------------
 +INT 16 - PC Tools 7 DATAMON - GET ???
 + AX = FFA3h
 + BX = 0001h
 + CX = 0001h
 +Return: AX:BX -> ???
 + CX = BX
 +----------16FFA3BX0002-----------------------
 +INT 16 - PC Tools 7 DATAMON - GET ???
 + AX = FFA3h
 + BX = 0002h
 + CX = 0002h
 +Return: AX = ??? (0 or 1)
 + CX = BX = AX
 +----------16FFA3BX0003-----------------------
 +INT 16 - PC Tools 7 DATAMON - GET ???
 + AX = FFA3h
 + BX = 0003h
 + CX = 0003h
 +Return: AX = ??? (0 or 1)
 + CX = BX = AX
 +----------16FFA3BX0004-----------------------
 +INT 16 - PC Tools 7 DATAMON - SET ??? FLAG
 + AX = FFA3h
 + BX = 0004h
 + CX = 0004h
 +SeeAlso: AX=FFA3h/BX=0005h
 +----------16FFA3BX0005-----------------------
 +INT 16 - PC Tools 7 DATAMON - CLEAR ??? FLAG
 + AX = FFA3h
 + BX = 0005h
 + CX = 0005h
 +SeeAlso: AX=FFA3h/BX=0004h
 +----------16FFA3BX0006-----------------------
 +INT 16 - PC Tools 7 DATAMON - SET PSP SEGMENT ???
 + AX = FFA3h
 + BX = 0006h
 + CX = 0006h
 + DX = current PSP segment as known to DOS??? or 0000h
 +----------16FFA4-----------------------------
 +INT 16 - PC Tools 7 DESKTOP - ???
 + AX = FFA4h
 + ???
 +Return: ???
 +Note: available even when not popped up
 +----------16FFA5CX1111-----------------------
 +INT 16 - PC-Cache v6+ - INSTALLATION CHECK
 + AX = FFA5h
 + CX = 1111h
 +Return: CH = 00h if installed
 +     ES:DI -> internal data (see below)
 +     CL = cache state
 + 01h enabled
 + 02h disabled
 +SeeAlso: INT 13/AH=A0h,INT 21/AH=2Bh/CX=4358h
 +
 +Format of internal data:
 +Offset Size Description
 +-1Ch 20 BYTEs cached drive list, one byte per drive A: to T:
 + each byte is either blank (20h) or drive letter (41h-54h)
 + -8 BYTE ???
 + -7 WORD number of physical transfers (scaled down to 0000h-7FFFh)
 + -5 WORD number of saved transfers (scaled down to 0000h-7FFFh)
 + -3   3 BYTEs ???
 +----------16FFA5CXAAAA-----------------------
 +INT 16 - PC-Cache v6+ - ENABLE DELAYED WRITES
 + AX = FFA5h
 + CX = AAAAh
 +Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
 +SeeAlso: AX=FFA5h/CX=CCCCh
 +----------16FFA5CXCCCC-----------------------
 +INT 16 - PC-Cache v6+ - FLUSH CACHE AND DISABLE DELAYED WRITES
 + AX = FFA5h
 + CX = CCCCh
 +Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
 +Note: delayed writes are automatically disabled on EXECing
 +   (see INT 21/AH=4Bh) a program named either WIN.CO? or DV.E??;
 +   however, delayed writes are not automatically reenabled upon the
 +   program's termination in v6.
 +SeeAlso: AX=FFA5h/CX=AAAAh,AX=FFA5h/CX=FFFFh
 +----------16FFA5CXDDDD-----------------------
 +INT 16 - PC-Cache v6+ - FLUSH AND DISABLE CACHE
 + AX = FFA5h
 + CX = DDDDh
 +SeeAlso: AX=FFA5h/CX=EEEEh,AX=FFA5h/CX=FFFFh
 +----------16FFA5CXEEEE-----------------------
 +INT 16 - PC-Cache v6+ - ENABLE CACHE
 + AX = FFA5h
 + CX = EEEEh
 +SeeAlso: AX=FFA5h/CX=DDDDh
 +----------16FFA5CXFFFF-----------------------
 +INT 16 - PC-Cache v6+ - FLUSH CACHE
 + AX = FFA5h
 + CX = FFFFh
 +SeeAlso: AX=FFA5h/CX=CCCCh,AX=FFA5h/CX=DDDDh,INT 13/AH=A1h
 +----------16FFA6-----------------------------
 +INT 16 - PC Tools v6.0+ DESKTOP API - GET ???
 + AX = FFA6h
 +Return: DS:SI -> ???
 +Note: available only when popped up
 +----------16FFA7-----------------------------
 +INT 16 - PC Tools v6.0+ DESKTOP API - GET ??? PATH
 + AX = FFA7h
 +Return: DS:SI -> ASCIZ path (directory from which PCTools was run???)
 +----------16FFA8-----------------------------
 +INT 16 - PC Tools v6.0+ DESKTOP API - ???
 + AX = FFA8h
 + DS:SI -> three consecutive ASCIZ strings for ??? (max 256 bytes total)
 + ???
 +Return: ???
 +Notes: available only when popped up
 + strings copied into internal buffer, among other actions
 +----------16FFA9-----------------------------
 +INT 16 - PC Tools v6.0+ DESKTOP API - GET VERSION STRING
 + AX = FFA9h
 +Return: DS:SI -> version string
 +----------16FFAA-----------------------------
 +INT 16 - PC Tools v6.0+ DESKTOP API - ???
 + AX = FFAAh
 + ???
 +Return: ???
 +Note: available only when popped up
 +----------16FFAB-----------------------------
 +INT 16 - PC Tools v6.0+ DESKTOP API - GET EDITOR SETTINGS???
 + AX = FFABh
 +Return: DS:SI -> editor setting strings???
 +----------16FFAC-----------------------------
 +INT 16 - PC Tools v6.0+ DESKTOP API - SET ???
 + AX = FFACh
 + DL = ???
 +Note: available only when popped up
 +----------16FFAD-----------------------------
 +INT 16 - PC Tools v6.0+ DESKTOP API - SET ???
 + AX = FFADh
 + DL = ???
 +----------16FFAE-----------------------------
 +INT 16 - PC Tools v6.0+ DESKTOP API - GET ???
 + AX = FFAEh
 +Return: AL = ???
 +----------16FFAF-----------------------------
 +INT 16 - PC Tools v6.0+ DESKTOP API - SET ???
 + AX = FFAFh
 + DL = ???
 +----------16FFB0-----------------------------
 +INT 16 - PC Tools v6.0+ DESKTOP API - SET ???
 + AX = FFB0h
 + BL = ???
 +----------16FFB1-----------------------------
 +INT 16 - PC Tools v6.0+ DESKTOP API - ???
 + AX = FFB1h
 + ???
 +Return: ???
 +----------16FFB2-----------------------------
 +INT 16 - PC Tools v5.5+ DESKTOP API - GET ???
 + AX = FFB2h
 +Return: DS:SI -> ???
 +----------16FFB3-----------------------------
 +INT 16 - PC Tools v5.5+ DESKTOP API - ???
 + AX = FFB3h
 + ???
 +Return: ???
 +Note: available only when popped up
 +----------16FFB4-----------------------------
 +INT 16 - PC Tools v5.5+ DESKTOP API - SET ??? FLAG
 + AX = FFB4h
 +Note: available only when popped up
 +SeeAlso: AX=FFBBh
 +----------16FFB5-----------------------------
 +INT 16 - PC Tools v5.5+ DESKTOP API - GET/SET WINDOW PARAMETERS
 + AX = FFB5h
 + BX = window specifier (000Fh to 0019h) (see below)
 + DX = 0000h get, nonzero = set
 + ES:DI -> window parameter buffer (see below)
 +SeeAlso: AX=FFCBh
 +
 +Values for window specifier:
 + 000Fh comm/FAX
 + 0014h hotkey selection
 + 0015h ASCII table
 + 0016h system colors menu
 +
 +Format of window parameters:
 +Offset Size Description
 + 00h BYTE rows in window, not counting frame
 + 01h BYTE columns in window, not counting frame
 + 02h BYTE row number of top of window
 + 03h BYTE 2*column number of left of window
 + 04h BYTE character attribute for ???
 + 05h BYTE character attribute for background/border
 + 06h BYTE character attribute for ???
 + 07h DWORD pointer to ??? on screen
 + 0Bh  4 BYTEs ???
 + 0Fh BYTE nonzero if window may be resized
 +Note: if running in monochrome mode, character attributes at offsets 04h to
 +   06h are stored unchanged, but attributes other than 07h, 0Fh, or 70h
 +   are changed to 07h on reading
 +----------16FFB6-----------------------------
 +INT 16 - PC Tools v5.5+ DESKTOP API - GET ???
 + AX = FFB6h
 +Return: AH = ???
 + AL = ???
 +----------16FFB7-----------------------------
 +INT 16 - PC Tools v5.5+ DESKTOP API - GET/SET ???
 + AX = FFB7h
 + BX = direction
 +     0000h copy to buffer
 +     else  copy from buffer
 + DS:SI -> 70-byte buffer with ???
 +Return: data copied
 +Note: available only when popped up under v6.0+
 +----------16FFB8-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - GET/SET???
 + AX = FFB8h
 + BH = subfunction
 +     00h get
 + Return: BL = old value of ???
 + CL = old value of ??? (v6.0+)
 + CH = old value of ??? (v6.0+)
 +     nonzero set
 + BL = new value for ???
 + CL = new value for ??? (v6.0+)
 + CH = new value for ??? (v6.0+)
 + DH = ???
 + Return: AL = old value replaced by CL (v6.0+)
 + AH = old value replaced by CH (v6.0+)
 +----------16FFB9-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFB9h
 + ???
 +Return: AX = ???
 + CX = ???
 + DS:SI -> ???
 + ES:DI -> ???
 +----------16FFBA-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFBAh
 + ???
 +Return: AX = ???
 +Note: available only when popped up
 +----------16FFBB-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - CLEAR ??? FLAG
 + AX = FFBBh
 +Note: available only when popped up
 +SeeAlso: AX=FFB4h
 +----------16FFBC-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - RESTORE ORIGINAL SCREEN???
 + AX = FFBCh
 +----------16FFBD-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ??? DATABASE INDEXING MESSAGES
 + AX = FFBDh
 + ???
 +Return: ???
 +----------16FFBE-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFBEh
 + ???
 +Return: ???
 +Note: available only when popped up
 +----------16FFBF-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFBFh
 + BX = DOS file handle to write on
 + ???
 +Return: ???
 +Note: available only when popped up
 +----------16FFC0-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFC0h
 + ???
 +Return: AX = 0000h if successful
 + AX = FFFFh on error
 +Note: available only when popped up
 +----------16FFC1-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFC1h
 + BL = ???
 + ES:DI -> data structure (see below)
 + ???
 +Return: AX = ???
 +Note: available only when popped up
 +
 +Format of data structure:
 +Offset Size Description
 + 00h WORD ???
 + 02h WORD ???
 + 04h WORD ???
 + 06h WORD ???
 + 08h WORD ???
 + 0Ah BYTE ???
 + 0Bh BYTE ???
 + ???
 +----------16FFC2-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFC2h
 + ???
 +Return: AH = ???
 + CX = ???
 + DH = ???
 + DL = ???
 +Note: available only when popped up
 +SeeAlso: AX=FFC3h
 +----------16FFC3-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFC3h
 + ???
 +Return: AH = ???
 + CX = ???
 + DH = ???
 + DL = ???
 +Note: available only when popped up
 +SeeAlso: AX=FFC2h
 +----------16FFC4-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - GET ???
 + AX = FFC4h
 +Return: AL = ???
 + BX = segment of scratch space???
 + CX = segment of stored screen data (section covered by window???)
 + DX = segment of window parameters for ???
 + ES:BP -> ???
 +Note: available only when popped up in versions prior to 6.0
 +----------16FFC5-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - CHECK WHETHER DESKTOP LOADED RESIDENT
 + AX = FFC5h
 +Return: BL = nonzero if loaded resident
 +    = 00h if nonresident
 +Note: available only when popped up; should call AX=FFEFh first to ensure
 +   that DESKTOP is active
 +SeeAlso: AX=FFEFh,AX=FFF3h
 +----------16FFC6-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - SET ???
 + AX = FFC6h
 + BL = new value for ???
 +----------16FFC7-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - REMOVE WINDOW
 + AX = FFC7h
 + ???
 +Return: ???
 +----------16FFC8-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - GET ???
 + AX = FFC8h
 +Return: DS:SI -> ???
 +Note: valid only while popped up
 +----------16FFC9-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - COPY DATA TO CLIPBOARD
 + AX = FFC9h
 + DS:SI -> characters to store in clipboard
 + CX = size in bytes
 +Return: CF set on error
 +Notes: available only when popped up
 + while copying, bytes of 00h and 0Ah are skipped
 +----------16FFCA-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - SET ???
 + AX = FFCAh
 + DX = ???
 +Return: AX destroyed
 +Note: available only when popped up
 +----------16FFCB-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - SELECT WINDOW PARAMETERS???
 + AX = FFCBh
 + DX = window specifier???
 +Return: AX destroyed
 +Note: available only when popped up
 +SeeAlso: AX=FFB5h
 +----------16FFCC-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - DISPLAY ASCIZ STRING CENTERED IN WINDOW
 + AX = FFCCh
 + DS:SI -> ASCIZ string
 +Return: AX = ???
 + CX = ???
 + ES:DI -> address past last character displayed (v5.1/5.5)
 +       -> ??? on menu bar (v6.0)
 +----------16FFCD-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFCDh
 + DS:DX -> ???
 +Return: ???
 +Note: available only when popped up
 +----------16FFCE-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - SET ??? DELAYS
 + AX = FFCEh
 + CX = ???
 +Return: nothing???
 +----------16FFCF-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - CLOSE PRINTER/PRINT FILE
 + AX = FFCFh
 +Note: available only when popped up
 +----------16FFD0-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - PREPARE TO PRINT???
 + AX = FFD0h
 + ???
 +Return: ???
 +Note: available only when popped up
 +----------16FFD1-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - DISPLAY PRINT OPTIONS MENU
 + AX = FFD1h
 +Return: BX = number of copies
 + DX = destination
 +     00h cancel
 +     01h LPT1
 +     02h LPT2
 +     03h LPT3
 +     04h COM1
 +     05h COM2
 +     06h disk file
 +Note: available only when popped up
 +----------16FFD2-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFD2h
 + BX = ???
 +Return: BL = ???
 +Note: available only when popped up
 +----------16FFD3-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFD3h
 + DS:SI -> 92-byte data record for ???
 +Return: ???
 +----------16FFD4BH3C-------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - CREATE/OPEN/DELETE FILE
 + AX = FFD4h
 + BH = 3Ch create file (with no attributes)
 +      3Dh open file
 +      41h delete file
 + BL = access mode
 +      00h read only
 +      01h write only
 +      02h read/write
 + DS:SI -> ASCIZ filename
 +Return: BX = file handle
 +     0000h on error
 +Note: operation is attempted in (in order) the directory from which the
 +   desktop was started/run???, the directory specified with the
 +   filename, X:\PCTOOLS\, and X:\
 +----------16FFD5-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFD5h
 + ???
 +Return: ???
 +Note: available only when popped up
 +----------16FFD6-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFD6h
 + BX = ???
 + CX = ???
 + DX = offset in ???
 + ???
 +Return: ???
 +Note: available only when popped up
 +----------16FFD7-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFD7h
 + ???
 +Return: BL = ???
 +Note: available only when popped up
 +----------16FFD8-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - SAFE CREATE FILE
 + AX = FFD8h
 + DS:BX -> ASCIZ filename
 +Return: BX = file handle
 +     0000h on error
 +Note: pops up confirmation menu if file already exists
 + only available when popped up???
 +----------16FFD9-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - GET ???
 + AX = FFD9h
 +Return: AX = ???
 +Note: available only when popped up
 +----------16FFDA-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - GET NAME OF LAST FILE OPENED
 + AX = FFDAh
 + DS:SI -> ??? (v5.1/5.5 only)
 +Return: DS:SI -> filename
 +----------16FFDB-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - SET ???
 + AX = FFDBh
 + BL = ???
 +Note: available only when popped up
 +----------16FFDC-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - UNHOOK
 + AX = FFDCh
 +Return: interrupt vectors 09h, 10h (v6.0+), 16h, 1Ch, and 21h restored to
 +   original values
 +----------16FFDDBX0000-----------------------
 +INT 16 - PC Tools v5.1+ PCShell API - INSTALLATION CHECK
 + AX = FFDDh
 + BX = 0000h
 +Return: CX = 5555h 
 + DX = 5555h if PCShell installed in resident mode
 +----------16FFDDBX0001-----------------------
 +INT 16 - PC Tools v5.1+ PCShell API - REQUEST POP-UP
 + AX = FFDDh
 + BX = 0001h
 +SeeAlso: AX=FFDDh/BX=0003h
 +----------16FFDDBX0002-----------------------
 +INT 16 - PC Tools v5.1-5.5 PCShell API - GET ???
 + AX = FFDDh
 + BX = 0002h
 +Return: AL = 
 +     00h ???
 +     01h ???
 +Note: PCShell v6.0+ displays the error message "Incorrect PCRUN version",
 +   awaits a keystroke, and aborts the current process
 +----------16FFDDBX0003-----------------------
 +INT 16 - PC Tools v5.1+ PCShell API - REQUEST POP-UP
 + AX = FFDDh
 + BX = 0003h
 +SeeAlso: AX=FFDDh/BX=0001h
 +----------16FFDDBX0004-----------------------
 +INT 16 - PC Tools v5.1+ PCShell API - GET ???
 + AX = FFDDh
 + BX = 0004h
 +Return: CF clear if successful
 +     DS:SI -> ???
 +----------16FFDDBX0005-----------------------
 +INT 16 - PC Tools v5.1+ PCShell API - ???
 + AX = FFDDh
 + BX = 0005h
 + ???
 +Return: ???
 +----------16FFDDBX0006-----------------------
 +INT 16 - PC Tools v5.1+ PCShell API - ???
 + AX = FFDDh
 + BX = 0006h
 + ???
 +Return: ???
 +----------16FFDDBX0007-----------------------
 +INT 16 - PC Tools v5.1+ PCShell API - SET ??? FLAG
 + AX = FFDDh
 + BX = 0007h
 +Return: CF clear if successful
 +SeeAlso: AX=FFDDh/BX=0008h
 +----------16FFDDBX0008-----------------------
 +INT 16 - PC Tools v5.1+ PCShell API - CLEAR ??? FLAG
 + AX = FFDDh
 + BX = 0008h
 +Return: ???
 +SeeAlso: AX=FFDDh/BX=0007h
 +----------16FFDDBX0009-----------------------
 +INT 16 - PC Tools v6.0+ PCShell API - GET PCRUN PARAMETERS
 + AX = FFDDh
 + BX = 0009h
 +Return: CF clear if successful
 +     DS:SI -> list of pointers (see below)
 +
 +Format of returned pointer list:
 +Offset Size Description
 + 00h WORD offset of WORD containing ???
 + 02h WORD offset of name of program to execute
 + 04h WORD offset of 80-byte buffer for ???
 + 06h WORD offset of buffer for ??? (length in WORD preceding buffer)
 + 08h WORD offset of buffer for ??? (length in WORD preceding buffer)
 +----------16FFDDBX000A-----------------------
 +INT 16 - PC Tools v6.0+ PCRUN API - INSTALLATION CHECK
 + AX = FFDDh
 + BX = 000Ah
 +Return: CX = 5555h if running
 + DX = 5555h
 +Note: also sets a flag
 +----------16FFDDBX000B-----------------------
 +INT 16 - PC Tools v6.0+ PCRUN API - ???
 + AX = FFDDh
 + BX = 000Bh
 + ???
 +Return: CX = 5555h if PCRUN active
 + DX = 5555h
 +Note: also clears flag set by AX=FFDDh/BX=000Ah
 +----------16FFDE-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - DISPLAY POPUP MENU
 + AX = FFDEh
 + DS:DX -> menu description (must be on a paragraph boundary)
 +Return: AX = ???
 +     AL seems to be the number of the selected button
 +Note: available only when popped up
 +SeeAlso: AX=FFEEh
 +----------16FFDF-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFDFh
 + ???
 +Return: ???
 +----------16FFE0-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFE0h
 + CX = ???
 + DX = ???
 +Note: available only when popped up
 +----------16FFE1-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - BEEP
 + AX = FFE1h
 +----------16FFE2-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFE2h
 + DX = ???
 +Return: ???
 +Note: available only when popped up
 +----------16FFE3-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - PRINT CHARACTER
 + AX = FFE3h
 + BL = character to print to currently open printer or print file
 +Return: CF set on error
 +Note: available only when popped up
 +SeeAlso: INT 17/AH=00h
 +----------16FFE4-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFE4h
 + DX = segment of ???
 +Return: ???
 +Note: available only when popped up
 +----------16FFE5-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - POP UP FILE SELECTION MENU
 + AX = FFE5h
 + DS:SI -> ASCIZ wildcard filespec followed by ASCIZ menu title
 + DX = segment of window parameters???
 +Return: AX = DOS file handle for file
 + DS:DX -> filename???
 +    = FFFFh if cancelled by user
 +Note: available only when popped up
 +SeeAlso: AX=FFDAh
 +----------16FFE6-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - CHECK FOR AND GET KEYSTROKE
 + AX = FFE6h
 +Return: AX = 0000h if no key available
 +      else  BIOS keycode
 +Notes: available only when popped up
 + invokes INT 28 idle interrupt before checking for key
 +----------16FFE7-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFE7h
 + BX = segment of ???
 +Return: ???
 +Note: available only when popped up
 +----------16FFE8-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - DISPLAY NUMBER
 + AX = FFE8h
 + CX = number
 + DH = attribute
 + DS:SI -> destination for ASCII number
 +Return: DS:SI buffer filled in with alternating characters and attributes
 +----------16FFE9-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - GET FILE LIST???
 + AX = FFE9h
 +Return: BX = segment of file/directory list (14 bytes per file, NUL-padded)
 +Note: available only when popped up
 +----------16FFEA-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - DISPLAY COUNTED STRING
 + AX = FFEAh
 + DS:SI -> counted string (count byte followed by string)
 +Return: ???
 +Note: available only when popped up
 +----------16FFEB-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFEBh
 + ???
 +Return: ???
 +----------16FFEC-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - GET KEY
 + AX = FFECh
 + DS:SI -> FAR routine to ???
 + BX = ???
 + ???
 +Return: AX = keystroke
 +     FFFFh if F10 pressed to go to menu
 +Notes: available only when popped up
 + invokes INT 28 while waiting for keystroke
 + F10 is hotkey to Desktop menu
 +----------16FFED-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - GET ???
 + AX = FFEDh
 +Return: AX = ???
 +Note: available only when popped up
 +----------16FFEE-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - DEFINE PULLDOWN MENUS
 + AX = FFEEh
 + DS:SI -> pulldown menu system description (see below)
 +Return: AX destroyed
 +Notes: available only when popped up
 + if the accessory does not need any menu items of its own, it should
 +   call AX=FFFAh instead
 +SeeAlso: AX=FFF7h,AX=FFFAh
 +
 +Format of pulldown menu system description:
 +Offset Size Description
 + 00h WORD offset of menu bar contents (counted string)
 + 02h WORD number of items on menu bar
 + 04h 10 BYTEs scan codes for hotkeying to each of up to ten menu items
 + 0Eh 10 BYTEs which character to highlight in each menu item (01h=first)
 + 18h WORD offset of first menu definition (see below)
 + 1Ah WORD offset of second menu definition
 + ...
 +
 +Format of menu definition:
 +Offset Size Description
 + 00h WORD offset of menu contents (see below)
 + 02h WORD number of entries in menu
 + 04h for each entry:
 + Offset Size Description
 + 00h BYTE scancode of Alt-key to invoke entry
 + 01h BYTE character to highlight (01h=first, etc)
 + 02h WORD offset of FAR routine to handle selection
 +
 +Format of menu contents:
 +Offset Size Description
 + 00h BYTE number of lines in menu
 + 01h BYTE width of menu
 + 02h  N BYTEs counted strings, one for each line in menu
 +----------16FFEFCX0000-----------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - INSTALLATION CHECK
 + AX = FFEFh
 + CX = 0000h
 +Return: CX = ABCDh if PC Tools DESKTOP.EXE installed
 +     BX = segment of resident portion
 +     AX = ??? (v5.1/5.5 only)
 +SeeAlso: AX=FEEFh,AX=FFC5h,AX=FFF3h
 +----------16FFF0-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - SET ???
 + AX = FFF0h
 + DX = ???
 +Return: AX destroyed
 +Note: available only when popped up
 +----------16FFF1BX0000-----------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ALTERNATE INSTALLATION CHECK
 + AX = FFF1h
 + BX = 0000h  leave ??? flag as is
 +     nonzero set ??? flag
 +Return: CX = 5555h if installed
 + DX = 5555h
 +----------16FFF2-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - DISPLAY HELP LINE
 + AX = FFF2h
 + DS:SI -> ASCIZ function key label string (each label preceded by '[')
 + or help text
 +Return: AX destroyed
 +Notes: available only when popped up
 + if the specified string does not start with '[', it is displayed
 +   centered on the bottom line, else the function key labels are shown
 +----------16FFF3-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - PREPARE TO UNLOAD RESIDENT DESKTOP
 + AX = FFF3h
 +Note: releases any EMS being used; restores video mode, page, and cursor
 +   shape; and restores interrupt vectors
 +SeeAlso: AX=FFC5h,AX=FFEFh
 +----------16FFF4-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - ???
 + AX = FFF4h
 + ???
 +Return: ???
 +Note: available only when popped up
 +SeeAlso: AX=FFF6h
 +----------16FFF5-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - GET SCREEN ATTRIBUTE ARRAY
 + AX = FFF5h
 +Return: ES:BX -> screen attributes data structure (see below)
 + AL = ??? (v6.0+)
 +
 +Format of attribute data structure:
 +Offset Size Description
 + -1 BYTE attribute for desktop background
 + 00h BYTE attribute for normal characters on desktop menu
 + 01h BYTE attribute for highlighted characters on desktop menu
 + 02h  5 BYTEs ???
 + 07h BYTE attribute for dialog boxes
 + 08h 15 BYTEs ???
 + 17h BYTE attribute for message boxes
 +----------16FFF6-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - INVOKE NOTEPAD EDITOR
 + AX = FFF6h
 + DS = segment of editor buffer structure (see below)
 + BX = ???
 + DX = segment of window parameters structure (see AX=FFB5h)
 +Return: ???
 +Note: available only when popped up
 +SeeAlso: AX=FFF4h
 +
 +Format of editor buffer structure:
 +Offset Size Description
 + 00h WORD offset of current cursor position in buffer segment
 + 02h  2 BYTEs ???
 + 04h WORD offset of beginning of file data in buffer segment
 + 06h 10 BYTEs ???
 + 10h  N BYTEs ASCIZ name of file being edited
 +----------16FFF7-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - PROCESS MENU BAR ENTRY???
 + AX = FFF7h
 + DS:SI -> ???
 + ???
 +Return: ???
 +Notes: available only when popped up
 + performs input processing on the menu bar set up with AX=FFEEh
 +SeeAlso: AX=FFEEh,AX=FFFBh
 +----------16FFF8-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - DRAW EMPTY WINDOW
 + AX = FFF8h
 + DS:0000h -> window parameters structure (see AX=FFB5h)
 + DS:BX -> DWORD to store address of ??? on screen
 +Return: ???
 +----------16FFF9-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - DEFINE SCREEN REFRESH ROUTINE
 + AX = FFF9h
 + ES:BX -> FAR routine to redisplay the utility's window
 +Note: available only when popped up
 +----------16FFFA-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - DEFINE STANDARD PULLDOWN MENUS
 + AX = FFFAh
 +Notes: available only when popped up
 + adds the "Window" option to the "Desktop" option which is the only one
 +   available when no accessories are active.  Unlike AX=FFEEh, no
 +   additional menu items are added between "Desktop" and "Window"
 +SeeAlso: AX=FFEEh,AX=FFFBh
 +----------16FFFB-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - PROCESS STANDARD MENU BAR
 + AX = FFFBh
 +Return: ???
 +Notes: available only when popped up
 + performs input processing on the standard menu bar set up with AX=FFFAh
 +SeeAlso: AX=FFF7h
 +----------16FFFC-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - GET HOTKEYS AND KEYBOARD VECTOR
 + AX = FFFCh
 +Return: ES:BX -> hotkey table (see below)
 + DS:DX = original INT 9 vector
 +
 +Format of hotkey table:
 +Offset Size Description
 + 00h  2 BYTEs scancode/shift state for desktop hotkey
 + 02h  2 BYTEs scancode/shift state for clipboard paste key
 + 04h  2 BYTEs scancode/shift state for clipboard copy key
 + 06h  2 BYTEs scancode/shift state for screen autodial key
 +----------16FFFD-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - COPY ???
 + AX = FFFDh
 +Return: AX destroyed
 +Note: copies 4000 bytes from ??? to ??? under certain circumstances
 +----------16FFFE-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - SHOW MOUSE CURSOR
 + AX = FFFEh
 +SeeAlso: AX=FFFFh,INT 33/AX=0001h
 +----------16FFFF-----------------------------
 +INT 16 - PC Tools v5.1+ DESKTOP API - HIDE MOUSE CURSOR
 + AX = FFFFh
 +SeeAlso: AX=FFFEh,INT 33/AX=0002h
 +