Interrupt List, part 4 of 18 Copyright (c) 1989-1999,2000 Ralf Brown --------b-15E800----------------------------- INT 15 - Compaq Contura - GET ??? AX = E800h Return: AX = 0000h BH = 00h BL = ??? (read from port 0C7Ch) CH = ??? CL = ??? DX = 0000h Note: also supported by 3/8/93 DESKPRO/i and 7/26/93 LTE Lite 386 ROM BIOS --------b-15E800----------------------------- INT 15 - Compaq Contura Aero, Contura 400 - GET SYSTEM MODEL CODE??? AX = E800h BX = ??? (0000h) Return: CF clear if successful BH = 02h BL = submodel??? (0Ch,0Dh,34h,38h,40h,44h,48h,64h,68h) CF set on error others??? Notes: used by Compaq's SOFTPAQ number 0937 EPPBIOS.SYS to determine whether the Enhanced Parallel Port expected by that driver is available used by Compaq's SOFTPAW number 0856 VOLCTRL.EXE to determine whether volume control hardware expected by that driver is available --------b-15E800----------------------------- INT 15 - Compaq Prolinea - GET ??? AX = E800h BX = ??? (1369h) Return: BH = 01h BL = ??? others??? Note: used by Compaq's SOFTPAQ number 0718 INT10_04.SYS to determine whether the fix that driver applies is required (will not install if BX on return is other than 010Eh or 010Fh) SeeAlso: AX=E802h --------b-15E801----------------------------- INT 15 - Phoenix BIOS v4.0 - GET MEMORY SIZE FOR >64M CONFIGURATIONS AX = E801h Return: CF clear if successful AX = extended memory between 1M and 16M, in K (max 3C00h = 15MB) BX = extended memory above 16M, in 64K blocks CX = configured memory 1M to 16M, in K DX = configured memory above 16M, in 64K blocks CF set on error Notes: supported by the A03 level (6/14/94) and later XPS P90 BIOSes, as well as the Compaq Contura, 3/8/93 DESKPRO/i, and 7/26/93 LTE Lite 386 ROM BIOS supported by AMI BIOSes dated 8/23/94 or later on some systems, the BIOS returns AX=BX=0000h; in this case, use CX and DX instead of AX and BX this interface is used by Windows NT 3.1, OS/2 v2.11/2.20, and is used as a fall-back by newer versions if AX=E820h is not supported this function is not used by MS-DOS 6.0 HIMEM.SYS when an EISA machine (for example with parameter /EISA) (see also MEM F000h:FFD9h), or no Compaq machine was detected, or parameter /NOABOVE16 was given. SeeAlso: AH=8Ah"Phoenix",AX=E802h,AX=E820h,AX=E881h"Phoenix" --------b-15E802----------------------------- INT 15 - Compaq Contura - GET ??? AX = E802h Return: CF clear AX = 0000h BX = ??? CX = 0000h Note: this function is also supported by the LTE Lite 25c, 25E, and 486; not supported by LTE Lite 20 and 25. SeeAlso: AX=E801h"Phoenix" --------b-15E820----------------------------- INT 15 - newer BIOSes - GET SYSTEM MEMORY MAP AX = E820h EAX = 0000E820h EDX = 534D4150h ('SMAP') EBX = continuation value or 00000000h to start at beginning of map ECX = size of buffer for result, in bytes (should be >= 20 bytes) ES:DI -> buffer for result (see #00581) Return: CF clear if successful EAX = 534D4150h ('SMAP') ES:DI buffer filled EBX = next offset from which to copy or 00000000h if all done ECX = actual length returned in bytes CF set on error AH = error code (86h) (see #00496 at INT 15/AH=80h) Notes: originally introduced with the Phoenix BIOS v4.0, this function is now supported by most newer BIOSes, since various versions of Windows call it to find out about the system memory a maximum of 20 bytes will be transferred at one time, even if ECX is higher; some BIOSes (e.g. Award Modular BIOS v4.50PG) ignore the value of ECX on entry, and always copy 20 bytes some BIOSes expect the high word of EAX to be clear on entry, i.e. EAX=0000E820h if this function is not supported, an application should fall back to AX=E802h, AX=E801h, and then AH=88h the BIOS is permitted to return a nonzero continuation value in EBX and indicate that the end of the list has already been reached by returning with CF set on the next iteration this function will return base memory and ISA/PCI memory contiguous with base memory as normal memory ranges; it will indicate chipset-defined address holes which are not in use and motherboard memory-mapped devices, and all occurrences of the system BIOS as reserved; standard PC address ranges will not be reported SeeAlso: AH=C7h,AX=E801h"Phoenix",AX=E881h,MEM xxxxh:xxx0h"ACPI" Format of Phoenix BIOS system memory map address range descriptor: Offset Size Description (Table 00580) 00h QWORD base address 08h QWORD length in bytes 10h DWORD type of address range (see #00581) (Table 00581) Values for System Memory Map address type: 01h memory, available to OS 02h reserved, not available (e.g. system ROM, memory-mapped device) 03h ACPI Reclaim Memory (usable by OS after reading ACPI tables) 04h ACPI NVS Memory (OS is required to save this memory between NVS sessions) other not defined yet -- treat as Reserved SeeAlso: #00580 --------b-15E881----------------------------- INT 15 - Phoenix BIOS v4.0 - GET MEMORY SIZE FOR >64M CONFIGURATIONS (32-bit) AX = E881h Return: CF clear if successful EAX = extended memory between 1M and 16M, in K (max 3C00h = 15MB) EBX = extended memory above 16M, in 64K blocks ECX = configured memory 1M to 16M, in K EDX = configured memory above 16M, in 64K blocks CF set on error Notes: supported by AMI BIOSes dated 8/23/94 or later this interface is used by Windows NT 3.1, OS/2 v2.11/2.20, and is used as a fall-back by newer versions if AX=E820h is not supported SeeAlso: AX=E801h"Phoenix",AX=E820h"Phoenix" ----------15E900----------------------------- INT 15 - PhysTechSoft PTS ROM-DOS - RESET WATCHDOG TIMER AX = E900h Return: nothing ----------15E901----------------------------- INT 15 - PhysTechSoft PTS ROM-DOS - WRITE DIAGNOSTIC CONTROL POINT CODE AX = E901h CX = control point code (codes 000h-1FFh system backup) Return: nothing Note: Provided by PhysTechSoft's PTS ROM-DOS and displayed by SETUP.COM. SeeAlso: AX=E902h,INT 14/AH=05h"PTS ROM-DOS",INT 14/AH=06h"PTS ROM-DOS" (Table 04093) Values for PhysTechSoft PTS ROM-DOS control point code: ??? LOADER: Stack loaded LOADER: IVT initialized LOADER: Channel initialized LOADER: Local loading LOADER: Flash tested LOADER: Load from ROM LOADER: Load ROM comp. LOADER: Load from Flash LOADER: Load Flash co. BIOS: Chipset initialized BIOS: CPU tested BIOS: Stack tested BIOS: CRC tested BIOS: IVT initialized BIOS: Vars initialized BIOS: Resident init BIOS: Channel initialized BIOS: Memory tested BIOS: SRAM tested BIOS: EMS tested BIOS: PIC initialized BIOS: PPI initialized BIOS: DMA initialized BIOS: Timer initialized BIOS: Disks initialized BIOS: Boot loaded BIOS: Failed boot DOS: Job point: (up to 25???) SeeAlso: #04091 ----------15E902----------------------------- INT 15 - PhysTechSoft PTS ROM-DOS - SET DIAGNOSTIC DOS ERROR FLAG AX = E902h CX = diagnostic flag mask (see #04091,#04092) Return: nothing Note: Provided by PhysTechSoft's PTS ROM-DOS and displayed by SETUP.COM. DOS error flags can be assigned by application software. SeeAlso: AX=E901h,INT 14/AH=05h"PTS ROM-DOS", INT 14/AH=06h"PTS ROM-DOS" Bitfields for PhysTechSoft PTS ROM-DOS BIOS error flags: Bit(s) Description (Table 04091) ??? Processor test failed. Stack test failed. BIOS code damaged. Conventional memory test failed. SRAM test failed. EMS test failed. Boot-sector damaged. Boot-sector read error. Loader setup damaged. BIOS setup damaged. SeeAlso: #04092,#04093 Bitfields for PhysTechSoft PTS ROM-DOS LOADER error flags:: Bit(s) Description (Table 04092) ??? Processor test failed. Loader code damaged. Loader code in RAM damaged. Loader setup in flash-memory damaged. BIOS setup in flash-memory damaged. BIOS offset in flash-memory field damaged. BIOS size in flash-memory field damaged. BIOS in flash-memory damaged. BIOS in ROM damaged. Last operation field damaged. Channel error. Setup in flash-memory damaged. Loading BIOS from control channel failed. Loading DOS from control channel failed. SeeAlso: #04091 ----------15E903----------------------------- INT 15 - PhysTechSoft PTS ROM-DOS - WRITE-ENABLE FLASH-DISK AX = E903h Return: nothing Note: Enabling writing on Flash disk can lead to corruption of EMS disk info. SeeAlso: AX=E904h,AX=E905h ----------15E904----------------------------- INT 15 - PhysTechSoft PTS ROM-DOS - WRITE-PROTECT FLASH-DISK AX = E904h Return: nothing SeeAlso: AX=E903h,AX=E905h ----------15E905----------------------------- INT 15 - PhysTechSoft PTS ROM-DOS - WRITE IMAGE OF BIOS TO FLASH-MEMORY AX = E905h DS:SI -> buffer Return: nothing SeeAlso: AX=E903h,INT 14/AH=05h"PTS ROM-DOS",INT 14/AH=06h"PTS ROM-DOS" ----------15E906----------------------------- INT 15 - PhysTechSoft PTS ROM-DOS - READ SETUP INFORMATION FROM FLASH-DISK AX = E906h DS:SI -> buffer Return: AL = error code (00h = no error, 01h = setup information not found) SeeAlso: AX=E907h,INT 14/AH=05h"PTS ROM-DOS",INT 14/AH=06h"PTS ROM-DOS" ----------15E907----------------------------- INT 15 - PhysTechSoft PTS ROM-DOS - WRITE SETUP INFORMATION ON FLASH-DISK AX = E907h DS:SI -> buffer Return: nothing SeeAlso: AX=E906h ----------15E908----------------------------- INT 15 - PhysTechSoft PTS ROM-DOS - SET BREAKPOINT AX = E908h CL = flags bit 1: =0 operate in one-fold mode =1 operate in many-fold mode bit 0: =0 send debug information to control channel =1 activate handler ES:SI = breakpoint address DX:DI = handler address Return: AH = error code 00h no error 01h incorrect parameter 02h no room in breakpoint table SeeAlso: AX=E909h,INT 14/AH=05h"PTS ROM-DOS",INT 14/AH=06h"PTS ROM-DOS" ----------15E909----------------------------- INT 15 - PhysTechSoft PTS ROM-DOS - REMOVE BREAKPOINT AX = E909h ES:SI = breakpoint address Return: AH = error code 00h no error 01h incorrect parameter SeeAlso: AX=E908h,INT 14/AH=05h"PTS ROM-DOS",INT 14/AH=06h"PTS ROM-DOS" --------m-15F200CX454D----------------------- INT 15 - Tandon memory mapper - Tandon MAPPER HARDWARE INITIALIZATION CHECK ??? AX = F200h CX = 454Dh Return: CF clear if hardware already initialised BX = upper RAM areas in use bit 0: C000-C3FF bit 1: C400-C7FF ... bit 11: EC00-EFFF CF set if hardware not initialised yet --------B-1600------------------------------- INT 16 - KEYBOARD - GET KEYSTROKE AH = 00h Return: AH = BIOS scan code AL = ASCII character Notes: 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 some (older) clone BIOSes do not discard extended keystrokes and manage function AH=00h and AH=10h the same the K3PLUS v6.00+ INT 16 BIOS replacement doesn't discard extended keystrokes (same as with functions 10h and 20h), but will always translate prefix E0h to 00h. This allows old programs to use extended keystrokes and should not cause compatibility problems SeeAlso: AH=01h,AH=05h,AH=10h,AH=20h,AX=AF4Dh"K3PLUS",INT 18/AH=00h SeeAlso: INT 09,INT 15/AH=4Fh --------B-1601------------------------------- INT 16 - KEYBOARD - CHECK FOR KEYSTROKE AH = 01h Return: ZF set if no keystroke available ZF clear if keystroke available AH = BIOS scan code AL = ASCII character Note: 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 by IBM and most fully-compatible BIOSes in the process of checking whether a non-extended keystroke is available some (older) clone BIOSes do not discard extended keystrokes and manage function AH=00h and AH=10h the same the K3PLUS v6.00+ INT 16 BIOS replacement doesn't discard extended keystrokes (same as with functions 10h and 20h), but will always translate prefix E0h to 00h. This allows old programs to use extended keystrokes and should not cause compatibility problems SeeAlso: AH=00h,AH=11h,AH=21h,INT 18/AH=01h,INT 09,INT 15/AH=4Fh --------B-1602------------------------------- INT 16 - KEYBOARD - GET SHIFT FLAGS AH = 02h Return: AL = shift flags (see #00582) AH destroyed by many BIOSes SeeAlso: AH=12h,AH=22h,INT 17/AH=0Dh,INT 18/AH=02h,MEM 0040h:0017h Bitfields for keyboard shift flags: Bit(s) Description (Table 00582) 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 SeeAlso: #00587,#03743,MEM 0040h:0017h,#M0010 --------B-1603------------------------------- INT 16 - KEYBOARD - SET TYPEMATIC RATE AND DELAY 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 (above) BH = delay (above) Return: AH destroyed by many BIOSes Note: use INT 16/AH=09h to determine whether some of the subfunctions are supported SeeAlso: INT 16/AH=09h,AH=29h"HUNTER",AH=2Ah"HUNTER" --------B-1604------------------------------- INT 16 - KEYBOARD - SET KEYCLICK (PCjr only) AH = 04h AL = keyclick state 00h off 01h on Return: AH destroyed by many BIOSes SeeAlso: AH=03h,AH=04h"K3PLUS" --------b-1604------------------------------- INT 16 - Tandy 2000 - KEYBOARD - FLUSH KEYBOARD BUFFER AH = 04h Note: this interrupt is identical to INT 51 on the Tandy 2000 SeeAlso: INT 16/AH=00h,INT 16/AH=02h,INT 16/AH=05h"Tandy 2000" SeeAlso: INT 51"Tandy 2000" --------K-1604------------------------------- INT 16 - K3PLUS v6.22+ - SET KEYCLICK AH = 04h AL = keyclick state 00h keyclick off, leave loudness setting unchanged 01h keyclick on, leave loudness setting unchanged else bit 0: keyclick enabled if set bits 7-1: new keyclick loudness (non-zero) Return: AH destroyed by many BIOSes Note: Applications which try to set a new loudness, but are unsure of the results of other INT 16/AH=04h implementations, should set the new loudness first, and then call this function again with AL=01h or AL=00h SeeAlso: AH=03h,AH=04h"KEYBOARD",AX=AF4Dh --------B-1605------------------------------- INT 16 - KEYBOARD - STORE KEYSTROKE IN KEYBOARD BUFFER (AT/PS w enh keybd only) AH = 05h CH = BIOS scan code CL = ASCII character Return: AL = status 00h if successful 01h if keyboard buffer full AH destroyed by many BIOSes Notes: under DESQview, a number of "keystrokes" invoke specific DESQview-related actions when they are read from the keyboard buffer (see #00583) similarly, some "keystrokes" invoke special functions on the HP 100LX and HP 200LX (see #00584) SeeAlso: AH=00h,AH=25h"K3",AH=71h,AX=AF4Dh,AH=FFh,INT 15/AX=DE10h SeeAlso: MEM 0040h:001Eh (Table 00583) Values for pseudo-keystrokes for DESQview: 38FBh or FB00h switch to next window (only if main menu already 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 (Table 00584) Values for pseudo-keystrokes for HP 100LX/200LX: EE00h pop up topcard display and set other system manager applications into sleep mode --------B-1605------------------------------- INT 16 - KEYBOARD - SELECT KEYBOARD LAYOUT (PCjr only) 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 Return: ??? AH destroyed by many BIOSes Note: this function is called by the DOS 3.2 KEYBxx.COM SeeAlso: AH=92h,AH=A2h,AX=AF4Dh --------b-1605------------------------------- INT 16 - Tandy 2000 - KEYBOARD - RESET KEYBOARD AH = 05h Desc: reset the keyboard and flush the keyboard buffer Note: this interrupt is identical to INT 51 on the Tandy 2000 SeeAlso: INT 16/AH=00h,INT 16/AH=02h,INT 16/AH=03h,INT 51"Tandy 2000" ----------160600----------------------------- INT 16 - AAKEYS - GET NEXT KEYBOARD EVENT AX = 0600h Return: CF clear if successful AL = next keyboard event in event buffer, FFh if buffer overflowed CF set on error AL = 00h buffer empty BX destroyed Program: AAKEYS is a TSR by Anthony Appleyard which records keyboard scan codes in a 256-byte buffer in addition to any normal processing which takes place Note: the installation check consists of calling INT 16/AX=06xxh (where 'xx' is any subfunction other than those listed here) and testing whether AX=BEEFh on return SeeAlso: AX=0601h,AX=0602h,AX=0603h,AX=0604h ----------160601----------------------------- INT 16 - AAKEYS - EMPTY KEY-EVENT BUFFER AX = 0601h Return: nothing SeeAlso: AX=0600h,AX=0602h,AX=0603h,AX=0604h ----------160602----------------------------- INT 16 - AAKEYS - DISABLE AAKEYS AX = 0602h Return: AX,DX destroyed Desc: restores INT 09 and INT 16 and clears the TSRs signature byte SeeAlso: AX=0600h,AX=0601h,AX=0603h,AX=0604h ----------160603----------------------------- INT 16 - AAKEYS - GET KEY-EVENT BUFFER AX = 0603h Return: ES:BX -> 256-byte circular key-event buffer ES:[AX] = offset of head of buffer ES:[AX+1] = offset of tail of buffer SeeAlso: AX=0600h,AX=0601h,AX=0602h,AX=0604h ----------160604----------------------------- INT 16 - AAKEYS - EMPTY BIOS KEYBOARD BUFFER AX = 0604h Return: AX destroyed SeeAlso: AX=0600h,AX=0601h,AX=0602h,AX=0603h --------B-1609------------------------------- INT 16 - KEYBOARD - GET KEYBOARD FUNCTIONALITY AH = 09h Return: AL = supported keyboard functions (see #00585) AH destroyed by many BIOSes Note: this function is only available if bit 6 of the second feature byte returned by INT 15/AH=C0h is set (see #00509) SeeAlso: AH=03h,AH=0Ah,AH=10h,AH=11h,AH=12h,AH=20h,AH=21h,AH=22h,INT 15/AH=C0h Bitfields for supported keyboard functions: Bit(s) Description (Table 00585) 7 reserved 6 INT 16/AH=20h-22h supported (122-key keyboard support) 5 INT 16/AH=10h-12h supported (enhanced keyboard support) 4 INT 16/AH=0Ah supported 3 INT 16/AX=0306h supported 2 INT 16/AX=0305h supported 1 INT 16/AX=0304h supported 0 INT 16/AX=0300h supported SeeAlso: #00511 --------K-160A------------------------------- INT 16 - KEYBOARD - GET KEYBOARD ID AH = 0Ah Return: BX = keyboard ID (see #00586) AH destroyed by many BIOSes Notes: check return value from AH=09h to determine whether this function is supported this function is also supported by the K3PLUS v6.00+ INT 16 BIOS replacement SeeAlso: AH=09h,AX=AF4Dh,MEM 0040h:00C2h"AMI" (Table 00586) Values for keyboard ID: 0000h no keyboard attached 41ABh Japanese "G" keyboard (translate mode) MF2 Keyboard (usually in translate mode) 54ABh Japanese "P" keyboard (translate mode) 83ABh Japanese "G" keyboard (pass-through mode) MF2 Keyboard (pass-through mode) 84ABh Japanese "P" keyboard (pass-through mode) 86ABh 122-key keyboard 90ABh old Japanese "G" keyboard 91ABh old Japanese "P" keyboard 92ABh old Japanese "A" keyboard --------B-1610------------------------------- INT 16 - KEYBOARD - GET ENHANCED KEYSTROKE (enhanced kbd support only) AH = 10h Return: AH = BIOS scan code AL = ASCII character Notes: 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 INT 16/AH=09h can be used to determine whether this function is supported, but only on later model PS/2s SeeAlso: AH=00h,AH=09h,AH=11h,AH=20h,MEM 0040h:0019h,MEM 0040h:001Eh --------B-1611------------------------------- INT 16 - 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 some versions of the IBM BIOS Technical Reference erroneously report that CF is returned instead of ZF INT 16/AH=09h can be used to determine whether this function is supported, but only on later model PS/2s SeeAlso: AH=01h,AH=09h,AH=10h,AH=21h,INT 09,INT 15/AH=4Fh --------B-1612------------------------------- INT 16 - KEYBOARD - GET EXTENDED SHIFT STATES (enh kbd support only) AH = 12h Return: AL = shift flags 1 (same as returned by AH=02h) (see #00587) AH = shift flags 2 (see #00588) 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 INT 16/AH=09h can be used to determine whether this function is supported, but only on later model PS/2s many BIOSes (including at least some versions of Phoenix and AMI) will destroy AH on return from functions higher than AH=12h, returning 12h less than was in AH on entry (due to a chain of DEC/JZ instructions) SeeAlso: AH=02h,AH=09h,AH=22h,AH=51h,INT 17/AH=0Dh,MEM 0040h:0017h Bitfields for keyboard shift flags 1: Bit(s) Description (Table 00587) 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 SeeAlso: #00582,#00588,MEM 0040h:0017h,#M0010 Bitfields for keyboard shift flags 2: Bit(s) Description (Table 00588) 7 SysReq key pressed (SysReq is often labeled SysRq) 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 SeeAlso: #00587,MEM 0040h:0018h,#M0011 --------J-1613------------------------------- INT 16 - DOS/V - DOUBLE-BYTE CHARACTER SET SHIFT CONTROL AH = 13h AL = function 00h set shift status DX = shift status (see #00589), must preserve internal status bits 01h get shift status Return: DX = current shift status (see #00589) Note: these functions are supplied by the Japanese Front-End Processor SeeAlso: AH=14h,INT 21/AX=6301h Bitfields for DOS/V shift status: Bit(s) Description (Table 00589) 0 full-size rather than half-size 2-1 character input mode 00 alphanumeric, 01 Katakana, 10 Hiragana, 11 unused 5-3 internal status 6 Romaji enabled 7 Katakana to Kanji conversion enabled 15-8 internal status --------J-1614------------------------------- INT 16 - DOS/V - SHIFT STATUS DISPLAY CONTROL AH = 14h AL = function 00h enable display 01h disable display 02h get display state Return: AL = current state (00h enabled, 01h disabled) Desc: control the screen-bottom shift status row(s) for the Japanese Front-End Processor SeeAlso: AH=13h,INT 10/AH=19h,INT 10/AH=1Dh --------B-1620------------------------------- INT 16 - KEYBOARD - GET 122-KEY KEYSTROKE (122-key kbd support only) AH = 20h Return: AH = BIOS scan code (see AH=10h) AL = ASCII character Note: use AH=09h to determine whether this function is supported SeeAlso: AH=00h,AH=09h,AH=10h,AH=21h,AH=22h --------b-1620------------------------------------ INT 16 - HUNTER 16 - SET TEMPORARY SHIFT AH = 20h AL = shift status (see #00590) Notes: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk. the user can override the specified settings by pressing the keys Bitfields for HUNTER 16 shift status: Bit(s) Description (Table 00590) 4 Scroll Lock on 5 Num Lock on 6 Caps Lock on --------K-1620------------------------------- INT 16 O - K3 v1.5x, K3PLUS v5.xx - GET EXTENDED BUFFER STATE AH = 20h Return: AX = K3 version ES:BX -> extended keyboard buffer start ES:DX -> extended keyboard buffer end ES:SI -> next keystroke ES:DI -> last keystroke in buffer CX = number of keystrokes in buffer Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C. Frinke, originally based on the K3 extended German keyboard driver by Martin Gerdes published in c't magazine in 1988 Note: this function was normally unsupported under K3PLUS v6.00-v6.22 and is no longer supported by v6.30+; use AX=AF20h instead SeeAlso: AH=25h"K3",AX=AF20h,INT 2F/AX=D44Fh/BX=0000h,INT 2F/AX=ED58h --------B-1621------------------------------- INT 16 - KEYBOARD - CHECK FOR 122-KEY KEYSTROKE (122-key kbd support only) AH = 21h Return: ZF set if no keystroke available ZF clear if keystroke available AH = BIOS scan code AL = ASCII character Notes: use AH=09h to determine whether this function is supported some versions of the IBM BIOS Technical Reference erroneously report that CF is returned instead of ZF K3PLUS v6.00+ supports this function as an alias of AH=11h SeeAlso: AH=01h,AH=09h,AH=11h,AH=20h,AH=21h --------b-1621------------------------------------ INT 16 - HUNTER 16 - CONTROL SHIFT KEYS AH = 21h AL = shift keys to control (see #00582) BL = shift state for disabled keys Note: If a bit in AL is set the key is disabled and set to the state of the corresponding bit in BL SeeAlso: AH=20h"HUNTER",AH=22h"HUNTER" --------B-1622------------------------------- INT 16 - KEYBOARD - GET 122-KEY SHIFT STATUS (122-key kbd support only) AH = 22h Return: AL = shift flags 1 (see #00587) AH = shift flags 2 (see #00588) Notes: use AH=09h to determine whether this function is supported K3PLUS v6.00+ supports this function as an alias of AH=12h SeeAlso: AH=02h,AH=09h,AH=12h,AH=20h,AH=21h --------b-1622------------------------------------ INT 16 - HUNTER 16 - CONTROL CTRL-ALT-DEL AH = 22h AL = new Ctrl-Alt-Del state (00h enabled, nonzero disabled) BX = 0708h CX = 0910h DX = 1112h Return: AL = 00h if successful SeeAlso: AH=21h"HUNTER",AH=23h"HUNTER",AH=2Ah --------b-1623------------------------------------ INT 16 - HUNTER 16 - CONTROL EMERGENCY BREAKOUT AH = 23h AL = new state of breakout (00h enabled, nonzero disabled) BX = 0708h CX = 0910h DX = 1112h Return: AL = 00h if successful Desc: Enables or disables the emergency breakout feature, where the Hunter 16 at power on checks whether the X and P keys are pressed. If so the machine will boot rather than continue the running program SeeAlso: AH=22h"HUNTER" --------b-1624------------------------------------ INT 16 - HUNTER 16 - REDEFINE KEY CODES AH = 24h AL = Matrix Code (see #00591) BL = new Key code Return: AL = status (00h successful, nonzero failed) SeeAlso: AH=2Bh,AH=2Ch (Table 00591) Values for HUNTER 16 Matrix Code: Code Key Code Key Code Key 00h Esc key 1Eh Space 3Bh L 01h 1 21h 0 3Ch , 02h Q 22h - 3Eh Right shift 03h Tab 23h ' 42h 8 04h Num Lock 24h Keypad 4 43h 7 05h \ 25h Enter 44h U 08h LShift 26h Keypad 7 45h I 09h Ctrl 27h . 46h J 0Ah "Paw" key 28h Keypad 1 47h K 0Bh 2 29h Keypad 0 48h M 0Ch W 2Ch = 49h N 0Dh A 2Dh Backspace 4Ah / 0Eh S 2Eh Keypad 8 4Dh 6 0Fh Z 2Fh Keypad 9 4Eh 5 11h Alt 30h Keypad 5 4Fh T 16h 4 31h Keypad 6 50h Y 17h 3 32h Keypad 2 51h G 18h E 33h Keypad 3 52h H 19h R 34h Keypad . 53h B 1Ah D 37h 9 54h V 1Bh F 38h O 55h # 1Ch X 39h P 58h Pwr 1Dh C 3Ah ; 59h Shift Pwr --------b-1625------------------------------------ INT 16 - HUNTER 16 - RESET KEYBOARD AH = 25h Return: AL = 00h Desc: restores the standard keyboard layout after any remapping SeeAlso: AH=24h,AH=2Bh,AH=2Ch --------K-1625------------------------------- INT 16 O - K3 v1.5x, K3PLUS v5.xx - COPY INTO EXTENDED BUFFER AH = 25h CX = number of keystrokes to copy ES:SI -> buffer containing keystrokes Return: CF clear if successful CF set on error (i.e. buffer full) CX = number of keystrokes NOT transferred ES:SI -> first keystroke not transferred Note: this function was normally unsupported under K3PLUS v6.00-v6.22 and is no longer supported by v6.30+; use AX=AF25h instead SeeAlso: AH=05h,AH=20h"K3",AX=AF25h,INT 2F/AX=D44Fh/BX=0001h --------b-1626------------------------------------ INT 16 - HUNTER 16 - CONTROL KEYCLICK AH = 26h AL = new state of keyclicks (00h disabled, 01h enabled) Return: AL = 00h SeeAlso: AH=2Ah --------b-1627------------------------------------ INT 16 - HUNTER 16 - CONTROL SCREEN DUMP AREA AH = 27h AL = what to dump 00h whole (virtual) window 01h LCD window only Return: AL = 00h Desc: control whether printscren dumps the whole 80x25 screen or only the part displayed in the LCD window Note: the Hunter 16 has a 240x64 LCD display which serves as a window into a 640x200 virtual screen --------b-1629------------------------------------ INT 16 - HUNTER 16 - GET KEY REPEAT AH = 29h Return: BL = Typematic rate (characters per second) (see #00592) BH = delay (00h = 250ms, 01h = 500ms, 02h = 750ms, 03h = 1s) SeeAlso: AH=03h,AH=2Ah (Table 00592) Values for HUNTER 16 Typematic rate: 00h 30.0 08h 15.0 10h 7.5 18h 3.7 01h 26.7 09h 13.3 11h 6.7 19h 3.3 02h 24.0 0Ah 12.0 12h 6.0 1Ah 3.0 03h 21.8 0Bh 10.9 13h 5.5 1Bh 2.7 04h 20.0 0Ch 10.0 14h 5.0 1Ch 2.5 05h 18.5 0Dh 9.2 15h 4.6 1Dh 2.3 06h 17.1 0Eh 8.6 16h 4.3 1Eh 2.1 07h 16.0 0Fh 8.0 17h 4.0 1Fh 2.0 SeeAlso: AH=2Ah --------b-162A------------------------------------ INT 16 - HUNTER 16 - CONTROL KEY REPEAT AH = 2Ah AL = new state of keyboard autorepeat (00h disabled, 01h enabled) SeeAlso: AH=03h,AH=26h,AH=29h,AH=2Bh --------b-162B------------------------------------ INT 16 - HUNTER 16 - REDEFINE KEY SCAN CODES AH = 2Bh AL = which key table to redefine 00h unshifted 01h shifted 02h Numlock BH = standard scan code of key (00h-80h) BL = new scan code Desc: redefine the generated scan code from BH to BL SeeAlso: AH=24h,AH=2Ah,AH=2Ch --------b-162C------------------------------------ INT 16 - HUNTER 16 - REDEFINE RAW KEY CODES AH = 2Ch AL = Matrix code of key (see AH=29h) BL = new key code Return: AL = status (00h success, nonzero failed) Desc: redefine the key code generated by holding the PAW key down and pressing the key in AL SeeAlso: AH=24h,AH=2Bh --------b-162D------------------------------------ INT 16 - HUNTER 16 - CONTROL BREAK KEYS AH = 2Dh AL = enabled break keys bit 0 Ctrl-C bit 1 Ctrl-Break BX = 0708h CX = 0910h DX = 1112h Return: AL = status (00h success, FFh failed) SeeAlso: AH=21h"HUNTER" --------U-163577----------------------------- INT 16 U - TextWare TWTSR - API AX = 3577h CX = function 00CBh ??? Return: AX = 0000h BX = 0000h DX:CX -> ??? 00CCh uninstall Return: AX = status 0000h successful FFFDh unable to unload because vectors taken 00CDh ??? Return: AX = 0000h BX = 0000h DX:CX -> ??? other Return: AX = 5345h ('SE') Program: TWTSR is a TSR which allows the TextWare hypertext browser to be popped up via hotkey SeeAlso: AX=D724h --------U-164252----------------------------- INT 16 - TEXTCAP 2.0 - INSTALLATION CHECK AX = 4252h Return: AX = 5242h if installed Program: 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 --------U-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 --------U-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 --------e-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 --------e-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 --------e-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 (see #00593) CX = selected country code (33 = France, 49 = Germany, etc) DX = baudrate divisor (115200/DX = baudrate) SeeAlso: AX=4500h Bitfields for Shamrock Software EMAIL flags: Bit(s) Description (Table 00593) 0 ISO code 1 pause 2 linefeed 3 ANSI sequences --------e-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 --------e-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) bit 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 --------e-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 --------e-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 --------K-164B------------------------------- INT 16 - Frank Klemm Keyboard Driver v2.0 - API AH = 4Bh CX = code or action 0000h-FEFFh key code FF00h-FFFFh action (see #00594) BL = scan code (normal keys) or scan code + 60h (enhanced keys) BH = shift state (see #00595) Return: CX = previous code or action (Table 00594) Values for Frank Klemm Keyboard Driver action code: FF00h no action FF01h hardcopy FF02h left shift FF03h right shift FF04h left Ctrl FF05h right Ctrl FF06h left Alt FF07h right Alt / AltGr FF08h CapsLock FF09h NumLock FF0Ah ScrlLock FF0Bh Insert (returns code 5200h or 52E0h) FF0Ch Pause FF0Dh Ctrl-Break function FF0Eh warm boot via far jump to F000h:FFF0h FF0Fh terminate current program FF10h key for entering keys via Alt-numpad (read-only) FF11h clear keyboard buffer FF12h reset (warmboot on XT) FF13h mouse sensitivity (read-only) FF14h keyjobs (read-only) FF15h SysRq FF16h turn on CPU cache (486+) FF17h turn off CPU cache (486+) SeeAlso: #00595 (Table 00595) Values for Frank Klemm Keyboard Driver shift state: 00h no shift keys 01h either Shift 02h either Ctrl 03h left Alt 04h Ctrl + Alt ---standard keyboard--- 05h right Alt / AltGr ---Russian keyboard--- 05h Russian + no shift keys 06h Russian + either Shift SeeAlso: #00594 --------K-164D4F----------------------------- INT 16 - M16_KBD.COM v5.6 - INSTALLATION CHECK AX = 4D4Fh Return: AX = 6F6Dh if installed ES = segment of resident code Program: M16_KBD is a shareware Cyrillic keyboard driver by I.V. Morozov SeeAlso: INT 10/AX=1130h/BX=4D4Fh --------J-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 Notes: This function is called with BX=0051h by Japanese versions of MS-DOS/PC DOS/DR DOS IO.SYS/IBMBIO.COM at initialization time. the K3PLUS v6.00+ INT 16 BIOS replacement will switch between the supported country specific layout (e.g. BX=0031h Germany, BX=001Fh Netherlands, BX=0020h Belgium, BX=0022h Spain) (as with + +) and K3PLUS' transparent mode (as with ++). In transparent mode (BX=0001h), K3PLUS chains to the underlying driver (normally the BIOS driver with US-layout). K3PLUS beeps on mode changes SeeAlso: AX=5001h,AX=AF4Dh,INT 10/AX=5000h,INT 17/AX=5000h --------J-165001----------------------------- INT 16 - KEYBOARD - AX PC - GET KEYBOARD COUNTRY CODE AX = 5001h Return: AL = status 00h successful BX = country code 02h error Note: also supported by K3PLUS v6.00+ SeeAlso: AX=5000h,INT 10/AX=5001h,INT 17/AX=5001h --------J-1651------------------------------- INT 16 - KEYBOARD - AX PC - READ SHIFT KEY STATUS AH = 51h Return: AL = standard shift key states (see #00582,#00587) AH = Kana lock (00h off, 01h on) Note: also supported by K3PLUS v6.00+, but K3PLUS always returns AH=00h SeeAlso: AH=02h,AH=12h,AH=22h --------t-165453BX5242----------------------- INT 16 - TSRBONES - INSTALLATION CHECK AX = 5453h ('TS') BX = 5242h ('RB') CX = 4F4Eh ('ON') DX = 4553h ('ES') Return: AX = 4553h if installed BX = 4F4Eh if installed CX = 5242h if installed DX = 5453h if installed Program: TSRBONES is a skeletal TSR framework by Robert Curtis Davis Note: these values are the default as the TSRBONES package is distributed, but will normally be changed when implementing an actual TSR with the TSRBONES skeleton SeeAlso: INT 2D/AL=00h"AMIS" --------K-165472BX4C54----------------------- INT 16 - TrLit - API AX = 5472h ('Tr') BX = 4C54h ('Lt') CL = function 00h installation check Return: DX = 1234h if installed AX = 100*version (binary, 00E9h = v2.33) CX = resident code segment 01h get original INT 09 vector Return: ES:BX -> previous handler 02h get original INT 16 vector Return: ES:BX -> previous handler else chained CH = 00h (for backward compatibility with versions before 2.30) Program: TrLit is a Russian keyboard transliterator by Rostislav Krasny Index: installation check;TrLit --------A-165500----------------------------- INT 16 C - 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: AX=55FFh,INT 1A/AX=3601h --------A-1655FE----------------------------- INT 16 CU - Microsoft QBASIC internal - MICROSOFT COOPERATION WITH TSR AX = 55FEh DX = function 0000h initialize ES:BX -> ??? function ES:CX -> ??? structure FFFFh shutdown/reset Return: AX = result 4D4Bh only the INT 1B handler will be installed. other: handlers for INT 08, INT 09, INT 16, INT 1B, and INT 1C are installed Notes: The pointer in ES:CX seems to point at a structure defining a callback function when new keyboard keys are pressed. If a TSR returns AX=4D4Bh, QBASIC will stop (with IRQ's and interrupts enabled). these calls are also made by MS-DOS 6.0's DOSSHELL at startup, exit, and before/after shelling out since EDIT.COM and HELP.COM merely invoke QBASIC, those two programs will also cause this interface to be invoked K3PLUS v6.07+ supports this function, but will never invoke the callback function SeeAlso: AX=5500h,AX=AF4Dh,INT 1A/AX=3601h --------U-1655FF----------------------------- INT 16 C - Microsoft Word - TSR COOPERATION??? AX = 55FFh BX >= 0004h (version of Microsoft Word [BL = major] ???) CX = function 0000h set ??? flag other clear ??? flag Notes: hooks intercepting this call are present in SWAPSH and SWAPDT v1.77j, distributed with PC Tools v7, as well as the Trusted Access SCRNBLNK.COM; this may be part of the standard TesSeRact library known to be called by the German edition of Microsoft Word 5.0 SeeAlso: AX=5500h,INT 2F/AX=5453h --------c-165758BX4858----------------------- INT 16 U - Netroom CACHECLK - INSTALLATION CHECK AX = 5758h BX = 4858h ('HX') DX = 4443h ('DC') CX <> 5758h Return: BX = 6878h if installed CX = 6463h if installed AX = code segment of TSR CX = internal version??? (v3.00 returns 0100h) Program: CACHECLK is a "cloaked" disk cache included with Netroom Notes: if CX=5758h on entry, CACHECLK returns with all registers unchanged the cache statistics are located early in the segment pointed at by AX on return SeeAlso: INT 2F/AX=5758h --------m-165758BX5754----------------------- INT 16 U - Netroom ??? - ??? AX = 5758h BX = 5754h ??? Return: ??? --------m-165758BX5755----------------------- INT 16 U - Netroom ??? - ??? AX = 5758h BX = 5755h DS:SI -> ??? Return: ??? --------m-165758BX5756----------------------- INT 16 U - Netroom ??? - INSTALLATION CHECK AX = 5758h BX = 5756h Return: BX <> 5756h if installed --------m-165758BX5858----------------------- INT 16 U - Netroom PRENET - GET OLD INTERRUPT VECTORS AX = 5758h BX = 5858h Return: CF clear DX:BX -> saved copy of interrupt vector table InstallCheck: call this function and compare BX against 5858h on return; if it has changed, PRENET is installed SeeAlso: AX=5758h/BX=5859h Index: installation check;Netroom PRENET --------m-165758BX5859----------------------- INT 16 U - Netroom POSTNET - GET OLD INTERRUPT VECTORS AX = 5758h BX = 5859h Return: CF clear DX:BX -> saved copy of interrupt vector table InstallCheck: call this function and compare BX against 5859h on return; if it has changed, POSTNET is installed SeeAlso: AX=5758h/BX=5858h Index: installation check;Netroom POSTNET ----------1667------------------------------- INT 16 - Doorway v2.x+ - INSTALLATION CHECK / REDIRECTION CONTROLa AH = 67h AL = Doorway mode 00h turn off DOS redirection 01h turn on DOS redirection Return: AH = 80h if Doorway is actively redirecting output AL = 80h if Doorway was already in requested mode Program: Doorway is a program by Marshall Dudley which allows most DOS programs to run as a BBS door without modification Note: to perform an installation check without changing the redirection state, if is necessary to restore the original mode if AL was not 80h on return SeeAlso: INT 10/AH=BBh"Doorway" --------U-166969BX6968----------------------- INT 16 - PC Tools v5.1+ BACKTALK - UNHOOK AX = 6969h BX = 6968h Return: resident code unhooked, but not removed from memory Index: uninstall;BACKTALK --------U-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" --------i-166A6B----------------------------- INT 16 U - FastJuice - DISABLE/UNLOAD??? AX = 6A6Bh Return: ??? Program: FastJuice is a resident battery-power monitor by SeaSide Software SeeAlso: AX=7463h Index: uninstall;FastJuice --------G-166C63----------------------------- INT 16 U - TMED v1.6a - INSTALLATION CHECK AX = 6C63h ('lc') Return: AX = 4C43h ('LC') if installed Program: TMED is a freeware resident memory editor by Liang Chen --------U-166D74----------------------------- INT 16 - MTRTSR - INSTALLATION CHECK AX = 6D74h ('mt') Return: AX = 4D54h ('MT') if installed Program: MTRTSR is a part of the shareware MTR package by Mechon Mamre which permits searching the large corpus of classical Hebrew texts in the package SeeAlso: INT 10/AX=6D74h"MTRFONTS" --------b-166F00----------------------------- INT 16 - HP Vectra EX-BIOS - "F16_INQUIRE" - Extended BIOS INSTALLATION CHECK AX = 6F00h BX <> 4850h (usually set to 0000h for simplicity) Return: BX = 4850h ("HP") if present Notes: called by recent MS Mouse drivers looking for an HP-HIL mouse supported by the original HP Vectra AT and ES/QS/RS series HP Vectras SeeAlso: AX=6F01h,AX=6F04h,AX=6F07h,AX=6F09h,AX=6F0Dh,AX=6F11h,AX=6F12h SeeAlso: INT 14/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h SeeAlso: INT 6F/AH=00h"HP Vectra" --------b-166F01----------------------------- INT 16 - HP Vectra EX-BIOS - "F16_DEF_ATTR" - GET DEFAULT TYPEMATIC VALUES AX = 6F01h Return: AH = 00h (successful) CX = 0004h (size of returned buffer) ES:SI -> buffer for typematic info (see #00596) Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h Format of HP Vectra EX-BIOS typematic info: Offset Size Description (Table 00596) 00h BYTE delay before repeat for all non-Cursor Control Pad keys (see #00597) 01h BYTE typematic rate for all non-Cursor Control Pad keys (see #00598) 02h BYTE delay before repeat for Cursor Control Pad keys (see #00599) 03h BYTE typematic rate for Cursor Control Pad keys (see #00598) (Table 00597) Values for HP Vectra EX-BIOS non-CCP delay time: 00h 17 ms 01h 150 ms 02h 283 ms 03h 417 ms 04h 550 ms 05h 683 ms 06h 817 ms 07h 950 ms 08h 1083 ms 09h 1217 ms 0Ah 1350 ms 0Bh 1483 ms 0Ch 1617 ms 0Dh 1750 ms 0Eh 1883 ms 0Fh 2017 ms Note: the above values assume that the key repeat rate has been set to 60 Hz; double the times if set to 30 Hz SeeAlso: #00596,#00598,#00599 (Table 00598) Values for HP Vectra EX-BIOS typematic rate: 00h 60 / sec 01h 30 / sec 02h 20 03h 15 04h 12 05h 10 06h 8.57 07h 7.5 08h 6.66 09h 6 / sec 0Ah 5.45 0Bh 5 0Ch 4.62 0Dh 4.28 0Eh 4 / sec 0Fh typematic disabled Note: the above values assume that the key repeat rate has been set to 60 Hz; halve the rates if set to 30 Hz SeeAlso: #00597,#00599 (Table 00599) Values for HP Vectra EX-BIOS CCP delay time: 00h 17 ms 01h 83 ms 02h 150 ms 03h 217 ms 04h 283 ms 05h 350 ms 06h 417 ms 07h 483 ms 08h 550 ms 09h 617 ms 0Ah 683 ms 0Bh 750 ms 0Ch 817 ms 0Dh 883 ms 0Eh 950 ms 0Fh 1017 ms Note: the above values assume that the key repeat rate has been set to 60 Hz; double the times if set to 30 Hz SeeAlso: #00597,#00598 --------b-166F02----------------------------- INT 16 - HP Vectra EX-BIOS - "F16_GET_ATTR" - GET CURRENT TYPEMATIC VALUES AX = 6F02h Return: AH = 00h (successful) CX = 0004h (size of returned buffer) ES:SI -> buffer for typematic info (see #00596) Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h SeeAlso: AX=6F00h,AX=6F01h,AX=6F03h --------b-166F03----------------------------- INT 16 - HP Vectra EX-BIOS - "F16_SET_ATTR" - SET TYPEMATIC VALUES AX = 6F03h ES:SI -> buffer containing typematic info (see #00596) Return: AH = 00h (successful) Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h SeeAlso: AX=6F00h,AX=6F01h,AX=6F02h --------b-166F04----------------------------- INT 16 - HP Vectra EX-BIOS - "F16_DEF_MAPPING" - GET DEFAULT KEY MAPPINGS AX = 6F04h ES:SI -> mapping buffer (see #00600) Return: AH = 00h (successful) CX = 001Eh (number of bytes in buffer) ES:SI buffer filled Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras the HIL input system translates the HIL keyboard events to simulate an IBM-compatible keyboard; the translation can be altered dynamically by applications SeeAlso: AX=6F00h,AX=6F05h,AX=6F06h Format of HP Vectra EX-BIOS keyboard mapping info: Offset Size Description (Table 00600) 00h 3 WORDs entry for V_QWERTY driver (IP, CS, DS) 06h 3 WORDs entry for V_SOFTKEY driver (IP, CS, DS) 0Ch 3 WORDs entry for V_FUNCTION driver 12h 3 WORDs entry for V_NUMPAD driver 18h 3 WORDs entry for V_CCP driver --------b-166F05----------------------------- INT 16 - HP Vectra EX-BIOS - "F16_GET_MAPPING" - GET CURRENT KEY MAPPINGS AX = 6F05h ES:SI -> mapping buffer (see #00600) Return: AH = 00h (successful) CX = 001Eh (number of bytes in buffer) ES:SI buffer filled Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras SeeAlso: AX=6F04h,AX=6F06h --------b-166F06----------------------------- INT 16 - HP Vectra EX-BIOS - "F16_SET_MAPPING" - SET KEY MAPPINGS AX = 6F06h CX = number of bytes in buffer (001Eh) ES:SI -> mapping buffer (see #00600) Return: AH = 00h (successful) Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras any application which modifies the key mappings should restore them before terminating drivers installed with this function are assured of 32 bytes of stack space when they are invoked SeeAlso: AX=6F04h,AX=6F05h,AX=6F07h --------b-166F07----------------------------- INT 16 - HP Vectra EX-BIOS - "F16_SET_XLATORS" - SET CCP AND SOFTKEY PADS AX = 6F07h BL = translation to set (see #00601) Return: AH = 00h (successful) Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras this function may no longer work properly if the application has modified the key mappings with AX=6F06h SeeAlso: AX=6F06h,AX=6F09h (Table 00601) Values for HP Vectra keyboard translation specifier: 00h map V_CCP to V_CCPCUR, forcing the cursor pad to return cursor keys 01h map V_CCP to V_CCPNUM, forcing the cursor pad to always return numbers 02h map V_CCP to V_OFF, disabling the cursor pad 03h map V_CCP to V_CCPGID, converting cursor pad keys to GID data 04h map V_CCP to V_RAW, passing cursor pad data untranslated to INT 09 05h map V_SOFTKEY to V_SKEY2KFEY, translating into standard function keys 06h map V_SOFTKEY to V_RAW, passing Softkey scancodes direct to INT 09 07h map V_SOFTKEY to V_OFF, disabling HP Softkeys SeeAlso: #00602 (Table 00602) Values for HP Vectra scancodes and BIOS keycodes for V_RAW translator: INT 09 INT 16 keycode Key scan code Default Shifted Ctrl Alt * (NumPd) 37h 2Ah (Prt Sc) 00/72h 00/37H Sysreq 54h -- -- -- -- CCP-Up 60h 00/D9h 00/BFh 00/A5h 00/8BH CCP-Left 61h 00/DAh 00/C0h 00/A6h 00/8CH CCP-Down 62h 00/DBh 00/C1h 00/A7h 00/8DH CCP-Right 63h 00/DCh 00/C2h 00/A8h 00/8EH CCP-Home 64h 00/DDh 00/C3h 00/A9h 00/8FH CCP-PgUp 65h 00/DEh 00/C4h 00/AAh 00/90H CCP-End 66h 00/DFh 00/C5h 00/ABh 00/91H CCP-PgDn 67h 00/E0h 00/C6h 00/ACh 00/92H CCP-Ins 68h 00/E1h 00/C7h 00/ADh 00/93H CCP-Del 69h 00/E2h 00/C8h 00/AEh 00/94H CCP-CNTR 6Ah 00/E3h 00/C9h 00/AFh 00/95H f1 70h 00/E9h 00/CFh 00/B5h 00/9BH f2 71h 00/EAh 00/D0h 00/B6h 00/9CH f3 72h 00/EBh 00/D1h 00/B7h 00/9DH f4 73h 00/ECh 00/D2h 00/B8h 00/9EH f5 74h 00/EDh 00/D3h 00/B9h 00/9FH f6 75h 00/EEh 00/D4h 00/BAh 00/A0H f7 76h 00/EFh 00/D5h 00/BBh 00/A1H f8 77h 00/F0h 00/D6h 00/BCh 00/A2H Note: only HP-specific codes are listed in this table; see INT 09 for a full list of standard scan codes SeeAlso: #00006,#00601 --------b-166F08----------------------------- INT 16 - HP Vectra EX-BIOS - "F16_KBD" - GET KEYBOARD INFORMATION AX = 6F08h Return: AH = status 00h successful 02h unsupported (non-HIL, i.e. standard, keyboard) BH = HP-HIL address (HP Vectra AT only???) BL = HP-HIL ID (HP Vectra AT only???) BL = keyboard language (ES/QS/RS only???) (see #00603) Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras the driver's address in the HP_VECTOR_TABLE (see INT 6F/AH=00h) may be computed as (BH-1)*6 + N, where N is the address of the first HP-HIL device driver (see INT 6F/AH=0Ah"F_INQUIRE_FIRST") SeeAlso: AX=6F05h,AX=6F09h,INT 6F/AH=0Ah"F_INQUIRE_FIRST" (Table 00603) Values for HP HIL keyboard language code: 00h reserved 01h Arabic-French 02h Kanji 03h Swiss-French 04h Portugese 05h Arabic 06h Hebrew 07h Canadian-English 08h Turkish 09h Greek 0Ah Thai 0Bh Italian 0Ch Hangul (Korean) 0Dh Dutch 0Eh Swedish 0Fh German 10h Chinese (PRC) 11h Chinese (Taiwan) 12h Swiss (French ii) 13h Spanish 14h Swiss (German ii) 15h Belgian (Flemish) 16h Finnish 17h United Kingdom 18h French-Canadian 19h French-German 1Ah Norwegian 1Bh French 1Ch Danish 1Dh Katakana 1Eh Latin American Spanish 1Fh United States-American 20h-FEh reserved FFh non-HP keyboard (IBM AT keyboard and IBM Enhanced keyboard) --------b-166F09----------------------------- INT 16 - HP Vectra EX-BIOS - "F16_KBD_RESET" - RESET KEYBOARD TO DEFAULTS AX = 6F09h Return: AH = 00h (successful) Desc: reset all keyboard mappings to their default translators, and reset typematic values to their defaults Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras SeeAlso: AX=6F04h,AX=6F07h,AX=6F08h --------b-166F0A----------------------------- INT 16 - HP Vectra ES/QS/RS EX-BIOS - READ PROCESSOR SPEED AX = 6F0Ah Return: AH = 00h (successful) BX = speed code 0Bh for low speed (see #00604) 12h for medium speed (see #00604) 0Ch for high speed (see #00604) Note: supported by ES, QS, and RS series of HP Vectras SeeAlso: AX=6F00h (Table 00604) Values for HP Vetra CPU speed: Vectra Low Medium High ES 8 MHz - 8 MHz ES/12 8 MHz - 12 MHz QS/16, RS/16 8 MHz - 16 MHz QS/16S 8 MHz - 16 MHz QS/20, RS/20 8 MHz - 20 MHz RS/20C 5 MHz 10 MHz 20 MHz RS/25C 5 MHz 12.5 MHz 25 MHz --------b-166F0B----------------------------- INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO LOW AX = 6F0Bh Return: AH = 00h (successful) Notes: see AX=6F0Ah for speed definitions supported by ES, QS, and RS series of HP Vectras SeeAlso: AX=6F00h,AX=6F0Ah --------b-166F0C----------------------------- INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO HIGH AX = 6F0Ch Return: AH = 00h (successful) Notes: see AX=6F0Ah for speed definitions supported by ES, QS, and RS series of HP Vectras SeeAlso: AX=6F00h,AX=6F0Ah --------b-166F0D----------------------------- INT 16 - HP Vectra ES/QS/RS EX-BIOS - GET HIL Extended BIOS INTERRUPT NUMBER AX = 6F0Dh Return: AH = interrupt number (default 6Fh, 02h means 6Fh as well) Notes: supported by ES, QS, and RS series of HP Vectras called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL input system SeeAlso: AX=6F00h,AX=6F0Eh,INT 6F/AH=00h"HP Vectra",INT 6F/AH=0Ah"HP" --------b-166F0E----------------------------- INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET HIL Extended BIOS INTERRUPT NUMBER AX = 6F0Eh BL = new interrupt number (60h-6Fh,78h-7Fh) Return: AH = status (00h = successful) Desc: allows the HIL Extended BIOS software to use a non-default interrupt number in case of an interrupt conflict with another application Notes: supported by ES, QS, and RS series of HP Vectras called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL input system SeeAlso: AX=6F00h,AX=6F0Dh,INT 6F/AH=00h"HP",INT 6F/AH=0Ah"HP" --------b-166F0F----------------------------- INT 16 - HP Vectras RS/20C and RS/25C - ENABLE MEMORY CACHING AX = 6F0Fh Return: AH = status 00h successful FEh cache subsystem is bad SeeAlso: AX=6F00h,AX=6F10h,AX=6F11h --------b-166F10----------------------------- INT 16 - HP Vectras RS/20C and RS/25C - DISABLE MEMORY CACHING AX = 6F10h Return: AH = 00h (successful) SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F11h --------b-166F11----------------------------- INT 16 - HP Vectras RS/20C and RS/25C - GET MEMORY CACHING STATE AX = 6F11h Return: AH = 00h (successful) AL bit 0 = cache state 0 cache disabled 1 cache enabled SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F10h --------b-166F12----------------------------- INT 16 - HP Vectras RS/20C and RS/25C - SET PROCESSOR SPEED TO MEDIUM AX = 6F12h Return: AH = 00h (successful) Note: see AX=6F0Ah for speed definitions SeeAlso: AX=6F00h,AX=6F0Ah --------K-1670------------------------------- INT 16 - FAKEY.COM - INSTALLATION CHECK AH = 70h Return: AX = 1954h if installed Program: FAKEY is a keystroke faking utility by System Enhancement Associates --------K-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 Program: FAKEY is a keystroke faking utility by System Enhancement Associates SeeAlso: AH=05h,AH=72h --------K-1672------------------------------- INT 16 - FAKEY.COM - CLEAR FAKED KEYSTROKES AH = 72h Program: FAKEY is a keystroke faking utility by System Enhancement Associates SeeAlso: AH=71h --------K-1673------------------------------- INT 16 - FAKEY.COM - PLAY TONES AH = 73h CX = number of tones to play DS:SI -> array of tones (see #00605) Program: FAKEY is a keystroke faking utility by System Enhancement Associates SeeAlso: INT 15/AX=1019h Format of FAKEY.COM tone array entries: Offset Size Description (Table 00605) 00h WORD divisor for timer channel 2 02h WORD duration in clock ticks --------i-167463----------------------------- INT 16 U - FastJuice - INSTALLATION CHECK AX = 7463h ("tc") Return: AX = 5443h ("TC") if installed Program: FastJuice is a resident battery-power monitor by SeaSide Software SeeAlso: AX=6A6Bh --------R-1675------------------------------- INT 16 - pcANYWHERE III - SET TICK COUNT FOR SCANNING AH = 75h AL = number of ticks between checks for new screen changes --------R-1676------------------------------- INT 16 - pcANYWHERE III - SET ERROR CHECKING TYPE AH = 76h AL = error checking type 00h none 01h fast 02h slow --------R-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 --------U-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 --------U-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 --------R-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 --------R-167A------------------------------- INT 16 - pcANYWHERE III - CANCEL SESSION AH = 7Ah --------R-167B00----------------------------- INT 16 - pcANYWHERE III - SUSPEND AX = 7B00h SeeAlso: AH=79h,AX=7B01h --------R-167B01----------------------------- INT 16 - pcANYWHERE III - RESUME AX = 7B01h SeeAlso: AH=79h,AX=7B00h --------R-167C------------------------------- INT 16 - pcANYWHERE III - GET PORT CONFIGURATION AH = 7Ch Return: AH = port number AL = baud rate (see #00606) SeeAlso: AX=7B00h,AH=7Eh (Table 00606) Values for pcANYWHERE III 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 SeeAlso: #00309 --------R-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 SeeAlso: AH=7Ch,AH=7Eh --------R-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 SeeAlso: AH=7Ch --------R-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 --------U-1680------------------------------- INT 16 - MAKEY.COM - INSTALLATION CHECK AH = 80h Return: AX = 1954h if installed Program: MAKEY is a utility by System Enhancement Associates --------K-1687------------------------------- INT 16 - DK.COM v1.03 - INSTALLATION CHECK AH = 87h Return: AX = 4A57h ('JW') if installed Program: DK.COM is the resident part of a small keyboard macro utility by Digital Mechanics. --------U-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 (see #00607) Program: AT.COM is a resident scheduler by Bill Frolik Format of AT.COM event record: Offset Size Description (Table 00607) 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 --------K-1692------------------------------- INT 16 - KEYB.COM KEYBOARD CAPABILITIES CHECK (not an actual function!) AH = 92h Return: AH <= 80h if enhanced keyboard functions (AH=10h-12h) supported Desc: this function is called by the DOS 3.2 KEYBxx.COM and DOS 5+ KEYB.COM to determine the highest supported keyboard function Note: many BIOSes (including at least some versions of Phoenix and AMI) will destroy AH on return from functions higher than AH=12h, returning 12h less than was in AH on entry (due to a chain of DEC/JZ instructions) SeeAlso: AH=05h"PCjr",AH=A2h,INT 2F/AX=AD80h --------U-1699------------------------------- INT 16 - SCOUT v5.4 - GET ??? AH = 99h Return: AX = ABCDh BX:CX -> ??? (appears to be start of PSP for resident portion) Program: Scout is a memory-resident file manager by New-Ware SeeAlso: AH=9Eh --------U-169E------------------------------- INT 16 - SCOUT v5.4 - INSTALLATION CHECK AH = 9Eh Return: AX = ABCDh if installed Program: Scout is a memory-resident file manager by New-Ware SeeAlso: AH=99h --------K-16A2------------------------------- INT 16 - KEYB.COM KEYBOARD CAPABILITIES CHECK (not an actual function!) AH = A2h Return: AH <= 80h if 122-key keyboard functions (AH=20h-22h) supported Desc: this function is called by the DOS 3.2 KEYBxx.COM and DOS 5+ KEYB.COM to determine the highest supported keyboard function Note: many BIOSes (including at least some versions of Phoenix and AMI) will destroy AH on return from functions higher than AH=12h, returning 12h less than was in AH on entry (due to a chain of DEC/JZ instructions) SeeAlso: AH=05h"PCjr",AH=92h,INT 2F/AX=AD80h --------V-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. --------U-16AABBBXEEFF----------------------- INT 16 U - JORJ v4.3 - INSTALLATION CHECK AX = AABBh BX = EEFFh Return: AX = EEFFh if installed BX = AABBh if installed CL = hotkey name (default 6Ah 'j' for Alt-J) Program: JORJ is a shareware dictionary with phonetic lookup by Jorj Software Co. Index: hotkeys;JORJ --------K-16AF20BX4B33----------------------- INT 16 - K3PLUS v6.00+ (API v2.0+) - GET EXTENDED BUFFER STATE AX = AF20h BX = 4B33h ('K3') Return: AX = K3 version (same as returned in BX by AX=AF4Dh) ES:BX -> extended keyboard buffer start ES:DX -> extended keyboard buffer end ES:SI -> next keystroke ES:DI -> last keystroke in buffer CX = number of keystrokes in buffer Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C. Frinke, originally based on the K3 extended German keyboard driver by Martin Gerdes published in c't magazine in 1988 Note: this function replaces the identical function AH=20h"K3" SeeAlso: AH=20h"K3",AX=AF25h,AX=AF4Dh,AX=AF50h,INT 2F/AX=ED58h --------K-16AF25BX4B33----------------------- INT 16 - K3PLUS v6.00+ (API v2.0+) - COPY INTO EXTENDED BUFFER AX = AF25h BX = 4B33h ('K3') CX = number of keystrokes to copy ES:SI -> buffer containing keystrokes Return: CF clear if successful CF set on error (i.e. buffer full) CX = number of keystrokes NOT transferred ES:SI -> first keystroke not transferred Note: this function replaces the identical function AH=25h"K3" SeeAlso: AH=25h"K3",AX=AF20h,AX=AF4Dh,AX=AF50h,INT 2F/AX=D44Fh/BX=0001h --------K-16AF4DBX4B33----------------------- INT 16 - K3PLUS v6.00+ (API v2.0+) - GET VERSION INFORMATION AX = AF4Dh BX = 4B33h ('K3') Return: AL = 50h if installed BX = K3 version DX = API version ES:CX -> K3 structure (version-dependent) (see #00608) Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C. Frinke, originally based on the K3 extended German keyboard driver by Martin Gerdes published in c't magazine in 1988 SeeAlso: AX=AF20h,AX=AF50h,AX=AF80h,AX=AF82h/BX=4B33h,INT 2F/AX=D44Fh/BX=0000h SeeAlso: INT 2F/AX=ED58h Index: installation check;K3PLUS Format of internal K3 structure: Offset Size Description (Table 00608) 00h 3 BYTEs signature "K3$" 03h BYTE length of structure, including this byte and signature 04h WORD compiler switch option flags A (see #00609) 06h WORD compiler switch option flags B (see #00610) 08h BYTE internal flags A (see #00611) 09h BYTE internal flags B (see #00612) 0Ah WORD DOS version recorded at startup 0Ch WORD "ActTypeSpeed" 0Eh WORD last Keyboard-ID sent 41ABh translated, 83ABh native (pass-through) 10h WORD offset of K3TAB Special 12h WORD offset of K3TAB German 14h WORD offset of K3TAB Alt 16h WORD offset of K3TAB AltGr 18h WORD offset of K3TAB Ctrl 1Ah WORD offset of K3TAB NPad 1Ch WORD offset of K3TAB CtrlNPad 1Eh WORD offset of K3TAB AltNPad 20h WORD offset of K3TAB ApoTbl or 0000h 22h WORD offset of K3TAB UmlautTbl or 0000h 24h WORD offset of K3TAB UmlautTblExp or 0000h 26h WORD length of video mode table 28h WORD offset of VidMdTbl or 0000h 2Ah BYTE '$' end marker Bitfields for K3PLUS compiler switch option flags A: Bit(s) Description (Table 00609) 15 GuINT16Fct2 (general use of INT 16 function 2) 14 Int15df (INT 15 has to be predefined) 13 GuAltNP (general use of Alt Numpad) 12 SupAT (ATs+ supported) 11 GuINT16Fct3 (general use of INT 16 function 3) 10 GuINT16Ret (general use of INT16 bad function return) 9-8 Layout (0-2, 3 reserved; 0=PC, 1=AT, 2=MF) 7 ForceMF (force MF decode without read-ID) 6 KXlate (translate keys for special keyboard) 5 UmlautX (umlaut translation capability included) 4 ApoX (translate apostrophe) 3 DoINT16 (INT 16 handler included) 2 UseCC (CopyCursor included) 1-0 UseEB 0=no extended keystroke buffer, 1=reserve mem, 2=use PSP, 3=reserved Bitfields for K3 compiler switch option flags B: Bit(s) Description (Table 00610) 15-11 reserved (0) 10 CtrlSeq (Ctrl macro capability included) 9-8 SupINT16fct55FE 6 DoInstallCheck (check for double installation) 5 SupINT16fct5PcJr (INT 16/AH=05h"PCjr" supported) 4 SendOut (sound and message output supported) 3 SupInt16fct5500 (INT 16/AX=5500h supported) 2 GuINT15Fct4F (calls to INT 15/AH=4Fh supported) 1-0 UseBufferStart (0=use standard area, 1=set standard area, 2=use internal indexes, 3=reserved) Bitfields for K3 internal flags A: Bit(s) Description (Table 00611) 7 DoingUmlautExp 6 CallINT15fct4F 5 Beep1 (requires SendOut set in option flags B) 4 ATflag (set for AT, 386, PS/2 Models 50-80) 3 XTflag (set for PC, PC/XT, Micromint PC, Pencock PC, PS/2 Model 30) 2 KeyClick 1 UmlautExp 0 UmlautTrans Bitfields for K3 internal flags B: Bit(s) Description (Table 00612) 7-5 reserved 4 TranslateE0 enabled 3 Boot enabled 2 PrintScreen enabled 1 Break enabled 0 ApoPendingBeep --------K-16AF50BX4B33----------------------- INT 16 - K3PLUS v6.00+ (API v2.0+) - CHECK IF FUNCTION SUPPORTED AX = AF50h BX = 4B33h ('K3') CH = function 00h get function flags CL = 00h Return: CX = supported function flags (see #00613) nonzero reserved for extensions SeeAlso: AX=AF20h,AX=AF4Dh,AX=AF51h,AX=AF80h Bitfields for K3PLUS supported function list: Bit(s) Description (Table 00613) 0 function 4Dh supported 1 function 50h supported 2-3 reserved (0) 4 function 20h supported 5 function 25h supported 6 function 51h supported 7 reserved (0) 8 function 80h supported 9 function 81h supported 10 function 82h supported 11-15 reserved (0) --------K-16AF51BX4B33----------------------- INT 16 - K3PLUS v6.00+ (API v2.00+) - SET OPTIONS AX = AF51h BX = 4B33h ('K3') CX = switches Return: AL = status 00h done CX = previous switch settings 01h switch not supported FFh other error SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h --------K-16AF80BX4B33----------------------- INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 09h VECTOR AX = AF80h BX = 4B33h ('K3') Return: AL = status 00h not supported 81h if successful ES:CX -> original INT 09 handler SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF81h,AX=AF82h --------K-16AF81BX4B33----------------------- INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 16h HANDLER AX = AF81h BX = 4B33h ('K3') Return: AL = status 00h not supported 82h if successful ES:CX -> original INT 16 handler SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF82h --------K-16AF82BX4B33----------------------- INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 10h HANDLER AX = AF82h BX = 4B33h ('K3') Return: AL = status 00h not supported 83h if successful ES:CX -> original INT 10 handler Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C. Frinke, originally based on the K3 extended German keyboard driver by Martin Gerdes published in c't magazine in 1988 SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF81h,INT 2F/AX=ED58h --------m-16B0B1----------------------------- INT 16 - VGARAM v1.00 - INSTALLATION CHECK AX = B0B1h ES:DI -> 6 byte signature "VGARAM" Return: AX = B1B0h if installed, DS:BX -> VGARAM Status byte: 0 = OFF, 1 = ON Program: VGARAM is a utility by Brett Warthen which makes VGA memory which is not used in text modes available for DOS --------K-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) Program: STACKEY is a shareware keyboard-input faking TSR Index: installation check;STACKEY --------V-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) Program: EGAPAL is a TSR supplied with STACKEY which makes EGA palette settings permanent across mode switches SeeAlso: AX=CA00h/BX=7670h --------V-16CA00BX7670----------------------- 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) Program: VGAPAL is a TSR supplied with STACKEY which makes VGA palette settings permanent across mode switches SeeAlso: AX=CA00h/BX=6570h --------U-16CB00----------------------------- INT 16 - PUPClip v1.12+ - INSTALLATION CHECK AX = CB00h Return: BX = 4342h if installed AX = version (AH = major version, AL = BCD minor version) Program: PUPClip is the freeware PopUP Clipboard for DOS and Windows DOS sessions by SkullC0DEr SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB04h,AX=CB05h,AX=CB06h,AX=CB08h SeeAlso: INT 2F/AX=1701h --------U-16CB01----------------------------- INT 16 - PUPClip v1.12+ - GET CLIPBOARD CURSOR POSITION AX = CB01h Return: BL = column (0-79) BH = row (0-49) SeeAlso: AX=CB00h,AX=CB02h,AX=CB03h --------U-16CB02----------------------------- INT 16 - PUPClip v1.12+ - SET CLIPBOARD CURSOR POSITION AX = CB02h BL = column (0-79) BH = row (0-49) Return: CF clear if successful CF set on error (invalid position) SeeAlso: AX=CB00h,AX=CB01h,AX=CB04h --------U-16CB03----------------------------- INT 16 - PUPClip v1.12+ - GET CHARACTER FROM CURRENT CLIPBOARD CURSOR POSITION AX = CB03h Return: BL = ASCII character at current position SeeAlso: AX=CB00h,AX=CB02h,AX=CB04h,INT 2F/AX=1705h --------U-16CB04----------------------------- INT 16 - PUPClip v1.12+ - WRITE CHARACTER TO CURRENT CLIPBOARD CURSOR POSITION AX = CB04h BL = ASCII character to store SeeAlso: AX=CB00h,AX=CB02h,AX=CB03h,AX=CB05h,INT 2F/AX=1703h --------U-16CB05----------------------------- INT 16 - PUPClip v1.12+ - CLEAR CLIPBOARD CONTENTS AX = CB05h Return: nothing SeeAlso: AX=CB00h,AX=CB04h,AX=CB06h,AX=CB07h,INT 2F/AX=1702h --------U-16CB06----------------------------- INT 16 - PUPClip v1.12+ - SCROLL UP CLIPBOARD CONTENTS AX = CB06h Return: nothing SeeAlso: AX=CB00h,AX=CB05h,AX=CB07h --------U-16CB07----------------------------- INT 16 - PUPClip v1.12+ - SCROLL DOWN CLIPBOARD CONTENTS AX = CB07h Return: nothing SeeAlso: AX=CB00h,AX=CB05h,AX=CB06h --------U-16CB08----------------------------- INT 16 - PUPClip v1.12+ - POP UP AX = CB08h Return: CF clear if successful CF set on error (unsupported video mode) SeeAlso: AX=CB00h --------U-16D724CX00CB----------------------- INT 16 U - APCAL v3.20 - GET ??? AX = D724h CX = 00CBh Return: AX = 0000h BX = 0000h DX:CX -> ??? or 0000h:0000h Program: APCAL is an optionally-resident shareware appointment calendar by Gamma Software SeeAlso: AX=3577h,AX=D724h/CX=00CCh,AX=D724h/CX=00CDh --------U-16D724CX00CC----------------------- INT 16 U - APCAL v3.20 - GET ??? AX = D724h CX = 00CCh Return: AX = 0000h BX = 0000h DX:CX -> ??? (apparently an internal data area) SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CDh --------U-16D724CX00CD----------------------- INT 16 U - APCAL v3.20 - GET ??? AX = D724h CX = 00CDh Return: AX = ??? (5345h seen) SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CCh --------v-16DD-------------------------- INT 16 - VIRUS - "Frumble" - INSTALLATION CHECK AH = DDh Return: AL = DDh if resident SeeAlso: INT 13/AX=FD50h,INT 21/AX=010Fh,INT 21/AX=0B56h --------s-16DFDF----------------------------- INT 16 U - Corel PowerSCSI - FDAUDIO.COM - INSTALLATION CHECK AX = DFDFh Return: ES:DI -> ASCII signature "FDAUDIO/CD" followed by ASCII date, i.e. "06/18/93" if installed --------b-16E000----------------------------- INT 16 - AMI BIOS - BIOS-FLASH Interface - GET VERSION NUMBER AX = E000h Return: CF clear if successful AL = FAh BX = version number (BCD) (0200h = v2.00) CF set on error (not implemented) Notes: this interface is available on AMI BIOSes built from AMI core version 8/8/93 (HiFlex BIOS) or 11/15/93 (WinBIOS) or later the "Meningitis" virus uses this API when attacking a system equipped with an AMI BIOS; it is supposedly able to write itself into the Flash ROM and thus make itself part of the BIOS SeeAlso: AX=E001h,AX=E004h,AX=E006h,AX=E008h,AX=E00Ah,AX=E00Bh,AX=E0FFh --------b-16E001----------------------------- INT 16 - AMI BIOS - BIOS-FLASH Interface - GET CHIPSET SAVE/RESTORE SIZE AX = E001h Return: CF clear if successful AL = FAh BX = number of bytes required to save chipset configuration CF set on error SeeAlso: AX=E000h,AX=E002h,AX=E003h --------b-16E002----------------------------- INT 16 - AMI BIOS - BIOS-FLASH Interface - SAVE CHIPSET STATUS & PREPARE CHPSET AX = E002h ES:DI -> buffer for storing chipset status Return: CF clear if successful AL = FAh CF set on error SeeAlso: AX=E000h,AX=E001h,AX=E003h --------b-16E003----------------------------- INT 16 - AMI BIOS - BIOS-FLASH Interface - RESTORE CHIPSET STATUS AX = E003h ES:DI -> buffer in which chipset status was previously stored Return: CF clear if successful AL = FAh CF set on error SeeAlso: AX=E000h,AX=E001h,AX=E002h --------b-16E004----------------------------- INT 16 - AMI BIOS - BIOS-FLASH Interface - LOWER PROGRAMMING VOLTAGE Vpp AX = E004h Return: CF clear if successful AL = FAh CF set on error Note: this function does not return until the voltage level stabilizes SeeAlso: AX=E000h,AX=E005h,AX=E006h --------b-16E005----------------------------- INT 16 - AMI BIOS - BIOS-FLASH Interface - RAISE PROGRAMMING VOLTAGE Vpp AX = E005h Return: CF clear if successful AL = FAh CF set on error Note: this function does not return until the voltage level stabilizes SeeAlso: AX=E000h,AX=E004h,AX=E007h --------b-16E006----------------------------- INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH WRITE PROTECT AX = E006h Return: CF clear if successful AL = FAh CF set on error Note: this function performs any delay required to allow the Flash ROM to stabilize in the write-protected state SeeAlso: AX=E000h,AX=E004h,AX=E007h --------b-16E007----------------------------- INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH WRITE ENABLE AX = E007h Return: CF clear if successful AL = FAh CF set on error Note: this function performs any delay required to allow the Flash ROM to stabilize in the write-enabled state SeeAlso: AX=E000h,AX=E005h,AX=E006h,AX=E008h --------b-16E008----------------------------- INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH SELECT AX = E008h Return: CF clear if successful AL = FAh CF set on error Desc: select the Flash ROM if the system contains both EPROM and Flash ROM Note: this function performs any delay required to allow the Flash ROM to stabilize in the selected state; if no EPROM is present, this function always returns successfully SeeAlso: AX=E000h,AX=E007h,AX=E009h --------b-16E009----------------------------- INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH DE-SELECT AX = E009h Return: CF clear if successful AL = FAh CF set on error Desc: select the EPROM if the system contains both EPROM and Flash ROM Note: this function performs any delay required to allow the Flash ROM to stabilize in the de-selected state; if no EPROM is present, this function always returns successfully SeeAlso: AX=E000h,AX=E006h,AX=E008h --------b-16E00A----------------------------- INT 16 - AMI BIOS - BIOS-FLASH Interface - VERIFY ALLOCATED MEMORY AX = E00Ah BX = number of paragraphs ES = starting segment of memory Return: CF clear if successful AL = FAh CF set on error Desc: determine whether the specified memory may be used for flash programming Note: always returns error if BX is zero on entry SeeAlso: AX=E000h,AX=E00Bh --------b-16E00B----------------------------- INT 16 - AMI BIOS - BIOS-FLASH Interface - SAVE INTERNAL CACHE STATUS AX = E00Bh ES:DI -> buffer for internal cache status (minimum 4Kbytes) Return: CF clear if successful AL = FAh CF set on error Note: always returns error if the hardware does not contain internal cache or this call is made in protected mode SeeAlso: AX=E000h,AX=E00Ah,AX=E00Ch --------b-16E00C----------------------------- INT 16 - AMI BIOS - BIOS-FLASH Interface - RESTORE INTERNAL CACHE STATUS AX = E00Ch ES:DI -> buffer containing internal cache status (minimum 4Kbytes) Return: CF clear if successful AL = FAh CF set on error Note: always returns error if the hardware does not contain internal cache or this call is made in protected mode SeeAlso: AX=E000h,AX=E00Bh --------t-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 #00615) 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 --------b-16E0FF----------------------------- INT 16 - AMI BIOS - BIOS-FLASH Interface - GENERATE CPU RESET AX = E0FFh Return: never SeeAlso: AX=E000h,INT 14/AH=17h"FOSSIL" --------U-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 identical to function 00h??? 02h get resident data segment Return: AX = data segment of resident portion 03h get resident ??? Return: AX = offset of some buffer in resident code seg 04h redefine auxiliary dictionary DS:SI -> counted filename string Return: AL = result code 05h select active environment AL = environment (00h to 0Ch) Return: AX = status 0000h if OK 0001h if out of range 06h toggle AutoProof??? AL = state (00h off, 01h on) 07h ??? 08h ??? AL = char??? CX = ??? DX = ??? Return: AX = 0, 1 or 2 09h ??? 0Ah ??? CX = ??? DX = ??? Return: AX = ??? 0Bh check dictionary integrity??? DS:SI -> counted dictionary filename string Return: AX = 0, 40h, 80h 0Ch spellcheck string (disk dictionary, possibly RAM dict as well) DS:SI -> counted string to check Return: AH = 0 AL = result code 00h string found in dictionary 20h string begins more than one word 40h string not found 0Dh set ??? (sets an internal flag) 0Eh spellcheck string (RAM dictionary only) DS:SI -> counted string to check Return: AH = 00h AL = result code 00h string found in dictionary 01h string not found 02h ??? 0Fh ??? 10h ??? Notes: AX in general returns an error code from most functions. Index: installation check;Turbo Lightning --------U-16EF------------------------------- INT 16 - CALCULATOR - INSTALLATION CHECK AH = EFh Return: AX = 0088h if installed Program: CALCULATOR is a shareware popup calculator by Andrzej Brzezinski and Marek Kosznik --------b-16F0------------------------------- INT 16 - Compaq 386 and newer - SET CPU SPEED AH = F0h AL = speed code (see #00614) if AL=09h, CX = speed value, 1 (slowest) to 50 (full), 3 ~= 8088 Note: also supported by some versions of AMI BIOS dated June 1992 or later; speed codes 0 or 1 are used for Low Speed, 2 for High Speed SeeAlso: AH=F1h,AH=F3h (Table 00614) Values for speed code: 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 --------t-16F0F0----------------------------- INT 16 - TurboPower TSRs - INSTALLATION CHECK AX = F0F0h Return: AX = 0F0Fh if installed ES:DI -> last data block in TSR list (see #00615) 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 TurboPower TSR data block: Offset Size Description (Table 00615) 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??? --------b-16F1------------------------------- INT 16 - Compaq 386 and newer - READ CURRENT CPU SPEED AH = F1h Return: AL = speed code (see #00614) if AL = 09h, CX = speed code Note: also supported by some versions of AMI BIOS dated June 1992 or later SeeAlso: AH=F0h,AH=F3h --------b-16F2------------------------------- INT 16 - Compaq 386 and newer - 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 AH = 00h (04/08/93 system ROM) SeeAlso: MEM 0040h:00C2h --------b-16F3------------------------------- INT 16 - Compaq 80286s - SET CPU SPEED LIMIT (OVERRIDE JUMPER) AH = F3h AL = new limit 00h limit is 6 Mhz 01h limit is 8 Mhz/6 Mhz SeeAlso: AH=F0h,AH=F1h --------U-16F398----------------------------- INT 16 U - NORTON GUIDES - INSTALLATION CHECK AX = F398h Return: AX = 6A73h ("js") BH = BIOS scan code of current hot key BL = ASCII code of current hot key Note: NG.EXE was written by John Socha --------b-16F400----------------------------- INT 16 - Compaq Systempro and higher - CACHE CONTROLLER STATUS AX = F400h Return: AH = E2h (*) AL = status 00h not present 01h enabled 02h disabled CX = cache memory size bit 15: cache size information is NOT valid bits 14-0: cache memory size in kilobytes DH = cache write technology bit 7: cache write information is NOT valid bits 6-1: reserved (0) bit 0: 0 = Write-through caching 1 = Write-back caching DL = cache type bit 7: cache type information is NOT valid bits 6-1: reserved (0) bit 0: 0 = Direct mapped 1 = Two-way set-associative Notes: also supported by some versions of AMI BIOS dated June 1992 or later many (most) BIOSes return a modified AH when called for an unsupported or non-keyboard function (typically, the highest supported keyboard function [normally 12h] is subtracted from the original AH) SeeAlso: AX=F401h,AX=F402h --------b-16F401----------------------------- INT 16 - Compaq Systempro and higher - ENABLE CACHE CONTROLLER AX = F401h Return: AX = E201h Notes: also supported by some versions of AMI BIOS dated June 1992 or later many (most) BIOSes return a modified AH when called for an unsupported or non-keyboard function (typically, the highest supported keyboard function [normally 12h] is subtracted from the original AH) SeeAlso: AX=F400h,AX=F402h --------b-16F402----------------------------- INT 16 - Compaq Systempro and higher - DISABLE CACHE CONTROLLER AX = F402h Return: AX = E202h Notes: also supported by some versions of AMI BIOS dated June 1992 or later many (most) BIOSes return a modified AH when called for an unsupported or non-keyboard function (typically, the highest supported keyboard function [normally 12h] is subtracted from the original AH) SeeAlso: AX=F400h,AX=F401h --------v-16FA00DX5945----------------------- INT 16 U - PC Tools v8+ VSAFE, VWATCH - INSTALLATION CHECK AX = FA00h DX = 5945h Return: CF clear DI = 4559h BX = BIOS hotkey scancode (default 2F00h) (VSAFE only) FFFFh if disabled Note: MS-DOS 6.0 bundles VSAFE and VWATCH as part of its virus protection SeeAlso: AX=FA05h,INT 13/AH=FAh,INT 21/AH=FAh"VDEFEND",INT 2F/AX=6282h --------v-16FA01DX5945----------------------- INT 16 U - PC Tools v8+ VSAFE, VWATCH - UNINSTALL AX = FA01h DX = 5945h Return: CF clear if successful DI = 4559h SeeAlso: AX=FA00h --------v-16FA02DX5945----------------------- INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET/SET OPTIONS AX = FA02h DX = 5945h BL = new parameter flags (see #00616) Return: CF clear DI = 4559h CL = old value of parameter flags Bitfields for VSAFE/VWATCH parameter flags: Bit(s) Description (Table 00616) 7 Protect executable files 6 Protect FD boot sector 5 Protect HD boot sector 4 Boot sector viruses 3 Check executable files 2 General write protect 1 Resident 0 HD Low level format --------v-16FA03DX5945----------------------- INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET ??? AX = FA03h DX = 5945h Return: CF clear DI = 4559h AX = 0002h --------v-16FA04DX5945----------------------- INT 16 U - PC Tools v8+ VSAFE - GET HOTKEY DISABLE FLAG AX = FA04h DX = 5945h Return: CF clear DI = 4559h BL = hotkey disable flag (nonzero if hotkey disabled) Note: this function is a NOP under VWATCH, merely returning CF clear/DI=4559h SeeAlso: AX=FA00h,AX=FA05h --------v-16FA05DX5945----------------------- INT 16 U - PC Tools v8+ VSAFE - SET HOTKEY DISABLE FLAG AX = FA05h DX = 5945h BL = new value of hotkey disable flag (nonzero to disable hotkey) Return: CF clear DI = 4559h Note: this function is a NOP under VWATCH, merely returning CF clear/DI=4559h SeeAlso: AX=FA00h,AX=FA04h --------v-16FA06DX5945----------------------- INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET NETWORK DRIVES TEST FLAG AX = FA06h DX = 5945h Return: CF clear DI = 4559h BL = test status 00h don't monitor network drives (default for VWATCH v2.1) FFh monitor network drives (default for VSAFE v2.0) CL = ??? (only VSAFE 2.0) SeeAlso: AX=FA07h --------v-16FA07DX5945----------------------- INT 16 U - PC Tools v8+ VSAFE, VWATCH - SET NETWORK DRIVES TEST FLAG AX = FA07h DX = 5945h BL = new state 00h don't monitor 01h monitor network drives Return: CF clear DI = 4559h Note: VWATCH v2.1 (from PC Tools 9.0) returns CF set instead SeeAlso: AX=FA00h,AX=FA06h --------v-16FA08DX5945----------------------- INT 16 U - PC Tools v9+ VWATCH v2.1 - ??? AX = FA08h DX = 5945h Return: CF clear DI = 4559h AX = ??? (0002h) BX = version (BH=major, BL=two-digit minor) Note: this function is not supported by the PC Tools 9.0 VSAFE v2.0 SeeAlso: AX=FA00h,AX=FA06h --------U-16FE55----------------------------- INT 16 U - PC Tools v8+ programs - GET ??? AX = FE55h CX = segment of resident program or 0000h for last loaded DX = 0000h Return: DX = resident code segment (unchanged if CX=0000h on entry) AX = ??? or 0000h Note: this call is supported by CPSCHED, CPTASK, DATAMON, DPROTECT, DRIVEMAP, and DSKLIGHT beginning in PC Tools v8.0; programs other than CPTASK seem to hook it merely to return the same AX as the CPTASK loaded prior to them returned --------U-16FEA4----------------------------- INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - RESET ??? AX = FEA4h Return: nothing Note: this function is identical to AX=FFA4h, and is implemented by the same code in DESKTOP SeeAlso: AX=FFA4h --------U-16FEC6----------------------------- INT 16 U - PC Tools v7+ CPSCHED - ENABLE/DISABLE CPSCHED API AX = FEC6h BL = new state (00h enabled, nonzero disabled) Return: nothing Desc: specify whether CPSCHED API calls other than this one and AX=FE55h will be honored --------U-16FED3----------------------------- INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - ??? AX = FED3h DS:SI -> 92-byte data record for ??? Return: ??? Note: this function is identical to AX=FFD3h, and is implemented by the same code in DESKTOP SeeAlso: AX=FFD3h --------U-16FEDC----------------------------- INT 16 U - PC Tools v7+ CPSCHED - UNHOOK INTERRUPTS AX = FEDCh Return: AX,DX destroyed Index: uninstall;CPSCHED --------U-16FEEFCX0000----------------------- INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - INSTALLATION CHECK AX = FEEFh CX = 0000h Return: CX = ABCDh if PC Tools scheduler (CPSCHED or DESKTOP) installed BX = segment of resident portion DX = (CPSCHED v8.0) resident CS Note: this function is identical to AX=FFD3h, and is implemented by the same code in DESKTOP SeeAlso: AX=FFEFh --------U-16FEF1----------------------------- INT 16 U - PC Tools v7 only CPSCHED/DESKTOP - ALTERNATE INSTALLATION CHECK AX = FEF1h BX = ??? Return: CX = 5555h if PC Tools scheduler (CPSCHED or DESKTOP) installed DX = 5555h Note: this function is identical to AX=FFD3h, and is implemented by the same code in DESKTOP SeeAlso: AX=FFF1h --------K-16FF------------------------------- INT 16 - KEYBOARD - KBUF extensions - ADD KEY TO TAIL OF KEYBOARD BUFFER AH = FFh DX = scan code Return: AL = status 00h success 01h failure Program: KBUF is a keyboard buffer expander by Mark Adler SeeAlso: AH=05h --------V-16FF------------------------------- INT 16 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY ZOOM INTERRUPT AH = FFh Return: AL = interrupt number to which BIOS keyboard handler has been relocated AL+1 = Zoom interrupt number BX = hotkey Notes: the default interrupts are 60h for keyboard and 61h for Zoom interrupt; the default hot key is F10 not all vendors include the Tseng TSR which supports these functions SeeAlso: INT 61/AX=0000h"OPTIMA",INT 61/AX=0005h"OPTIMA" Index: hotkeys;OPTIMA 1024 VGA ----------16FF--BH00------------------------- INT 16 - FREEZE.COM - INSTALLATION CHECK AH = FFh BH = 00h Return: BH = FFh if installed Program: FREEZE is a PC Magazine utility --------d-16FF70BX0000----------------------- INT 16 U - PC Tools v8+ DRIVEMAP - INSTALLATION CHECK AX = FF70h BX = 0000h CX = 4C69h ('Li') DX = 6E6Bh ('nk') Return: AX = 0000h CX = 4350h ('CP') DH = major version DL = minor version Program: DRIVEMAP is a redirector which allows drives on computers connected over the parallel or serial ports to appear as local drives SeeAlso: AX=FF70h/BX=0001h,AX=FF70h/BX=0002h --------d-16FF70BX0001----------------------- INT 16 U - PC Tools v8+ DRIVEMAP - ??? AX = FF70h BX = 0001h DL = ??? Return: AX = ??? DH = ??? SeeAlso: AX=FF70h/BX=0000h,AX=FF70h/BX=0002h --------d-16FF70BX0002----------------------- INT 16 U - PC Tools v8+ DRIVEMAP - ??? AX = FF70h BX = 0002h CX = ??? DX = ??? Return: AX = ??? or FFFEh/FFFFh on error DL = ??? BUG: DRIVEMAP will branch to random locations for BX values other than those listed above for v8.0-9.0 because a) the incorrect register is range-tested, resulting in BX=0003h-5CD6h being accepted as valid function numbers, and b) the conditional which branches on invalid function numbers jumps to the following instruction, becoming a NOP SeeAlso: INT 2F/AX=9203h"DRIVEMAP" Index: installation check;DRIVEMAP --------T-16FF80BX0000----------------------- INT 16 U - PC Tools v8+ CPTASK - INSTALLATION CHECK AX = FF80h BX = 0000h CX = 0000h DX = 0000h Return: CX = 5555h if installed Program: CPTASK is a task switcher by Central Point Software --------T-16FF80BX0001----------------------- INT 16 U - PC Tools v8+ CPTASK - GET ??? AX = FF80h BX = 0001h ??? Return: DX:SI -> task list??? (ten entries of 70h bytes in v9.0) BX = ??? (PSP segment of resident code???) --------T-16FF80BX0002----------------------- INT 16 U - PC Tools v8+ CPTASK - GET ??? AX = FF80h BX = 0002h Return: DX:SI -> ??? --------T-16FF80BX0003----------------------- INT 16 U - PC Tools v8+ CPTASK - GET ??? FLAGS AX = FF80h BX = 0003h Return: AX = flags (see #00617) SeeAlso: AX=FF80h/BX=0004h,AX=FF80h/BX=0006h Bitfields for CPTASK flags: Bit(s) Description (Table 00617) 10 ??? 13 ??? 14 ??? 15 ??? --------T-16FF80BX0004----------------------- INT 16 U - PC Tools v8+ CPTASK - SET ??? AX = FF80h BX = 0004h CX = new value of ??? Return: ??? Note: this function also sets bit 14 of the flags word returned by AX=FF80h/BX=0003h --------T-16FF80BX0005----------------------- INT 16 U - PC Tools v8+ CPTASK - GET NUMBER OF ACTIVE TASKS??? AX = FF80h BX = 0005h Return: AX = number of active tasks??? --------T-16FF80BX0006----------------------- INT 16 U - PC Tools v8+ CPTASK - GET AND CLEAR ??? FLAG AX = FF80h BX = 0006h Return: AX = old state (0000h clear, 0001h set) Note: the tested flag is bit 13 of the flags returned by AX=FF80h/BX=0003h --------T-16FF80BX0007----------------------- INT 16 U - PC Tools v8+ CPTASK - ??? AX = FF80h BX = 0007h ES:DI -> ??? ??? Return: ??? --------T-16FF80BX0008----------------------- INT 16 U - PC Tools v8+ CPTASK - ??? AX = FF80h BX = 0008h ??? Return: ??? --------T-16FF80BX0009----------------------- INT 16 U - PC Tools v8+ CPTASK - GET ??? AX = FF80h BX = 0009h Return: CL = ??? CH = ??? (01h or 02h) --------T-16FF80BX000A----------------------- INT 16 U - PC Tools v9+ CPTASK - SET ??? AX = FF80h BX = 000Ah DS:SI -> 128-byte buffer containing ??? --------T-16FF80BX000B----------------------- INT 16 U - PC Tools v9+ CPTASK - SET ??? AX = FF80h BX = 000Bh DX = index of ??? task (1-10) --------T-16FF80BX000C----------------------- INT 16 U - PC Tools v9+ CPTASK - SET IDLE??? DELAY AX = FF80h BX = 000Ch CX = new delay time in minutes --------T-16FF80BX4350----------------------- INT 16 U - PC Tools v8+ CPTASK - UNINSTALL AX = FF80h BX = 4350h ('CP') CX = 5354h ('ST') Return: never returns; terminates all tasks and exits to program originally calling CPTASK --------U-16FF90----------------------------- INT 16 U - PC Tools v8+ DESKTOP - ??? AX = FF90h ??? Return: ??? Note: available only when popped up --------U-16FF91----------------------------- INT 16 U - PC Tools v7+ DESKTOP - ??? AX = FF91h ??? Return: AX = 0000h Note: calls AX=FFFDh after ??? SeeAlso: AX=FF92h,AX=FFFDh --------U-16FF92----------------------------- INT 16 U - PC Tools v7+ DESKTOP - ??? AX = FF92h ??? Return: AX = 0000h Note: like AX=FF91h, but temporarily sets ??? to 3 SeeAlso: AX=FF91h,AX=FFFDh --------U-16FF93----------------------------- INT 16 U - PC Tools v7+ DESKTOP - SET ??? FLAG AX = FF93h --------U-16FF94----------------------------- INT 16 U - PC Tools v7+ DESKTOP - SET ??? AX = FF94h CX = ??? (default 0017h) --------U-16FF95----------------------------- INT 16 U - PC Tools v7+ DESKTOP - SET ??? AX = FF95h BX = ??? --------U-16FF96----------------------------- INT 16 U - PC Tools v7+ DESKTOP - ??? AX = FF96h CL = ??? Return: AX = ??? --------U-16FF97----------------------------- INT 16 U - PC Tools v7+ DESKTOP - ??? AX = FF97h DS:DX -> buffer for ??? (see #00618) Return: ??? Format of PC Tools DESKTOP buffer: Offset Size Description (Table 00618) 00h 48 BYTEs ??? 30h 128 BYTEs ??? --------U-16FF98----------------------------- INT 16 U - PC Tools v7+ DESKTOP - OPEN \DESK.OVL FILE AND SEEK TO OVERLAY AX = FF98h DX = byte offset in file of overlay header (see #00619) Return: BX = file handle for DESK.OVL file Desc: open the DESK.OVL file, seek to the specified offset, read in the overlay header, and seek to the offset specified by the header Format of PC Tools DESKTOP overlay header: Offset Size Description (Table 00619) 00h 12 BYTEs NUL-padded ASCII overlay filename 0Ch DWORD offset within DESK.OVL file of actual overlay --------U-16FF99----------------------------- INT 16 U - PC Tools v7+ DESKTOP - ??? AX = FF99h ??? Return: ??? --------U-16FF9A----------------------------- INT 16 U - PC Tools v7+ DESKTOP - GET NAME OF COLOR SCHEME AX = FF9Ah Return: ES:BX -> name of current color scheme Note: available even if not popped up --------U-16FF9B----------------------------- INT 16 U - PC Tools v7+ DESKTOP - UNUSED AX = FF9Bh Return: ??? Note: sounds triple-length beep --------T-16FF9C----------------------------- INT 16 U - PC Tools v8+ CPTASK - SET/CLEAR ??? POINTER AX = FF9Ch BL = function 00h set ??? pointer DS:SI -> ??? 01h clear pointer to 0000h:0000h ----------16FF9D----------------------------- INT 16 U - PC Tools v8+ CPTASK, VSAFE - ??? AX = FF9Dh ES:BX -> ??? word Return: ??? Note: if ES is non-zero, the word pointed at by ES:BX determines whether the ??? flag is cleared (word = 0000h) or set (word is nonzero). The flag is always cleared if ES=0000h. --------U-16FF9E----------------------------- INT 16 U - PC Tools v7+ DESKTOP - ??? AX = FF9Eh DL = ??? bit 7: ??? bits 6-0: function number??? (00h,01h,other) ??? Return: ??? --------U-16FFA1----------------------------- INT 16 U - PC Tools v7+ DESKTOP - ??? AX = FFA1h ??? Return: ??? Note: same as AX=FFA2h, except ??? set to FFh SeeAlso: AX=FFA2h --------U-16FFA2----------------------------- INT 16 U - PC Tools v7+ DESKTOP - ??? AX = FFA2h ??? Return: ??? Note: calls AX=FFC7h (remove window) and AX=FFFDh SeeAlso: AX=FFA1h,AX=FFC7h,AX=FFFDh --------y-16FFA3BX0000----------------------- INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - INSTALLATION CHECK AX = FFA3h BX = 0000h CX = 0000h Return: AX = segment of resident code BX = 5555h CX = 5555h Note: also supported by DOS 6 UNDELETE which is licensed from PC Tools SeeAlso: INT 21/AH=3Fh"NB.SYS",INT 21/AX=4101h,INT 2F/AX=6284h --------y-16FFA3BX0001----------------------- INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ??? AX = FFA3h BX = 0001h CX = 0001h Return: AX:BX -> ??? CX = BX --------y-16FFA3BX0002----------------------- INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ??? AX = FFA3h BX = 0002h CX = 0002h Return: AX = ??? (0 or 1) CX = BX = AX --------y-16FFA3BX0003----------------------- INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ??? AX = FFA3h BX = 0003h CX = 0003h Return: AX = ??? (0 or 1) CX = BX = AX --------y-16FFA3BX0004----------------------- INT 16 U - PC Tools v7+ DATAMON - SET ??? FLAG AX = FFA3h BX = 0004h CX = 0004h SeeAlso: AX=FFA3h/BX=0005h --------y-16FFA3BX0005----------------------- INT 16 U - PC Tools v7+ DATAMON - CLEAR ??? FLAG AX = FFA3h BX = 0005h CX = 0005h SeeAlso: AX=FFA3h/BX=0004h --------y-16FFA3BX0006----------------------- INT 16 U - PC Tools v7+ DATAMON - SET PSP SEGMENT ??? AX = FFA3h BX = 0006h CX = 0006h DX = current PSP segment as known to DOS??? or 0000h --------d-16FFA3BXFFA3----------------------- INT 16 U - PC Tools v9 DSKLIGHT - INSTALLATION CHECK AX = FFA3h BX = FFA3h CX = FFA3h Return: BX = CX = 5555h if installed AX = resident code segment Program: DSKLIGHT is a TSR included with PC Tools v9+ which displays a disk- access indicator on the screen; in v7 and v8, this function was provided by DATAMON Note: DSKLIGHT chains to the previous handler if BX or CX is not FFA3h --------U-16FFA4----------------------------- INT 16 U - PC Tools v7-8 DESKTOP - ??? AX = FFA4h Return: ??? Notes: available even when not popped up sets unknown flag if ??? conditions met SeeAlso: AX=FEA4h --------c-16FFA5CX1111----------------------- INT 16 - PC-Cache v6+ - INSTALLATION CHECK AX = FFA5h CX = 1111h Return: CH = 00h if installed ES:DI -> internal data (see #00620) CL = cache state 01h enabled 02h disabled SeeAlso: INT 13/AH=27h,INT 13/AH=A0h,INT 21/AH=2Bh/CX=4358h Format of PC-Cache internal data: Offset Size Description (Table 00620) -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 ??? --------c-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 --------c-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 --------c-16FFA5CXDDDD----------------------- INT 16 - PC-Cache v6+ - FLUSH AND DISABLE CACHE AX = FFA5h CX = DDDDh SeeAlso: AX=FFA5h/CX=EEEEh,AX=FFA5h/CX=FFFFh --------c-16FFA5CXEEEE----------------------- INT 16 - PC-Cache v6+ - ENABLE CACHE AX = FFA5h CX = EEEEh SeeAlso: AX=FFA5h/CX=DDDDh --------c-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 --------U-16FFA6----------------------------- INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ??? AX = FFA6h Return: DS:SI -> ??? Note: available only when popped up --------U-16FFA7----------------------------- INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ??? PATH AX = FFA7h Return: DS:SI -> ASCIZ path (directory from which PCTools was run???) --------U-16FFA8----------------------------- INT 16 U - PC Tools v6.0-8.0 DESKTOP - ??? 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 --------U-16FFA9----------------------------- INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET VERSION STRING AX = FFA9h Return: DS:SI -> version string --------U-16FFAA----------------------------- INT 16 U - PC Tools v6.0-8.0 DESKTOP - ??? AX = FFAAh ??? Return: ??? Note: available only when popped up --------U-16FFAB----------------------------- INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET EDITOR SETTINGS??? AX = FFABh Return: DS:SI -> editor setting strings??? --------U-16FFAC----------------------------- INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ??? AX = FFACh DL = ??? Note: available only when popped up --------U-16FFAD----------------------------- INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ??? AX = FFADh DL = ??? --------U-16FFAE----------------------------- INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ??? AX = FFAEh Return: AL = ??? --------U-16FFAF----------------------------- INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ??? AX = FFAFh DL = ??? --------U-16FFB0----------------------------- INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ??? AX = FFB0h BL = ??? --------U-16FFB1----------------------------- INT 16 U - PC Tools v6.0-8.0 DESKTOP - ??? AX = FFB1h ??? Return: ??? --------U-16FFB2----------------------------- INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ??? AX = FFB2h Return: DS:SI -> ??? --------U-16FFB3----------------------------- INT 16 U - PC Tools v5.5-8.0 DESKTOP - ??? AX = FFB3h ??? Return: ??? Note: available only when popped up --------U-16FFB4----------------------------- INT 16 U - PC Tools v5.5-8.0 DESKTOP - SET ??? FLAG AX = FFB4h Note: available only when popped up SeeAlso: AX=FFBBh --------U-16FFB5----------------------------- INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET WINDOW PARAMETERS AX = FFB5h BX = window specifier (000Fh to 0019h) (see #00621) DX = 0000h get, nonzero = set ES:DI -> window parameter buffer (see #00622) SeeAlso: AX=FFCBh (Table 00621) Values for PC Tools DESKTOP window specifier: 000Fh comm/FAX 0014h hotkey selection 0015h ASCII table 0016h system colors menu Format of PC Tools DESKTOP window parameters: Offset Size Description (Table 00622) 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 --------U-16FFB6----------------------------- INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ??? AX = FFB6h Return: AH = ??? AL = ??? --------U-16FFB7----------------------------- INT 16 U - PC Tools v5.5-8.0 DESKTOP - 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+ --------U-16FFB8----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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+) --------U-16FFB9----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFB9h ??? Return: AX = ??? CX = ??? DS:SI -> ??? ES:DI -> ??? --------U-16FFBA----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFBAh ??? Return: AX = ??? Note: available only when popped up --------U-16FFBB----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLEAR ??? FLAG AX = FFBBh Note: available only when popped up SeeAlso: AX=FFB4h --------U-16FFBC----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - RESTORE ORIGINAL SCREEN??? AX = FFBCh --------U-16FFBD----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? DATABASE INDEXING MESSAGES AX = FFBDh ??? Return: ??? --------U-16FFBE----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFBEh ??? Return: ??? Note: available only when popped up --------U-16FFBF----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFBFh BX = DOS file handle to write on ??? Return: ??? Note: available only when popped up --------U-16FFC0----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFC0h ??? Return: AX = 0000h if successful AX = FFFFh on error Note: available only when popped up --------U-16FFC1----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFC1h BL = ??? ES:DI -> data structure (see #00623) ??? Return: AX = ??? Note: available only when popped up SeeAlso: AX=FFC2h,AX=FFC3h Format of PC Tools DESKTOP data structure: Offset Size Description (Table 00623) 00h WORD ??? 02h WORD ??? 04h WORD ??? 06h WORD ??? 08h WORD ??? 0Ah BYTE ??? 0Bh BYTE ??? (zero/nonzero) ---v7.1--- 0Ch WORD ??? 0Eh BYTE ??? 0Fh WORD ??? 11h WORD ??? ??? --------U-16FFC2----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFC2h BL = ??? ES:DI -> data structure (see #00623) ??? Return: AH = ??? CX = ??? DH = ??? DL = ??? Note: available only when popped up SeeAlso: AX=FFC1h,AX=FFC3h --------U-16FFC3----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFC3h BL = ??? ES:DI -> data structure (see #00623) ??? Return: AH = ??? CX = ??? DH = ??? DL = ??? Note: available only when popped up SeeAlso: AX=FFC1h,AX=FFC2h --------U-16FFC4----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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 --------U-16FFC5----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK WHETHER DESKTOP LOADED RESIDENT AX = FFC5h Return: BL = Desktop state 00h if nonresident nonzero if loaded resident Note: available only when popped up; should call AX=FFEFh first to ensure that DESKTOP is active SeeAlso: AX=FFEFh,AX=FFF3h --------U-16FFC6----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? AX = FFC6h BL = new value for ??? --------U-16FFC7----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - REMOVE WINDOW AX = FFC7h ??? Return: ??? --------U-16FFC8----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ??? AX = FFC8h Return: DS:SI -> ??? Note: valid only while popped up --------U-16FFC9----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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 --------U-16FFCA----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? AX = FFCAh DX = ??? Return: AX destroyed Note: available only when popped up --------U-16FFCB----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - SELECT WINDOW PARAMETERS??? AX = FFCBh DX = window specifier??? Return: AX destroyed Note: available only when popped up SeeAlso: AX=FFB5h --------U-16FFCC----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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) --------U-16FFCD----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFCDh DS:DX -> ??? Return: ??? Note: available only when popped up --------U-16FFCE----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? DELAYS AX = FFCEh CX = ??? Return: nothing??? --------U-16FFCF----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLOSE PRINTER/PRINT FILE AX = FFCFh Note: available only when popped up --------U-16FFD0----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO PRINT??? AX = FFD0h ??? Return: ??? Note: available only when popped up --------U-16FFD1----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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 --------U-16FFD2----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFD2h BX = ??? Return: BL = ??? Note: available only when popped up --------U-16FFD3----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFD3h DS:SI -> 92-byte data record for ??? Return: ??? SeeAlso: AX=FED3h --------U-16FFD4BH3C------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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:\ --------U-16FFD5----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFD5h ??? Return: ??? Note: available only when popped up --------U-16FFD6----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFD6h BX = ??? CX = ??? DX = offset in ??? ??? Return: ??? Note: available only when popped up --------U-16FFD7----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFD7h ??? Return: BL = ??? Note: available only when popped up --------U-16FFD8----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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??? --------U-16FFD9----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ??? AX = FFD9h Return: AX = ??? Note: available only when popped up --------U-16FFDA----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET NAME OF LAST FILE OPENED AX = FFDAh DS:SI -> ??? (v5.1/5.5 only) Return: DS:SI -> filename --------U-16FFDB----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? AX = FFDBh BL = ??? Note: available only when popped up --------U-16FFDC----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - UNHOOK AX = FFDCh Return: interrupt vectors 09h, 10h (v6.0+), 16h, 1Ch, and 21h restored to original values Index: uninstall;PC Tools DESKTOP --------U-16FFDDBX0000----------------------- INT 16 U - PC Tools v5.1+ PCShell API - INSTALLATION CHECK AX = FFDDh BX = 0000h Return: CX = 5555h DX = 5555h if PCShell installed in resident mode --------U-16FFDDBX0001----------------------- INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP AX = FFDDh BX = 0001h Return: CF clear if request successful (PCShell will pop up) CF set on error SeeAlso: AX=FFDDh/BX=0003h --------U-16FFDDBX0002----------------------- INT 16 U - 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 --------U-16FFDDBX0003----------------------- INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP AX = FFDDh BX = 0003h SeeAlso: AX=FFDDh/BX=0001h --------U-16FFDDBX0004----------------------- INT 16 U - PC Tools v5.1+ PCShell API - GET ??? AX = FFDDh BX = 0004h Return: CF clear if successful DS:SI -> ??? --------U-16FFDDBX0005----------------------- INT 16 U - PC Tools v5.1+ PCShell API - ??? AX = FFDDh BX = 0005h ??? Return: ??? Note: resets various variables if certain conditions are met --------U-16FFDDBX0006----------------------- INT 16 U - PC Tools v5.1+ PCShell API - ??? AX = FFDDh BX = 0006h ??? Return: ??? Note: resets various variables if certain conditions are met --------U-16FFDDBX0007----------------------- INT 16 U - PC Tools v5.1+ PCShell API - SET ??? FLAG AX = FFDDh BX = 0007h Return: CF clear if successful SeeAlso: AX=FFDDh/BX=0008h --------U-16FFDDBX0008----------------------- INT 16 U - PC Tools v5.1+ PCShell API - CLEAR ??? FLAG AX = FFDDh BX = 0008h Return: CF undefined SeeAlso: AX=FFDDh/BX=0007h --------U-16FFDDBX0009----------------------- INT 16 U - PC Tools v6.0+ PCShell API - GET PCRUN PARAMETERS AX = FFDDh BX = 0009h Return: CF clear if successful DS:SI -> list of pointers (see #00624) Format of PC Tools PCShell returned pointer list: Offset Size Description (Table 00624) 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) --------U-16FFDDBX000A----------------------- INT 16 U - PC Tools v6.0+ PCRUN API - INSTALLATION CHECK AX = FFDDh BX = 000Ah Return: CX = 5555h if running DX = 5555h Note: also sets a flag --------U-16FFDDBX000B----------------------- INT 16 U - 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 --------U-16FFDE----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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 --------U-16FFDF----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFDFh ??? Return: ??? --------U-16FFE0----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFE0h CX = ??? DX = ??? Note: available only when popped up --------U-16FFE1----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - BEEP AX = FFE1h --------U-16FFE2----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFE2h DX = ??? Return: ??? Note: available only when popped up --------U-16FFE3----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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 --------U-16FFE4----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFE4h DX = segment of ??? Return: ??? Note: available only when popped up --------U-16FFE5----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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 function cancelled by user Note: available only when popped up SeeAlso: AX=FFDAh --------U-16FFE6----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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 --------U-16FFE7----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFE7h BX = segment of ??? Return: ??? Note: available only when popped up --------U-16FFE8----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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 --------U-16FFE9----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET FILE LIST??? AX = FFE9h Return: BX = segment of file/directory list (14 bytes per file, NUL-padded) Note: available only when popped up --------U-16FFEA----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY COUNTED STRING AX = FFEAh DS:SI -> counted string (count byte followed by string) Return: ??? Note: available only when popped up --------U-16FFEB----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFEBh ??? Return: ??? --------U-16FFEC----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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 Index: hotkeys;PC Tools DESKTOP --------U-16FFED----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ??? AX = FFEDh Return: AX = ??? Note: available only when popped up --------U-16FFEE----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE PULLDOWN MENUS AX = FFEEh DS:SI -> pulldown menu system description (see #00625) 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 PC Tools DESKTOP pulldown menu system description: Offset Size Description (Table 00625) 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 #00626) 1Ah WORD offset of second menu definition ... Format of PC Tools DESKTOP menu definition: Offset Size Description (Table 00626) 00h WORD offset of menu contents (see #00627) 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 PC Tools DESKTOP menu contents: Offset Size Description (Table 00627) 00h BYTE number of lines in menu 01h BYTE width of menu 02h N BYTEs counted strings, one for each line in menu --------U-16FFEFCX0000----------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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 --------U-16FFF0----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? AX = FFF0h DX = ??? Return: AX destroyed Note: available only when popped up --------U-16FFF1BX0000----------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ALTERNATE INSTALLATION CHECK AX = FFF1h BX = 0000h leave ??? flag as is nonzero set ??? flag Return: CX = 5555h if installed DX = 5555h --------U-16FFF2----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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 --------U-16FFF3----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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 Index: uninstall;PC Tools DESKTOP --------U-16FFF4----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? AX = FFF4h ??? Return: ??? Note: available only when popped up SeeAlso: AX=FFF6h --------U-16FFF5----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET SCREEN ATTRIBUTE ARRAY AX = FFF5h Return: ES:BX -> screen attributes data structure (see #00628) AL = ??? (v6.0+) Format of PC Tools DESKTOP attribute data structure: Offset Size Description (Table 00628) -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 --------U-16FFF6----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - INVOKE NOTEPAD EDITOR AX = FFF6h DS = segment of editor buffer structure (see #00629) BX = ??? DX = segment of window parameters structure (see #00622) Return: ??? Note: available only when popped up SeeAlso: AX=FFF4h Format of PC Tools DESKTOP editor buffer structure: Offset Size Description (Table 00629) 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 --------U-16FFF7----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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 --------U-16FFF8----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - DRAW EMPTY WINDOW AX = FFF8h DS:0000h -> window parameters structure (see #00622) DS:BX -> DWORD to store address of ??? on screen Return: ??? --------U-16FFF9----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE SCREEN REFRESH ROUTINE AX = FFF9h ES:BX -> FAR routine to redisplay the utility's window Note: available only when popped up --------U-16FFFA----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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 --------U-16FFFB----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - 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 --------U-16FFFC----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET HOTKEYS AND KEYBOARD VECTOR AX = FFFCh Return: ES:BX -> hotkey table (see #00630) DS:DX = original INT 09 vector Format of PC Tools DESKTOP hotkey table: Offset Size Description (Table 00630) 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 --------U-16FFFD----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY ??? AX = FFFDh Return: AX destroyed Note: copies 4000 bytes from ??? to ??? under certain circumstances SeeAlso: AX=FF91h,AX=FF92h --------M-16FFFE----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - SHOW MOUSE CURSOR AX = FFFEh SeeAlso: AX=FFFFh,INT 33/AX=0001h --------M-16FFFF----------------------------- INT 16 U - PC Tools v5.1-8.0 DESKTOP - HIDE MOUSE CURSOR AX = FFFFh SeeAlso: AX=FFFEh,INT 33/AX=0002h --------P-17----DX0ABC----------------------- INT 17 - PRINTER - LPTx v5.x INSTALLATION CHECK DX = 0ABCh Return: AX = AAAAh DX = BAAAh ES = code segment of resident portion --------P-17----DX0B90----------------------- INT 17 - PRINTER - LPTx v6.x INSTALLATION CHECK DX = 0B90h Return: DX = ABBBh ES = code segment of resident portion --------P-17----DX0B91----------------------- INT 17 - PRINTER - LPTx v7.x INSTALLATION CHECK DX = 0B91h Return: DX = ABCBh ES = code segment of resident portion --------P-17----DX0F5F----------------------- INT 17 - PRINTER - LPTx v4.x INSTALLATION CHECK DX = 0F5Fh Return: AX = AAAAh DX = F555h ES = code segment of resident portion --------B-1700------------------------------- INT 17 - PRINTER - WRITE CHARACTER AH = 00h AL = character to write DX = printer number (00h-02h) Return: AH = printer status (see #00631) Note: Under PhysTechSoft's PTS ROM-DOS the parallel port can also be accessed as COM5. BUGS: Some print spoolers trash the BX register on return. Some original IBM BIOSes set more than one printer status bits at a time, while only one of them is correct. SeeAlso: AH=02h,AH=84h"AX",AX=6F02h,AH=F1h,INT 16/AX=FFE3h,INT 1A/AH=11h"NEC" SeeAlso: INT 4B/AH=00h,PORT 0278h"PRINTER",MEM 0040h:0008h,MEM 0040h:0078h Bitfields for printer status: Bit(s) Description (Table 00631) 7 not busy 6 acknowledge 5 out of paper 4 selected 3 I/O error 2-1 unused 0 timeout Notes: If both, bit 5 "out of paper" and 4 "selected" are set, the MS-DOS/ PC DOS kernel assumes that no printer is attached. for Tandy 2000, bit 7 indicates printer-busy when set rather than clear --------B-1701------------------------------- INT 17 - PRINTER - INITIALIZE PORT AH = 01h DX = printer number (00h-02h) Return: AH = printer status (see #00631) Note: some printers report that they are ready immediately after initialization when they actually are not; a more reliable result may be obtained by calling AH=02h after a brief delay SeeAlso: AH=02h,AH=FFh"PC-MOS",INT 1A/AH=10h"NEC",INT 4B/AH=01h --------B-1702------------------------------- INT 17 - PRINTER - GET STATUS AH = 02h DX = printer number (00h-02h) Return: AH = printer status (see #00631) Note: PRINTFIX from MS-DOS 5.0 hooks this function and always returns AH=90h SeeAlso: AH=01h,AH=F2h,INT 1A/AH=12h"NEC",INT 4B/AH=02h --------P-1702--DX0000----------------------- INT 17 - INSET - INSTALLATION CHECK AH = 02h DX = 0000h CX = 07C3h (1987d) Return: CX = 07C2h (1986d) if installed Program: INSET is a text/graphics integration program --------b-170200BX5050----------------------- INT 17 - Enhanced Parallel Port (EPP) BIOS - INSTALLATION CHECK AX = 0200h BX = 5050h ('PP') CH = 45h ('E') DX = printer port number (00h-02h) Return: AH = status 00h if installed and port is an enhanced parallel port CX:AL = installed BIOS type 5050h:45h ('PPE') if EPP v3.0+ BIOS installed 4550h:50h ('EPP') if EPP v1.0 BIOS installed ---EPP 1.0, 3.0--- DX:BX -> far entry point to Advanced BIOS (see #00632) ---EPP Revision 7--- DX = EPP I/O base address ES:BX -> far entry point to EPP BIOS (see #00632,#00633) 03h if installed but specified port not supported CF set Program: The Enhanced Parallel Port BIOS provides support for parallel port peripherals using the enhanced modes of the IEEE 1284. SeeAlso: AH=E0h,MEM 0040h:0008h,MEM 0040h:00DCh (Table 00632) Call EPP BIOS entry point with: DL = port number (v1.0,v3.0) DX = (Revision 7) EPP port I/O base address AH = function 00h Query Configuration Return: AH = 00h if successful AL = IRQ number used by port or FFh if no IRQ BH = EPP BIOS revision (major in high nybble, minor in low nybble) BL = I/O capabilities (see #00635) ES:DI -> ASCIZ driver information/version text ---v1.0,v3.0--- CX = I/O port base address for parallel port ---Revision 7--- CL = EPP chipset code (see #00636) CH = hardware manufacturer's product code 01h Set Mode AL = mode bits (see #00637) Return: AX,BX destroyed 02h Get Mode Return: AL = mode bits (see also #00637) bit 7: EPP port interrupts enabled AH = 00h CF clear BX destroyed 03h Interrupt Control AL = subfunction 00h enable parallel port interrupts 01h disable parallel port interrupts Return: AH = status (00h,05h,06h) (see also #00634) 04h EPP Reset Return: AH = 00h if successful AL destroyed 05h perform Address-Write/Device-Select I/O cycle AL = device address Return: AH = status AL destroyed 06h perform Address-Read I/O cycle Return: AL = returned address/device data AH = status 07h write byte AL = data byte to write Return: AH = status 08h output block of data DS:SI -> block of data to be sent to parallel port CX = number of bytes to output Return: AH = status (see #00634) CX = number of unsent bytes 09h read byte of data Return: AH = status (see #00634) AL = byte read from parallel port 0Ah read block of data ES:DI -> buffer for received data CX = number of bytes to read from paralle port Return: AH = status (see #00634) ES:DI buffer filled if successful CX = number of bytes not transferred 0Bh Address/Byte-Read AL = device address Return: AH = status (see #00634) AL = byte read if successful 0Ch Address/Byte-Write AL = device address DH = data byte (v1.0,v3.0) CL = data byte (Revision 7) Return: AH = status (see #00634) 0Dh Address/Block-Read AL = device address ES:DI -> buffer for received data CX = number of bytes to read Return: AH = status (see #00634) CX = number of bytes NOT transferred 0Eh Address/Block-Write AL = device address ES:DI -> data to be sent (v1.0,v3.0) DS:SI -> data to be send (Revision 7) CX = number of bytes to write Return: AH = status (see #00634) CX = number of bytes NOT transferred 0Fh Lock Port AL = multiplexor port number bits 7-4: daisy chain port number (1-8) bits 3-0: mux device port number (1-8, 0 if no mux) Return: AH = status (00h,03h,05h) (see #00634) 10h Unlock Port AL = multiplexor port number bits 7-4: daisy chain port number (1-8) bits 3-0: mux device port number (1-8, 0 if no mux) Return: AH = status (00h,03h,05h) (see #00634) 11h Device Interrupt BL = multiplexor port number 00h if no multiplexor, else mux device port (01h-08h) AL = subfunction 00h disable device interrupts 01h enable device interrupt ES:DI -> interrupt event handler Return: AH = status (00h,03h,05h,06h) (see #00634) Note: AMI BIOS v1.00.12.AX1T ignores the multiplexor port number; it also always sets INT 0F to the address specified in ES:DI 12h Real-Time Mode AL = subfunction 00h check whether any real-time devices present 01h add (advertise) real-time device 02h remove real-time device Return: AH = status (00h,05h,06h,07h) (see #00634) AL = real-time devices present? (00h no, 01h yes) Note: unlike all other functions, this one does not use DL/DX Return: AH = status (see #00634) CF clear if successful CF set on error BX destroyed SeeAlso: #00633 (Table 00633) Call EPP BIOS (Revision 7) entry point multiplexor functions with: DX = EPP port base I/O address AH = function 40h Query Mux Return: AH = status (see #00634) AL = currently-selected port CH = status flags bit 0: channel locked bit 1: interrupt pending BH destroyed Note: the PhoenixBIOS v4.0 documentation lists BL as the currently-selected port and AL as the status flags 41h Query Device Port AL = EPP multiplex device port (1-8) Return: AH = status (see #00634) CH = status flags (see #00638) BX = EPP product/device ID (0000h if undefined) Note: the PhoenixBIOS v4.0 documentation lists AL as the status flags and CX as the device ID 42h Set Product ID AL = EPP multiplex device port (1-8) CX = EPP product ID Return: AH = status (see #00634) BX destroyed 50h Query Daisy Chain AL = EPP multiplexor device port (1-8) Return: AH = status (see #00634) CH = status flags bit 0: channel locked bit 1: interrupt pending BL = currently-selected device BH = EPP daisy chain revision (high nybble = major) CL = daisy-chain depth (00h if no daisy chain) ES:DI -> ASCIZ driver vendor identification string Note: the PhoenixBIOS v4.0 documentation lists AH=51h as "Query Daisy Chain" and BL as the multiplexor port; it also lists AL as status flags on return 51h Rescan Daisy Chain (dynamically reassign port numbers) AL = EPP multiplexor device port (1-8) Return: AH = status (see #00634) BX destroyed Note: the PhoenixBIOS v4.0 documentation lists AH=50h as "Rescan Daisy Chain" and BL as the multiplexor port Notes: these functions are only valid if a port multiplexor or daisy chain is present PhoenixBIOS 4.0 documents function 50h as "Rescan" and 51h as "Query Daisy Chain" SeeAlso: #00632,INT 2D/AL=DCh (Table 00634) Values for EPP BIOS function status: 00h successful 02h unsupported command/feature 03h unsupported parallel port 05h unsupported in current mode 06h invalid subfunction 07h already ??? 20h multiplexor not present (AMI) 40h multiplexor not present 41h multiplexor currently locked 80h I/O timeout FFh invalid/unsupported function SeeAlso: #00632,#00633 Bitfields for EPP (v3.0, Revision 7) I/O capabilities: Bit(s) Description (Table 00635) 0 multiplexor present 1 PS/2 bi-directional capable 2 daisy chain present 3 ECP capable 4 EPP software emulation supported 5 EPP capable 6 fast Centronics supported 7 standard EPP I/O map SeeAlso: #00632 (Table 00636) Values for EPP (Revision 7) chipset code: 00h Intel SL 01h FarPoint Communications 02h SMC 03h Chips&Technologies 04h Western Digital 05h National Semiconductor SeeAlso: #00632 Bitfields for EPP BIOS mode bits: Bit(s) Description (Table 00637) 0 set compatibility mode 1 set bi-directional mode 2 set EPP mode ---Revision 7,v3.0--- 3 set ECP mode 4 set EPP software emulation 5 set fast Centronics mode 6-7 reserved (0) SeeAlso: #00632,#M0053 Bitfields for EPP BIOS multiplex status flags: Bit(s) Description (Table 00638) 0 port is selected 1 port is locked 2 interrupts are enabled 3 interrupt pending SeeAlso: #00633 --------P-1703------------------------------- INT 17 U - Emulaser ELTSR - INSTALL INTERRUPT HANDLERS AH = 03h Return: BX = ??? CX = ??? Program: ELTSR is the resident portion of the Emulaser PostScript emulator by Vertisoft Systems, Inc. SeeAlso: AH=04h"Emulaser",AH=0Eh,INT 1A/AH=E5h ----------1703------------------------------- INT 17 - IBM SurePath BIOS - Officially "Private" Function AH = 03h SeeAlso: AH=04h"IBM",AH=05h"IBM" --------c-1703------------------------------- INT 17 - PC-MOS/386 v5.01 - PRINT SPOOLER - PRINT STRING AH = 03h DX = printer port number CX = number of characters to print DS:SI -> string Return: AH = printer status (see #00631) CX = number of characters actually printed Desc: send an entire string of chars to the print spooler with a single call Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible operating system by The Software Link, Inc. SeeAlso: AH=00h,AH=01h,AH=02h,AH=FFh"PC-MOS" --------c-1703--BX5A00----------------------- INT 17 - DMP Print Spooler v2.03 - INSTALLATION CHECK AH = 03h BX = 5A00h Return: AX = 5ACBh DI = 0000h ES = DMP code segment (also data segment) Program: DMP is a Printer driver/spooler, by DMP (USA), available on the PCTODAY disk, volume 10, March 1991 --------N-170300----------------------------- INT 17 - DOSISODE to WATTCP TSR Interface - "socket" AX = 0300h CX = type of socket from socket( domain, type, protocol ) DX = local identifier of socket (0 - 31) Return: AX = 0000h success CX = segment of 4500 byte transfer buffer DX = offset of 4500 byte transfer buffer = FFFFH failure CX = error code ENFILE 23 Program: DOSISODE is the ISO developers environment which has been ported to DOS and will run with the Waterloo TCP turned into a resident TSR. Currently it allows a maximum of 6 open sockets. Note: this function will initialize the interface the first time it is called SeeAlso: AX=0400h"DOSISODE",AX=0600h"DOSISODE",AX=0800h"DOSISODE" SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE" --------P-1704------------------------------- INT 17 U - Emulaser ELTSR - BEGIN CAPTURING OUTPUT AH = 04h Note: has no effect unless ELTSR is deactivated (see AX=0503h) SeeAlso: AH=03h"Emulaser",AX=0503h,INT 1A/AH=E5h ----------1704------------------------------- INT 17 - IBM SurePath BIOS - Officially "Private" Function AH = 04h SeeAlso: AH=03h"IBM",AH=05h"IBM" --------N-170400----------------------------- INT 17 - DOSISODE to WATTCP TSR Interface - "bind" AX = 0400h Note: this function just returns SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0C00h"DOSISODE" ----------1705------------------------------- INT 17 - IBM SurePath BIOS - Officially "Private" Function AH = 05h SeeAlso: AH=03h"IBM",AH=04h"IBM" --------P-170500----------------------------- INT 17 U - Emulaser ELTSR - ??? AX = 0500h ??? Return: AX = unload status (0001h safe to unload, 0002h not safe) BX = ??? CX = PSP segment of ELTSR DX = activity flag (0000h disabled, 0001h capturing, 0002h ???printing) SI = ??? DI = ??? SeeAlso: AH=04h,INT 1A/AH=E5h --------N-170500----------------------------- INT 17 - DOSISODE to WATTCP TSR Interface - "connect" AX = 0500h SeeAlso: AX=0400h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE" --------P-170501----------------------------- INT 17 U - Emulaser ELTSR - UNHOOK INTERRUPTS AX = 0501h Return: (see AX=0500h) Note: restores interrupt vectors without checking whether they have been hooked by later programs; should only be called if ELTSR reports that it is safe to unload SeeAlso: AH=04h,AX=0500h,AX=0503h,INT 1A/AH=E5h Index: uninstall;Emulaser ELTSR --------P-170502----------------------------- INT 17 U - Emulaser ELTSR - SET ??? AX = 0502h BL = Emulaser port (31h = LPT1, 32h = LPT2, 33h = LPT3) CL = ??? DL = ??? Return: (see AX=0500h) SeeAlso: AH=04h,AX=0500h,INT 1A/AH=E5h --------P-170503----------------------------- INT 17 U - Emulaser ELTSR - DEACTIVATE??? AX = 0503h Return: (see AX=0500h) SeeAlso: AH=04h,AX=0500h,AX=0501h,INT 1A/AH=E5h --------P-1706------------------------------- INT 17 U - Emulaser ELTSR - ??? AH = 06h ??? Return: ??? SeeAlso: AX=0500h,AX=0503h,AH=07h"ELTSR",INT 1A/AH=E5h --------N-170600----------------------------- INT 17 - DOSISODE to WATTCP TSR Interface - "listen" AX = 0600h Note: this function just returns SeeAlso: AX=0300h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE" SeeAlso: AX=0E00h"DOSISODE" --------P-1707------------------------------- INT 17 U - Emulaser ELTSR - OPEN CAPTURE FILE AH = 07h ES:DX -> ASCIZ filename to be opened Return: ??? Note: new output will be appended to the specified file SeeAlso: AH=08h,INT 1A/AH=E5h --------N-170700----------------------------- INT 17 - DOSISODE to WATTCP TSR Interface - "accept" AX = 0700h Note: this function just returns SeeAlso: AX=0600h"DOSISODE",AX=0800h"DOSISODE",AX=0C00h"DOSISODE" --------P-1708------------------------------- INT 17 U - Emulaser ELTSR - CLOSE CAPTURE FILE AH = 08h ??? Return: ??? Desc: close the file previously opened by function 07h SeeAlso: AH=07h,INT 1A/AH=E5h --------N-170800----------------------------- INT 17 - DOSISODE to WATTCP TSR Interface - "recvfrom" AX = 0800h SeeAlso: AX=0500h"DOSISODE",AX=0900h"DOSISODE",AX=0A00h"DOSISODE" --------P-1709------------------------------- INT 17 U - Emulaser ELTSR - PRINT CAPTURE FILE??? AH = 09h BX = ??? CX = ??? DX = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2) Return: AX = status 00h successful FFh failed Program: ELTSR is the resident portion of the Emulaser PostScript emulator by Vertisoft Systems, Inc. Note: this function calls through to INT 1A/AX=E401h, and thus requires that either ELSPL or Disk Spool II be installed SeeAlso: AH=0Ah,INT 1A/AX=E401h,INT 1A/AH=E5h --------N-170900----------------------------- INT 17 - DOSISODE to WATTCP TSR Interface - "sendto" AX = 0900h SeeAlso: AX=0700h"DOSISODE",AX=0800h"DOSISODE",AX=0A00h"DOSISODE" --------P-170A------------------------------- INT 17 U - Emulaser ELTSR - SET ??? FILENAME AH = 0Ah ES:BX -> ??? buffer CX = length of ??? buffer Return: ??? Note: copies the specified name into the buffer passed to ELSPL as the filename by AH=09h SeeAlso: AH=09h,INT 1A/AH=E5h --------N-170A00----------------------------- INT 17 - DOSISODE to WATTCP TSR Interface - "select" AX = 0A00h SeeAlso: AX=0800h"DOSISODE",AX=0B00h"DOSISODE",AX=0E00h"DOSISODE" --------P-170B------------------------------- INT 17 U - Emulaser ELTSR - GET ??? AH = 0Bh Return: AX:BX -> ??? SeeAlso: AH=0Ah,INT 1A/AH=E5h ----------170B------------------------------- INT 17 - IBM SurePath BIOS - Officially "Private" Function AH = 0Bh SeeAlso: AH=03h"IBM",AH=0Ch"IBM" --------N-170B00----------------------------- INT 17 - DOSISODE to WATTCP TSR Interface - "ioctl" AX = 0B00h DX = local identifier of socket (0 - 31) Note: this function sets the socket into non_block mode SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE" --------P-170C------------------------------- INT 17 U - Emulaser ELTSR - SET ??? FLAG AH = 0Ch ??? Return: ??? SeeAlso: AH=0Bh,INT 1A/AH=E5h ----------170C------------------------------- INT 17 - IBM SurePath BIOS - Officially "Private" Function AH = 0Ch SeeAlso: AH=0Bh"IBM",AH=0Dh"IBM" --------N-170C00----------------------------- INT 17 - DOSISODE to WATTCP TSR Interface - "close" AX = 0C00h SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0D00h"DOSISODE" --------P-170D------------------------------- INT 17 U - Emulaser ELTSR - GET TRUE ScrlLk STATE AH = 0Dh Return: AX = state (0000h off, 0010h on) Desc: determine the actual state of ScrlLk even when Emulaser is controlling the ScrlLk light as its activity indicator SeeAlso: AH=0Ch,INT 16/AH=02h,INT 1A/AH=E5h ----------170D------------------------------- INT 17 - IBM SurePath BIOS - Officially "Private" Function AH = 0Dh SeeAlso: AH=0Ch"IBM",AH=0Eh"IBM" --------N-170D00----------------------------- INT 17 - DOSISODE to WATTCP TSR Interface - "shutdown" - SHUTDOWN INTERFACE AX = 0D00h Note: this function is used to shutdown the interface SeeAlso: AX=0C00h"DOSISODE",AX=0E00h"DOSISODE" --------P-170E------------------------------- INT 17 U - Emulaser ELTSR - BACKGROUND PROCESSING AH = 0Eh Program: ELTSR is the resident portion of the Emulaser PostScript emulator by Vertisoft Systems, Inc. Note: this function is called by ELTSR on every INT 08 to allow data to be processed in the background, but may also be called by applications to give Emulaser additional CPU time SeeAlso: AH=0Dh,INT 1A/AH=E5h ----------170E------------------------------- INT 17 - IBM SurePath BIOS - Officially "Private" Function AH = 0Eh SeeAlso: AH=03h"IBM",AH=0Dh"IBM",AH=80h"IBM" --------N-170E00----------------------------- INT 17 - DOSISODE to WATTCP TSR Interface - INSTALLATION CHECK AX = 0E00h Return: CX = 1234h if installed Program: DOSISODE is the ISO developers environment which has been ported to DOS and will run with the Waterloo TCP turned into a resident TSR. Currently it allows a maximum of 6 open sockets. Note: this function is used to check if the interface is loaded SeeAlso: AX=0300h"DOSISODE",AX=0A00h"DOSISODE" --------P-172000----------------------------- INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - INSTALLATION CHECK AX = 2000h BL = printer number??? Return: AX = status (see #00639) BX = driver version number (BH=major,BL=minor) CH = ??? (00h) CL = ??? DX = ??? (0100h) Note: also enables the remaining printer driver functions (2001h-2007h) SeeAlso: AX=2001h,AX=2002h,AX=2003h,AX=2004h,AX=2005h,AX=2006h,AX=2007h (Table 00639) Values for PC Paint function 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 --------P-172001----------------------------- INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - SET ??? FLAG AX = 2001h BL = printer number??? Return: AX = status (see #00639) --------P-172002----------------------------- INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET INFORMATION AX = 2002h BL = printer number??? CL = desired information 00h printer type Return: ES:DI -> ASCIZ printer name 01h paper size DX = size index Return: ES:DI -> ASCIZ paper size description 02h ??? Return: BX = ??? 03h printer information??? DX = ??? ES:BX -> buffer for ??? (min 134 bytes) Return: AX = status (see #00639) SeeAlso: AX=2000h,AX=2004h --------P-172003----------------------------- INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ??? AX = 2003h ES:BX -> ??? Return: AX = status (see #00639) SeeAlso: AX=2000h,AX=2004h --------P-172004----------------------------- INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET ??? AX = 2004h BL = printer number??? Return: AX = status (see #00639) ES:DI -> ??? SeeAlso: AX=2000h,AX=2003h --------P-172005----------------------------- INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE PRINTER TO NEXT PAGE AX = 2005h BL = printer number??? Return: AX = status (see #00639) Note: this function also clears the flag set by AX=2001h SeeAlso: AX=2000h,AX=2001h,AX=2006h --------P-172006----------------------------- INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE TO NEXT PAGE & SHUT DOWN AX = 2006h BL = printer number??? Return: AX = status (see #00639) Note: this function also clears the flag set by AX=2001h and disables functions other than AX=2000h SeeAlso: AX=2000h,AX=2001h,AX=2005h --------P-172007----------------------------- INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - UNIMPLEMENTED AX = 2007h Return: AX unchanged SeeAlso: AX=2000h --------N-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 (see #00640) SeeAlso: AX=2403h,INT 16/AX=4500h (Table 00640) Values for NET.24 function status: 00h successful 01h timeout 02h header error 03h data error 04h busy 05h invalid parameters --------N-172401----------------------------- INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, NO HANDSHAKE AX = 2401h BL = timeout in clock ticks Return: AL = status (see #00640) DX:BX -> receive buffer SeeAlso: AX=2402h,AX=2404h,AX=2408h --------N-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 #00640) SeeAlso: AX=2401h,AX=2403h,AX=2404h,AX=2409h --------N-172403----------------------------- INT 17 - Shamrock Software NET.24 v3.11+ - GET STATUS AND TRANSMISSION BUFFER AX = 2403h Return: AL = status (see #00640) CX = number of characters in receive ring buffer DX:BX -> transmit buffer SeeAlso: AX=2400h,AX=2402h --------N-172404----------------------------- INT 17 - Shamrock Software NET.24 v3.11+ - SEND ACK BLOCK AX = 2404h BX = target address Return: AL = status (see #00640) SeeAlso: AX=2402h,AX=2405h --------N-172405----------------------------- INT 17 - Shamrock Software NET.24 v3.11+ - SEND NAK BLOCK AX = 2405h BX = target address Return: AL = status (see #00640) SeeAlso: AX=2402h,AX=2404h --------N-172406----------------------------- INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED RECEIVE AX = 2406h Return: AL = status (see #00640) SeeAlso: AX=2407h,AX=240Ah --------N-172407----------------------------- INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE CHARACTER FROM REMOTE AX = 2407h Return: AL = status (see also #00640) 06h end of data DL = received character SeeAlso: AX=2406h --------N-172408----------------------------- INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, WITH HANDSHAKE AX = 2408h Return: AL = status (see also #00640) 06h end of data CX = number of bytes in receive buffer DX:SI -> receive buffer SeeAlso: AX=2401h,AX=2405h,AX=2409h --------N-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 #00640) 03h no response 06h remote currently unable to perform command SeeAlso: AX=2405h,AX=2408h --------N-17240A----------------------------- INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED TRANSMIT AX = 240Ah Return: AL = status (see #00640) SeeAlso: AX=2406h,AX=240Bh,AX=240Ch --------N-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 --------N-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 --------p-174B00----------------------------- INT 17 - Brother P-Touch - INSTALLATION CHECK AX = 4B00h Return: AX = 4249h ('BI' = Brother International) if installed BX = program ID 4550h ('EP') for "Epson FX-80 Emulator" 5047h ('PG') for "Printer to Disk Utility" CX = numbero of parallel port being emulated or intercepted SeeAlso: AX=4B01h --------p-174B01----------------------------- INT 17 - Brother P-Touch - UNINSTALL AX = 4B01h Return: AX = segment of resident program or 0000h if unable to uninstall Note: the calling program must manually free both the indicated segment and the environment segment for the TSR with INT 21/AH=49h (the environment is pointed at by the WORD at AX:002Ch) SeeAlso: AX=4B00h,INT 21/AH=49h --------J-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 --------J-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 --------J-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 --------J-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 --------P-175555BXAAAA----------------------- INT 17 - LR - SET CONFIGURATION AX = 5555h BX = AAAAh CL = configuration flags (see #04117) DX = LPT number Return: AX = A55Ah BX = BBBBh Program: LR_xxxx.COM files are a set of printer-hardware dependent printer drivers found in the LIR DOS/Windows 3.xx codepage support package develoved by LABAS u.a.b. LIR supports several different screen and printer codepages and various keyboard layouts used in Lithuania. Download at: ftp://ftp.labas.com/pub/drivers/language/lir422.zip SeeAlso: AX=5555h/BX=BBBBh,INT 10/AX=5555h/BX=AAAAh Bitfields for LR_xxxx.COM configuration flags: Bit(s) Description (Table 04117) 7 ESC sequence??? 6 ESC sequence??? 5-3 printer code page 2 Lithuanian alphabet??? 1 Russian alphabet??? 0 ??? --------P-175555BXBBBB----------------------- INT 17 - LR - GET CONFIGURATION AX = 5555h BX = BBBBh DX = LPT number Return: AX = A55Ah BX = CCCCh CL = configuration flags (see #04117) SeeAlso: AX=5555h/BX=AAAAh,INT 10/AX=5555h/BX=BBBBh --------V-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 --------V-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. --------P-1762------------------------------- INT 17 U - T2PS v1.0 - UNINSTALL AH = 62h Return: nothing SeeAlso: AH=63h,AH=64h,INT 05/AX=554Eh --------P-1763------------------------------- INT 17 U - T2PS v1.0 - SET PARAMETERS AH = 63h ES:SI -> settings (see #00641) Program: T2PS is a shareware ASCII-to-PostScript converter by A.N.D. Technologies SeeAlso: AH=62h,AH=64h,INT 05/AX=4E57h Format of T2PS settings: Offset Size Description (Table 00641) 00h WORD LPT port number (0=LPT1, etc.) 02h WORD page heigh in points 04h WORD page width in points 06h WORD top margin in points 08h WORD bottom margin in points 0Ah WORD left margin in points 0Ch WORD right margin in points 0Eh WORD font size in points 10h WORD tab size 12h WORD timeout in clock ticks --------P-1764------------------------------- INT 17 U - T2PS v1.0 - GET PARAMETERS AH = 64h ES:SI -> buffer for settings (see #00641) Return: ES:SI buffer filled SeeAlso: AH=62h,AH=63h,INT 05/AX=5053h --------b-176F00BX0000----------------------- INT 17 - HP Vectra - EXTENDED BIOS - "F17_INQUIRE" - INSTALLATION CHECK AX = 6F00h BX = 0000h Return: BX = 4850h ("HP") if HP Extended BIOS printer extensions available SeeAlso: AX=6F02h,INT 14/AX=6F00h,INT 10/AX=6F00h,INT 14/AX=6F00h SeeAlso: INT 33/AX=6F00h,INT 6F/AH=00h"HP Vectra" --------b-176F02----------------------------- INT 17 - HP Vectra - EXTENDED BIOS - "F17_PUT_BUFFER" - PRINT BUFFER AX = 6F02h CX = size of buffer in bytes DX = port number (0-3) ES:DI -> buffer containing characters to be printed Return: AH = printer status (see #00631) CX = number of bytes successfully printed ---on error (AH bit 0 set)--- ES:DI -> next byte to be sent ---if successful--- ES:DI unchanged SeeAlso: AH=00h,AX=6F00h,INT 14/AX=6F02h ----------1780------------------------------- INT 17 - IBM SurePath BIOS - Officially "Private" Function AH = 80h SeeAlso: AH=03h"IBM",AH=0Bh"IBM" --------N-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 (see #00642) Note: this function cancels the last CL printouts for the current task SeeAlso: AH=82h (Table 00642) Values for Alloy 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 --------N-1782------------------------------- INT 17 - Alloy NTNX, MW386 - CANCEL ALL JOBS FOR CURRENT USER AH = 82h AL = 00h (NTNX compatibility mode) Return: AL = status (see #00642) SeeAlso: AH=81h --------N-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 #00642) Note: in NTNX compatibility mode, this function only affects LPT1 --------N-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) --------J-1784------------------------------- INT 17 - AX (Japanese AT) PRINTER - OUTPUT CHARACTER WITHOUT CONVERSION AH = 84h AL = character DX = printer number Return: AH = printer status (see #00631) SeeAlso: AH=00h,AH=85h --------J-1785------------------------------- INT 17 - AX (Japanese AT) PRINTER - ENABLE/DISABLE CHARACTER CONVERSION AH = 85h AL = new state (00h enabled, 01h disabled) SeeAlso: AH=84h"AX" --------N-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 --------N-1788------------------------------- INT 17 - Alloy NTNX, MW386 - REMOVE PRINTER FROM SPOOLER AH = 88h AL = mode 00h NTNX compatibility DX = NTNX printer number (see #00643) 01h MW386 DX = MW386 printer number Return: AH = status (see #00642) Note: removes specified printer from the spooler's list of printers SeeAlso: AH=89h,AH=8Bh (Table 00643) Values for Alloy 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) --------N-1789------------------------------- INT 17 - Alloy NTNX, MW386 - ADD PRINTER TO SPOOLER AH = 89h AL = mode 00h NTNX compatibility DX = NTNX printer number (see #00643) 01h MW386 DX = MW386 printer number Return: AL = status (see #00642) Note: the specified printer is added to the spooler's list of available printers SeeAlso: AH=88h,AH=8Bh --------N-178A------------------------------- INT 17 - Alloy NTNX - ACTIVATE USER-WRITTEN PRINTER DRIVER AH = 8Ah ??? SeeAlso: AH=92h --------N-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" --------N-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 --------N-178D------------------------------- INT 17 - Alloy NTNX,MW386 - RESET SPOOLER AH = 8Dh AL = 00h Return: AL = status (see #00642) Notes: clears all buffers and resets spooler to boot-up values MW386 supports this function for compatibility only; it is a NOP --------N-178E------------------------------- INT 17 - Alloy NTNX - GET INT 28 ENTRY POINT AH = 8Eh AL = 00h Return: CX:BX -> INT 28 entry point SeeAlso: AH=8Fh --------N-178F------------------------------- INT 17 - Alloy NTNX - GET DOS INTERCEPT ENTRY POINT AH = 8Fh AL = 00h Return: CX:BX -> DOS intercept routine SeeAlso: AH=8Eh --------N-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 #00642) Note: in mode 00h, the file is always sent to logical LPT1 SeeAlso: AH=A0h --------N-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 #00642) SeeAlso: AH=8Ch --------N-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 #00642) SeeAlso: AH=8Ah --------N-1794------------------------------- INT 17 - Alloy NTNX, MW386 - SELECT PRINTER AH = 94h AL = mode 00h NTNX compatibility DX = NTNX printer number (see #00643) 01h MW386 DX = MW386 printer number 02h MW386 v2+ BX = logical printer number DX = MW386 printer number Return: AL = status (see #00642) Note: modes 00h and 01h affect only logical LPT1 SeeAlso: AH=8Bh,AH=95h --------N-1795------------------------------- INT 17 - Alloy NTNX, MW386 - GET CURRENT PRINTER AH = 95h AL = mode 00h NTNX compatibility Return: DX = NTNX printer number (see #00643) (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 #00642) Note: modes 00h and 01h return the printer number of logical LPT1 only SeeAlso: AH=94h --------N-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 --------N-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 #00642) 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 --------N-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 --------N-1799------------------------------- INT 17 - Alloy NTNX, MW386 - GET/SET PRINTER MODE AH = 99h AL = mode 00h NTNX compatibility DL = NTNX printer number (see #00643) (FFh = task's current logical LPT1) DH = mode (see #00644) 01h MW386 DX = MW386 printer number CL = mode (as for DH above) Return: AL = status (see #00642) DH = mode (bits 1 and 2 set as above) DL = printer owner's user number if not spooled Bitfields for Alloy printer mode: 0 get mode if 1, set mode if 0 (Table 00644) 1 private ("attached") 2 direct instead of spooled 3-7 reserved (0) --------N-179A------------------------------- INT 17 - Alloy NTNX,MW386 - SET TAB EXPANSION AH = 9Ah AL = mode 00h NTNX compatibility DX = NTNX printer number (see #00643) (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 #00642) 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 --------N-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 #00642) 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 --------N-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 #00642) 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 --------N-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 #00642) Note: only affects the current logical LPT1 SeeAlso: AH=9Ah,AH=A6h,INT 7F/AH=05h"NTNX (Host)" --------N-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 #00642) Note: only affects the current logical LPT1 SeeAlso: AH=A4h --------N-17A7------------------------------- INT 17 - Alloy MW386 v2+ - GET/SET SPOOL FLAGS AH = A7h AL = spool flags (see #00645) BX = logical device number 00h-03h = LPT1-LPT4 04h-07h = COM1-COM4 Return: AL = status (see #00642) Note: the documentation does not state which register contains the result of a GET SeeAlso: AH=A4h,AH=A6h Bitfields for Alloy spool flags: Bit(s) Description (Table 00645) 0 banner page enabled (see AH=A6h) 1 form feed enabled (see AH=A4h) 2-6 reserved (0) 7 set flags if 1, get flags if 0 --------N-17A8------------------------------- INT 17 - Alloy MW386 - DEFINE TEMPORARY FILENAME AH = A8h CX:SI -> ASCIZ filename without extension (max 8 chars) Return: AL = status (see #00642) Note: allows application to specify banner page filename for spool files collected from the application's printer output SeeAlso: AH=A9h --------N-17A9------------------------------- INT 17 - Alloy MW386 - CHANGE TEMPORARY SPOOL DRIVE AH = A9h AL = new spool drive (2=C:,3=D:,etc) Return: AL = status (see #00642) Note: does not remove previous spooling directory since jobs may be pending SeeAlso: AH=A8h --------N-17AA------------------------------- INT 17 - Alloy MW386 v2+ - GET REAL-TIME PRINTER STATUS AH = AAh AL = mode 00h NTNX DX = NTNX printer number (see #00643) 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 --------N-17AF------------------------------- INT 17 - Alloy MW386 - CHECK SPOOLER AH = AFh Return: AX = 55AAh if spooler available --------c-17C0------------------------------- INT 17 - PC Magazine PCSpool - GET CONTROL BLOCK ADDRESS AH = C0h DX = printer port (0-3) Return: ES:BX -> control block (see #00646) SeeAlso: AH=C1h Format of PCSpool control block: Offset Size Description (Table 00646) 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 --------c-17C1-------------------------------- INT 17 - PC Magazine PCSpool - BUILD PAUSE CONTROL RECORD AH = C1h DX = printer port (0-3) DS:SI -> ASCIZ string to save for display Note: flushes pending writes SeeAlso: AH=C0h,AH=C2h --------c-17C2------------------------------- INT 17 - PC Magazine PCSpool - FLUSH PENDING WRITES AH = C2h DX = printer port (0-3) SeeAlso: AH=C3h --------c-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 --------c-17C4------------------------------- INT 17 - PC Magazine PCSpool - QUERY SPOOLER ACTIVE AH = C4h Return: DI = B0BFh SI = segment --------c-17C5------------------------------- INT 17 - PC Magazine PCSpool - JOB SKIP PRINTER QUEUE AH = C5h DX = printer port (0-3) Note: cancels up to the pause record --------c-17C6------------------------------- INT 17 - PC Magazine PCSpool - CHECK PRINTER QUEUE STATUS AH = C6h DX = printer port (0-3) Return: AX = queue status 0000h printer not active or at pause 0001h printer busy --------c-17C7------------------------------- INT 17 - PC Magazine PCSpool - CLOSE QUEUE AH = C7h DX = printer port (0-3) SeeAlso: AH=C3h --------P-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 --------P-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) --------P-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 --------P-17CD03----------------------------- INT 17 - INSET - EXECUTE INSET MENU WITHIN OVERRIDE MODE AX = CD03h Return: CX = 07C2h (1986d) --------P-17CD04----------------------------- INT 17 - INSET - INITIALIZE LINKED MODE AX = CD04h ES:SI -> FAR routine for linked mode (see #00647) Return: CX = 07C2h SeeAlso: AX=CD02h,AX=CD08h (Table 00647) Values INSET linked-mode routine is called with: AL = function 00h send character to printer BL = character to send 01h send string to printer CX = number of bytes to send DS:DX -> buffer containing data 02h move print head to horizontal starting position of image Return: AX = status 0000h success 0001h failure --------P-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 --------P-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 --------P-17CD07----------------------------- INT 17 - INSET - FLUSH GRAPHICS FROM MERGE BUFFER AX = CD07h Return: CX = 07C2h SeeAlso: AX=CD05h --------P-17CD08----------------------------- INT 17 - INSET - CANCEL LINK MODE AX = CD08h Return: CX = 07C2h SeeAlso: AX=CD04h --------P-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 --------P-17CD0A----------------------------- INT 17 - INSET - GET SETUP AX = CD0Ah DS:DX -> buffer for IN.SET data Return: CX = 07C2h --------P-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 --------P-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 --------P-17E0------------------------------- INT 17 - EPP BIOS - INSTALLATION CHECK AH = E0h Return: ??? (AH <> E0h if installed ???) SeeAlso: AX=0200h"EPP",AH=E1h,AH=E2h --------P-17E1------------------------------- INT 17 - EPP BIOS - DISABLE EPP AH = E1h ??? Return: ??? SeeAlso: AX=0200h"EPP",AH=E0h,AH=E2h --------P-17E2------------------------------- INT 17 - EPP BIOS - ENABLE EPP AH = E2h ??? Return: ??? SeeAlso: AX=0200h"EPP",AH=E0h,AH=E1h --------P-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 --------P-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 --------P-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 --------P-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 --------P-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 --------P-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 --------c-17FF--BX0000----------------------- INT 17 U - PC-MOS/386 v5.01 - PRINT SPOOLER - CLOSE SPOOL FILE AH = FFh BX = 0000h CX = 0000h DX = printer port number Return: AH = printer status (see #00631 at AH=00h) Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible operating system by The Software Link, Inc. Desc: close the spool file immediately instead of waiting for the close time to elapse SeeAlso: AH=01h,AH=03h"PC-MOS" --------B-18--------------------------------- INT 18 - DISKLESS BOOT HOOK (START CASSETTE BASIC) Desc: called when there is no bootable disk available to the system Notes: very few PCs other than those produced by IBM contain BASIC in ROM, so the action is unpredictable on compatibles; this interrupt often reboots the system, and often has no effect at all some PC and XT clones had an optional IBM CASSETTE BASIC stored in the ROM, too. most BIOSes will display an error message similar to "NO BASIC", and either reboot or return to the caller. PS/2 machines usually pop up a graphical box to the effect that the user should enter a floppy and press F1. Some clones display the message "No boot device available, strike F1 to retry, F2 for setup utility" network cards with their own BIOS can hook this interrupt to allow a diskless boot off the network (even when a hard disk is present if none of the partitions is marked as the boot partition) SeeAlso: INT 2F/AX=4A06h,INT 86"NetBIOS",INT 2F/AX=4A06h,INT 2F/AX=4A07h --------J-1800------------------------------- INT 18 - NEC PC-9800 series - KEYBOARD - GET KEYSTROKE AH = 00h Return: AX = keystroke SeeAlso: AH=01h,AH=02h,INT 16/AH=00h --------J-1801------------------------------- INT 18 - NEC PC-9800 series - KEYBOARD - CHECK FOR KEYSTROKE AH = 01h Return: BH = status 00h no keystrokes available 01h keystroke available AX = keystroke SeeAlso: AH=00h,AH=02h,INT 16/AH=01h --------J-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 --------J-1803------------------------------- INT 18 - NEC PC-9800 series - KEYBOARD - INITIALIZE AH = 03h ??? Return: ??? SeeAlso: AH=00h,AH=04h --------J-1804------------------------------- INT 18 - NEC PC-9800 series - KEYBOARD - KEY PRESSED AH = 04h ??? Return: ??? Note: details are not available at this time SeeAlso: AH=00h,AH=02h,INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02h --------J-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 others ??? Return: ??? Notes: details are not available at this time text video RAM is located at segments A000h (characters) and A200h (attributes), graphics video RAM at segment C000h Bitfields for NEC PC-9800 series video attributes: Bit(s) Description (Table 00648) 0 disable drawing character 1 blinking 2 reverse video 3 underline 4 vertical line 7-5 color (0=black, 1=blue, 2=red, 3=purple, 4=green, 5=cyan, 6=yellow, 7=white) --------J-180E------------------------------- INT 18 - NEC PC-9800 series - SET SINGLE DISPLAY AREA AH = 0Eh DX = offset of first byte to display??? Return: ??? SeeAlso: AH=1Bh,MEM 0050h:0001h --------J-181B------------------------------- INT 18 - NEC PC-9800 series - SET DISPLAY MODE AH = 1Bh AL = ??? (00h for text mode) Return: ??? --------r-185350BX4849----------------------- INT 18 - SPHINX C-- - WB.COM - API AX = 5350h ('SP') BX = 4849h ('HI') CX = 4E58h ('NX') DH = function 01h set ??? DL = ??? 02h get ??? Return: DL = ??? 03h get ??? Return: ES:DI -> ??? data buffer 06h ??? Return: AX = 7370h ('sp') if installed BX = 6869h ('hi') if installed CX = 6E78h ('nx') if installed Program: SPHINX C-- is a shareware compiler by Peter Cellik for a language which is a cross between C and assembler; WB.COM is the driver which launches the WorkBench --------s-186900----------------------------- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET STATUS AX = 6900h Return: AX = amount of DRAM on card or 0000h if GUS not available Program: YEA_GUS is a driver for the Graphics Ultra Sound which hooks INT 18h and then shells out the the program requiring its services SeeAlso: AX=6901h,AX=690Ah,AX=690Bh --------s-186901----------------------------- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESET AX = 6901h BX = number of active voices (14-32) Return: nothing SeeAlso: AX=6900h --------s-186902----------------------------- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOLUME FOR SPECIFIC VOICE AX = 6902h BX = voice number (00h-1Fh) CX = linear volume (0000h-01FFh) Return: nothing SeeAlso: AX=6900h,AX=6903h,AX=6904h,AX=6909h,AX=690Ah --------s-186903----------------------------- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET FREQUENCY FOR VOICE AX = 6903h BX = voice number (00h-1Fh) CX = frequency in Hz (0-44100) Return: nothing SeeAlso: AX=6902h,AX=6904h --------s-186904----------------------------- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET LEFT/RIGHT BALANCE AX = 6904h BX = voice number (00h-1Fh) CX = balance (0 = left, 7 = even, 15 = right) Return: nothing SeeAlso: AX=6902h,AX=6903h --------s-186905----------------------------- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - PLAY MUSIC AX = 6905h BL = voice number BH = sample type (0 = 8-bit, 1 = 16-bit) CL = looping type (0 = none, 1 = forward, 2 = back and forth) CH:DI = 20-bit starting address for voice data DL:SI = 20-bit address for loop start DH:BP = 20-bit address for loop end SeeAlso: AX=6903h,AX=6906h,AX=690Bh --------s-186906----------------------------- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - LOAD SOUND DATA AX = 6906h BL = data format (1 = twos-complement, 0 = not) BH = sample type (0 = 8-bit, 1 = 16-bit) CX = number of bytes to send ES:SI -> buffer containing data DL:DI = 20-bit address of GUS DRAM at which to load sound data SeeAlso: AX=6900h,AX=6905h,AX=690Ch --------s-186907----------------------------- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - STOP VOICE AX = 6907h BX = voice number (00h-1Fh) Return: nothing SeeAlso: AX=6908h,AX=690Dh --------s-186908----------------------------- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOICE END AX = 6908h BX = voice number (00h-1Fh) CL:DX = 20-bit ending address Return: nothing SeeAlso: AX=690Bh --------s-186909----------------------------- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RAMP VOLUME AX = 6909h BL = voice number (00h-1Fh) BH = looping type (0 = none, 1 = forward, 2 = back and forth) CX = starting volume DX = ending volume DI:SI = time Return: nothing SeeAlso: AX=6902h,AX=690Ah --------s-18690A----------------------------- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET VOLUME AX = 690Ah BX = voice number (00h-1Fh) Return: AX = current non-linear volume for voice SeeAlso: AX=6902h,AX=6909h --------s-18690B----------------------------- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET POSITION AX = 690Bh BX = voice number Return: BX:AX = 20-bit address at which voice is playing SeeAlso: AX=6900h,AX=6905h,AX=6908h --------s-18690C----------------------------- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SAVE SOUND DATA AX = 690Ch BL = data format (1 = twos-complement, 0 = not) BH = sample type (0 = 8-bit, 1 = 16-bit) CX = number of bytes to get ES:SI -> buffer for retrieved data DL:DI = 20-bit address in GUS DRAM from which to read voice data Return: nothing SeeAlso: AX=6906h --------s-18690D----------------------------- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESTART VOICE AX = 690Dh BX = voice CX = sample type (0 = 8-bit, 1 = 16-bit) DX = looping type (0 = none, 1 = forward, 2 = back and forth) Return: CX = balance value SeeAlso: AX=6907h,AX=6908h --------s-188000----------------------------- INT 18 - Gravis Ultra Sound EURO_MOD.EXE - INITIALIZE AX = 8000h Program: EURO_MOD is a .MOD file player for the Gravis Ultra Sound which hooks INT 18h and then shells out to the program requiring its services SeeAlso: AX=8001h,AX=8004h --------s-188001----------------------------- INT 18 - Gravis Ultra Sound EURO_MOD.EXE - LOAD .MOD FILE AX = 8001h BX:CX -> ASCIZ filename SeeAlso: AX=8000h,AX=8002h --------s-188002----------------------------- INT 18 - Gravis Ultra Sound EURO_MOD.EXE - PLAY .MOD FILE AX = 8002h SeeAlso: AX=8002h,AX=8003h --------s-188003----------------------------- INT 18 - Gravis Ultra Sound EURO_MOD.EXE - STOP PLAYING AX = 8003h --------s-188004----------------------------- INT 18 - Gravis Ultra Sound EURO_MOD.EXE - SHUTDOWN AX = 8004h SeeAlso: AX=8000h,AX=8003h --------B-19--------------------------------- INT 19 - SYSTEM - BOOTSTRAP LOADER Desc: This interrupt reboots 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. Notes: 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 (see #00650). After loading the master boot sector at 0000h:7C00h, the master bootstrap loader is given control (see #00653). 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 and most clones issue an INT 18 if neither floppy nor hard disk have a valid boot sector 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 #00649). 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. the default handler is at F000h:E6F2h for 100% compatible BIOSes MS-DOS 3.2+ hangs on booting (even from floppy) if the hard disk contains extended partitions which point at each other in a loop, since it will never find the end of the linked list of extended partitions under Windows Real and Enhanced modes, calling INT 19 will hang the system in the same was as under bare DOS; under Windows Standard mode, INT 19 will successfully perform a cold reboot as it appears to have been redirected to a MOV AL,0FEh/OUT 64h,AL sequence BUG: when loading the remainder of the DOS system files fails, various versions of IBMBIO.COM/IO.SYS incorrectly restore INT 1E before calling INT 19, assuming that the boot sector had stored the contents of INT 1E at DS:SI instead of on the stack as it actually does SeeAlso: INT 14/AH=17h,INT 18"BOOT HOOK",INT 49"Tandy 2000",INT 5B"PC Cluster" SeeAlso: MEM 0040h:0067h,MEM F000h:FFF0h,CMOS 0Fh Format of VDISK header block (at beginning of INT 19 handler's segment): Offset Size Description (Table 00649) 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 (Table 00650) 00h 446 BYTEs Master bootstrap loader code 1BEh 16 BYTEs partition record for partition 1 (see #00651) 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 (Table 00651) 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 #00652) 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 SeeAlso: #00650 (Table 00652) Values for operating system indicator: 00h empty partition-table entry 01h DOS 12-bit FAT 02h XENIX root file system 03h XENIX /usr file system (obsolete) 04h DOS 16-bit FAT (up to 32M) 05h DOS 3.3+ extended partition 06h DOS 3.31+ Large File System (16-bit FAT, over 32M) 07h QNX 07h OS/2 HPFS 07h Windows NT NTFS 07h Advanced Unix 07h see partition boot record; could be any of the above or others 08h OS/2 (v1.0-1.3 only) 08h AIX bootable partition, SplitDrive 08h Commodore DOS 08h DELL partition spanning multiple drives 09h AIX data partition 09h Coherent filesystem 0Ah OS/2 Boot Manager 0Ah OPUS 0Ah Coherent swap partition 0Bh Windows95 with 32-bit FAT 0Ch Windows95 with 32-bit FAT (using LBA-mode INT 13 extensions) 0Eh logical-block-addressable VFAT (same as 06h but using LBA-mode INT 13) 0Fh logical-block-addressable VFAT (same as 05h but using LBA-mode INT 13) 10h OPUS 11h OS/2 Boot Manager hidden 12-bit FAT partition 12h Compaq Diagnostics partition 14h (resulted from using Novell DOS 7.0 FDISK to delete Linux Native part) 14h OS/2 Boot Manager hidden sub-32M 16-bit FAT partition 16h OS/2 Boot Manager hidden over-32M 16-bit FAT partition 17h OS/2 Boot Manager hidden HPFS partition 17h hidden NTFS partition 18h AST special Windows swap file ("Zero-Volt Suspend" partition) 19h Willowtech Photon coS 1Bh hidden Windows95 FAT32 partition 1Ch hidden Windows95 FAT32 partition (using LBA-mode INT 13 extensions) 1Eh hidden LBA VFAT partition 20h Willowsoft Overture File System (OFS1) 21h officially listed as reserved 21h FSo2 23h officially listed as reserved 24h NEC MS-DOS 3.x 26h officially listed as reserved 31h officially listed as reserved 33h officially listed as reserved 34h officially listed as reserved 36h officially listed as reserved 38h Theos 3Ch PowerQuest PartitionMagic recovery partition 40h VENIX 80286 41h Personal RISC Boot 41h PowerPC boot partition 42h SFS (Secure File System) by Peter Gutmann 45h EUMEL/Elan 46h EUMEL/Elan 47h EUMEL/Elan 48h EUMEL/Elan 4Fh Oberon boot/data partition 50h OnTrack Disk Manager, read-only partition 51h OnTrack Disk Manager, read/write partition 51h NOVELL 52h CP/M 52h Microport System V/386 53h OnTrack Disk Manager, write-only partition??? 54h OnTrack Disk Manager (DDO) 55h EZ-Drive (see also INT 13/AH=FFh"EZ-Drive") 56h GoldenBow VFeature 5Ch Priam EDISK 61h SpeedStor 63h Unix SysV/386, 386/ix 63h Mach, MtXinu BSD 4.3 on Mach 63h GNU HURD 64h Novell NetWare 286 64h SpeedStore 65h Novell NetWare (3.11) 67h Novell 68h Novell 69h Novell 70h DiskSecure Multi-Boot 71h officially listed as reserved 73h officially listed as reserved 74h officially listed as reserved 75h PC/IX 76h officially listed as reserved 7Eh F.I.X. 80h Minix v1.1 - 1.4a 81h Minix v1.4b+ 81h Linux 81h Mitac Advanced Disk Manager 82h Linux Swap partition 82h Prime 82h Solaris (Unix) 83h Linux native file system (ext2fs/xiafs) 84h OS/2-renumbered type 04h partition (related to hiding DOS C: drive) 85h Linux EXT 86h FAT16 volume/stripe set (Windows NT) 87h HPFS Fault-Tolerant mirrored partition 87h NTFS volume/stripe set 93h Amoeba file system 94h Amoeba bad block table 98h Datalight ROM-DOS SuperBoot 99h Mylex EISA SCSI A0h Phoenix NoteBIOS Power Management "Save-to-Disk" partition A1h officially listed as reserved A3h officially listed as reserved A4h officially listed as reserved A5h FreeBSD, BSD/386 A6h OpenBSD A9h NetBSD (http://www.netbsd.org/) B1h officially listed as reserved B3h officially listed as reserved B4h officially listed as reserved B6h officially listed as reserved B6h Windows NT mirror set (master), FAT16 file system B7h BSDI file system (secondarily swap) B7h Windows NT mirror set (master), NTFS file system B8h BSDI swap partition (secondarily file system) BEh Solaris boot partition C0h DR DOS/DR-DOS/Novell DOS secured partition C0h CTOS C1h DR DOS 6.0 LOGIN.EXE-secured 12-bit FAT partition C4h DR DOS 6.0 LOGIN.EXE-secured 16-bit FAT partition C6h DR DOS 6.0 LOGIN.EXE-secured Huge partition C6h corrupted FAT16 volume/stripe set (Windows NT) C6h Windows NT mirror set (slave), FAT16 file system C7h Syrinx Boot C7h corrupted NTFS volume/stripe set C7h Windows NT mirror set (slave), NTFS file system CBh Reserved for DR DOS/DR-DOS/OpenDOS secured FAT32 CCh Reserved for DR DOS/DR-DOS secured FAT32 (LBA) CEh Reserved for DR DOS/DR-DOS secured FAT16 (LBA) D0h Multiuser DOS secured FAT12 D1h Old Multiuser DOS secured FAT12 D4h Old Multiuser DOS secured FAT16 (<= 32M) D5h Old Multiuser DOS secured extended partition D6h Old Multiuser DOS secured FAT16 (> 32M) D8h CP/M-86 DBh CP/M, Concurrent CP/M, Concurrent DOS DBh CTOS (Convergent Technologies OS) E1h SpeedStor 12-bit FAT extended partition E2h DOS read-only (Florian Painke's XFDISK 1.0.4) E3h DOS read-only E3h Storage Dimensions E4h SpeedStor 16-bit FAT extended partition E5h officially listed as reserved E6h officially listed as reserved EBh BeOS BFS (BFS1) F1h Storage Dimensions F2h DOS 3.3+ secondary partition F3h officially listed as reserved F4h SpeedStor F4h Storage Dimensions F5h Prologue F6h officially listed as reserved FEh LANstep FEh IBM PS/2 IML (Initial Microcode Load) partition FFh Xenix bad block table Note: for partition type 07h, one should inspect the partition boot record for the actual file system type SeeAlso: #00651 (Table 00653) Values Bootstrap loader is called with (IBM BIOS): CS:IP = 0000h:7C00h DH = access bits 7-6,4-0: don't care bit 5: =0 device supported by INT 13 DL = boot drive 00h first floppy 80h first hard disk --------B-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 (except on Tandy 2000, where the clock runs at 20 ticks per second) 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) since the midnight flag is cleared, if an application calls this function after midnight before DOS does, DOS will not receive the midnight flag and will fail to advance the date Modern releases of MS-DOS/PC DOS (5.0+???) assume that AL is a day rollover counter rather than a flag, as expected by older releases. DOS 5 - 7.10 (Windows 98 SE) provide an undocumented CONFIG.SYS SWITCHES=/T option to force the old behaviour of the day advancing code, that is using a flag instead of a counter. DR DOS 3.31 - DR-DOS 7.03 handle AL as a flag. SeeAlso: AH=01h,AH=02h,INT 21/AH=2Ch,INT 55"Tandy 2000",INT 4E/AH=02h"TI" SeeAlso: INT 62/AX=0099h,MEM 0040h:006Ch,MEM 0040h:0070h --------B-1A01------------------------------- INT 1A - TIME - SET SYSTEM TIME AH = 01h CX:DX = number of clock ticks since midnight Return: nothing Notes: there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs (except on Tandy 2000, where the clock runs at 20 ticks per second) this call resets the midnight-passed flag SeeAlso: AH=00h,AH=03h,INT 21/AH=2Dh --------B-1A02------------------------------- INT 1A - TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS) AH = 02h CF clear to avoid bug (see below) 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) Notes: this function is also supported by the Sperry PC, which predates the IBM AT; the data is returned in binary rather than BCD on the Sperry, and DL is always 00h MS-DOS/PC DOS IO.SYS/IBMBIO.COM use this function to detect if a RTC is preset by checking if the returned values are non-zero. If they are, this function is called one more time, before it is assumed that no RTC is present. BUG: some BIOSes leave CF unchanged if successful, so CF should be cleared before calling this function SeeAlso: AH=00h,AH=03h,AH=04h,INT 21/AH=2Ch --------b-1A02------------------------------- INT 1A - Tandy 2000 - TIME - GET DATE AND TIME AH = 02h Return: BX = number of days since January 1, 1980 CH = hours CL = minutes DH = seconds DL = hundredths SeeAlso: AH=03h"Tandy 2000",INT 55"Tandy 2000" --------B-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) Return: nothing Note: this function is also supported by the Sperry PC, which predates the IBM AT; the data is specified in binary rather than BCD on the Sperry, and the value of DL is ignored SeeAlso: AH=01h,AH=03h,AH=05h,INT 21/AH=2Dh,INT 4B/AH=01h --------b-1A03------------------------------- INT 1A - Tandy 2000 - TIME - SET DATE AND TIME AH = 03h BX = number of days since January 1, 1980 CH = hours CL = minutes DH = seconds DL = hundredths Return: nothing SeeAlso: AH=02h"Tandy 2000",INT 55"Tandy 2000" --------B-1A04------------------------------- INT 1A - TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS) AH = 04h CF clear to avoid bug (see below) Return: CF clear if successful CH = century (BCD) CL = year (BCD) DH = month (BCD) DL = day (BCD) CF set on error Notes: DR-DOS 7.02 (after 1998-06-06) and 7.03 hook this function and correct the century to 20xx if the reported year is 1900..1980 to auto-fix ROM-BIOSes which are not Year 2000 compliant. On a running system, it would also correct the rollover bug from 1999/12/31 to 2000/01/01. The latter can be turned off using the new CONFIG.SYS YEAR2000=ON|OFF command, as hooking INT 1Ah can sometimes cause compatibility problems with 3rd party software, e.g. NCR/Symbios/LSI Logic-based SDMS PCI SCSI drivers (including all OEM drivers like from Asus, Noma, etc.), some Flash-BIOS software like Asus PFLASH, Quarterdeck's QEMM Stealth and Quick-Boot features. Using EXCLUDESTEALTHINT=1A, though, will allow QEMM's Stealth features to coexist with the DR-DOS Year 2000 rollover support. Actually, the Y2K-fix is provided since OpenDOS 7.02 BETA 2+ (1997-08-13), but although these older releases corrected the ROM-BIOS, they didn't pass all Y2K-test suites and had some obscure and inexplicable PCI problems due to the fact that the original INT 1Ah was called via indirect means. Newer releases, however, use a dynamically fixed-up direct jump to avoid these problems. PC DOS 7 plus Y2K fixes and PC DOS 2000 provide similar, though not identical means, which cannot be switched off. MS-DOS and older issues of PC DOS do not provide any such means, and thus requires extra Y2K-TSRs to be loaded when run on buggy BIOSes. BUG: some BIOSes, such as the 1998/07/25 system ROM in the Compaq Deskpro EP/SB, leave CF unchanged if successful, so CF should be cleared before calling this function SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Ah,INT 4B/AH=02h"TI" --------b-1A04------------------------------- INT 1A - Sperry PC - GET REAL-TIME CLOCK DATE AH = 04h Return: CF clear if successful CL = year-1980 DH = month (binary) (01h-0Ch) DL = day (binary) (01h-1Fh) CF set on error SeeAlso: AH=02h,AH=04h,AH=05h"Sperry",INT 21/AH=2Ah,INT 4B/AH=02h"TI" ----------1A04--CX4555----------------------- INT 1A - CheckIt Year 2000 Fix v2.06 - INSTALLATION CHECK AH = 04h CX = 4555h ('EU') DX = 524Fh ('RO') BX = 0000h Return: BX <> 0000h if installed BX = major/minor/sub version (2068h = version 2.06.8) Program: CheckIt is a TSR by Eurosoft (UK) Ltd. which corrects some Y2K-related RTC bugs --------B-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) Return: nothing SeeAlso: AH=04h,INT 21/AH=2Bh"DATE",INT 4B/AH=00h"TI" --------b-1A05------------------------------- INT 1A - Sperry PC - SET REAL-TIME CLOCK DATE AH = 05h CL = year-1980 CH = 00h (???) DH = month (binary) (01h-0Ch) DL = day (binary) (01h-1Fh) Return: nothing SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Bh"DATE" --------B-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 Notes: the alarm occurs every 24 hours until turned off, invoking INT 4A each time the BIOS does not check for invalid values for the time, so the CMOS clock chip's "don't care" setting (any values between C0h and FFh) may be used for any or all three parts. For example, to create an alarm once a minute, every minute, call with CH=FFh, CL=FFh, and DH=00h. SeeAlso: AH=07h,AH=0Ch,INT 4A"SYSTEM" --------B-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,AH=0Dh,INT 70 --------B-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 SeeAlso: AH=09h --------B-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 SeeAlso: AH=08h --------B-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 --------B-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 --------B-1A0C------------------------------- INT 1A - TIME - SET RTC DATE/TIME ACTIVATED POWER-ON MODE (IBM) AH = 0Ch CH = hours (BCD) CL = minutes (BCD) DH = seconds (BCD) DL = day of month (BCD) Return: CF clear if successful CF set on error (alarm already set or clock nonfunctional) Desc: set an automatic power-on for a given time in the future Note: IBM classifies this function as optional SeeAlso: AH=06h,AH=0Dh,AH=0Eh,INT 4A --------B-1A0D------------------------------- INT 1A - TIME - RESET RTC DATE/TIME ACTIVATED POWER-ON MODE (IBM) AH = 0Dh Return: CF clear if successful CF set on error Desc: cancel a previously-set power-on alarm Note: IBM classifies this function as optional SeeAlso: AH=07h,AH=0Ch,AH=0Eh --------B-1A0E------------------------------- INT 1A - TIME - GET RTC DATE/TIME ALARM AND STATUS (IBM) AH = 0Eh Return: CF clear if successful BH = alarm status 00h disabled 01h enabled but will not power-up system 02h enabled, system will power-up on activation CH = alarm time, hours (BCD) CL = alarm time, minutes (BCD) DH = seconds (BCD) DL = day of month (BCD) CF set on error SeeAlso: AH=0Ch,AH=0Dh,AH=0Fh --------B-1A0F------------------------------- INT 1A - TIME - INITIALIZE REAL-TIME CLOCK AH = 0Fh AL = reserved (0) Return: CF clear if successful CF set on error SeeAlso: AH=0Ch,AH=0Dh,AH=0Eh --------J-1A10------------------------------- INT 1A - NEC PC-9800 series - PRINTER - INITIALIZE AH = 10h ??? Return: ??? SeeAlso: AH=11h,AH=12h,INT 17/AH=01h --------J-1A1000----------------------------- INT 1A - NEC PC-9800 series - INSTALLATION CHECK AX = 1000h Return: AX <> 1000h if NEC --------J-1A11------------------------------- INT 1A - NEC PC-9800 series - PRINTER - OUTPUT CHARACTER AH = 11h ??? Return: ??? SeeAlso: AH=10h,AH=12h,INT 17/AH=00h --------J-1A12------------------------------- INT 1A - NEC PC-9800 series - PRINTER - SENSE STATUS AH = 12h ??? Return: ??? SeeAlso: AH=10h,AH=11h,INT 17/AH=02h --------A-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 --------N-1A6108----------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDWITHREPLY" - SEND MSG AND GET REPLY AX = 6108h STACK: WORD conversation ID (0000h-0009h) DWORD pointer to message buffer WORD length of message DWORD pointer to reply buffer WORD length of reply buffer WORD 0000h (use default "Cparams" structure) Return: AX = status (see #00654) STACK unchanged Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application Protocol SeeAlso: AX=6205h (Table 00654) Values for SNAP.EXE status: 0000h successful F830h "SNAP_ABORTED" FC04h "SNAP_SERVERDIED" FC05h "SNAP_RESEND" FC06h "SNAP_SELECTFAILED" FC07h "SNAP_WRONGVERSION" FC08h "SNAP_INVALIDACK" FC09h "SNAP_TIMEOUT" FC0Ah "SNAP_SERVERREJECT" FC0Bh "SNAP_NOREPLYDUE" FC0Ch "SNAP_NOAUTHENTICATE"/"SNAP_GUARDIAN_ERROR" FC0Dh "SNAP_NOINIT" FC0Eh "SNAP_SOCKETERROR" FC0Fh "SNAP_BUFFERLIMIT" FC10h "SNAP_INVALIDCID" FC11h "SNAP_INVALIDOP" FC12h "SNAP_XMITFAIL" FC13h "SNAP_NOMORERETRIES" FC14h "SNAP_BADPARMS" FC15h "SNAP_NOMEMORY" FC16h "SNAP_NOMORECONVS" FFFFh failed (invalid function/parameter) --------N-1A6205----------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDNOREPLY" - SEND MSG, DON'T AWAIT REPLY AX = 6205h STACK: WORD conversation ID (0000h-0009h) DWORD pointer to message WORD length of message WORD 0000h (use default "Cparms" structure) Return: AX = status (see #00654) STACK unchanged SeeAlso: AX=6108h --------N-1A6308----------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_BEGINCONV" - BEGIN CONVERSATION AX = 6308h STACK: WORD offset of ASCIZ "guardian" WORD offset of ASCIZ hostname WORD offset of ASCIZ server name WORD offset of ASCIZ userid WORD offset of ASCIZ password WORD offset of password length WORD offset of password type WORD offset of "Cparms" structure (see #00655) Return: ??? STACK unchanged Note: all stacked offsets are within the SNAP data segment (use AX=6A01h to allocate a buffer) SeeAlso: AX=6405h,AX=7202h Format of SNAP.EXE Cparms structure: Offset Size Description (Table 00655) 00h WORD retry delay in seconds 02h WORD timeout delay in seconds 04h WORD maximum buffer size 06h WORD encryption level --------N-1A6405----------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_ENDCONV" - END CONVERSATION AX = 6405h STACK: WORD conversation ID (0000h-0009h) DWORD pointer to message buffer WORD length of message WORD 0000h (use default "Cparms" structure) Return: AX = status (see #00654) STACK unchanged Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application Protocol SeeAlso: AX=6308h --------N-1A6900----------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_DATASEG" - GET RESIDENT DATA SEGMENT AX = 6900h Return: AX = value used for DS by resident code SeeAlso: AX=6A01h,AX=6F01h --------N-1A6A01----------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_ALLOC" - ALLOCATE BUFFER IN SNAP DATA SEGMENT AX = 6A01h STACK: WORD number of bytes to allocate Return: AX = offset of allocated buffer or 0000h if out of memory STACK unchanged Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application Protocol SeeAlso: AX=6B01h --------N-1A6B01----------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_FREE" - DEALLOCATE BUFFER IN SNAP DATA SEGMENT AX = 6B01h STACK: WORD offset within SNAP data segment of previously allocated buffer Return: STACK unchanged Note: this call is a NOP if the specified offset is 0000h SeeAlso: AX=6A01h --------N-1A6C04----------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYTO" - COPY DATA TO RESIDENT SNAP PACKAGE AX = 6C04h STACK: WORD offset within SNAP data segment of dest (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 Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application Protocol SeeAlso: AX=6D04h --------N-1A6D04----------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYFROM" - COPY DATA FROM RESIDENT SNAP PACKAGE AX = 6D04h STACK: WORD offset within SNAP data segment of source buffer 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 SeeAlso: AX=6C04h --------N-1A6E01----------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_SETDEBUG" - SET ??? AX = 6E01h STACK: WORD new value for ??? Return: AX = old value of ??? STACK unchanged Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application Protocol --------N-1A6F01----------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_CHKINSTALL" - INSTALLATION CHECK AX = 6F01h STACK: WORD 0000h Return: AX = status 0000h SNAP is resident other SNAP not present STACK unchanged Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application Protocol, 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 --------N-1A7002----------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_SETANCHOR" AX = 7002h STACK: WORD anchor number (0000h-0009h) WORD new value for the anchor Return: AX = status 0000h successful FFFFh failed (top word on stack not in range 00h-09h) STACK unchanged SeeAlso: AX=7101h --------N-1A7101----------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_GETANCHOR" AX = 7101h STACK: WORD anchor number (0000h-0009h) Return: AX = anchor's value STACK unchanged Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application Protocol SeeAlso: AX=7002h --------N-1A7202----------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_SETCONVPARMS" - SET CONVERSATION PARAMETERS AX = 7202h STACK: WORD conversation ID (0000h-0009h) WORD offset within resident data segment of "Cparms" structure (see #00655) Return: AX = status??? STACK unchanged SeeAlso: AX=6308h --------N-1A7302----------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_CLIENTVERSION" - ??? AX = 7302h STACK: WORD conversation ID (0000h-0009h) WORD offset within resident data segment of ??? Return: AX = ??? ??? STACK unchanged SeeAlso: AX=7400h --------N-1A7400----------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_VERSION" - GET VERSION AX = 7400h Return: AX = version (AH=major, AL=minor) Note: this call is only valid if SNAP is installed SeeAlso: AX=7302h,INT 1A/AX=6F01h --------N-1A75------------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_NOP" - ??? AH = 75h AL = ??? Return: AX = ??? (0000h) Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application Protocol --------N-1A76------------------------------- INT 1A - SNAP.EXE 3.2+ - "SNAP_802_5" - ??? AH = 76h AL = ??? Return: AX = ??? --------N-1A77------------------------------- INT 1A - SNAP.EXE 3.4 - ??? AH = 77h AL = ??? (at least 01h) STACK: WORD ??? ??? Return: ??? STACK unchanged --------N-1A7802----------------------------- INT 1A - SNAP.EXE 3.4 - ??? AX = 7802h STACK: WORD ??? WORD ??? Return: ??? STACK unchanged Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University which implements the Simple Network Application Protocol --------s-1A7F------------------------------- INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND??? AH = 7Fh ??? Return: ??? Note: this function is not supported by the Tandy 1000SL/TL BIOS SeeAlso: AH=80h,AH=83h,AH=85h --------s-1A80------------------------------- INT 1A - PCjr, Tandy 2500???, Tandy 1000SL/TL - 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 Note: although documented in the 1000TL Technical Reference, the 1000TL BIOS has just an IRET for this call SeeAlso: AH=7Fh,AH=83h --------X-1A80------------------------------- INT 1A - PCMCIA Socket Services v1.00 - GET NUMBER OF ADAPTERS AH = 80h Return: CF clear if successful CX = 5353h ('SS') if Socket Services installed AL = number of adapters present (0-16) AH destroyed CF set on error AH = error code (see #00656) SeeAlso: AH=83h"PCMCIA" (Table 00656) Values for PCMCIA error codes: 01h "BAD_ADAPTER" nonexistent adapter 02h "BAD_ATTRIBUTE" invalid attribute specified 03h "BAD_BASE" invalid system memory base address 04h "BAD_EDC" invalid EDC generator specified 05h "BAD_INDICATOR" invalid indicator specified 06h "BAD_IRQ" invalid IRQ channel specified 07h "BAD_OFFSET" invalid PCMCIA card offset specified 08h "BAD_PAGE" invalid page specified 09h "BAD_READ" unable to complete request 0Ah "BAD_SIZE" invalid window size specified 0Bh "BAD_SOCKET" nonexistent socket specified 0Ch "BAD_TECHNOLOGY" unsupported Card Technology for writes 0Dh "BAD_TYPE" unavailable window type specified 0Eh "BAD_VCC" invalid Vcc power level index specified 0Fh "BAD_VPP" invalid Vpp1 or Vpp2 power level index specified 10h "BAD_WAIT" invalid number of wait states specified 11h "BAD_WINDOW" nonexistent window specified 12h "BAD_WRITE" unable to complete request 13h "NO_ADAPTERS" no adapters installed, but Socket Services is present 14h "NO_CARD" no card in socket 15h function not supported 16h invalid mode 17h invalid speed 18h busy --------X-1A81------------------------------- INT 1A - PCMCIA Socket Services v1.00 - REGISTER STATUS CHANGE CALLBACK AH = 81h DS:DX -> callback routine (see #00657) or 0000h:0000h to disable Return: CF clear if successful AH destroyed CF set on error AH = error code (see #00656) Note: the callback will be invoked on any socket changes whose notification has not been disabled with the status change enable mask; it may be invoked either while processing a hardware interrupt from the adapter or while processing the following Socket Services request SeeAlso: AH=80h"PCMCIA",AH=82h"PCMCIA" (Table 00657) Values PCMCIA callback routine is invoked with: AL = adapter number BH = status change interrupt enable mask (see #00658) BL = socket number DH = current socket status (see #00659) DL = current card status (see #00660) Return: all registers preserved Notes: the callback may be invoked during a hardware interrupt, and may not call on Socket Services the callback will be invoked once for each socket with a status change Bitfields for PCMCIA status change interrupt enable mask: Bit(s) Description (Table 00658) 7 card detect change 6 ready change 5 battery warning change 4 battery dead change 3 insertion request 2 ejection request 1-0 reserved (0) Bitfields for PCMCIA current socket status: Bit(s) Description (Table 00659) 7 card changed 6 reserved (0) 5 card insertion complete 4 card ejection complete 3 card insertion request pending 2 card ejection request pending 1 card locked 0 reserved (0) Bitfields for PCMCIA current card status: Bit(s) Description (Table 00660) 7 card detect 6 ready 5 battery voltage detect 2 (battery warning) 4 battery voltage detect 1 (battery dead) 3-1 reserved (0) 0 write protected --------s-1A8100----------------------------- INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND - INSTALLATION CHECK AX = 8100h Return: AL > 80h if supported AX = 00C4h if supported (1000SL/TL) CF set if sound chip is busy CF clear if sound chip is free Note: the value of CF is not definitive; call this function until CF is clear on return, then call AH=84h"Tandy" --------s-1A82------------------------------- INT 1A - Tandy 2500???, Tandy 1000SL/TL - DIGITAL SOUND - RECORD SOUND AH = 82h ES:BX -> buffer for sound samples CX = length of buffer DX = transfer rate (1-4095, 1 is fastest) Return: AH = 00h CF set if sound busy CF clear if sound chip free Note: the value in DX should be 1/10 the corresponding value for INT 1A/AH=83h on the 1000TL, 1/11.5 on the 1000SL. Call INT 1A/AX=8100h and INT 1A/AH=84h before invoking this function. The BIOS issues an INT 15/AX=91FBh when the input is complete DMA across a 64K boundary is masked by the BIOS --------X-1A82------------------------------- INT 1A - PCMCIA Socket Services v1.00 - REGISTER CARD TECHNOLOGY CALLBACK AH = 82h DS:DX -> callback routine (see #00661) or 0000h:0000h Return: CF clear if successful AH destroyed CF set on error AH = error code (see #00656) Note: the callback is invoked on a Write Multiple request with an unsupported card technology type SeeAlso: AH=81h"PCMCIA",AH=94h (Table 00661) Values PCMCIA callback routine is invoked with: ES:AX -> Low-Level Socket Services Routines (see #00663) BH = socket attributes (see #00662) CX = number of bytes or words to write DS:SI -> data buffer to be written DX:DI -> 26-bit linear card address BP = card technology type Return: CF clear if successful CF set on error AH = error code (07h,0Ch,12h,14h) (see #00656) Bitfields for PCMCIA socket attributes: Bit(s) Description (Table 00662) 7-4 reserved (0) 3 packed buffer 2 even bytes only (only valid if 1 set) 1 data width (clear = byte, set = word) 0 memory type (clear = common, set = attribute) Format of PCMCIA Low-Level Socket Services Routines: Offset Size Description (Table 00663) 00h WORD offset of Write Many routine (see #00664) 02h WORD offset of Write One routine (see #00665) 04h WORD offset of Read One routine (see #00666) 06h WORD offset of Increment Offset routine (see #00667) 08h WORD offset of Set Offset routine (see #00668) 0Ah WORD offset of Get Status routine (see #00669) (Table 00664) Call Write Many routine with: BH = socket attributes (see #00662) CX = number of bytes or words to write DS:SI -> data to be written Return: CF clear if successful CF set on error (Table 00665) Call Write One routine with: AL/AX = data to be written BH = socket attributes (see #00662) Return: CF clear if successful CF set on error (Table 00666) Call Read One routine with: BH = socket attributes (see #00662) Return: CF clear if successful AL/AX = data read CF set on error (Table 00667) Call Increment Offset routine with: BH = socket attributes (see #00662) Return: CF clear if successful CF set on error (Table 00668) Call Set Offset routine with: DX:DI = new offset address Return: CF clear if successful CF set on error (Table 00669) Call Get Status routine with: nothing Return: AL = current card status (see #00660) --------s-1A83------------------------------- INT 1A - Tandy 2500, Tandy 1000L series - START PLAYING DIGITAL SOUND AH = 83h AL = volume (0=silence, 7=highest) CX = number of bytes to play DX = time between sound samples (multiples of 273 nanoseconds) only bits 11-0 used ES:BX -> sound data (array of 8-bit unsigned PCM samples) Return: AH = 00h CF set if sound is busy CF clear if sound chip is free Notes: this call returns immediately while the sound plays in the background; the sound chip is clocked at 3.57 MHz, with the low 12 bits of DX specifying the clock divisor 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"Tandy",INT 15/AH=91h --------X-1A83------------------------------- INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET SERVICES VERSION NUMBER AH = 83h AL = adapter number Return: CF clear if successful AX = Socket Services version (BCD) BX = implementation version (BCD) CX = 5353h ("SS") DS:SI -> ASCIZ implementor description CF set on error AH = error code (01h) (see #00656) Note: the current version (from the Revision A.00 documentation) of Socket Services is 1.00 (AX=0100h) SeeAlso: AH=80h"PCMCIA" --------s-1A84------------------------------- INT 1A - Tandy 2500, Tandy 1000L series - STOP PLAYING DIGITAL SOUND AH = 84h Return: ??? Note: the BIOS will call INT 15/AX=91FBh when the sound has stopped playing SeeAlso: AH=83h"Tandy",AH=85h"Tandy" --------X-1A84------------------------------- INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ADAPTER AH = 84h AL = adapter number Return: CF clear if successful AH destroyed BH = number of windows BL = number of sockets (1-16) CX = number of EDCs DH = capabilities (see #00670) DL = status change interrupt used (only if DH bit 3 set)(see #00671) CF set on error AH = error code (01h) (see #00656) SeeAlso: AH=80h"PCMCIA",AH=85h"PCMCIA",AH=87h Bitfields for PCMCIA capabilities: Bit(s) Description (Table 00670) 7-6 reserved (0) 5 status change interrupt is hardware shareable 4 status change interrupt is software shareable 3 status change interrupt 2 data bus width is per-socket rather than per-window 1 power management is per-adapter rather than per-socket 0 indicators are per-adapter rather than per-socket (Table 00671) Values for PCMCIA status change interrupt usage: 00h-0Fh IRQ level 10h NMI 11h I/O check 12h bus error 13h vendor specific 14h-FFh reserved --------s-1A85------------------------------- INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND??? AH = 85h ??? Return: ??? Note: this function is not supported by the Tandy 1000SL/TL BIOS SeeAlso: AH=7Fh,AH=83h"Tandy" --------X-1A85------------------------------- INT 1A - PCMCIA Socket Services v1.00 - GET ADAPTER AH = 85h AL = adapter number Return: CF clear if successful AH destroyed DH = adapter attributes (see #00672) CF set on error AH = error code (01h) (see #00656) SeeAlso: AH=84h"PCMCIA",AH=86h Bitfields for PCMCIA adapter attributes: Bit(s) Description (Table 00672) 7-5 reserved (0) 4 hardware share status change 3 software share status change 2 enable status change interrupts 1 adapter preserves state information during reduced power consumption 0 attempting to reduce power consumption --------X-1A86------------------------------- INT 1A - PCMCIA Socket Services v1.00 - SET ADAPTER AH = 86h AL = adapter number DH = new adapter attributes (see #00672) Return: CF clear if successful AH destroyed CF set on error AH = error code (01h) (see #00656) SeeAlso: AH=84h"PCMCIA",AH=85h"PCMCIA" --------X-1A87------------------------------- INT 1A - PCMCIA Socket Services v1.00 - INQUIRE WINDOW AH = 87h AL = adapter number BH = window number Return: CF clear if successful AH destroyed BL = capabilities (see #00673) CX = bitmap of assignable sockets DH = EISA A15-A12 address lines (in bits 7-4, bits 3-0 = 0) DL = supported access speeds (see #00674) DS:SI -> Memory Window Characteristics table (see #00675) DS:DI -> I/O Window Characteristics table (see #00676) CF set on error AH = error code (01h,11h) (see #00656) SeeAlso: AH=84h"PCMCIA",AH=88h,AH=89h,AH=8Ch Bitfields for PCMCIA window capabilities: Bit(s) Description (Table 00673) 7-5 reserved (0) 4 separate enable for EISA comon space 3 EISA I/O mappable 2 I/O space 1 attribute memory 0 common memory Bitfields for PCMCIA supported access speeds: Bit(s) Description (Table 00674) 7 reserved (0) 6 600 ns 5 300 ns 4 250 ns 3 200 ns 2 150 ns 1 100 ns 0 WAIT line monitoring Format of PCMCIA Memory Window Characteristics table: Offset Size Description (Table 00675) 00h WORD window capabilities (see #00677) 02h WORD minimum base address in 4K pages 04h WORD maximum base address in 4K pages 06h WORD minimum window size in 4K pages 08h WORD maximum window size in 4K pages 0Ah WORD window size granularity (4K units) 0Ch WORD required base address alignment (4K units) 0Eh WORD required card offset alignment (4K units) Format of PCMCIA I/O Window Characteristics table: Offset Size Description (Table 00676) 00h WORD window capabilities (see #00677) 02h WORD minimum base address in bytes 04h WORD maximum base address in bytes 06h WORD minimum window size in bytes 08h WORD maximum window size in bytes 0Ah WORD window size granularity (bytes) Bitfields for PCMCIA window capabilities: Bit(s) Description (Table 00677) 0 programmable base address 1 programmable window size 2 window disable/enable supported 3 8-data bus 4 16-data bus 5 base address alignment on size boundary required 6 power-of-two size granularity ---memory windows--- 7 card offset must be aligned on size boundary 8 paging hardware available 9 paging hardware shared 10 page disable/enable supported 11-15 reserved (0) ---I/O windows--- 7-15 reserved (0) --------X-1A88------------------------------- INT 1A - PCMCIA Socket Services v1.00 - GET WINDOW AH = 88h AL = adapter number BH = window number Return: CF clear if successful AH destroyed BL = socket number (0-16) (0 = not assigned) CX = window size (bytes for I/O window, 4K units for memory window) DH = window attributes (see #00678) DL = access speed (only one bit set) (see #00674) SI = window base address (bytes if I/O, 4K units if memory) DI = card offset address (memory only, 4K units) CF set on error AH = error code (01h,11h) (see #00656) SeeAlso: AH=87h,AH=89h,AH=8Ah Bitfields for PCMCIA window attributes: Bit(s) Description (Table 00678) 0 memory-mapped rather than I/O-mapped 1 attribute memory rather than common (memory-mapped) EISA mapped (I/O) 2 enabled 3 16-data path 4 subdivided into pages (memory-mapped only) 5 non-specific access slot enable (EISA-mapped only) 6-7 reserved (0) --------X-1A89------------------------------- INT 1A - PCMCIA Socket Services v1.00 - SET WINDOW AH = 89h AL = adapter number BH = window number BL = socket number CX = window size (bytes if I/O window, 4K units if memory window) DH = window attributes (see #00678) DL = access speed (only one bit set) (see #00674) SI = window base address (bytes if I/O, 4K units if memory window) DI = card offset addrress (memory only, 4K units) Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,03h,07h,08h,0Ah,0Bh,0Dh,10h,11h) (see #00656) SeeAlso: AH=87h,AH=88h,AH=8Bh --------X-1A8A------------------------------- INT 1A - PCMCIA Socket Services v1.00 - GET PAGE AH = 8Ah AL = adapter number BH = window number BL = page number Return: CF clear if successful AH destroyed DX = page attributes (see #00679) DI = memory card offset (4K units) CF set on error AH = error code (01h,08h,11h) (see #00656) Notes: this function is only valid for memory-mapped windows the socket being operated on is implied by the previous AH=89h call SeeAlso: AH=88h,AH=8Bh Bitfields for PCMCIA page attributes: Bit(s) Description (Table 00679) 0 page enabled 15-1 reserved (0) --------X-1A8B------------------------------- INT 1A - PCMCIA Socket Services v1.00 - SET PAGE AH = 8Bh AL = adapter number BH = window number BL = page number DX = page attributes (see #00679) DI = memory card offset (4K units) Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,02h,07h,08h,11h) (see #00656) Notes: this function is only valid for memory-mapped windows the socket being operated on is implied by the previous AH=89h call SeeAlso: AH=89h,AH=8Ah --------X-1A8C------------------------------- INT 1A - PCMCIA Socket Services v1.00 - INQUIRE SOCKET AH = 8Ch AL = adapter number BL = socket number (01h to maximum supported by adapter) Return: CF clear if successful AH destroyed DH = capabilities (see #00680) DL = hardware indicators (see #00681) DS:SI -> Socket Characteristics table (see #00682) DS:DI -> Power Management table (see #00684) CF set on error AH = error code (01h,0Bh) (see #00656) SeeAlso: AH=87h,AH=8Dh,AH=8Eh Bitfields for PCMCIA socket capabilities: Bit(s) Description (Table 00680) 0 card change 1 card lock 2 insert card (motor control) 3 eject card (motor control) 4-7 reserved (0) Bitfields for PCMCIA socket hardware indicators: Bit(s) Description (Table 00681) 0 busy status 1 write-protected 2 battery status 3 card lock status 4 XIP status (eXecute-In-Place) 5-7 reserved (0) Format of PCMCIA Socket Characteristics table: Offset Size Description (Table 00682) 00h WORD supported card types (see #00683) 02h WORD steerable IRQ levels (bit 0 = IRQ0 to bit 15 = IRQ15) 04h WORD additional steerable IRQ levels bit 0: NMI bit 1: I/O check bit 2: bus error bit 3: vendor-unique bits 4-7 reserved (0) Bitfields for supported card types: Bit(s) Description (Table 00683) 0 memory card 1 I/O card 2-7 reserved (0) Format of PCMCIA Power Management table: Offset Size Description (Table 00684) 00h WORD number of entries in table (0 if power management not avail) 02h 2N BYTEs power levels byte 0: voltage in 0.1V units byte 1: power supply bit 7: Vcc bit 6: Vpp1 bit 5: Vpp2 --------X-1A8D------------------------------- INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET AH = 8Dh AL = adapter number BL = socket number (01h to maximum supported by adapter) Return: CF clear if successful AH destroyed BH = status change interrupt enable mask (see #00658) CH = Vcc level (lower nybble) (see #00684) CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble) DH = current socket status (see #00659) DL = indicators (see #00681) SI = card type (see #00685) DI = IRQ level steering (I/O only) (see #00686) CF set on error AH = error code (01h,0Bh) (see #00656) SeeAlso: AH=8Ch,AH=8Eh Bitfields for PCMCIA card type: Bit(s) Description (Table 00685) 0 memory 1 I/O 2-15 reserved (0) Bitfields for PCMCIA I/O level steering: Bit(s) Description (Table 00686) 15 interrupt steering enabled 14-5 reserved (0) 4-0 IRQ level (0-15=IRQ,16=NMI,17=I/O check,18=bus error,19=vendor) --------X-1A8E------------------------------- INT 1A - PCMCIA Socket Services v1.00 - SET SOCKET AH = 8Eh AL = adapter number BL = socket number (01h to maximum supported by adapter) BH = status change interrupt enable mask (see #00658) CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble) DH = current socket status (see #00659) DL = indicators (see #00681) SI = card type (see #00685) DI = IRQ level steering (I/O only) (see #00686) Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,02h,05h,06h,0Bh,0Eh,0Fh) (see #00656) SeeAlso: AH=8Ch,AH=8Dh --------X-1A8F------------------------------- INT 1A - PCMCIA Socket Services v1.00 - GET CARD AH = 8Fh AL = adapter number BL = socket number (01h to maximum supported by adapter) Return: CF clear if successful AH destroyed DL = current card status (see #00660) CF set on error AH = error code (01h,0Bh) (see #00656) SeeAlso: AH=8Dh,AH=90h --------X-1A90------------------------------- INT 1A - PCMCIA Socket Services v1.00 - RESET CARD AH = 90h AL = adapter number BL = socket number (01h to maximum supported by adapter) Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,0Bh,14h) (see #00656) Note: toggles RESET pin of the specified card, but does not wait after toggling the pin; it is the caller's responsibility to avoid accessing the card before it is ready again --------X-1A91------------------------------- INT 1A - PCMCIA Socket Services v1.00 - READ ONE AH = 91h AL = adapter number BL = socket number (01h to maximum supported by adapter) BH = attributes (see #00687) DX:SI = card address Return: CF clear if successful AH destroyed CL/CX = value read CF set on error AH = error code (01h,07h,09h,0Bh,14h) (see #00656) CX may be destroyed Note: this function is only valid for I/O-mapped sockets SeeAlso: AH=92h,AH=93h,INT 21/AX=440Dh"DOS 3.2+" Bitfields for PCMCIA attributes: Bit(s) Description (Table 00687) 2 even bytes only 1 word rather than byte 0 attribute memory instead of common memory --------X-1A92------------------------------- INT 1A - PCMCIA Socket Services v1.00 - WRITE ONE AH = 92h AL = adapter number BL = socket number (01h to maximum supported by adapter) BH = attributes (see #00687) CL/CX = value to write DX:SI = card address Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,07h,0Bh,12h,14h) (see #00656) Note: this function is only valid for I/O-mapped sockets; it also does not implement Card Technology handling--use AH=94h when writing to non-RAM technologies SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"DOS 3.2+" --------X-1A93------------------------------- INT 1A - PCMCIA Socket Services v1.00 - READ MULTIPLE AH = 93h AL = adapter number BL = socket number (01h to maximum supported by adapter) BH = attributes (see #00687) CX = number of bytes or words to read DX:SI = card address DS:DI -> data buffer to be filled Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,07h,09h,0Bh,14h) (see #00656) Note: this function is only available on I/O-mapped sockets SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"DOS 3.2+" --------X-1A94------------------------------- INT 1A - PCMCIA Socket Services v1.00 - WRITE MULTIPLE AH = 94h AL = adapter number BL = socket number (01h to maximum supported by adapter) BH = attributes (see #00687) CX = number of bytes or words to read DX:DI = card address DS:SI -> buffer containing data BP = Card Technology type (0000h = RAM) Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,07h,0Bh,0Ch,12h,14h) (see #00656) Notes: this function is only available on I/O-mapped sockets Socket Services calls the Card Technology callback (see #00661) for any card technology it does not directly support SeeAlso: AH=82h"PCMCIA",AH=92h,AH=93h,INT 21/AX=440Dh"DOS 3.2+" --------X-1A95------------------------------- INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ERROR DETECTION CODE AH = 95h AL = adapter number BH = EDC generator number Return: CF clear if successful AH destroyed CX = bitmap of assignable sockets DH = EDC capabilities (see #00688) DL = supported EDC types (see #00689) CF set on error AH = error code (01h,04h) (see #00656) SeeAlso: AH=96h,AH=9Ch Bitfields for EDC capabilities: Bit(s) Description (Table 00688) 0 unidirectional only generation 1 bidirectional only generation 2 register-based (I/O-mapped) support 3 memory-mapped support 4 pausable 5-7 reserved (0) Bitfields for supported EDC types: Bit(s) Description (Table 00689) 0 8-checksum 1 16-CRC-SDLC 2-7 reserved (0) --------X-1A96------------------------------- INT 1A - PCMCIA Socket Services v1.00 - GET ERROR DETECTION CODE AH = 96h AL = adapter number BH = EDC generator number Return: CF clear if successful AH destroyed BL = socket number DH = EDC attributes (see #00690) DL = EDC type (see #00689) (only one bit set) CF set on error AH = error code (01h,04h) (see #00656) SeeAlso: AH=95h,AH=97h,AH=9Ch Bitfields for EDC attributes: Bit(s) Description (Table 00690) 0 unidirectional only 1 (if 0 set) clear=read, set=write 2-7 reserved (0) --------X-1A97------------------------------- INT 1A - PCMCIA Socket Services v1.00 - SET ERROR DETECTION CODE AH = 97h AL = adapter number BH = EDC generator BL = socket number DH = EDC attributes (see #00690) DL = EDC type (see #00689) (only one bit may be set) Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,02h,04h,0Bh) (see #00656) SeeAlso: AH=96h,AH=9Ch --------X-1A98------------------------------- INT 1A - PCMCIA Socket Services v1.00 - START ERROR DETECTION CODE AH = 98h AL = adapter number BH = EDC generator Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,04h) (see #00656) SeeAlso: AH=96h,AH=99h,AH=9Bh,AH=9Ch --------X-1A99------------------------------- INT 1A - PCMCIA Socket Services v1.00 - PAUSE ERROR DETECTION CODE AH = 99h AL = adapter number BH = EDC generator Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,04h) (see #00656) SeeAlso: AH=9Ah --------X-1A9A------------------------------- INT 1A - PCMCIA Socket Services v1.00 - RESUME ERROR DETECTION CODE AH = 9Ah AL = adapter number BH = EDC generator Return: CF clear if successful AH destroyed CF set on error AH = error code (01h,04h) (see #00656) SeeAlso: AH=99h,AH=98h --------X-1A9B------------------------------- INT 1A - PCMCIA Socket Services v1.00 - STOP ERROR DETECTION CODE AH = 9Bh AL = adapter number BH = EDC generator Return: CF clear if successful AH destroyed CF set on error AH = error code (see #00656) SeeAlso: AH=98h,AH=99h,AH=9Ch --------X-1A9C------------------------------- INT 1A - PCMCIA Socket Services v1.00 - READ ERROR DETECTION CODE AH = 9Ch AL = adapter number BH = EDC generator Return: CF clear if successful AH destroyed DL/DX = computed checksum or CRC CF set on error AH = error code (01h,04h) (see #00656) SeeAlso: AH=95h,AH=96h,AH=98h,AH=99h,AH=9Bh --------X-1A9D------------------------------- INT 1A - PCMCIA Socket Services v2.1??? - GET VENDOR INFO AH = 9Dh AL = adapter number BH = EDC generator ES:EDI -> vendor information structure (see #00691) Return: CF clear if successful AH destroyed DX = vendor release number in BCD ES:EDI unchanged CF set on error AH = error code (01h,15h) (see #00656) Notes: this API is supported by recent versions of the AMI BIOS the low-level API described here is hidden by the higher-level ExCA API once Card Services has been installed SeeAlso: AH=9Dh"ExCA" Format of Vendor Information structure: Offset Size Description (Table 00691) 00h WORD buffer length (set to size of buffer below) 04h WORD (ret) data length 08h x BYTEs implementor name (ASCIIZ string) --------X-1A9D------------------------------- INT 1A - Intel PCMCIA ExCA Card Services - API AH = 9Dh AL = subfunction (see #00692) ??? Return: ??? SeeAlso: AH=9Dh"ExCA",#00891 (Table 00692) Values for PCMCIA ExCA Card Services subfunction number: 00h Client Services: Get Number of Sockets 01h Advanced Client Utilities: Initialize 02h Client Services: Register Client 03h Client Services: Deregister Client 04h Advanced Client Utilities: Enumerate Clients 05h Client Services: Register SCB 06h Client Services: Deregister SCB 07h Advanced Client Utilities: Register MTD 08h Advanced Client Utilities: Deregister MTD 09h Advanced Client Utilities: Enumerate MTD 0Ah Client Services: Get Status 0Bh Client Services: Reset Card 0Ch Client Utilities: Get First Tuple 0Dh Client Utilities: Get Next Tuple 0Eh Client Utilities: Determine First Region 0Fh Client Utilities: Determine Next Region 10h Client Utilities: Get First Region 11h Client Utilities: Get Next Region 12h Client Utilities: Get First Partition 13h Client Utilities: Get Next Partition 14h Bulk Memory Services: Open Region 15h Bulk Memory Services: Read Memory 16h Bulk Memory Services: Write Memory 17h Bulk Memory Services: Copy Memory 18h Bulk Memory Services: Erase Memory 19h Resource Management: Request I/O 1Ah Resource Management: Release I/O 1Bh Resource Management: Request Memory 1Ch Client Services: Modify Window 1Dh Resource Management: Release Memory 1Eh Client Services: Map Mem Page 1Fh Advanced Client Utilities: Return SS Entry 20h Advanced Client Utilities: Map Log to Phy 21h Advanced Client Utilities: Map Log Phy to Log 22h Resource Management: Request IRQ 23h Resource Management: Release IRQ 24h Bulk Memory Services: Close Region --------X-1A9E------------------------------- INT 1A - PCMCIA Socket Services v2.1 - ACKNOWLEDGE INTERRUPT AH = 9Eh AL = adapter number Return: CF clear if successful AH destroyed CX = bitmap representing sockets which have changed status CF set on error AH = error code (01h) (see #00656) Note: this API is supported by recent versions of the AMI BIOS --------X-1A9F------------------------------- INT 1A - PCMCIA Socket Services v2.1 - GET/SET PRIOR INT 1A HANDLER AH = 9Fh AL = adapter number BL = mode 00h get prior INT 1Ah handler 01h set prior INT 1Ah handler CX:DX -> new prior handler Return: CF clear if successful AH destroyed CX:DX -> old prior handler CF set on error AH = error code (01h,15h,18h) (see #00656) Desc: allows hooking of INT 16h "behind" the Socket Services hook Note: this API is supported by recent versions of the AMI BIOS SeeAlso: AH=9Eh,AH=A0h"PCMCIA",AH=AEh"PCMCIA" --------c-1AA0------------------------------- INT 1A U - 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 = despooler state (00h disabled, 41h enabled) CH = spooler state (00h disabled, 41h enabled) DL = despooler activity 00h currently active printing a file 41h standing by DH = 00h ??? = 41h ??? DI = 0000h ??? 0001h ??? Program: Disk Spool II is a shareware disk-based print spooler by Budget Software Company Note: this function is also supported by Vertisoft's Emulaser utility ELSPL, as that is a licensed version of Disk Spool II SeeAlso: AH=ABh,AH=C0h,AH=D0h,AH=E1h --------X-1AA0------------------------------- INT 1A - PCMCIA Socket Services v2.1 - GET/SET SOCKET SERVICES ADDRESS AH = A0h AL = adapter number BH = mode 00h real mode 01h 16:16 protected mode 02h 16:32 protected mode 03h 00:32 (Flat) protected mode BL = subfunction 00h return number of additional data areas (see #00693) 01h return description of additional data areas (see #00694) 02h accept mode-specific pointers to data areas (see #00695) ES:EDI -> buffer supplied by caller Return: CF clear if successful AH destroyed CX = number of additional data areas ES:EDI unchanged CF set on error AH = error code (01h,02h,15h,16h,18h) (see #00656) SeeAlso: AH=9Fh,AH=AEh Format of PCMCIA Subfunction 00h Buffer Table Entry structure: Offset Size Description (Table 00693) 00h DWORD 32-bit linear base address of the code segment 04h DWORD segment limit of the code segment 08h DWORD entry point offset 0Ch DWORD 32-bit linear base address of the data segment (ignored in 00:32 flat mode) 10h DWORD segment limit of the data segment 14h DWORD data area offset. Only used in 32-bit protected mode. SeeAlso: #00694,#00695 Format of PCMCIA Additional Data Area Description structure [array]: Offset Size Description (Table 00694) 00h DWORD 32-bit linear base address of the additional data segment (ignored in 00:32 flat mode) 04h DWORD segment limit of the code segment 08h DWORD data area offset (only used in 32-bit protected mode) SeeAlso: #00693,#00695 Format of PCMCIA Subfunction 02h Buffer Table Entry structure: Offset Size Description (Table 00695) 00h DWORD 32-bit offset(ignored in 16:16 protected mode) 04h DWORD selector (only used in 00:32 flat mode) 08h DWORD reserved SeeAlso: #00693,#00694 --------X-1AA1------------------------------- INT 1A - PCMCIA Socket Services v2.1 - GET ACCESS OFFSETS AH = A1h AL = adapter number BH = Mode 00h = Real Mode 01h = 16:16 Protected Mode 02h = 16:32 Protected Mode 03h = 00:32 Protected Mode CX = Number of access offsets ES:EDI -> buffer supplied by caller, CX words long (see #00696) Return: CF clear if successful AH destroyed DX = number of access offsets supported ES:EDI unchanged CF set on error AH = error code (01h,15h,16h) (see #00656) Desc: Returns an array of low-level adapter-specific optimized PC Card access routines for adapters that use registers or I/O ports to access PC Card memory. Adapters that access PC Card memory through windows mapped to host system memory do not support this function. Note: offsets returned are 16-bit offsets into the Socket Services code segment. They must be called appropriately for the processor mode selected. (Real, 16:16 and 16:32 modes use FAR CALL, Flat 00:32 mode uses a 32-bit NEAR CALL). SeeAlso: AH=AEh Format of Offset Table structure: Offset Size Description (Table 00696) 00h WORD Set Address 02h WORD Set Auto Increment 04h WORD Read Byte 06h WORD Read Word 08h WORD Read Byte with Auto Increment 0Ah WORD Read Word with Auto Increment 0Ch WORD Read Words 0Eh WORD Read Words with Auto Increment 10h WORD Write Byte 12h WORD Write Word 14h WORD Write Byte with Auto Increment 16h WORD Write Word with Auto Increment 18h WORD Write Words 1Ah WORD Write Words with Auto Increment 1Ch WORD Compare Byte 1Eh WORD Compare Byte with Auto Increment 20h WORD Compare Words 22h WORD Compare Words with Auto Increment --------X-1AA2------------------------------- INT 1A - CardBus Socket Services - ACCESS CONFIGURATION SPACE AH = A2h ??? details not available Return: ??? --------X-1AA4------------------------------- INT 1A - CardBus Socket Services - GET BRIDGE WINDOW / WINDOW CAPABILITIES AH = A4h ??? details not available Return: ??? SeeAlso: AH=A5h"CardBus" --------X-1AA5------------------------------- INT 1A - CardBus Socket Services - SET BRIDGE WINDOW AH = A5h ??? details not available Return: ??? SeeAlso: AH=A4h"CardBus" --------c-1AAB------------------------------- INT 1A U - 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 = despooler state (00h disabled, 41h enabled) CH = spooler state (00h disabled, 41h enabled) DL = despooler activity 00h currently active printing a file 41h standing by DH = 00h ??? = 41h ??? DI = 0000h ??? 0001h ??? Program: Disk Spool II is a shareware disk-based print spooler by Budget Software Company SeeAlso: AH=A0h,AH=ACh,AH=ADh,AH=E1h --------c-1AAC------------------------------- INT 1A U - 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 --------c-1AAD------------------------------- INT 1A U - Disk Spool II v1.83 - FUNCTION CALLS AH = ADh AL = function code (see #00697) Return: AH = 00h if successful SeeAlso: AH=ABh (Table 00697) Values for Disk Spool 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 ??? --------X-1AAE------------------------------- INT 1A - PCMCIA Socket Services v2.1 - VENDOR SPECIFIC AH = AEh AL = adapter number all other registers are vendor-specific Return: vendor specific SeeAlso: AH=A1h,AH=AFh --------X-1AAE------------------------------- INT 1A - PCMCIA Socket Services v2.1 - API AH = AEh SI = function 0002h ??? 0100h ??? 0101h ??? 8000h ??? 8001h ??? details not yet available Return: CF clear if successful CF set on error AH = error code (02h,0Bh,11h,15h,17h) (see #00656) SeeAlso: AH=9Eh --------X-1AAF------------------------------- INT 1A - PCMCIA v2 Card Services - API AH = AFh AL = function 00h close memory 01h copy memory 02h deregister client 03h get client information (see #00702) 04h get configuration information (see #00704) 05h get first partition 06h get first region 07h get first tuple (see #00711) 08h get next partition 09h get next region 0Ah get next tuple 0Bh get Card Services information (see #00700) 0Ch get status 0Dh get tuple data (see #00712) 0Eh get first client (see #00701) 0Fh get/register Erase Queue 10h register client (see #00713) 11h reset function 12h map logical socket 13h map logical window 14h map memory page 15h map physical socket 16h map physical window 17h modify window 18h open memory 19h read memory 1Ah register MTD 1Bh release I/O 1Ch release IRQ (see #00715) 1Dh release window 1Eh release configuration (see #00716) 1Fh request I/O (see #00717) 20h request IRQ (see #00718) 21h reqeust window (see #00720) 22h request socket mask 23h return SS entry 24h write memory 25h deregister Erase Queue 26h check Erase Queue 27h modify configuration 28h register timer 29h set region 2Ah get next client 2Bh validate CIS 2Ch request exclusive access (see #00723) 2Dh release exclusive access (see #00723) 2Eh get event mask 2Fh release socket mask 30h request configuration (see #00724) 31h set event mask 32h add Socket Service 33h replace Socket Service 34h vendor-specific 35h adjust resource information 36h access configuration register 37h get first window 38h get next window 39h get memory page 3Ah request DMA 3Bh release DMA further details not yet available Return: ??? = result code (see #00698) SeeAlso: AH=AEh (Table 00698) Values for PCMCIA Card Services result codes: 00h successful 01h invalid adapter number 02h bad value for attribute field 03h bad value for base system memory address 04h invalid EDC generator specified 05h (reserved for historical reasons) 06h invalid IRQ level specified 07h invalid PC Card memory array offset 08h invalid page number specified 09h unable to complete read request 0Ah invalid size specified 0Bh invalid socket number 0Ch (reserved for historical reasons) 0Dh invalid window or interface type 0Eh invalid Vcc power level specified 0Fh invalid Vpp1 or Vpp2 power level specified 10h (reserved for historical reasons) 11h invalid window number 12h unable to complete write request 13h (reserved for historical reasons) 14h no PC Card in socket 15h service not supported by implementation 16h unsupported processor mode 17h specified speed not available 18h busy -- retry later 19h undefined error (general failure) 1Ah storage medium write protected 1Bh argument length in (E)CX is invalid 1Ch bad value(s) in argument packet 1Dh configuration has already been locked 1Eh requested resource already in use 1Fh no more items of requested type available 20h out of resources 21h invalid client handle 22h unsupported client version (Table 00699) Values for Card Services Callback Event codes: 01h battery dead 02h battery low 03h card locked 04h card has become ready 05h card removed 06h card unlocked 07h motorized ejection complete 08h ejection requested 09h insertion complete 0Ah insertion requested 0Bh power management: resume 0Ch power management: suspend 0Dh exclusive access granted 0Eh exclusive access requested 0Fh perform physical reset 10h physical reset requested 11h card has been reset 12h MTD request (read/write/etc) 14h request for client info 15h timer has expired 16h Socket Service was modified 17h write-protected 18h attention requested 40h card insertion 80h reset complete 81h erase complete 82h registration complete Format of Card Services Information: Offset Size Description (Table 00700) 00h WORD length of information record in bytes 02h WORD signature 04h WORD number of sockets 06h WORD revision level 08h WORD Card Services level 0Ah WORD offset of vendor string 0Ch WORD length of vendor string 0Eh WORD number of functions 10h 255 BYTEs vendor string SeeAlso: #00702 Format of Card Services Client structure: Offset Size Description (Table 00701) 00h WORD PCMCIA socket number 02h WORD client attributes Format of Cards Services Client Information: Offset Size Description (Table 00702) 00h WORD maximum length of data in bytes (180) 02h WORD (ret) length of returned data 04h WORD attributes (see #00703) 06h WORD revision level (BCD) 08h WORD Card Services level (BCD) 0Ah WORD revision date (DOS packed date format) (see #01666) 0Ch WORD offset to name 0Eh WORD length of name 10h WORD offset to vendor string 12h WORD length of vendor string 14h 80 BYTEs buffer for name 64h 80 BYTEs buffer for vendor string SeeAlso: #00700,#00704 Bitfields for Card Services client attributes: Bit(s) Description (Table 00703) 0 memory client 1 MTD client 2 I/O client 3 all clients can share this card 4 only one client can use this card at a time SeeAlso: #00702 Format of Card Services configuration information: Offset Size Description (Table 00704) 00h WORD socket (usually 0000h) 02h WORD attributes (see #00705) 04h BYTE Vcc value 05h BYTE Vpp1 value 06h BYTE Vpp2 value 07h BYTE interface type (see #00706) 08h DWORD base address of configuration registers 0Ch BYTE card's Status register setting (if present) 0Dh BYTE card's Pin register setting (if present) 0Eh BYTE card's Socket/Copy register setting (if present) 0Fh BYTE card's Option register setting (if present) 10h BYTE bitmap of present card configuration registers 11h BYTE first device type 12h BYTE function code 13h BYTE SysInit mask 14h WORD manufacturer code 16h WORD manufacturer information 18h BYTE valie card register values 19h BYTE IRQ number assigned to PC Card 1Ah WORD IRQ attributes (see #00708) 1Ch WORD base port address (for I/O range 1) 1Eh BYTE number of contiguous ports (for I/O range 1) 1Fh BYTE bitmap of port attributes (for I/O range 1) (see #00709) 20h WORD base port address (for I/O range 2) 22h BYTE number of contiguous ports (for I/O range 2) 23h BYTE bitmap of port attributes (for I/O range 2) (see #00709) 24h BYTE number of I/O address lines decoded (16-bit PC Card only) 25h BYTE extended status register setting (if present) 26h BYTE bitmap of DMA attributes (see #00710) (note: value at call is used to set!) 27h BYTE assigned DMA channel 28h BYTE number of I/O windows in use on logical socket 29h BYTE number of memory windows in use on logical socket SeeAlso: #00703,#00724 Bitfields for Card Services Configuration attributes: Bit(s) Description (Table 00705) 0 exclusive 1 IRQ active 2 CardBus card 3-5 reserved (0) 6 DMA channel is active 7 reserved (0) 8 valid client 9 overwrite voltage value 10-15 reserved (0) SeeAlso: #00704 Bitfields for Card Services Configuration interface type: Bit(s) Description (Table 00706) 0 memory interface 1 I/O and memory interface 2 CardBus interface 3-7 reserved (0) SeeAlso: #00704 Bitfields for Card Services Configuration registers: Bit(s) Description (Table 00707) 0 option value is value 1 status value 2 pin-replacement value 3 copy value 4 extended status value 5-7 reserved (0) SeeAlso: #00704 Bitfields for Card Services Configuration IRQ attributes: Bit(s) Description (Table 00708) 1-0 sharing 00 no sharing 01 time-multiplex sharing 10 dynamic sharing 11 reserved 2 force pulse mode 3 first used together 4-7 reserved 8 pulse IRQ has been assigned 9-15 reserved SeeAlso: #00704,#00709,#00710,#00715,#00718 Bitfields for Card Services Configuration Port attributes: Bit(s) Description (Table 00709) 0 shared I/O ports 1 "CS_FirstCommonUsedCard" 2 force alias access 3 =1 sixteen-bit I/O =0 eight-bit I/O 7-4 reserved (0) SeeAlso: #00704,#00708,#00710,#00717 Bitfields for Card Services Configuration DMA attributes: Bit(s) Description (Table 00710) 1-0 sharing mode 00 no sharing 01 time-multiplex sharing 10 dynamic sharing 11 reserved 3-2 DMA request signal 00 reserved 01 DMARQ uses pin SPKR# 10 DMARQ uses pin IOIS16# 11 DMARQ uses pin INPACK# 4 DMA size 0 eight bits 1 sixteen bits 7-5 reserved (0) SeeAlso: #00704,#00708,#00709 Format of Card Services Tuple information: Offset Size Description (Table 00711) 00h WORD logical socket number 02h WORD attributes bit 0: return Link tuples 04h BYTE code value of desired tuple 05h BYTE reserved (0) 06h WORD (ret) TupleFlags 08h DWORD (ret) -> Card Services Link State Information 0Ch DWORD (ret) -> Card Services CIS State Information 10h BYTE (ret) code for tuple 11h BYTE (ret) link value for tuple SeeAlso: #00712 Format of Card Services GetTupleData record: Offset Size Description (Table 00712) 00h WORD logical socket 02h WORD attributes 04h BYTE code value of desired tuple 05h BYTE offset into tuple from link byte 06h WORD flags 08h DWORD -> Link 0Ch DWORD -> CIS 10h WORD (call) maximum amount of data to return (0004h) 12h WORD (ret) amount of data returned 14h DWORD (ret) tuple data SeeAlso: #00711 Format of Card Services Client Registration record: Offset Size Description (Table 00713) 00h WORD attributes 02h WORD event mask 04h WORD client data (passed to client event handler in DI) --- 16-bit code --- 06h WORD client data selector (passed to event handler in DS) 08h WORD client data offset (passed to event handler in SI) 0Ah WORD reserved --- 32-bit code --- 06h WORD reserved 08h DWORD client data offset (passed to event handler in ESI) ------ 0Ch WORD expected Card Services version (0210h for v2.10) Bitfields for Card Services client event codes: Bit(s) Description (Table 00714) 0 change in write-protect status 1 change in card lock 2 ejection request 3 insertion request 4 battery is dead 5 battery low 6 change in Ready 7 change in Card Detect 8 power management change 9 reset 10 Socket Services updated 11 extended status change SeeAlso: #00713 Format of Card Services ReleaseIRQ record: Offset Size Description (Table 00715) 00h WORD logical socket number 02h WORD attributes (see #00708) 04h BYTE assigned IRQ number to be released Format of Card Services Release Configuration record: Offset Size Description (Table 00716) 00h WORD logical socket number Format of Card Services Request I/O record: Offset Size Description (Table 00717) 00h WORD logical socket number 02h WORD base port 1 04h BYTE size of port range 1 05h BYTE attributes for port range 1 (see #00709) 06h WORD base port 2 08h BYTE size of port range 2 09h BYTE attributes for port range 2 (see #00709) 0Ah BYTE number of address lines (typically 16) SeeAlso: #00718,#00716 Format of Card Services Request IRQ record: Offset Size Description (Table 00718) 00h WORD logical socket number 02h WORD attributes (see #00708) 04h BYTE (ret) assigned IRQ number, if successful 05h BYTE IRQ info (see #00719) 06h WORD bitmap of available IRQs (bit 0 = IRQ0, etc.) (only if bit 4 of IRQ info set) SeeAlso: #00717,#00716 Bitfields for Card Services Request IRQ info flags: Bit(s) Description (Table 00719) 7 IRQ is shared 6 pulse (edge-triggered) interrupt 5 level interrupt 4 use IRQ bitmap --- bit 4 set --- 3 vendor-specific interrupt 2 bus error 1 I/O check interrupt 0 NMI --- bit 4 clear --- 3-0 IRQ number SeeAlso: #00718 Format of Card Services Request Window record: Offset Size Description (Table 00720) 00h WORD logical socket number 02h WORD attributes (see #00721) 04h DWORD system base adress 08h DWORD size of memory window 0Ch BYTE additional info if attributes bit ??? is set, this is the address-lines field otherwise, this is the access-speed field (see #00722) Bitfields for Card Services Request Window attributes: Bit(s) Description (Table 00721) 0 I/O window instead of memory window 1 attribute memory instead of normal memory (16-bit PC Cards only) 2 window enabled 3 16-bit data path instead of 8-bit path (16-bit PC Cards only, v2.10+) (ignored if bit 9 set) 4 size is given in 16K pages (invalid for CardBus PC Cards) 5 shared (invalid for CardBus) 6 first shared (invalid for CardBus) 7 "CS_BindingSpecific" (memory window only) 8 card offsets are window-size granular (16-bit PC Card memory window) 9 32-bit data path (CardBus only) 10 reserved (0) 12-11 prefetch/cache 00 neither prefetchable nor cacheable 01 prefetchable but not cacheable 10 prefetchable and cachable 11 reserved 15-13 decoded base address register number (CardBus only) SeeAlso: #00720,#00722 Bitfields for Card Services Request Window access-speed: Bit(s) Description (Table 00722) 6-3 mantissa 0000 use device speed code 0001 1.0 0010 1.2 0011 1.2 ??? 0100 1.5 0101 2.0 0110 2.5 0111 3.0 1000 3.5 1001 4.0 1010 4.5 1011 5.0 1100 5.5 1101 6.0 1110 7.0 1111 8.0 --- if mantissa==0 --- 2-0 device speed code 000 reserved 001 250 ns 010 200 ns 011 150 ns 100 100 ns 101-111 reserved --- if mantissa<>0 --- 2-0 speed exponent 000 1 ns 001 10 ns 010 100 ns 011 1 us 100 10 us 101 100 us 110 1 ms 111 10 ms SeeAlso: #00720,#00721 Format of Card Services Request/Release Exclusive Access record: Offset Size Description (Table 00723) 00h WORD logical socket number 02h WORD attributes (currently all reserved, must be 0000h) Format of Card Services Request Configuration record: Offset Size Description (Table 00724) 00h WORD socket (usually 0000h) 02h WORD attributes (see #00705) 04h BYTE Vcc value 05h BYTE Vpp1 value 06h BYTE Vpp2 value 07h BYTE interface type (see #00706) 08h DWORD base address of configuration registers 0Ch BYTE card's Status register setting (if present) 0Dh BYTE card's Pin register setting (if present) 0Eh BYTE card's Socket/Copy register setting (if present) 0Fh BYTE card's Option register setting (if present) 10h BYTE bitmap of present card configuration registers 11h BYTE extended status register setting (if present) SeeAlso: #00704 --------X-1AB000----------------------------- INT 1A U - HP 100LX/200LX - PCMCIA - ??? AX = B000h ES:BX -> parameter block ??? Return: CF clear if ??? CF set if ??? Note: called by HP 100LX/200LX PCMCIA client CIC100.EXE --------d-1AB001CX4D52----------------------- INT 1A - Microsoft Real-Time Compression Interface (MRCI) - ROM-BASED SERVER AX = B001h CX = 4D52h ("MR") DX = 4349h ("CI") Return: CX = 4943h ("IC") if installed DX = 524Dh ("RM") if installed ES:DI -> MRCINFO structure (see #00725) Note: this call is functionally identical to INT 2F/AX=4A12h, which should be called first, as this call is used for the first, ROM-based MRCI server, while the other call is used for RAM-based servers which may be partially or entirely replacing a prior server SeeAlso: INT 2F/AX=4A12h Format of MRCINFO structure: Offset Size Description (Table 00725) 00h 4 BYTEs vendor signature "MSFT" Microsoft 04h WORD server version (high=major) 06h WORD MRCI specification version 08h DWORD address of server entry point (see #00727) 0Ch WORD bit flags: server capabilities (see #00726) 0Eh WORD bit flags: hardware assisted capabilities (see #00726) 10h WORD maximum block size supported by server (at least 8192 bytes) Bitfields for MRCI capabilities: Bit(s) Description (Table 00726) 0 standard compress 1 standard decompress 2 update compress 3 MaxCompress (not present in initial public release) 4 reserved 5 incremental decompress 6 MRCI 2.0 standard compress 7 MRCI 2.0 standard decompress 8-14 reserved 15 this structure is in ROM and can't be modified (server capabilities only) (Table 00727) Call MRCI entry point with: DS:SI -> MRCREQUEST structure (see #00728) CX = type of client (0000h application, 0001h file system) AX = operation 0001h perform standard compression 0002h perform standard decompression 0004h perform update compression 0008h perform MaxCompress 0020h perform incremental decompression 0040h perform MRCI 2.0 standard compression 0080h perform MRCI 2.0 standard decompression AX = FFFFh clear flags BX = bitmask of flags to clear (set bits in BX are flags to clear) Return: AX = status 0000h successful 0001h invalid function 0002h server busy, try again 0003h destination buffer too small 0004h incompressible data 0005h bad compressed data format BP destroyed (MS-DOS 6.2) Note: MRCI driver may chain to a previous driver Format of MRCREQUEST structure: Offset Size Description (Table 00728) 00h DWORD pointer to source buffer 04h WORD size of source buffer (0000h = 64K) 06h WORD (UpdateCompress only) (call) offset in source buffer of beginning of changed data (ret) offset in destination buffer of beginning of changed compressed data 08h DWORD pointer to destination buffer must contain original compressed data for UpdateCompress 0Ch WORD size of destination buffer (0000h = 64K) any compression: size of buffer for compressed data standard decompression: number of bytes to be decompressed incremental decompression: number of byte to decompress now (ret) actual size of resulting data 0Eh WORD client compressed data storage allocation size 10h DWORD incremental decompression state data set to 00000000h before first incremental decompression call Notes: the source and destination buffers may not overlap the source and destination buffer sizes should normally be the same application should not update the contents of the MRCREQUEST structure between incremental decompression calls --------!---Section--------------------------