home *** CD-ROM | disk | FTP | other *** search
/ Hot Shareware 32 / hot34.iso / ficheros / DTOOL / INTER57A.ZIP / INTERRUP.D < prev    next >
Text File  |  1998-03-22  |  225KB  |  6,484 lines

  1. Interrupt List, part 4 of 16
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998 Ralf Brown
  3. --------b-166F00-----------------------------
  4. INT 16 - HP Vectra EX-BIOS - "F16_INQUIRE" - Extended BIOS INSTALLATION CHECK
  5.     AX = 6F00h
  6.     BX <> 4850h (usually set to 0000h for simplicity)
  7. Return: BX = 4850h ("HP") if present
  8. Notes:    called by recent MS Mouse drivers looking for an HP-HIL mouse
  9.     supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  10. SeeAlso: AX=6F01h,AX=6F04h,AX=6F07h,AX=6F09h,AX=6F0Dh,AX=6F11h,AX=6F12h
  11. SeeAlso: INT 14/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
  12. SeeAlso: INT 6F/AH=00h"HP Vectra"
  13. --------b-166F01-----------------------------
  14. INT 16 - HP Vectra EX-BIOS - "F16_DEF_ATTR" - GET DEFAULT TYPEMATIC VALUES
  15.     AX = 6F01h
  16. Return: AH = 00h (successful)
  17.     CX = 0004h (size of returned buffer)
  18.     ES:SI -> buffer for typematic info (see #0520)
  19. Note:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  20. SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
  21.  
  22. Format of HP Vectra EX-BIOS typematic info:
  23. Offset    Size    Description    (Table 0520)
  24.  00h    BYTE    delay before repeat for all non-Cursor Control Pad keys
  25.         (see #0521)
  26.  01h    BYTE    typematic rate for all non-Cursor Control Pad keys (see #0522)
  27.  02h    BYTE    delay before repeat for Cursor Control Pad keys    (see #0523)
  28.  03h    BYTE    typematic rate for Cursor Control Pad keys (see #0522)
  29.  
  30. (Table 0521)
  31. Values for HP Vectra EX-BIOS non-CCP delay time:
  32.  00h    17 ms
  33.  01h    150 ms
  34.  02h    283 ms
  35.  03h    417 ms
  36.  04h    550 ms
  37.  05h    683 ms
  38.  06h    817 ms
  39.  07h    950 ms
  40.  08h    1083 ms
  41.  09h    1217 ms
  42.  0Ah    1350 ms
  43.  0Bh    1483 ms
  44.  0Ch    1617 ms
  45.  0Dh    1750 ms
  46.  0Eh    1883 ms
  47.  0Fh    2017 ms
  48. Note:    the above values assume that the key repeat rate has been set to 60 Hz;
  49.       double the times if set to 30 Hz
  50. SeeAlso: #0520,#0522,#0523
  51.  
  52. (Table 0522)
  53. Values for HP Vectra EX-BIOS typematic rate:
  54.  00h    60 / sec
  55.  01h    30 / sec
  56.  02h    20
  57.  03h    15
  58.  04h    12
  59.  05h    10
  60.  06h    8.57
  61.  07h    7.5
  62.  08h    6.66
  63.  09h    6 / sec
  64.  0Ah    5.45
  65.  0Bh    5
  66.  0Ch    4.62
  67.  0Dh    4.28
  68.  0Eh    4 / sec
  69.  0Fh    typematic disabled
  70. Note:    the above values assume that the key repeat rate has been set to 60 Hz;
  71.       halve the rates if set to 30 Hz
  72. SeeAlso: #0521,#0523
  73.  
  74. (Table 0523)
  75. Values for HP Vectra EX-BIOS CCP delay time:
  76.  00h    17 ms
  77.  01h    83 ms
  78.  02h    150 ms
  79.  03h    217 ms
  80.  04h    283 ms
  81.  05h    350 ms
  82.  06h    417 ms
  83.  07h    483 ms
  84.  08h    550 ms
  85.  09h    617 ms
  86.  0Ah    683 ms
  87.  0Bh    750 ms
  88.  0Ch    817 ms
  89.  0Dh    883 ms
  90.  0Eh    950 ms
  91.  0Fh    1017 ms
  92. Note:    the above values assume that the key repeat rate has been set to 60 Hz;
  93.       double the times if set to 30 Hz
  94. SeeAlso: #0521,#0522
  95. --------b-166F02-----------------------------
  96. INT 16 - HP Vectra EX-BIOS - "F16_GET_ATTR" - GET CURRENT TYPEMATIC VALUES
  97.     AX = 6F02h
  98. Return: AH = 00h (successful)
  99.     CX = 0004h (size of returned buffer)
  100.     ES:SI -> buffer for typematic info (see #0520)
  101. Note:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  102. SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
  103. SeeAlso: AX=6F00h,AX=6F01h,AX=6F03h
  104. --------b-166F03-----------------------------
  105. INT 16 - HP Vectra EX-BIOS - "F16_SET_ATTR" - SET TYPEMATIC VALUES
  106.     AX = 6F03h
  107.     ES:SI -> buffer containing typematic info (see #0520)
  108. Return: AH = 00h (successful)
  109. Note:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  110. SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
  111. SeeAlso: AX=6F00h,AX=6F01h,AX=6F02h
  112. --------b-166F04-----------------------------
  113. INT 16 - HP Vectra EX-BIOS - "F16_DEF_MAPPING" - GET DEFAULT KEY MAPPINGS
  114.     AX = 6F04h
  115.     ES:SI -> mapping buffer (see #0524)
  116. Return: AH = 00h (successful)
  117.     CX = 001Eh (number of bytes in buffer)
  118.     ES:SI buffer filled
  119. Notes:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  120.     the HIL input system translates the HIL keyboard events to simulate
  121.       an IBM-compatible keyboard; the translation can be altered
  122.       dynamically by applications
  123. SeeAlso: AX=6F00h,AX=6F05h,AX=6F06h
  124.  
  125. Format of HP Vectra EX-BIOS keyboard mapping info:
  126. Offset    Size    Description    (Table 0524)
  127.  00h  3 WORDs    entry for V_QWERTY driver (IP, CS, DS)
  128.  06h  3 WORDs    entry for V_SOFTKEY driver (IP, CS, DS)
  129.  0Ch  3 WORDs    entry for V_FUNCTION driver
  130.  12h  3 WORDs    entry for V_NUMPAD driver
  131.  18h  3 WORDs    entry for V_CCP driver
  132. --------b-166F05-----------------------------
  133. INT 16 - HP Vectra EX-BIOS - "F16_GET_MAPPING" - GET CURRENT KEY MAPPINGS
  134.     AX = 6F05h
  135.     ES:SI -> mapping buffer (see #0524)
  136. Return: AH = 00h (successful)
  137.     CX = 001Eh (number of bytes in buffer)
  138.     ES:SI buffer filled
  139. Note:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  140. SeeAlso: AX=6F04h,AX=6F06h
  141. --------b-166F06-----------------------------
  142. INT 16 - HP Vectra EX-BIOS - "F16_SET_MAPPING" - SET KEY MAPPINGS
  143.     AX = 6F06h
  144.     CX = number of bytes in buffer (001Eh)
  145.     ES:SI -> mapping buffer (see #0524)
  146. Return: AH = 00h (successful)
  147. Notes:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  148.     any application which modifies the key mappings should restore them
  149.       before terminating
  150.     drivers installed with this function are assured of 32 bytes of stack
  151.       space when they are invoked
  152. SeeAlso: AX=6F04h,AX=6F05h,AX=6F07h
  153. --------b-166F07-----------------------------
  154. INT 16 - HP Vectra EX-BIOS - "F16_SET_XLATORS" - SET CCP AND SOFTKEY PADS
  155.     AX = 6F07h
  156.     BL = translation to set (see #0525)
  157. Return: AH = 00h (successful)
  158. Notes:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  159.     this function may no longer work properly if the application has
  160.       modified the key mappings with AX=6F06h
  161. SeeAlso: AX=6F06h,AX=6F09h
  162.  
  163. (Table 0525)
  164. Values for HP Vectra keyboard translation specifier:
  165.  00h    map V_CCP to V_CCPCUR, forcing the cursor pad to return cursor keys
  166.  01h    map V_CCP to V_CCPNUM, forcing the cursor pad to always return numbers
  167.  02h    map V_CCP to V_OFF, disabling the cursor pad
  168.  03h    map V_CCP to V_CCPGID, converting cursor pad keys to GID data
  169.  04h    map V_CCP to V_RAW, passing cursor pad data untranslated to INT 09
  170.  05h    map V_SOFTKEY to V_SKEY2KFEY, translating into standard function keys
  171.  06h    map V_SOFTKEY to V_RAW, passing Softkey scancodes direct to INT 09
  172.  07h    map V_SOFTKEY to V_OFF, disabling HP Softkeys
  173. SeeAlso: #0526
  174.  
  175. (Table 0526)
  176. Values for HP Vectra scancodes and BIOS keycodes for V_RAW translator:
  177.           INT 09         INT 16 keycode
  178.     Key         scan code    Default     Shifted   Ctrl         Alt
  179.  * (NumPd)    37h    2Ah     (Prt Sc)  00/72h    00/37H
  180.  Sysreq        54h      --     --       --         --
  181.  CCP-Up        60h    00/D9h     00/BFh       00/A5h    00/8BH
  182.  CCP-Left    61h    00/DAh     00/C0h       00/A6h    00/8CH
  183.  CCP-Down    62h    00/DBh     00/C1h       00/A7h    00/8DH
  184.  CCP-Right    63h    00/DCh     00/C2h       00/A8h    00/8EH
  185.  CCP-Home    64h    00/DDh     00/C3h       00/A9h    00/8FH
  186.  CCP-PgUp    65h    00/DEh     00/C4h       00/AAh    00/90H
  187.  CCP-End    66h    00/DFh     00/C5h       00/ABh    00/91H
  188.  CCP-PgDn    67h    00/E0h     00/C6h       00/ACh    00/92H
  189.  CCP-Ins    68h    00/E1h     00/C7h       00/ADh    00/93H
  190.  CCP-Del    69h    00/E2h     00/C8h       00/AEh    00/94H
  191.  CCP-CNTR    6Ah    00/E3h     00/C9h       00/AFh    00/95H
  192.  f1        70h    00/E9h     00/CFh       00/B5h    00/9BH
  193.  f2        71h    00/EAh     00/D0h       00/B6h    00/9CH
  194.  f3        72h    00/EBh     00/D1h       00/B7h    00/9DH
  195.  f4        73h    00/ECh     00/D2h       00/B8h    00/9EH
  196.  f5        74h    00/EDh     00/D3h       00/B9h    00/9FH
  197.  f6        75h    00/EEh     00/D4h       00/BAh    00/A0H
  198.  f7        76h    00/EFh     00/D5h       00/BBh    00/A1H
  199.  f8        77h    00/F0h     00/D6h       00/BCh    00/A2H
  200. Note:    only HP-specific codes are listed in this table; see INT 09 for a full
  201.       list of standard scan codes
  202. SeeAlso: #0005,#0525
  203. --------b-166F08-----------------------------
  204. INT 16 - HP Vectra EX-BIOS - "F16_KBD" - GET KEYBOARD INFORMATION
  205.     AX = 6F08h
  206. Return: AH = status
  207.        00h successful
  208.        02h unsupported (non-HIL, i.e. standard, keyboard)
  209.     BH = HP-HIL address (HP Vectra AT only???)
  210.     BL = HP-HIL ID (HP Vectra AT only???)
  211.     BL = keyboard language (ES/QS/RS only???) (see #0527)
  212. Notes:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  213.     the driver's address in the HP_VECTOR_TABLE (see INT 6F/AH=00h) may
  214.       be computed as (BH-1)*6 + N, where N is the address of the first
  215.       HP-HIL device driver (see INT 6F/AH=0Ah"F_INQUIRE_FIRST")
  216. SeeAlso: AX=6F05h,AX=6F09h,INT 6F/AH=0Ah"F_INQUIRE_FIRST"
  217.  
  218. (Table 0527)
  219. Values for HP HIL keyboard language code:
  220.  00h    reserved
  221.  01h    Arabic-French
  222.  02h    Kanji
  223.  03h    Swiss-French
  224.  04h    Portugese
  225.  05h    Arabic
  226.  06h    Hebrew
  227.  07h    Canadian-English
  228.  08h    Turkish
  229.  09h    Greek
  230.  0Ah    Thai
  231.  0Bh    Italian
  232.  0Ch    Hangul (Korean)
  233.  0Dh    Dutch
  234.  0Eh    Swedish
  235.  0Fh    German
  236.  10h    Chinese (PRC)
  237.  11h    Chinese (Taiwan)
  238.  12h    Swiss (French ii)
  239.  13h    Spanish
  240.  14h    Swiss (German ii)
  241.  15h    Belgian (Flemish)
  242.  16h    Finish
  243.  17h    United Kingdom
  244.  18h    French-Canadian
  245.  19h    French-German
  246.  1Ah    Norwegian
  247.  1Bh    French
  248.  1Ch    Danish
  249.  1Dh    Katakana
  250.  1Eh    Latin American Spanish
  251.  1Fh    United States-American
  252.  20h-FEh reserved
  253.  FFh    non-HP keyboard (IBM AT keyboard and IBM Enhanced keyboard)
  254. --------b-166F09-----------------------------
  255. INT 16 - HP Vectra EX-BIOS - "F16_KBD_RESET" - RESET KEYBOARD TO DEFAULTS
  256.     AX = 6F09h
  257. Return: AH = 00h (successful)
  258. Desc:    reset all keyboard mappings to their default translators, and reset
  259.       typematic values to their defaults
  260. Note:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  261. SeeAlso: AX=6F04h,AX=6F07h,AX=6F08h
  262. --------b-166F0A-----------------------------
  263. INT 16 - HP Vectra ES/QS/RS EX-BIOS - READ PROCESSOR SPEED
  264.     AX = 6F0Ah
  265. Return: AH = 00h (successful)
  266.     BX = speed code
  267.         0Bh for low speed (see #0528)
  268.         12h for medium speed (see #0528)
  269.         0Ch for high speed (see #0528)
  270. Note:    supported by ES, QS, and RS series of HP Vectras
  271. SeeAlso: AX=6F00h
  272.  
  273. (Table 0528)
  274. Values for HP Vetra CPU speed:
  275.     Vectra        Low        Medium    High
  276.     ES        8 MHz         -         8 MHz
  277.     ES/12        8 MHz         -        12 MHz
  278.     QS/16, RS/16    8 MHz         -        16 MHz
  279.     QS/16S        8 MHz         -        16 MHz
  280.     QS/20, RS/20    8 MHz         -        20 MHz
  281.     RS/20C        5 MHz        10 MHz    20 MHz
  282.     RS/25C        5 MHz        12.5 MHz    25 MHz
  283. --------b-166F0B-----------------------------
  284. INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO LOW
  285.     AX = 6F0Bh
  286. Return: AH = 00h (successful)
  287. Notes:    see AX=6F0Ah for speed definitions
  288.     supported by ES, QS, and RS series of HP Vectras
  289. SeeAlso: AX=6F00h,AX=6F0Ah
  290. --------b-166F0C-----------------------------
  291. INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO HIGH
  292.     AX = 6F0Ch
  293. Return: AH = 00h (successful)
  294. Notes:    see AX=6F0Ah for speed definitions
  295.     supported by ES, QS, and RS series of HP Vectras
  296. SeeAlso: AX=6F00h,AX=6F0Ah
  297. --------b-166F0D-----------------------------
  298. INT 16 - HP Vectra ES/QS/RS EX-BIOS - GET HIL Extended BIOS INTERRUPT NUMBER
  299.     AX = 6F0Dh
  300. Return: AH = interrupt number (default 6Fh, 02h means 6Fh as well)
  301. Notes:    supported by ES, QS, and RS series of HP Vectras
  302.     called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL
  303.       input system
  304. SeeAlso: AX=6F00h,AX=6F0Eh,INT 6F/AH=00h"HP Vectra",INT 6F/AH=0Ah"HP"
  305. --------b-166F0E-----------------------------
  306. INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET HIL Extended BIOS INTERRUPT NUMBER
  307.     AX = 6F0Eh
  308.     BL = new interrupt number (60h-6Fh,78h-7Fh)
  309. Return: AH = status (00h = successful)
  310. Desc:    allows the HIL Extended BIOS software to use a non-default interrupt
  311.       number in case of an interrupt conflict with another application
  312. Notes:    supported by ES, QS, and RS series of HP Vectras
  313.     called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL
  314.       input system
  315. SeeAlso: AX=6F00h,AX=6F0Dh,INT 6F/AH=00h"HP",INT 6F/AH=0Ah"HP"
  316. --------b-166F0F-----------------------------
  317. INT 16 - HP Vectras RS/20C and RS/25C - ENABLE MEMORY CACHING
  318.     AX = 6F0Fh
  319. Return: AH = status
  320.         00h successful
  321.         FEh cache subsystem is bad
  322. SeeAlso: AX=6F00h,AX=6F10h,AX=6F11h
  323. --------b-166F10-----------------------------
  324. INT 16 - HP Vectras RS/20C and RS/25C - DISABLE MEMORY CACHING
  325.     AX = 6F10h
  326. Return: AH = 00h (successful)
  327. SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F11h
  328. --------b-166F11-----------------------------
  329. INT 16 - HP Vectras RS/20C and RS/25C - GET MEMORY CACHING STATE
  330.     AX = 6F11h
  331. Return: AH = 00h (successful)
  332.     AL bit 0 = cache state
  333.         0 cache disabled
  334.         1 cache enabled
  335. SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F10h
  336. --------b-166F12-----------------------------
  337. INT 16 - HP Vectras RS/20C and RS/25C - SET PROCESSOR SPEED TO MEDIUM
  338.     AX = 6F12h
  339. Return: AH = 00h (successful)
  340. Note:    see AX=6F0Ah for speed definitions
  341. SeeAlso: AX=6F00h,AX=6F0Ah
  342. --------K-1670-------------------------------
  343. INT 16 - FAKEY.COM - INSTALLATION CHECK
  344.     AH = 70h
  345. Return: AX = 1954h if installed
  346. Program: FAKEY is a keystroke faking utility by System Enhancement Associates
  347. --------K-1671-------------------------------
  348. INT 16 - FAKEY.COM - PUSH KEYSTROKES
  349.     AH = 71h
  350.     CX = number of keystrokes
  351.     DS:SI -> array of words containing keystrokes to be returned by AH=00h
  352. Program: FAKEY is a keystroke faking utility by System Enhancement Associates
  353. SeeAlso: AH=05h,AH=72h
  354. --------K-1672-------------------------------
  355. INT 16 - FAKEY.COM - CLEAR FAKED KEYSTROKES
  356.     AH = 72h
  357. Program: FAKEY is a keystroke faking utility by System Enhancement Associates
  358. SeeAlso: AH=71h
  359. --------K-1673-------------------------------
  360. INT 16 - FAKEY.COM - PLAY TONES
  361.     AH = 73h
  362.     CX = number of tones to play
  363.     DS:SI -> array of tones (see #0529)
  364. Program: FAKEY is a keystroke faking utility by System Enhancement Associates
  365. SeeAlso: INT 15/AX=1019h
  366.  
  367. Format of FAKEY.COM tone array entries:
  368. Offset    Size    Description    (Table 0529)
  369.  00h    WORD    divisor for timer channel 2
  370.  02h    WORD    duration in clock ticks
  371. --------i-167463-----------------------------
  372. INT 16 U - FastJuice - INSTALLATION CHECK
  373.     AX = 7463h ("tc")
  374. Return: AX = 5443h ("TC") if installed
  375. Program: FastJuice is a resident battery-power monitor by SeaSide Software
  376. SeeAlso: AX=6A6Bh
  377. --------R-1675-------------------------------
  378. INT 16 - pcANYWHERE III - SET TICK COUNT FOR SCANNING
  379.     AH = 75h
  380.     AL = number of ticks between checks for new screen changes
  381. --------R-1676-------------------------------
  382. INT 16 - pcANYWHERE III - SET ERROR CHECKING TYPE
  383.     AH = 76h
  384.     AL = error checking type
  385.         00h none
  386.         01h fast
  387.         02h slow
  388. --------R-1677-------------------------------
  389. INT 16 - pcANYWHERE III - LOG OFF
  390.     AH = 77h
  391.     AL = mode
  392.         00h wait for another call
  393.         01h leave in Memory Resident Mode
  394.         02h leave in Automatic Mode
  395.         FFh leave in current operating mode
  396. --------U-167761-----------------------------
  397. INT 16 - WATCH.COM v2.x-v3.0 - INSTALLATION CHECK
  398.     AX = 7761h ('wa')
  399. Return: AX = 5741h ('WA') if installed
  400. Note:    WATCH.COM is part of the "TSR" package by Kim Kokkonen
  401. SeeAlso: INT 21/AX=7761h
  402. --------U-167788BX7789-----------------------
  403. INT 16 - PC Magazine PUSHDIR.COM - INSTALLATION CHECK
  404.     AX = 7788h
  405.     BX = 7789h
  406.     DS:SI -> signature "PUSHDIR VERSION 1.0"
  407. Return: AX = 7789h if installed and signature correct
  408.     BX = 7788h
  409.     SI destroyed
  410. --------R-1679-------------------------------
  411. INT 16 - pcANYWHERE III - CHECK STATUS
  412.     AH = 79h
  413. Return: AX = status
  414.         FFFFh if resident and active
  415.         FFFEh if resident but not active
  416.         FFFDh if in Memory Resident mode
  417.         FFFCh if in Automatic mode
  418.         other value if not resident
  419. SeeAlso: AX=7B00h,INT 21/AX=2B44h
  420. --------R-167A-------------------------------
  421. INT 16 - pcANYWHERE III - CANCEL SESSION
  422.     AH = 7Ah
  423. --------R-167B00-----------------------------
  424. INT 16 - pcANYWHERE III - SUSPEND
  425.     AX = 7B00h
  426. SeeAlso: AH=79h,AX=7B01h
  427. --------R-167B01-----------------------------
  428. INT 16 - pcANYWHERE III - RESUME
  429.     AX = 7B01h
  430. SeeAlso: AH=79h,AX=7B00h
  431. --------R-167C-------------------------------
  432. INT 16 - pcANYWHERE III - GET PORT CONFIGURATION
  433.     AH = 7Ch
  434. Return: AH = port number
  435.     AL = baud rate (see #0530)
  436. SeeAlso: AX=7B00h,AH=7Eh
  437.  
  438. (Table 0530)
  439. Values for pcANYWHERE III baud rate:
  440.  00h    50 baud
  441.  01h    75 baud
  442.  02h    110 baud
  443.  03h    134.5 baud
  444.  04h    150 baud
  445.  05h    300 baud
  446.  06h    600 baud
  447.  07h    1200 baud
  448.  08h    1800 baud
  449.  09h    2000 baud
  450.  0Ah    2400 baud
  451.  0Bh    4800 baud
  452.  0Ch    7200 baud
  453.  0Dh    9600 baud
  454.  0Eh    19200 baud
  455. SeeAlso: #0235
  456. --------R-167D-------------------------------
  457. INT 16 - pcANYWHERE III - GET/SET TERMINAL PARAMETERS
  458.     AH = 7Dh
  459.     AL = subfunction
  460.         00h set terminal parameters
  461.         01h get terminal parameters
  462.         02h get configuration header and terminal parameters
  463.     DS:CX -> terminal parameter block
  464. SeeAlso: AH=7Ch,AH=7Eh
  465. --------R-167E-------------------------------
  466. INT 16 - pcANYWHERE III - COMMUNICATIONS I/O THROUGH PORT
  467.     AH = 7Eh
  468.     AL = subfunction
  469.         01h port input status
  470.         Return AX = 0 if no characer ready,
  471.                AX = 1 if character ready
  472.         02h port input character
  473.         Return AL = received character
  474.         03h port output character in CX
  475.         11h hang up phone
  476. SeeAlso: AH=7Ch
  477. --------R-167F-------------------------------
  478. INT 16 - pcANYWHERE III - SET KEYBOARD/SCREEN MODE
  479.     AH = 7Fh
  480.     AL = subfunction
  481.         00h enable remote keyboard only
  482.         01h enable host keyboard only
  483.         02h enable both keyboards
  484.         08h display top 24 lines
  485.         09h display bottom 24 lines
  486.         10h Hayes modem
  487.         11h other modem
  488.         12h direct connect
  489. --------U-1680-------------------------------
  490. INT 16 - MAKEY.COM - INSTALLATION CHECK
  491.     AH = 80h
  492. Return: AX = 1954h if installed
  493. Program: MAKEY is a utility by System Enhancement Associates
  494. --------K-1687-------------------------------
  495. INT 16 - DK.COM v1.03 - INSTALLATION CHECK
  496.     AH = 87h
  497. Return: AX = 4A57h ('JW') if installed
  498. Program: DK.COM is the resident part of a small keyboard macro utility
  499.       by Digital Mechanics.
  500. --------U-168765BX4321-----------------------
  501. INT 16 - AT.COM version 8/26/87 - API
  502.     AX = 8765h
  503.     BX = 4321h
  504.     CX = ??? or FFFFh
  505.     if CX = FFFFh
  506.         DX = number of event to remove or FFFFh
  507. Return: ES:BX -> event record array (see #0531)
  508. Program: AT.COM is a resident scheduler by Bill Frolik
  509.  
  510. Format of AT.COM event record:
  511. Offset    Size    Description    (Table 0531)
  512.  00h    BYTE    in-use flag (00h free, 01h in use, FFh end of array)
  513.  01h    BYTE    day of date on which to trigger
  514.  02h    BYTE    month of date on which to trigger
  515.  03h    BYTE    trigger time, minute
  516.  04h    BYTE    trigger time, hour
  517.  05h    WORD    offset of command to be executed
  518. --------K-1692-------------------------------
  519. INT 16 - KEYB.COM KEYBOARD CAPABILITIES CHECK (not an actual function!)
  520.     AH = 92h
  521. Return: AH <= 80h if enhanced keyboard functions (AH=10h-12h) supported
  522. Desc:    this function is called by the DOS 3.2 KEYBxx.COM and DOS 5+ KEYB.COM
  523.       to determine the highest supported keyboard function
  524. Note:    many BIOSes (including at least some versions of Phoenix and AMI) will
  525.       destroy AH on return from functions higher than AH=12h, returning
  526.       12h less than was in AH on entry (due to a chain of DEC/JZ
  527.       instructions)
  528. SeeAlso: AH=05h"PCjr",AH=A2h,INT 2F/AX=AD80h
  529. --------U-1699-------------------------------
  530. INT 16 - SCOUT v5.4 - GET ???
  531.     AH = 99h
  532. Return: AX = ABCDh
  533.     BX:CX -> ??? (appears to be start of PSP for resident portion)
  534. Program: Scout is a memory-resident file manager by New-Ware
  535. SeeAlso: AH=9Eh
  536. --------U-169E-------------------------------
  537. INT 16 - SCOUT v5.4 - INSTALLATION CHECK
  538.     AH = 9Eh
  539. Return: AX = ABCDh if installed
  540. Program: Scout is a memory-resident file manager by New-Ware
  541. SeeAlso: AH=99h
  542. --------K-16A2-------------------------------
  543. INT 16 - KEYB.COM KEYBOARD CAPABILITIES CHECK (not an actual function!)
  544.     AH = A2h
  545. Return: AH <= 80h if 122-key keyboard functions (AH=20h-22h) supported
  546. Desc:    this function is called by the DOS 3.2 KEYBxx.COM and DOS 5+ KEYB.COM
  547.       to determine the highest supported keyboard function
  548. Note:    many BIOSes (including at least some versions of Phoenix and AMI) will
  549.       destroy AH on return from functions higher than AH=12h, returning
  550.       12h less than was in AH on entry (due to a chain of DEC/JZ
  551.       instructions)
  552. SeeAlso: AH=05h"PCjr",AH=92h,INT 2F/AX=AD80h
  553. --------V-16AA-------------------------------
  554. INT 16 - PTxxx.COM - (xxx=CGA,EGA,VGA,HER...) CALL GATE FOR GRAPHICS
  555.     AH = AAh
  556.     Various registers set up by high level language.
  557. Return: Graphics performed
  558. Note:    PT stands for Paint Tools which is a graphics library for Turbo Pascal,
  559.       Modula 2 and others from DataBiten in Sweden. The library is
  560.       installed as a memory resident driver.
  561. --------U-16AABBBXEEFF-----------------------
  562. INT 16 U - JORJ v4.3 - INSTALLATION CHECK
  563.     AX = AABBh
  564.     BX = EEFFh
  565. Return: AX = EEFFh if installed
  566.     BX = AABBh if installed
  567.         CL = hotkey name (default 6Ah 'j' for Alt-J)
  568. Program: JORJ is a shareware dictionary with phonetic lookup by Jorj Software
  569.       Co.
  570. Index:    hotkeys;JORJ
  571. --------K-16AF20BX4B33-----------------------
  572. INT 16 - K3PLUS v6.00+ (API v2.0+) - GET EXTENDED BUFFER STATE
  573.     AX = AF20h
  574.     BX = 4B33h ('K3')
  575. Return: AX = K3 version (same as returned in BX by AX=AF4Dh)
  576.     ES:BX -> extended keyboard buffer start
  577.     ES:DX -> extended keyboard buffer end
  578.     ES:SI -> next keystroke
  579.     ES:DI -> last keystroke in buffer
  580.     CX = number of keystrokes in buffer
  581. Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
  582.       Frinke, originally based on the K3 extended German keyboard driver
  583.       by Martin Gerdes published in c't magazine in 1988
  584. Note:    this function replaces the identical function AH=20h"K3"
  585. SeeAlso: AH=20h"K3",AX=AF25h,AX=AF4Dh,AX=AF50h,INT 2F/AX=ED58h
  586. --------K-16AF25BX4B33-----------------------
  587. INT 16 - K3PLUS v6.00+ (API v2.0+) - COPY INTO EXTENDED BUFFER
  588.     AX = AF25h
  589.     BX = 4B33h ('K3')
  590.     CX = number of keystrokes to copy
  591.     ES:SI -> buffer containing keystrokes
  592. Return: CF clear if successful
  593.     CF set on error (i.e. buffer full)
  594.         CX = number of keystrokes NOT transferred
  595.         ES:SI -> first keystroke not transferred
  596. Note:    this function replaces the identical function AH=25h"K3"
  597. SeeAlso: AH=25h"K3",AX=AF20h,AX=AF4Dh,AX=AF50h,INT 2F/AX=D44Fh/BX=0001h
  598. --------K-16AF4DBX4B33-----------------------
  599. INT 16 - K3PLUS v6.00+ (API v2.0+) - GET VERSION INFORMATION
  600.     AX = AF4Dh
  601.     BX = 4B33h ('K3')
  602. Return: AL = 50h if installed
  603.         BX = K3 version
  604.         DX = API version
  605.         ES:CX -> K3 structure (version-dependent) (see #0532)
  606. Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
  607.       Frinke, originally based on the K3 extended German keyboard driver
  608.       by Martin Gerdes published in c't magazine in 1988
  609. SeeAlso: AX=AF20h,AX=AF50h,AX=AF80h,AX=AF82h/BX=4B33h,INT 2F/AX=D44Fh/BX=0000h
  610. SeeAlso: INT 2F/AX=ED58h
  611. Index:    installation check;K3PLUS
  612.  
  613. Format of internal K3 structure:
  614. Offset    Size    Description    (Table 0532)
  615.  00h  3 BYTEs    signature "K3$"
  616.  03h    BYTE    length of structure, including this byte and signature
  617.  04h    WORD    compiler switch option flags A (see #0533)
  618.  06h    WORD    compiler switch option flags B (see #0534)
  619.  08h    BYTE    internal flags A (see #0535)
  620.  09h    BYTE    internal flags B (see #0536)
  621.  0Ah    WORD    DOS version recorded at startup
  622.  0Ch    WORD    "ActTypeSpeed"
  623.  0Eh    WORD    last Keyboard-ID sent
  624.         41ABh translated, 83ABh native (pass-through)
  625.  10h    WORD    offset of K3TAB Special
  626.  12h    WORD    offset of K3TAB German
  627.  14h    WORD    offset of K3TAB Alt
  628.  16h    WORD    offset of K3TAB AltGr
  629.  18h    WORD    offset of K3TAB Ctrl
  630.  1Ah    WORD    offset of K3TAB NPad
  631.  1Ch    WORD    offset of K3TAB CtrlNPad
  632.  1Eh    WORD    offset of K3TAB AltNPad
  633.  20h    WORD    offset of K3TAB ApoTbl or 0000h
  634.  22h    WORD    offset of K3TAB UmlautTbl or 0000h
  635.  24h    WORD    offset of K3TAB UmlautTblExp or 0000h
  636.  26h    WORD    length of video mode table
  637.  28h    WORD    offset of VidMdTbl or 0000h
  638.  2Ah    BYTE    '$' end marker
  639.  
  640. Bitfields for K3PLUS compiler switch option flags A:
  641. Bit(s)    Description    (Table 0533)
  642.  15    GuINT16Fct2 (general use of INT 16 function 2)
  643.  14    Int15df (INT 15 has to be predefined)
  644.  13    GuAltNP (general use of Alt Numpad)
  645.  12    SupAT (ATs+ supported)
  646.  11    GuINT16Fct3 (general use of INT 16 function 3)
  647.  10    GuINT16Ret (general use of INT16 bad function return)
  648.  9-8    Layout (0-2, 3 reserved; 0=PC, 1=AT, 2=MF)
  649.  7    ForceMF (force MF decode without read-ID)
  650.  6    KXlate (translate keys for special keyboard)
  651.  5    UmlautX (umlaut translation capability included)
  652.  4    ApoX (translate apostrophe)
  653.  3    DoINT16 (INT 16 handler included)
  654.  2    UseCC (CopyCursor included)
  655.  1-0    UseEB
  656.     0=no extended keystroke buffer, 1=reserve mem, 2=use PSP, 3=reserved
  657.  
  658. Bitfields for K3 compiler switch option flags B:
  659. Bit(s)    Description    (Table 0534)
  660.  15-11    reserved (0)
  661.  10    CtrlSeq (Ctrl macro capability included)
  662.  9-8    SupINT16fct55FE
  663.  6    DoInstallCheck (check for double installation)
  664.  5    SupINT16fct5PcJr (INT 16/AH=05h"PCjr" supported)
  665.  4    SendOut (sound and message output supported)
  666.  3    SupInt16fct5500 (INT 16/AX=5500h supported)
  667.  2    GuINT15Fct4F (calls to INT 15/AH=4Fh supported)
  668.  1-0    UseBufferStart (0=use standard area, 1=set standard area,
  669.     2=use internal indexes, 3=reserved)
  670.  
  671. Bitfields for K3 internal flags A:
  672. Bit(s)    Description    (Table 0535)
  673.  7    DoingUmlautExp
  674.  6    CallINT15fct4F
  675.  5    Beep1 (requires SendOut set in option flags B)
  676.  4    ATflag (set for AT, 386, PS/2 Models 50-80)
  677.  3    XTflag (set for PC, PC/XT, Micromint PC, Pencock PC, PS/2 Model 30)
  678.  2    KeyClick
  679.  1    UmlautExp
  680.  0    UmlautTrans
  681.  
  682. Bitfields for K3 internal flags B:
  683. Bit(s)    Description    (Table 0536)
  684.  7-5    reserved
  685.  4    TranslateE0 enabled
  686.  3    Boot enabled
  687.  2    PrintScreen enabled
  688.  1    Break enabled
  689.  0    ApoPendingBeep
  690. --------K-16AF50BX4B33-----------------------
  691. INT 16 - K3PLUS v6.00+ (API v2.0+) - CHECK IF FUNCTION SUPPORTED
  692.     AX = AF50h
  693.     BX = 4B33h ('K3')
  694.     CH = function
  695.         00h get function flags
  696.         CL = 00h
  697.         Return: CX = supported function flags (see #0537)
  698.         nonzero reserved for extensions
  699. SeeAlso: AX=AF20h,AX=AF4Dh,AX=AF51h,AX=AF80h
  700.  
  701. Bitfields for K3PLUS supported function list:
  702. Bit(s)    Description    (Table 0537)
  703.  0    function 4Dh supported
  704.  1    function 50h supported
  705.  2-3    reserved (0)
  706.  4    function 20h supported
  707.  5    function 25h supported
  708.  6    function 51h supported
  709.  7    reserved (0)
  710.  8    function 80h supported
  711.  9    function 81h supported
  712.  10    function 82h supported
  713.  11-15    reserved (0)
  714. --------K-16AF51BX4B33-----------------------
  715. INT 16 - K3PLUS v6.00+ (API v2.00+) - SET OPTIONS
  716.     AX = AF51h
  717.     BX = 4B33h ('K3')
  718.     CX = switches
  719. Return: AL = status
  720.         00h done
  721.         CX = previous switch settings
  722.         01h switch not supported
  723.         FFh other error
  724. SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h
  725. --------K-16AF80BX4B33-----------------------
  726. INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 09h VECTOR
  727.     AX = AF80h
  728.     BX = 4B33h ('K3')
  729. Return: AL = status
  730.         00h not supported
  731.         81h if successful
  732.         ES:CX -> original INT 09 handler
  733. SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF81h,AX=AF82h
  734. --------K-16AF81BX4B33-----------------------
  735. INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 16h HANDLER
  736.     AX = AF81h
  737.     BX = 4B33h ('K3')
  738. Return: AL = status
  739.         00h not supported
  740.         82h if successful
  741.         ES:CX -> original INT 16 handler
  742. SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF82h
  743. --------K-16AF82BX4B33-----------------------
  744. INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 10h HANDLER
  745.     AX = AF82h
  746.     BX = 4B33h ('K3')
  747. Return: AL = status
  748.         00h not supported
  749.         83h if successful
  750.         ES:CX -> original INT 10 handler
  751. Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
  752.       Frinke, originally based on the K3 extended German keyboard driver
  753.       by Martin Gerdes published in c't magazine in 1988
  754. SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF81h,INT 2F/AX=ED58h
  755. --------m-16B0B1-----------------------------
  756. INT 16 - VGARAM v1.00 - INSTALLATION CHECK
  757.     AX = B0B1h
  758.     ES:DI -> 6 byte signature "VGARAM"
  759. Return: AX = B1B0h if installed,
  760.     DS:BX -> VGARAM Status byte: 0 = OFF, 1 = ON
  761. Program: VGARAM is a utility by Brett Warthen which makes VGA memory which is
  762.       not used in text modes available for DOS
  763. --------K-16CA--BX736B-----------------------
  764. INT 16 - CtrlAlt Associates STACKEY.COM v3.00 - API
  765.     AH = CAh
  766.     BX = 736Bh ("sk")
  767.     CX = 736Bh
  768.     AL = function
  769.         00h installation check
  770.         Return: DX = words available in keyboard buffer
  771.         01h place keystroke in buffer
  772.         DX = keystroke (DH = scan code, DL = ASCII character)
  773.         Return: DX = words available in keyboard buffer
  774.                 FFFFh on error
  775.         02h flush STACKEY and BIOS keyboard buffers
  776. Return: AX = CAFFh if installed
  777.         BX = segment of resident code
  778.         CX = STACKEY version (CH = major, CL = minor)
  779. Program: STACKEY is a shareware keyboard-input faking TSR
  780. Index:    installation check;STACKEY
  781. --------V-16CA00BX6570-----------------------
  782. INT 16 - CtrlAlt Associates EGAPAL.COM v1.00 - INSTALLATION CHECK
  783.     AX = CA00h
  784.     BX = 6570h ("ep")
  785.     CX = 6570h
  786. Return: AX = CAFFh if installed
  787.         BX = segment of resident code
  788.         CX = ??? (0090h)
  789. Program: EGAPAL is a TSR supplied with STACKEY which makes EGA palette
  790.       settings permanent across mode switches
  791. SeeAlso: AX=CA00h/BX=7670h
  792. --------V-16CA00BX7670-----------------------
  793. INT 16 - CtrlAlt Associates VGAPAL.COM v1.00 - INSTALLATION CHECK
  794.     AX = CA00h
  795.     BX = 7670h ("vp")
  796.     CX = 7670h
  797. Return: AX = CAFFh if installed
  798.         BX = segment of resident code
  799.         CX = ??? (0090h)
  800. Program: VGAPAL is a TSR supplied with STACKEY which makes VGA palette
  801.       settings permanent across mode switches
  802. SeeAlso: AX=CA00h/BX=6570h
  803. --------U-16CB00-----------------------------
  804. INT 16 - PUPClip v1.12+ - INSTALLATION CHECK
  805.     AX = CB00h
  806. Return: BX = 4342h if installed
  807.         AX = version (AH = major version, AL = BCD minor version)
  808. Program: PUPClip is the freeware PopUP Clipboard for DOS and Windows DOS
  809.      sessions by SkullC0DEr
  810. SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB04h,AX=CB05h,AX=CB06h,AX=CB08h
  811. SeeAlso: INT 2F/AX=1701h
  812. --------U-16CB01-----------------------------
  813. INT 16 - PUPClip v1.12+ - GET CLIPBOARD CURSOR POSITION
  814.     AX = CB01h
  815. Return: BL = column (0-79)
  816.     BH = row (0-49)
  817. SeeAlso: AX=CB00h,AX=CB02h,AX=CB03h
  818. --------U-16CB02-----------------------------
  819. INT 16 - PUPClip v1.12+ - SET CLIPBOARD CURSOR POSITION
  820.     AX = CB02h
  821.     BL = column (0-79)
  822.     BH = row (0-49)
  823. Return: CF clear if successful
  824.     CF set on error (invalid position)
  825. SeeAlso: AX=CB00h,AX=CB01h,AX=CB04h
  826. --------U-16CB03-----------------------------
  827. INT 16 - PUPClip v1.12+ - GET CHARACTER FROM CURRENT CLIPBOARD CURSOR POSITION
  828.     AX = CB03h
  829. Return: BL = ASCII character at current position
  830. SeeAlso: AX=CB00h,AX=CB02h,AX=CB04h,INT 2F/AX=1705h
  831. --------U-16CB04-----------------------------
  832. INT 16 - PUPClip v1.12+ - WRITE CHARACTER TO CURRENT CLIPBOARD CURSOR POSITION
  833.     AX = CB04h
  834.     BL = ASCII character to store
  835. SeeAlso: AX=CB00h,AX=CB02h,AX=CB03h,AX=CB05h,INT 2F/AX=1703h
  836. --------U-16CB05-----------------------------
  837. INT 16 - PUPClip v1.12+ - CLEAR CLIPBOARD CONTENTS
  838.     AX = CB05h
  839. Return: nothing
  840. SeeAlso: AX=CB00h,AX=CB04h,AX=CB06h,AX=CB07h,INT 2F/AX=1702h
  841. --------U-16CB06-----------------------------
  842. INT 16 - PUPClip v1.12+ - SCROLL UP CLIPBOARD CONTENTS
  843.     AX = CB06h
  844. Return: nothing
  845. SeeAlso: AX=CB00h,AX=CB05h,AX=CB07h
  846. --------U-16CB07-----------------------------
  847. INT 16 - PUPClip v1.12+ - SCROLL DOWN CLIPBOARD CONTENTS
  848.     AX = CB07h
  849. Return: nothing
  850. SeeAlso: AX=CB00h,AX=CB05h,AX=CB06h
  851. --------U-16CB08-----------------------------
  852. INT 16 - PUPClip v1.12+ - POP UP
  853.     AX = CB08h
  854. Return: CF clear if successful
  855.     CF set on error (unsupported video mode)
  856. SeeAlso: AX=CB00h
  857. --------U-16D724CX00CB-----------------------
  858. INT 16 U - APCAL v3.20 - GET ???
  859.     AX = D724h
  860.     CX = 00CBh
  861. Return: AX = 0000h
  862.     BX = 0000h
  863.     DX:CX -> ??? or 0000h:0000h
  864. Program: APCAL is an optionally-resident shareware appointment calendar by
  865.       Gamma Software
  866. SeeAlso: AX=3577h,AX=D724h/CX=00CCh,AX=D724h/CX=00CDh
  867. --------U-16D724CX00CC-----------------------
  868. INT 16 U - APCAL v3.20 - GET ???
  869.     AX = D724h
  870.     CX = 00CCh
  871. Return: AX = 0000h
  872.     BX = 0000h
  873.     DX:CX -> ??? (apparently an internal data area)
  874. SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CDh
  875. --------U-16D724CX00CD-----------------------
  876. INT 16 U - APCAL v3.20 - GET ???
  877.     AX = D724h
  878.     CX = 00CDh
  879. Return: AX = ??? (5345h seen)
  880. SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CCh
  881. --------v-16DD--------------------------
  882. INT 16 - VIRUS - "Frumble" - INSTALLATION CHECK
  883.     AH = DDh
  884. Return: AL = DDh if resident
  885. SeeAlso: INT 13/AX=FD50h,INT 21/AX=010Fh,INT 21/AX=0B56h
  886. --------s-16DFDF-----------------------------
  887. INT 16 U - Corel PowerSCSI - FDAUDIO.COM - INSTALLATION CHECK
  888.     AX = DFDFh
  889. Return: ES:DI -> ASCII signature "FDAUDIO/CD" followed by ASCII date, i.e.
  890.       "06/18/93" if installed
  891. --------b-16E000-----------------------------
  892. INT 16 - AMI BIOS - BIOS-FLASH Interface - GET VERSION NUMBER
  893.     AX = E000h
  894. Return: CF clear if successful
  895.         AL = FAh
  896.         BX = version number (BCD) (0200h = v2.00)
  897.     CF set on error (not implemented)
  898. Notes:    this interface is available on AMI BIOSes built from AMI core version
  899.       8/8/93 (HiFlex BIOS) or 11/15/93 (WinBIOS) or later
  900.     the "Meningitis" virus uses this API when attacking a system equipped
  901.       with an AMI BIOS; it is supposedly able to write itself into the
  902.       Flash ROM and thus make itself part of the BIOS
  903. SeeAlso: AX=E001h,AX=E004h,AX=E006h,AX=E008h,AX=E00Ah,AX=E00Bh,AX=E0FFh
  904. --------b-16E001-----------------------------
  905. INT 16 - AMI BIOS - BIOS-FLASH Interface - GET CHIPSET SAVE/RESTORE SIZE
  906.     AX = E001h
  907. Return: CF clear if successful
  908.         AL = FAh
  909.         BX = number of bytes required to save chipset configuration
  910.     CF set on error
  911. SeeAlso: AX=E000h,AX=E002h,AX=E003h
  912. --------b-16E002-----------------------------
  913. INT 16 - AMI BIOS - BIOS-FLASH Interface - SAVE CHIPSET STATUS & PREPARE CHPSET
  914.     AX = E002h
  915.     ES:DI -> buffer for storing chipset status
  916. Return: CF clear if successful
  917.         AL = FAh
  918.     CF set on error
  919. SeeAlso: AX=E000h,AX=E001h,AX=E003h
  920. --------b-16E003-----------------------------
  921. INT 16 - AMI BIOS - BIOS-FLASH Interface -  RESTORE CHIPSET STATUS
  922.     AX = E003h
  923.     ES:DI -> buffer in which chipset status was previously stored
  924. Return: CF clear if successful
  925.         AL = FAh
  926.     CF set on error
  927. SeeAlso: AX=E000h,AX=E001h,AX=E002h
  928. --------b-16E004-----------------------------
  929. INT 16 - AMI BIOS - BIOS-FLASH Interface - LOWER PROGRAMMING VOLTAGE Vpp
  930.     AX = E004h
  931. Return: CF clear if successful
  932.         AL = FAh
  933.     CF set on error
  934. Note:    this function does not return until the voltage level stabilizes
  935. SeeAlso: AX=E000h,AX=E005h,AX=E006h
  936. --------b-16E005-----------------------------
  937. INT 16 - AMI BIOS - BIOS-FLASH Interface - RAISE PROGRAMMING VOLTAGE Vpp
  938.     AX = E005h
  939. Return: CF clear if successful
  940.         AL = FAh
  941.     CF set on error
  942. Note:    this function does not return until the voltage level stabilizes
  943. SeeAlso: AX=E000h,AX=E004h,AX=E007h
  944. --------b-16E006-----------------------------
  945. INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH WRITE PROTECT
  946.     AX = E006h
  947. Return: CF clear if successful
  948.         AL = FAh
  949.     CF set on error
  950. Note:    this function performs any delay required to allow the Flash ROM to
  951.       stabilize in the write-protected state
  952. SeeAlso: AX=E000h,AX=E004h,AX=E007h
  953. --------b-16E007-----------------------------
  954. INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH WRITE ENABLE
  955.     AX = E007h
  956. Return: CF clear if successful
  957.         AL = FAh
  958.     CF set on error
  959. Note:    this function performs any delay required to allow the Flash ROM to
  960.       stabilize in the write-enabled state
  961. SeeAlso: AX=E000h,AX=E005h,AX=E006h,AX=E008h
  962. --------b-16E008-----------------------------
  963. INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH SELECT
  964.     AX = E008h
  965. Return: CF clear if successful
  966.         AL = FAh
  967.     CF set on error
  968. Desc:    select the Flash ROM if the system contains both EPROM and Flash ROM
  969. Note:    this function performs any delay required to allow the Flash ROM to
  970.       stabilize in the selected state; if no EPROM is present, this
  971.       function always returns successfully
  972. SeeAlso: AX=E000h,AX=E007h,AX=E009h
  973. --------b-16E009-----------------------------
  974. INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH DE-SELECT
  975.     AX = E009h
  976. Return: CF clear if successful
  977.         AL = FAh
  978.     CF set on error
  979. Desc:    select the EPROM if the system contains both EPROM and Flash ROM
  980. Note:    this function performs any delay required to allow the Flash ROM to
  981.       stabilize in the de-selected state; if no EPROM is present, this
  982.       function always returns successfully
  983. SeeAlso: AX=E000h,AX=E006h,AX=E008h
  984. --------b-16E00A-----------------------------
  985. INT 16 - AMI BIOS - BIOS-FLASH Interface - VERIFY ALLOCATED MEMORY
  986.     AX = E00Ah
  987.     BX = number of paragraphs
  988.     ES = starting segment of memory
  989. Return: CF clear if successful
  990.         AL = FAh
  991.     CF set on error
  992. Desc:    determine whether the specified memory may be used for flash
  993.       programming
  994. Note:    always returns error if BX is zero on entry
  995. SeeAlso: AX=E000h,AX=E00Bh
  996. --------b-16E00B-----------------------------
  997. INT 16 - AMI BIOS - BIOS-FLASH Interface - SAVE INTERNAL CACHE STATUS
  998.     AX = E00Bh
  999.     ES:DI -> buffer for internal cache status (minimum 4Kbytes)
  1000. Return: CF clear if successful
  1001.         AL = FAh
  1002.     CF set on error
  1003. Note:    always returns error if the hardware does not contain internal
  1004.       cache or this call is made in protected mode
  1005. SeeAlso: AX=E000h,AX=E00Ah,AX=E00Ch
  1006. --------b-16E00C-----------------------------
  1007. INT 16 - AMI BIOS - BIOS-FLASH Interface - RESTORE INTERNAL CACHE STATUS
  1008.     AX = E00Ch
  1009.     ES:DI -> buffer containing internal cache status (minimum 4Kbytes)
  1010. Return: CF clear if successful
  1011.         AL = FAh
  1012.     CF set on error
  1013. Note:    always returns error if the hardware does not contain internal
  1014.       cache or this call is made in protected mode
  1015. SeeAlso: AX=E000h,AX=E00Bh
  1016. --------t-16E0E0-----------------------------
  1017. INT 16 - TurboPower TSRs - ALTERNATE INSTALLATION CHECK
  1018.     AX = E0E0h
  1019. Return: AX = 1F1Fh if installed
  1020.         DWORD 0040h:00F0h -> last data block in TSR list (see #0539)
  1021. Note:    the returned TSR list provides support for communication among TSRs
  1022.       built with TurboPower's Turbo Professional and Object Professional
  1023.       libraries for Turbo Pascal
  1024. SeeAlso: AX=F0F0h
  1025. --------b-16E0FF-----------------------------
  1026. INT 16 - AMI BIOS - BIOS-FLASH Interface - GENERATE CPU RESET
  1027.     AX = E0FFh
  1028. Return: never
  1029. SeeAlso: AX=E000h,INT 14/AH=17h"FOSSIL"
  1030. --------U-16ED--BHED-------------------------
  1031. INT 16 - BORLAND TURBO LIGHTNING - API
  1032.     AH = EDh
  1033.     BH = EDh
  1034.     BL = function
  1035.         00h installation check
  1036.         Return: AX = 5205h
  1037.             CH = major version
  1038.             CL = minor version
  1039.         01h identical to function 00h???
  1040.         02h get resident data segment
  1041.         Return: AX = data segment of resident portion
  1042.         03h get resident ???
  1043.         Return: AX = offset of some buffer in resident code seg
  1044.         04h redefine auxiliary dictionary
  1045.         DS:SI -> counted filename string
  1046.         Return: AL = result code
  1047.         05h select active environment
  1048.         AL = environment (00h to 0Ch)
  1049.         Return: AX = status
  1050.                 0000h if OK
  1051.                 0001h if out of range
  1052.         06h toggle AutoProof???
  1053.         AL = state (00h off, 01h on)
  1054.         07h ???
  1055.         08h ???
  1056.         AL = char???
  1057.         CX = ???
  1058.         DX = ???
  1059.         Return: AX = 0, 1 or 2
  1060.         09h ???
  1061.         0Ah ???
  1062.         CX = ???
  1063.         DX = ???
  1064.         Return: AX = ???
  1065.         0Bh check dictionary integrity???
  1066.         DS:SI -> counted dictionary filename string
  1067.         Return: AX = 0, 40h, 80h
  1068.         0Ch spellcheck string (disk dictionary, possibly RAM dict as well)
  1069.         DS:SI -> counted string to check
  1070.         Return: AH = 0
  1071.             AL = result code
  1072.                00h string found in dictionary
  1073.                20h string begins more than one word
  1074.                40h string not found
  1075.         0Dh set ???
  1076.         (sets an internal flag)
  1077.         0Eh spellcheck string (RAM dictionary only)
  1078.         DS:SI -> counted string to check
  1079.         Return: AH = 00h
  1080.             AL = result code
  1081.                 00h string found in dictionary
  1082.                 01h string not found
  1083.                 02h ???
  1084.         0Fh ???
  1085.         10h ???
  1086. Notes:    AX in general returns an error code from most functions.
  1087. Index:    installation check;Turbo Lightning
  1088. --------U-16EF-------------------------------
  1089. INT 16 - CALCULATOR - INSTALLATION CHECK
  1090.     AH = EFh
  1091. Return: AX = 0088h if installed
  1092. Program: CALCULATOR is a shareware popup calculator by Andrzej Brzezinski and
  1093.       Marek Kosznik
  1094. --------b-16F0-------------------------------
  1095. INT 16 - Compaq 386 and newer - SET CPU SPEED
  1096.     AH = F0h
  1097.     AL = speed code (see #0538)
  1098.     if AL=09h,
  1099.         CX = speed value, 1 (slowest) to 50 (full), 3 ~= 8088
  1100. Note:    also supported by some versions of AMI BIOS dated June 1992 or later;
  1101.       speed codes 0 or 1 are used for Low Speed, 2 for High Speed
  1102. SeeAlso: AH=F1h,AH=F3h
  1103.  
  1104. (Table 0538)
  1105. Values for speed code:
  1106.  00h    equivalent to 6 MHz 80286 (COMMON)
  1107.  01h    equivalent to 8 MHz 80286 (FAST)
  1108.  02h    full 16 MHz (HIGH)
  1109.  03h    toggles between 8 MHz-equivalent and speed set by system board switch
  1110.       (AUTO or HIGH)
  1111.  08h    full 16 MHz except 8 MHz-equivalent during floppy disk access
  1112.  09h    specify speed directly
  1113. --------t-16F0F0-----------------------------
  1114. INT 16 - TurboPower TSRs - INSTALLATION CHECK
  1115.     AX = F0F0h
  1116. Return: AX = 0F0Fh if installed
  1117.         ES:DI -> last data block in TSR list (see #0539)
  1118. Note:    the returned TSR list provides support for communication among TSRs
  1119.       built with TurboPower's Turbo Professional and Object Professional
  1120.       libraries for Turbo Pascal
  1121. SeeAlso: AX=E0E0h
  1122.  
  1123. Format of TurboPower TSR data block:
  1124. Offset    Size    Description    (Table 0539)
  1125.  00h    DWORD    pointer to program tag (counted ASCII string)
  1126.  04h    WORD    interface version number (0400h)
  1127.  06h    DWORD    pointer to command entry point
  1128.  0Ah    DWORD    pointer to previous data block (0000h:0000h if none)
  1129.  0Eh    DWORD    pointer to next data block (0000h:0000h if none)
  1130. ---swappable TSRs only---
  1131.  12h    DWORD    pointer to swapping data
  1132.  16h    DWORD    pointer to user data
  1133.     more???
  1134. --------b-16F1-------------------------------
  1135. INT 16 - Compaq 386 and newer - READ CURRENT CPU SPEED
  1136.     AH = F1h
  1137. Return: AL = speed code (see #0538)
  1138.     if AL = 09h, CX = speed code
  1139. Note:    also supported by some versions of AMI BIOS dated June 1992 or later
  1140. SeeAlso: AH=F0h,AH=F3h
  1141. --------b-16F2-------------------------------
  1142. INT 16 - Compaq 386 and newer - DETERMINE ATTACHED KEYBOARD TYPE
  1143.     AH = F2h
  1144. Return: AL = type
  1145.         00h if 11-bit AT keyboard is in use
  1146.         01h if 9-bit PC keyboard is in use
  1147.     AH = 00h (04/08/93 system ROM)
  1148. SeeAlso: MEM 0040h:00C2h
  1149. --------b-16F3-------------------------------
  1150. INT 16 - Compaq 80286s - SET CPU SPEED LIMIT (OVERRIDE JUMPER)
  1151.     AH = F3h
  1152.     AL = new limit
  1153.         00h limit is 6 Mhz
  1154.         01h limit is 8 Mhz/6 Mhz
  1155. SeeAlso: AH=F0h,AH=F1h
  1156. --------U-16F398-----------------------------
  1157. INT 16 U - NORTON GUIDES - INSTALLATION CHECK
  1158.     AX = F398h
  1159. Return: AX = 6A73h ("js")
  1160.     BH = BIOS scan code of current hot key
  1161.     BL = ASCII code of current hot key
  1162. Note:    NG.EXE was written by John Socha
  1163. --------b-16F400-----------------------------
  1164. INT 16 - Compaq Systempro and higher - CACHE CONTROLLER STATUS
  1165.     AX = F400h
  1166. Return: AH = E2h (*)
  1167.     AL = status
  1168.         00h not present
  1169.         01h enabled
  1170.         02h disabled
  1171.     CX = cache memory size
  1172.         bit 15:    cache size information is NOT valid
  1173.         bits 14-0:    cache memory size in kilobytes
  1174.     DH = cache write technology
  1175.         bit 7:    cache write information is NOT valid
  1176.         bits 6-1:    reserved (0)
  1177.         bit 0:    0 = Write-through caching
  1178.             1 = Write-back caching
  1179.     DL = cache type
  1180.         bit 7:    cache type information is NOT valid
  1181.         bits 6-1:    reserved (0)
  1182.         bit 0:    0 = Direct mapped
  1183.             1 = Two-way set-associative
  1184. Notes:    also supported by some versions of AMI BIOS dated June 1992 or later
  1185.     many (most) BIOSes return a modified AH when called for an unsupported
  1186.       or non-keyboard function (typically, the highest supported keyboard
  1187.       function [normally 12h] is subtracted from the original AH)
  1188. SeeAlso: AX=F401h,AX=F402h
  1189. --------b-16F401-----------------------------
  1190. INT 16 - Compaq Systempro and higher - ENABLE CACHE CONTROLLER
  1191.     AX = F401h
  1192. Return: AX = E201h
  1193. Notes:    also supported by some versions of AMI BIOS dated June 1992 or later
  1194.     many (most) BIOSes return a modified AH when called for an unsupported
  1195.       or non-keyboard function (typically, the highest supported keyboard
  1196.       function [normally 12h] is subtracted from the original AH)
  1197. SeeAlso: AX=F400h,AX=F402h
  1198. --------b-16F402-----------------------------
  1199. INT 16 - Compaq Systempro and higher - DISABLE CACHE CONTROLLER
  1200.     AX = F402h
  1201. Return: AX = E202h
  1202. Notes:    also supported by some versions of AMI BIOS dated June 1992 or later
  1203.     many (most) BIOSes return a modified AH when called for an unsupported
  1204.       or non-keyboard function (typically, the highest supported keyboard
  1205.       function [normally 12h] is subtracted from the original AH)
  1206. SeeAlso: AX=F400h,AX=F401h
  1207. --------v-16FA00DX5945-----------------------
  1208. INT 16 U - PC Tools v8+ VSAFE, VWATCH - INSTALLATION CHECK
  1209.     AX = FA00h
  1210.     DX = 5945h
  1211. Return: CF clear
  1212.     DI = 4559h
  1213.     BX = BIOS hotkey scancode (default 2F00h) (VSAFE only)
  1214.         FFFFh if disabled
  1215. Note:    MS-DOS 6.0 bundles VSAFE and VWATCH as part of its virus protection
  1216. SeeAlso: AX=FA05h,INT 13/AH=FAh,INT 21/AH=FAh"VDEFEND",INT 2F/AX=6282h
  1217. --------v-16FA01DX5945-----------------------
  1218. INT 16 U - PC Tools v8+ VSAFE, VWATCH - UNINSTALL
  1219.     AX = FA01h
  1220.     DX = 5945h
  1221. Return: CF clear if successful
  1222.     DI = 4559h
  1223. SeeAlso: AX=FA00h
  1224. --------v-16FA02DX5945-----------------------
  1225. INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET/SET OPTIONS
  1226.     AX = FA02h
  1227.     DX = 5945h
  1228.     BL = new parameter flags (see #0540)
  1229. Return: CF clear
  1230.     DI = 4559h
  1231.     CL = old value of parameter flags
  1232.  
  1233. Bitfields for VSAFE/VWATCH parameter flags:
  1234. Bit(s)    Description    (Table 0540)
  1235.  7    Protect executable files
  1236.  6    Protect FD boot sector
  1237.  5    Protect HD boot sector
  1238.  4    Boot sector viruses
  1239.  3    Check executable files
  1240.  2    General write protect
  1241.  1    Resident
  1242.  0    HD Low level format
  1243. --------v-16FA03DX5945-----------------------
  1244. INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET ???
  1245.     AX = FA03h
  1246.     DX = 5945h
  1247. Return: CF clear
  1248.     DI = 4559h
  1249.     AX = 0002h
  1250. --------v-16FA04DX5945-----------------------
  1251. INT 16 U - PC Tools v8+ VSAFE - GET HOTKEY DISABLE FLAG
  1252.     AX = FA04h
  1253.     DX = 5945h
  1254. Return: CF clear
  1255.     DI = 4559h
  1256.     BL = hotkey disable flag (nonzero if hotkey disabled)
  1257. Note:    this function is a NOP under VWATCH, merely returning CF clear/DI=4559h
  1258. SeeAlso: AX=FA00h,AX=FA05h
  1259. --------v-16FA05DX5945-----------------------
  1260. INT 16 U - PC Tools v8+ VSAFE - SET HOTKEY DISABLE FLAG
  1261.     AX = FA05h
  1262.     DX = 5945h
  1263.     BL = new value of hotkey disable flag (nonzero to disable hotkey)
  1264. Return: CF clear
  1265.     DI = 4559h
  1266. Note:    this function is a NOP under VWATCH, merely returning CF clear/DI=4559h
  1267. SeeAlso: AX=FA00h,AX=FA04h
  1268. --------v-16FA06DX5945-----------------------
  1269. INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET NETWORK DRIVES TEST FLAG
  1270.     AX = FA06h
  1271.     DX = 5945h
  1272. Return: CF clear
  1273.     DI = 4559h
  1274.     BL = test status
  1275.         00h don't monitor network drives (default for VWATCH v2.1)
  1276.         FFh monitor network drives (default for VSAFE v2.0)
  1277.     CL = ??? (only VSAFE 2.0)
  1278. SeeAlso: AX=FA07h
  1279. --------v-16FA07DX5945-----------------------
  1280. INT 16 U - PC Tools v8+ VSAFE, VWATCH - SET NETWORK DRIVES TEST FLAG
  1281.     AX = FA07h
  1282.     DX = 5945h
  1283.     BL = new state
  1284.         00h don't monitor
  1285.         01h monitor network drives
  1286. Return: CF clear
  1287.     DI = 4559h
  1288. Note:    VWATCH v2.1 (from PC Tools 9.0) returns CF set instead
  1289. SeeAlso: AX=FA00h,AX=FA06h
  1290. --------v-16FA08DX5945-----------------------
  1291. INT 16 U - PC Tools v9+ VWATCH v2.1 - ???
  1292.     AX = FA08h
  1293.     DX = 5945h
  1294. Return: CF clear
  1295.     DI = 4559h
  1296.     AX = ??? (0002h)
  1297.     BX = version (BH=major, BL=two-digit minor)
  1298. Note:    this function is not supported by the PC Tools 9.0 VSAFE v2.0
  1299. SeeAlso: AX=FA00h,AX=FA06h
  1300. --------U-16FE55-----------------------------
  1301. INT 16 U - PC Tools v8+ programs - GET ???
  1302.     AX = FE55h
  1303.     CX = segment of resident program or 0000h for last loaded
  1304.     DX = 0000h
  1305. Return: DX = resident code segment (unchanged if CX=0000h on entry)
  1306.     AX = ??? or 0000h
  1307. Note:    this call is supported by CPSCHED, CPTASK, DATAMON, DPROTECT, DRIVEMAP,
  1308.       and DSKLIGHT beginning in PC Tools v8.0; programs other than CPTASK
  1309.       seem to hook it merely to return the same AX as the CPTASK loaded
  1310.       prior to them returned
  1311. --------U-16FEA4-----------------------------
  1312. INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - RESET ???
  1313.     AX = FEA4h
  1314. Return: nothing
  1315. Note:    this function is identical to AX=FFA4h, and is implemented by the same
  1316.       code in DESKTOP
  1317. SeeAlso: AX=FFA4h
  1318. --------U-16FEC6-----------------------------
  1319. INT 16 U - PC Tools v7+ CPSCHED - ENABLE/DISABLE CPSCHED API
  1320.     AX = FEC6h
  1321.     BL = new state (00h enabled, nonzero disabled)
  1322. Return: nothing
  1323. Desc:    specify whether CPSCHED API calls other than this one and AX=FE55h will
  1324.       be honored
  1325. --------U-16FED3-----------------------------
  1326. INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - ???
  1327.     AX = FED3h
  1328.     DS:SI -> 92-byte data record for ???
  1329. Return: ???
  1330. Note:    this function is identical to AX=FFD3h, and is implemented by the same
  1331.       code in DESKTOP
  1332. SeeAlso: AX=FFD3h
  1333. --------U-16FEDC-----------------------------
  1334. INT 16 U - PC Tools v7+ CPSCHED - UNHOOK INTERRUPTS
  1335.     AX = FEDCh
  1336. Return: AX,DX destroyed
  1337. Index:    uninstall;CPSCHED
  1338. --------U-16FEEFCX0000-----------------------
  1339. INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - INSTALLATION CHECK
  1340.     AX = FEEFh
  1341.     CX = 0000h
  1342. Return: CX = ABCDh if PC Tools scheduler (CPSCHED or DESKTOP) installed
  1343.         BX = segment of resident portion
  1344.         DX = (CPSCHED v8.0) resident CS
  1345. Note:    this function is identical to AX=FFD3h, and is implemented by the same
  1346.       code in DESKTOP
  1347. SeeAlso: AX=FFEFh
  1348. --------U-16FEF1-----------------------------
  1349. INT 16 U - PC Tools v7 only CPSCHED/DESKTOP - ALTERNATE INSTALLATION CHECK
  1350.     AX = FEF1h
  1351.     BX = ???
  1352. Return: CX = 5555h if PC Tools scheduler (CPSCHED or DESKTOP) installed
  1353.     DX = 5555h
  1354. Note:    this function is identical to AX=FFD3h, and is implemented by the same
  1355.       code in DESKTOP
  1356. SeeAlso: AX=FFF1h
  1357. --------K-16FF-------------------------------
  1358. INT 16 - KEYBOARD - KBUF extensions - ADD KEY TO TAIL OF KEYBOARD BUFFER
  1359.     AH = FFh
  1360.     DX = scan code
  1361. Return: AL = status
  1362.         00h success
  1363.         01h failure
  1364. Program: KBUF is a keyboard buffer expander by Mark Adler
  1365. SeeAlso: AH=05h
  1366. --------V-16FF-------------------------------
  1367. INT 16 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY ZOOM INTERRUPT
  1368.     AH = FFh
  1369. Return: AL = interrupt number to which BIOS keyboard handler has been relocated
  1370.     AL+1 = Zoom interrupt number
  1371.     BX = hotkey
  1372. Notes:    the default interrupts are 60h for keyboard and 61h for Zoom interrupt;
  1373.       the default hot key is F10
  1374.     not all vendors include the Tseng TSR which supports these functions
  1375. SeeAlso: INT 61/AX=0000h"OPTIMA",INT 61/AX=0005h"OPTIMA"
  1376. Index:    hotkeys;OPTIMA 1024 VGA
  1377. ----------16FF--BH00-------------------------
  1378. INT 16 - FREEZE.COM - INSTALLATION CHECK
  1379.     AH = FFh
  1380.     BH = 00h
  1381. Return: BH = FFh if installed
  1382. Program: FREEZE is a PC Magazine utility
  1383. --------d-16FF70BX0000-----------------------
  1384. INT 16 U - PC Tools v8+ DRIVEMAP - INSTALLATION CHECK
  1385.     AX = FF70h
  1386.     BX = 0000h
  1387.     CX = 4C69h ('Li')
  1388.     DX = 6E6Bh ('nk')
  1389. Return: AX = 0000h
  1390.     CX = 4350h ('CP')
  1391.     DH = major version
  1392.     DL = minor version
  1393. Program: DRIVEMAP is a redirector which allows drives on computers connected
  1394.       over the parallel or serial ports to appear as local drives
  1395. SeeAlso: AX=FF70h/BX=0001h,AX=FF70h/BX=0002h
  1396. --------d-16FF70BX0001-----------------------
  1397. INT 16 U - PC Tools v8+ DRIVEMAP - ???
  1398.     AX = FF70h
  1399.     BX = 0001h
  1400.     DL = ???
  1401. Return: AX = ???
  1402.     DH = ???
  1403. SeeAlso: AX=FF70h/BX=0000h,AX=FF70h/BX=0002h
  1404. --------d-16FF70BX0002-----------------------
  1405. INT 16 U - PC Tools v8+ DRIVEMAP - ???
  1406.     AX = FF70h
  1407.     BX = 0002h
  1408.     CX = ???
  1409.     DX = ???
  1410. Return: AX = ??? or FFFEh/FFFFh on error
  1411.     DL = ???
  1412. BUG:    DRIVEMAP will branch to random locations for BX values other than
  1413.       those listed above for v8.0-9.0 because a) the incorrect register is
  1414.       range-tested, resulting in BX=0003h-5CD6h being accepted as valid
  1415.       function numbers, and b) the conditional which branches on invalid
  1416.       function numbers jumps to the following instruction, becoming a NOP
  1417. SeeAlso: INT 2F/AX=9203h"DRIVEMAP"
  1418. Index:    installation check;DRIVEMAP
  1419. --------T-16FF80BX0000-----------------------
  1420. INT 16 U - PC Tools v8+ CPTASK - INSTALLATION CHECK
  1421.     AX = FF80h
  1422.     BX = 0000h
  1423.     CX = 0000h
  1424.     DX = 0000h
  1425. Return: CX = 5555h if installed
  1426. Program: CPTASK is a task switcher by Central Point Software
  1427. --------T-16FF80BX0001-----------------------
  1428. INT 16 U - PC Tools v8+ CPTASK - GET ???
  1429.     AX = FF80h
  1430.     BX = 0001h
  1431.     ???
  1432. Return: DX:SI -> task list??? (ten entries of 70h bytes in v9.0)
  1433.     BX = ??? (PSP segment of resident code???)
  1434. --------T-16FF80BX0002-----------------------
  1435. INT 16 U - PC Tools v8+ CPTASK - GET ???
  1436.     AX = FF80h
  1437.     BX = 0002h
  1438. Return: DX:SI -> ???
  1439. --------T-16FF80BX0003-----------------------
  1440. INT 16 U - PC Tools v8+ CPTASK - GET ??? FLAGS
  1441.     AX = FF80h
  1442.     BX = 0003h
  1443. Return: AX = flags (see #0541)
  1444. SeeAlso: AX=FF80h/BX=0004h,AX=FF80h/BX=0006h
  1445.  
  1446. Bitfields for CPTASK flags:
  1447. Bit(s)    Description    (Table 0541)
  1448.  10    ???
  1449.  13    ???
  1450.  14    ???
  1451.  15    ???
  1452. --------T-16FF80BX0004-----------------------
  1453. INT 16 U - PC Tools v8+ CPTASK - SET ???
  1454.     AX = FF80h
  1455.     BX = 0004h
  1456.     CX = new value of ???
  1457. Return: ???
  1458. Note:    this function also sets bit 14 of the flags word returned by
  1459.       AX=FF80h/BX=0003h
  1460. --------T-16FF80BX0005-----------------------
  1461. INT 16 U - PC Tools v8+ CPTASK - GET NUMBER OF ACTIVE TASKS???
  1462.     AX = FF80h
  1463.     BX = 0005h
  1464. Return: AX = number of active tasks???
  1465. --------T-16FF80BX0006-----------------------
  1466. INT 16 U - PC Tools v8+ CPTASK - GET AND CLEAR ??? FLAG
  1467.     AX = FF80h
  1468.     BX = 0006h
  1469. Return: AX = old state (0000h clear, 0001h set)
  1470. Note:    the tested flag is bit 13 of the flags returned by AX=FF80h/BX=0003h
  1471. --------T-16FF80BX0007-----------------------
  1472. INT 16 U - PC Tools v8+ CPTASK - ???
  1473.     AX = FF80h
  1474.     BX = 0007h
  1475.     ES:DI -> ???
  1476.     ???
  1477. Return: ???
  1478. --------T-16FF80BX0008-----------------------
  1479. INT 16 U - PC Tools v8+ CPTASK - ???
  1480.     AX = FF80h
  1481.     BX = 0008h
  1482.     ???
  1483. Return: ???
  1484. --------T-16FF80BX0009-----------------------
  1485. INT 16 U - PC Tools v8+ CPTASK - GET ???
  1486.     AX = FF80h
  1487.     BX = 0009h
  1488. Return: CL = ???
  1489.     CH = ??? (01h or 02h)
  1490. --------T-16FF80BX000A-----------------------
  1491. INT 16 U - PC Tools v9+ CPTASK - SET ???
  1492.     AX = FF80h
  1493.     BX = 000Ah
  1494.     DS:SI -> 128-byte buffer containing ???
  1495. --------T-16FF80BX000B-----------------------
  1496. INT 16 U - PC Tools v9+ CPTASK - SET ???
  1497.     AX = FF80h
  1498.     BX = 000Bh
  1499.     DX = index of ??? task (1-10)
  1500. --------T-16FF80BX000C-----------------------
  1501. INT 16 U - PC Tools v9+ CPTASK - SET IDLE??? DELAY
  1502.     AX = FF80h
  1503.     BX = 000Ch
  1504.     CX = new delay time in minutes
  1505. --------T-16FF80BX4350-----------------------
  1506. INT 16 U - PC Tools v8+ CPTASK - UNINSTALL
  1507.     AX = FF80h
  1508.     BX = 4350h ('CP')
  1509.     CX = 5354h ('ST')
  1510. Return: never returns; terminates all tasks and exits to program originally
  1511.       calling CPTASK
  1512. --------U-16FF90-----------------------------
  1513. INT 16 U - PC Tools v8+ DESKTOP - ???
  1514.     AX = FF90h
  1515.     ???
  1516. Return: ???
  1517. Note:    available only when popped up
  1518. --------U-16FF91-----------------------------
  1519. INT 16 U - PC Tools v7+ DESKTOP - ???
  1520.     AX = FF91h
  1521.     ???
  1522. Return: AX = 0000h
  1523. Note:    calls AX=FFFDh after ???
  1524. SeeAlso: AX=FF92h,AX=FFFDh
  1525. --------U-16FF92-----------------------------
  1526. INT 16 U - PC Tools v7+ DESKTOP - ???
  1527.     AX = FF92h
  1528.     ???
  1529. Return: AX = 0000h
  1530. Note:    like AX=FF91h, but temporarily sets ??? to 3
  1531. SeeAlso: AX=FF91h,AX=FFFDh
  1532. --------U-16FF93-----------------------------
  1533. INT 16 U - PC Tools v7+ DESKTOP - SET ??? FLAG
  1534.     AX = FF93h
  1535. --------U-16FF94-----------------------------
  1536. INT 16 U - PC Tools v7+ DESKTOP - SET ???
  1537.     AX = FF94h
  1538.     CX = ??? (default 0017h)
  1539. --------U-16FF95-----------------------------
  1540. INT 16 U - PC Tools v7+ DESKTOP - SET ???
  1541.     AX = FF95h
  1542.     BX = ???
  1543. --------U-16FF96-----------------------------
  1544. INT 16 U - PC Tools v7+ DESKTOP - ???
  1545.     AX = FF96h
  1546.     CL = ???
  1547. Return: AX = ???
  1548. --------U-16FF97-----------------------------
  1549. INT 16 U - PC Tools v7+ DESKTOP - ???
  1550.     AX = FF97h
  1551.     DS:DX -> buffer for ??? (see #0542)
  1552. Return: ???
  1553.  
  1554. Format of PC Tools DESKTOP buffer:
  1555. Offset    Size    Description    (Table 0542)
  1556.  00h 48 BYTEs    ???
  1557.  30h 128 BYTEs    ???
  1558. --------U-16FF98-----------------------------
  1559. INT 16 U - PC Tools v7+ DESKTOP - OPEN \DESK.OVL FILE AND SEEK TO OVERLAY
  1560.     AX = FF98h
  1561.     DX = byte offset in file of overlay header (see #0543)
  1562. Return: BX = file handle for DESK.OVL file
  1563. Desc:    open the DESK.OVL file, seek to the specified offset, read in the
  1564.       overlay header, and seek to the offset specified by the header
  1565.  
  1566. Format of PC Tools DESKTOP overlay header:
  1567. Offset    Size    Description    (Table 0543)
  1568.  00h 12 BYTEs    NUL-padded ASCII overlay filename
  1569.  0Ch    DWORD    offset within DESK.OVL file of actual overlay
  1570. --------U-16FF99-----------------------------
  1571. INT 16 U - PC Tools v7+ DESKTOP - ???
  1572.     AX = FF99h
  1573.     ???
  1574. Return: ???
  1575. --------U-16FF9A-----------------------------
  1576. INT 16 U - PC Tools v7+ DESKTOP - GET NAME OF COLOR SCHEME
  1577.     AX = FF9Ah
  1578. Return: ES:BX -> name of current color scheme
  1579. Note:    available even if not popped up
  1580. --------U-16FF9B-----------------------------
  1581. INT 16 U - PC Tools v7+ DESKTOP - UNUSED
  1582.     AX = FF9Bh
  1583. Return: ???
  1584. Note:    sounds triple-length beep
  1585. --------T-16FF9C-----------------------------
  1586. INT 16 U - PC Tools v8+ CPTASK - SET/CLEAR ??? POINTER
  1587.     AX = FF9Ch
  1588.     BL = function
  1589.         00h set ??? pointer
  1590.         DS:SI -> ???
  1591.         01h clear pointer to 0000h:0000h
  1592. ----------16FF9D-----------------------------
  1593. INT 16 U - PC Tools v8+ CPTASK, VSAFE - ???
  1594.     AX = FF9Dh
  1595.     ES:BX -> ??? word
  1596. Return: ???
  1597. Note:    if ES is non-zero, the word pointed at by ES:BX determines whether the
  1598.       ??? flag is cleared (word = 0000h) or set (word is nonzero).    The
  1599.       flag is always cleared if ES=0000h.
  1600. --------U-16FF9E-----------------------------
  1601. INT 16 U - PC Tools v7+ DESKTOP - ???
  1602.     AX = FF9Eh
  1603.     DL = ???
  1604.         bit 7: ???
  1605.         bits 6-0: function number??? (00h,01h,other)
  1606.     ???
  1607. Return: ???
  1608. --------U-16FFA1-----------------------------
  1609. INT 16 U - PC Tools v7+ DESKTOP - ???
  1610.     AX = FFA1h
  1611.     ???
  1612. Return: ???
  1613. Note:    same as AX=FFA2h, except ??? set to FFh
  1614. SeeAlso: AX=FFA2h
  1615. --------U-16FFA2-----------------------------
  1616. INT 16 U - PC Tools v7+ DESKTOP - ???
  1617.     AX = FFA2h
  1618.     ???
  1619. Return: ???
  1620. Note:    calls AX=FFC7h (remove window) and AX=FFFDh
  1621. SeeAlso: AX=FFA1h,AX=FFC7h,AX=FFFDh
  1622. --------y-16FFA3BX0000-----------------------
  1623. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - INSTALLATION CHECK
  1624.     AX = FFA3h
  1625.     BX = 0000h
  1626.     CX = 0000h
  1627. Return: AX = segment of resident code
  1628.     BX = 5555h
  1629.     CX = 5555h
  1630. Note:    also supported by DOS 6 UNDELETE which is licensed from PC Tools
  1631. SeeAlso: INT 21/AH=3Fh"NB.SYS",INT 21/AX=4101h,INT 2F/AX=6284h
  1632. --------y-16FFA3BX0001-----------------------
  1633. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
  1634.     AX = FFA3h
  1635.     BX = 0001h
  1636.     CX = 0001h
  1637. Return: AX:BX -> ???
  1638.     CX = BX
  1639. --------y-16FFA3BX0002-----------------------
  1640. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
  1641.     AX = FFA3h
  1642.     BX = 0002h
  1643.     CX = 0002h
  1644. Return: AX = ??? (0 or 1)
  1645.     CX = BX = AX
  1646. --------y-16FFA3BX0003-----------------------
  1647. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
  1648.     AX = FFA3h
  1649.     BX = 0003h
  1650.     CX = 0003h
  1651. Return: AX = ??? (0 or 1)
  1652.     CX = BX = AX
  1653. --------y-16FFA3BX0004-----------------------
  1654. INT 16 U - PC Tools v7+ DATAMON - SET ??? FLAG
  1655.     AX = FFA3h
  1656.     BX = 0004h
  1657.     CX = 0004h
  1658. SeeAlso: AX=FFA3h/BX=0005h
  1659. --------y-16FFA3BX0005-----------------------
  1660. INT 16 U - PC Tools v7+ DATAMON - CLEAR ??? FLAG
  1661.     AX = FFA3h
  1662.     BX = 0005h
  1663.     CX = 0005h
  1664. SeeAlso: AX=FFA3h/BX=0004h
  1665. --------y-16FFA3BX0006-----------------------
  1666. INT 16 U - PC Tools v7+ DATAMON - SET PSP SEGMENT ???
  1667.     AX = FFA3h
  1668.     BX = 0006h
  1669.     CX = 0006h
  1670.     DX = current PSP segment as known to DOS??? or 0000h
  1671. --------d-16FFA3BXFFA3-----------------------
  1672. INT 16 U - PC Tools v9 DSKLIGHT - INSTALLATION CHECK
  1673.     AX = FFA3h
  1674.     BX = FFA3h
  1675.     CX = FFA3h
  1676. Return: BX = CX = 5555h if installed
  1677.         AX = resident code segment
  1678. Program: DSKLIGHT is a TSR included with PC Tools v9+ which displays a disk-
  1679.       access indicator on the screen; in v7 and v8, this function was
  1680.       provided by DATAMON
  1681. Note:    DSKLIGHT chains to the previous handler if BX or CX is not FFA3h
  1682. --------U-16FFA4-----------------------------
  1683. INT 16 U - PC Tools v7-8 DESKTOP - ???
  1684.     AX = FFA4h
  1685. Return: ???
  1686. Notes:    available even when not popped up
  1687.     sets unknown flag if ??? conditions met
  1688. SeeAlso: AX=FEA4h
  1689. --------c-16FFA5CX1111-----------------------
  1690. INT 16 - PC-Cache v6+ - INSTALLATION CHECK
  1691.     AX = FFA5h
  1692.     CX = 1111h
  1693. Return: CH = 00h if installed
  1694.         ES:DI -> internal data (see #0544)
  1695.         CL = cache state
  1696.         01h enabled
  1697.         02h disabled
  1698. SeeAlso: INT 13/AH=27h,INT 13/AH=A0h,INT 21/AH=2Bh/CX=4358h
  1699.  
  1700. Format of PC-Cache internal data:
  1701. Offset    Size    Description    (Table 0544)
  1702. -1Ch 20 BYTEs    cached drive list, one byte per drive A: to T:
  1703.         each byte is either blank (20h) or drive letter (41h-54h)
  1704.  -8    BYTE    ???
  1705.  -7    WORD    number of physical transfers (scaled down to 0000h-7FFFh)
  1706.  -5    WORD    number of saved transfers (scaled down to 0000h-7FFFh)
  1707.  -3   3 BYTEs    ???
  1708. --------c-16FFA5CXAAAA-----------------------
  1709. INT 16 - PC-Cache v6+ - ENABLE DELAYED WRITES
  1710.     AX = FFA5h
  1711.     CX = AAAAh
  1712. Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
  1713. SeeAlso: AX=FFA5h/CX=CCCCh
  1714. --------c-16FFA5CXCCCC-----------------------
  1715. INT 16 - PC-Cache v6+ - FLUSH CACHE AND DISABLE DELAYED WRITES
  1716.     AX = FFA5h
  1717.     CX = CCCCh
  1718. Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
  1719. Note:    delayed writes are automatically disabled on EXECing
  1720.       (see INT 21/AH=4Bh) a program named either WIN.CO? or DV.E??;
  1721.       however, delayed writes are not automatically reenabled upon the
  1722.       program's termination in v6.
  1723. SeeAlso: AX=FFA5h/CX=AAAAh,AX=FFA5h/CX=FFFFh
  1724. --------c-16FFA5CXDDDD-----------------------
  1725. INT 16 - PC-Cache v6+ - FLUSH AND DISABLE CACHE
  1726.     AX = FFA5h
  1727.     CX = DDDDh
  1728. SeeAlso: AX=FFA5h/CX=EEEEh,AX=FFA5h/CX=FFFFh
  1729. --------c-16FFA5CXEEEE-----------------------
  1730. INT 16 - PC-Cache v6+ - ENABLE CACHE
  1731.     AX = FFA5h
  1732.     CX = EEEEh
  1733. SeeAlso: AX=FFA5h/CX=DDDDh
  1734. --------c-16FFA5CXFFFF-----------------------
  1735. INT 16 - PC-Cache v6+ - FLUSH CACHE
  1736.     AX = FFA5h
  1737.     CX = FFFFh
  1738. SeeAlso: AX=FFA5h/CX=CCCCh,AX=FFA5h/CX=DDDDh,INT 13/AH=A1h
  1739. --------U-16FFA6-----------------------------
  1740. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
  1741.     AX = FFA6h
  1742. Return: DS:SI -> ???
  1743. Note:    available only when popped up
  1744. --------U-16FFA7-----------------------------
  1745. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ??? PATH
  1746.     AX = FFA7h
  1747. Return: DS:SI -> ASCIZ path (directory from which PCTools was run???)
  1748. --------U-16FFA8-----------------------------
  1749. INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
  1750.     AX = FFA8h
  1751.     DS:SI -> three consecutive ASCIZ strings for ??? (max 256 bytes total)
  1752.     ???
  1753. Return: ???
  1754. Notes:    available only when popped up
  1755.     strings copied into internal buffer, among other actions
  1756. --------U-16FFA9-----------------------------
  1757. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET VERSION STRING
  1758.     AX = FFA9h
  1759. Return: DS:SI -> version string
  1760. --------U-16FFAA-----------------------------
  1761. INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
  1762.     AX = FFAAh
  1763.     ???
  1764. Return: ???
  1765. Note:    available only when popped up
  1766. --------U-16FFAB-----------------------------
  1767. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET EDITOR SETTINGS???
  1768.     AX = FFABh
  1769. Return: DS:SI -> editor setting strings???
  1770. --------U-16FFAC-----------------------------
  1771. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  1772.     AX = FFACh
  1773.     DL = ???
  1774. Note:    available only when popped up
  1775. --------U-16FFAD-----------------------------
  1776. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  1777.     AX = FFADh
  1778.     DL = ???
  1779. --------U-16FFAE-----------------------------
  1780. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
  1781.     AX = FFAEh
  1782. Return: AL = ???
  1783. --------U-16FFAF-----------------------------
  1784. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  1785.     AX = FFAFh
  1786.     DL = ???
  1787. --------U-16FFB0-----------------------------
  1788. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  1789.     AX = FFB0h
  1790.     BL = ???
  1791. --------U-16FFB1-----------------------------
  1792. INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
  1793.     AX = FFB1h
  1794.     ???
  1795. Return: ???
  1796. --------U-16FFB2-----------------------------
  1797. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
  1798.     AX = FFB2h
  1799. Return: DS:SI -> ???
  1800. --------U-16FFB3-----------------------------
  1801. INT 16 U - PC Tools v5.5-8.0 DESKTOP - ???
  1802.     AX = FFB3h
  1803.     ???
  1804. Return: ???
  1805. Note:    available only when popped up
  1806. --------U-16FFB4-----------------------------
  1807. INT 16 U - PC Tools v5.5-8.0 DESKTOP - SET ??? FLAG
  1808.     AX = FFB4h
  1809. Note:    available only when popped up
  1810. SeeAlso: AX=FFBBh
  1811. --------U-16FFB5-----------------------------
  1812. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET WINDOW PARAMETERS
  1813.     AX = FFB5h
  1814.     BX = window specifier (000Fh to 0019h) (see #0545)
  1815.     DX = 0000h get, nonzero = set
  1816.     ES:DI -> window parameter buffer (see #0546)
  1817. SeeAlso: AX=FFCBh
  1818.  
  1819. (Table 0545)
  1820. Values for PC Tools DESKTOP window specifier:
  1821.  000Fh    comm/FAX
  1822.  0014h    hotkey selection
  1823.  0015h    ASCII table
  1824.  0016h    system colors menu
  1825.  
  1826. Format of PC Tools DESKTOP window parameters:
  1827. Offset    Size    Description    (Table 0546)
  1828.  00h    BYTE    rows in window, not counting frame
  1829.  01h    BYTE    columns in window, not counting frame
  1830.  02h    BYTE    row number of top of window
  1831.  03h    BYTE    2*column number of left of window
  1832.  04h    BYTE    character attribute for ???
  1833.  05h    BYTE    character attribute for background/border
  1834.  06h    BYTE    character attribute for ???
  1835.  07h    DWORD    pointer to ??? on screen
  1836.  0Bh  4 BYTEs    ???
  1837.  0Fh    BYTE    nonzero if window may be resized
  1838. Note:    if running in monochrome mode, character attributes at offsets 04h to
  1839.       06h are stored unchanged, but attributes other than 07h, 0Fh, or 70h
  1840.       are changed to 07h on reading
  1841. --------U-16FFB6-----------------------------
  1842. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
  1843.     AX = FFB6h
  1844. Return: AH = ???
  1845.     AL = ???
  1846. --------U-16FFB7-----------------------------
  1847. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET ???
  1848.     AX = FFB7h
  1849.     BX = direction
  1850.         0000h copy to buffer
  1851.         else  copy from buffer
  1852.     DS:SI -> 70-byte buffer with ???
  1853. Return: data copied
  1854. Note:    available only when popped up under v6.0+
  1855. --------U-16FFB8-----------------------------
  1856. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET/SET???
  1857.     AX = FFB8h
  1858.     BH = subfunction
  1859.         00h get
  1860.         Return: BL = old value of ???
  1861.             CL = old value of ??? (v6.0+)
  1862.             CH = old value of ??? (v6.0+)
  1863.         nonzero set
  1864.         BL = new value for ???
  1865.         CL = new value for ??? (v6.0+)
  1866.         CH = new value for ??? (v6.0+)
  1867.         DH = ???
  1868.         Return: AL = old value replaced by CL (v6.0+)
  1869.             AH = old value replaced by CH (v6.0+)
  1870. --------U-16FFB9-----------------------------
  1871. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  1872.     AX = FFB9h
  1873.     ???
  1874. Return: AX = ???
  1875.     CX = ???
  1876.     DS:SI -> ???
  1877.     ES:DI -> ???
  1878. --------U-16FFBA-----------------------------
  1879. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  1880.     AX = FFBAh
  1881.     ???
  1882. Return: AX = ???
  1883. Note:    available only when popped up
  1884. --------U-16FFBB-----------------------------
  1885. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLEAR ??? FLAG
  1886.     AX = FFBBh
  1887. Note:    available only when popped up
  1888. SeeAlso: AX=FFB4h
  1889. --------U-16FFBC-----------------------------
  1890. INT 16 U - PC Tools v5.1-8.0 DESKTOP - RESTORE ORIGINAL SCREEN???
  1891.     AX = FFBCh
  1892. --------U-16FFBD-----------------------------
  1893. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? DATABASE INDEXING MESSAGES
  1894.     AX = FFBDh
  1895.     ???
  1896. Return: ???
  1897. --------U-16FFBE-----------------------------
  1898. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  1899.     AX = FFBEh
  1900.     ???
  1901. Return: ???
  1902. Note:    available only when popped up
  1903. --------U-16FFBF-----------------------------
  1904. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  1905.     AX = FFBFh
  1906.     BX = DOS file handle to write on
  1907.     ???
  1908. Return: ???
  1909. Note:    available only when popped up
  1910. --------U-16FFC0-----------------------------
  1911. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  1912.     AX = FFC0h
  1913.     ???
  1914. Return: AX = 0000h if successful
  1915.     AX = FFFFh on error
  1916. Note:    available only when popped up
  1917. --------U-16FFC1-----------------------------
  1918. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  1919.     AX = FFC1h
  1920.     BL = ???
  1921.     ES:DI -> data structure (see #0547)
  1922.     ???
  1923. Return: AX = ???
  1924. Note:    available only when popped up
  1925. SeeAlso: AX=FFC2h,AX=FFC3h
  1926.  
  1927. Format of PC Tools DESKTOP data structure:
  1928. Offset    Size    Description    (Table 0547)
  1929.  00h    WORD    ???
  1930.  02h    WORD    ???
  1931.  04h    WORD    ???
  1932.  06h    WORD    ???
  1933.  08h    WORD    ???
  1934.  0Ah    BYTE    ???
  1935.  0Bh    BYTE    ??? (zero/nonzero)
  1936. ---v7.1---
  1937.  0Ch    WORD    ???
  1938.  0Eh    BYTE    ???
  1939.  0Fh    WORD    ???
  1940.  11h    WORD    ???
  1941.     ???
  1942. --------U-16FFC2-----------------------------
  1943. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  1944.     AX = FFC2h
  1945.     BL = ???
  1946.     ES:DI -> data structure (see #0547)
  1947.     ???
  1948. Return: AH = ???
  1949.     CX = ???
  1950.     DH = ???
  1951.     DL = ???
  1952. Note:    available only when popped up
  1953. SeeAlso: AX=FFC1h,AX=FFC3h
  1954. --------U-16FFC3-----------------------------
  1955. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  1956.     AX = FFC3h
  1957.     BL = ???
  1958.     ES:DI -> data structure (see #0547)
  1959.     ???
  1960. Return: AH = ???
  1961.     CX = ???
  1962.     DH = ???
  1963.     DL = ???
  1964. Note:    available only when popped up
  1965. SeeAlso: AX=FFC1h,AX=FFC2h
  1966. --------U-16FFC4-----------------------------
  1967. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  1968.     AX = FFC4h
  1969. Return: AL = ???
  1970.     BX = segment of scratch space???
  1971.     CX = segment of stored screen data (section covered by window???)
  1972.     DX = segment of window parameters for ???
  1973.     ES:BP -> ???
  1974. Note:    available only when popped up in versions prior to 6.0
  1975. --------U-16FFC5-----------------------------
  1976. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK WHETHER DESKTOP LOADED RESIDENT
  1977.     AX = FFC5h
  1978. Return: BL = Desktop state
  1979.         00h if nonresident
  1980.         nonzero if loaded resident
  1981. Note:    available only when popped up; should call AX=FFEFh first to ensure
  1982.       that DESKTOP is active
  1983. SeeAlso: AX=FFEFh,AX=FFF3h
  1984. --------U-16FFC6-----------------------------
  1985. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  1986.     AX = FFC6h
  1987.     BL = new value for ???
  1988. --------U-16FFC7-----------------------------
  1989. INT 16 U - PC Tools v5.1-8.0 DESKTOP - REMOVE WINDOW
  1990.     AX = FFC7h
  1991.     ???
  1992. Return: ???
  1993. --------U-16FFC8-----------------------------
  1994. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  1995.     AX = FFC8h
  1996. Return: DS:SI -> ???
  1997. Note:    valid only while popped up
  1998. --------U-16FFC9-----------------------------
  1999. INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY DATA TO CLIPBOARD
  2000.     AX = FFC9h
  2001.     DS:SI -> characters to store in clipboard
  2002.     CX = size in bytes
  2003. Return: CF set on error
  2004. Notes:    available only when popped up
  2005.     while copying, bytes of 00h and 0Ah are skipped
  2006. --------U-16FFCA-----------------------------
  2007. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  2008.     AX = FFCAh
  2009.     DX = ???
  2010. Return: AX destroyed
  2011. Note:    available only when popped up
  2012. --------U-16FFCB-----------------------------
  2013. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SELECT WINDOW PARAMETERS???
  2014.     AX = FFCBh
  2015.     DX = window specifier???
  2016. Return: AX destroyed
  2017. Note:    available only when popped up
  2018. SeeAlso: AX=FFB5h
  2019. --------U-16FFCC-----------------------------
  2020. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY ASCIZ STRING CENTERED IN WINDOW
  2021.     AX = FFCCh
  2022.     DS:SI -> ASCIZ string
  2023. Return: AX = ???
  2024.     CX = ???
  2025.     ES:DI -> address past last character displayed (v5.1/5.5)
  2026.           -> ??? on menu bar (v6.0)
  2027. --------U-16FFCD-----------------------------
  2028. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  2029.     AX = FFCDh
  2030.     DS:DX -> ???
  2031. Return: ???
  2032. Note:    available only when popped up
  2033. --------U-16FFCE-----------------------------
  2034. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? DELAYS
  2035.     AX = FFCEh
  2036.     CX = ???
  2037. Return: nothing???
  2038. --------U-16FFCF-----------------------------
  2039. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLOSE PRINTER/PRINT FILE
  2040.     AX = FFCFh
  2041. Note:    available only when popped up
  2042. --------U-16FFD0-----------------------------
  2043. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO PRINT???
  2044.     AX = FFD0h
  2045.     ???
  2046. Return: ???
  2047. Note:    available only when popped up
  2048. --------U-16FFD1-----------------------------
  2049. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY PRINT OPTIONS MENU
  2050.     AX = FFD1h
  2051. Return: BX = number of copies
  2052.     DX = destination
  2053.         00h cancel
  2054.         01h LPT1
  2055.         02h LPT2
  2056.         03h LPT3
  2057.         04h COM1
  2058.         05h COM2
  2059.         06h disk file
  2060. Note:    available only when popped up
  2061. --------U-16FFD2-----------------------------
  2062. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  2063.     AX = FFD2h
  2064.     BX = ???
  2065. Return: BL = ???
  2066. Note:    available only when popped up
  2067. --------U-16FFD3-----------------------------
  2068. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  2069.     AX = FFD3h
  2070.     DS:SI -> 92-byte data record for ???
  2071. Return: ???
  2072. SeeAlso: AX=FED3h
  2073. --------U-16FFD4BH3C-------------------------
  2074. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CREATE/OPEN/DELETE FILE
  2075.     AX = FFD4h
  2076.     BH = 3Ch create file (with no attributes)
  2077.          3Dh open file
  2078.          41h delete file
  2079.     BL = access mode
  2080.          00h read only
  2081.          01h write only
  2082.          02h read/write
  2083.     DS:SI -> ASCIZ filename
  2084. Return: BX = file handle
  2085.         0000h on error
  2086. Note:    operation is attempted in (in order) the directory from which the
  2087.       desktop was started/run???, the directory specified with the
  2088.       filename, X:\PCTOOLS\, and X:\
  2089. --------U-16FFD5-----------------------------
  2090. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  2091.     AX = FFD5h
  2092.     ???
  2093. Return: ???
  2094. Note:    available only when popped up
  2095. --------U-16FFD6-----------------------------
  2096. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  2097.     AX = FFD6h
  2098.     BX = ???
  2099.     CX = ???
  2100.     DX = offset in ???
  2101.     ???
  2102. Return: ???
  2103. Note:    available only when popped up
  2104. --------U-16FFD7-----------------------------
  2105. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  2106.     AX = FFD7h
  2107.     ???
  2108. Return: BL = ???
  2109. Note:    available only when popped up
  2110. --------U-16FFD8-----------------------------
  2111. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SAFE CREATE FILE
  2112.     AX = FFD8h
  2113.     DS:BX -> ASCIZ filename
  2114. Return: BX = file handle
  2115.         0000h on error
  2116. Note:    pops up confirmation menu if file already exists
  2117.     only available when popped up???
  2118. --------U-16FFD9-----------------------------
  2119. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  2120.     AX = FFD9h
  2121. Return: AX = ???
  2122. Note:    available only when popped up
  2123. --------U-16FFDA-----------------------------
  2124. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET NAME OF LAST FILE OPENED
  2125.     AX = FFDAh
  2126.     DS:SI -> ??? (v5.1/5.5 only)
  2127. Return: DS:SI -> filename
  2128. --------U-16FFDB-----------------------------
  2129. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  2130.     AX = FFDBh
  2131.     BL = ???
  2132. Note:    available only when popped up
  2133. --------U-16FFDC-----------------------------
  2134. INT 16 U - PC Tools v5.1-8.0 DESKTOP - UNHOOK
  2135.     AX = FFDCh
  2136. Return: interrupt vectors 09h, 10h (v6.0+), 16h, 1Ch, and 21h restored to
  2137.       original values
  2138. Index:    uninstall;PC Tools DESKTOP
  2139. --------U-16FFDDBX0000-----------------------
  2140. INT 16 U - PC Tools v5.1+ PCShell API - INSTALLATION CHECK
  2141.     AX = FFDDh
  2142.     BX = 0000h
  2143. Return: CX = 5555h
  2144.     DX = 5555h if PCShell installed in resident mode
  2145. --------U-16FFDDBX0001-----------------------
  2146. INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
  2147.     AX = FFDDh
  2148.     BX = 0001h
  2149. Return: CF clear if request successful (PCShell will pop up)
  2150.     CF set on error
  2151. SeeAlso: AX=FFDDh/BX=0003h
  2152. --------U-16FFDDBX0002-----------------------
  2153. INT 16 U - PC Tools v5.1-5.5 PCShell API - GET ???
  2154.     AX = FFDDh
  2155.     BX = 0002h
  2156. Return: AL =
  2157.         00h ???
  2158.         01h ???
  2159. Note:    PCShell v6.0+ displays the error message "Incorrect PCRUN version",
  2160.       awaits a keystroke, and aborts the current process
  2161. --------U-16FFDDBX0003-----------------------
  2162. INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
  2163.     AX = FFDDh
  2164.     BX = 0003h
  2165. SeeAlso: AX=FFDDh/BX=0001h
  2166. --------U-16FFDDBX0004-----------------------
  2167. INT 16 U - PC Tools v5.1+ PCShell API - GET ???
  2168.     AX = FFDDh
  2169.     BX = 0004h
  2170. Return: CF clear if successful
  2171.         DS:SI -> ???
  2172. --------U-16FFDDBX0005-----------------------
  2173. INT 16 U - PC Tools v5.1+ PCShell API - ???
  2174.     AX = FFDDh
  2175.     BX = 0005h
  2176.     ???
  2177. Return: ???
  2178. Note:    resets various variables if certain conditions are met
  2179. --------U-16FFDDBX0006-----------------------
  2180. INT 16 U - PC Tools v5.1+ PCShell API - ???
  2181.     AX = FFDDh
  2182.     BX = 0006h
  2183.     ???
  2184. Return: ???
  2185. Note:    resets various variables if certain conditions are met
  2186. --------U-16FFDDBX0007-----------------------
  2187. INT 16 U - PC Tools v5.1+ PCShell API - SET ??? FLAG
  2188.     AX = FFDDh
  2189.     BX = 0007h
  2190. Return: CF clear if successful
  2191. SeeAlso: AX=FFDDh/BX=0008h
  2192. --------U-16FFDDBX0008-----------------------
  2193. INT 16 U - PC Tools v5.1+ PCShell API - CLEAR ??? FLAG
  2194.     AX = FFDDh
  2195.     BX = 0008h
  2196. Return: CF undefined
  2197. SeeAlso: AX=FFDDh/BX=0007h
  2198. --------U-16FFDDBX0009-----------------------
  2199. INT 16 U - PC Tools v6.0+ PCShell API - GET PCRUN PARAMETERS
  2200.     AX = FFDDh
  2201.     BX = 0009h
  2202. Return: CF clear if successful
  2203.         DS:SI -> list of pointers (see #0548)
  2204.  
  2205. Format of PC Tools PCShell returned pointer list:
  2206. Offset    Size    Description    (Table 0548)
  2207.  00h    WORD    offset of WORD containing ???
  2208.  02h    WORD    offset of name of program to execute
  2209.  04h    WORD    offset of 80-byte buffer for ???
  2210.  06h    WORD    offset of buffer for ??? (length in WORD preceding buffer)
  2211.  08h    WORD    offset of buffer for ??? (length in WORD preceding buffer)
  2212. --------U-16FFDDBX000A-----------------------
  2213. INT 16 U - PC Tools v6.0+ PCRUN API - INSTALLATION CHECK
  2214.     AX = FFDDh
  2215.     BX = 000Ah
  2216. Return: CX = 5555h if running
  2217.     DX = 5555h
  2218. Note:    also sets a flag
  2219. --------U-16FFDDBX000B-----------------------
  2220. INT 16 U - PC Tools v6.0+ PCRUN API - ???
  2221.     AX = FFDDh
  2222.     BX = 000Bh
  2223.     ???
  2224. Return: CX = 5555h if PCRUN active
  2225.     DX = 5555h
  2226. Note:    also clears flag set by AX=FFDDh/BX=000Ah
  2227. --------U-16FFDE-----------------------------
  2228. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY POPUP MENU
  2229.     AX = FFDEh
  2230.     DS:DX -> menu description (must be on a paragraph boundary)
  2231. Return: AX = ???
  2232.         AL seems to be the number of the selected button
  2233. Note:    available only when popped up
  2234. SeeAlso: AX=FFEEh
  2235. --------U-16FFDF-----------------------------
  2236. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  2237.     AX = FFDFh
  2238.     ???
  2239. Return: ???
  2240. --------U-16FFE0-----------------------------
  2241. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  2242.     AX = FFE0h
  2243.     CX = ???
  2244.     DX = ???
  2245. Note:    available only when popped up
  2246. --------U-16FFE1-----------------------------
  2247. INT 16 U - PC Tools v5.1-8.0 DESKTOP - BEEP
  2248.     AX = FFE1h
  2249. --------U-16FFE2-----------------------------
  2250. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  2251.     AX = FFE2h
  2252.     DX = ???
  2253. Return: ???
  2254. Note:    available only when popped up
  2255. --------U-16FFE3-----------------------------
  2256. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PRINT CHARACTER
  2257.     AX = FFE3h
  2258.     BL = character to print to currently open printer or print file
  2259. Return: CF set on error
  2260. Note:    available only when popped up
  2261. SeeAlso: INT 17/AH=00h
  2262. --------U-16FFE4-----------------------------
  2263. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  2264.     AX = FFE4h
  2265.     DX = segment of ???
  2266. Return: ???
  2267. Note:    available only when popped up
  2268. --------U-16FFE5-----------------------------
  2269. INT 16 U - PC Tools v5.1-8.0 DESKTOP - POP UP FILE SELECTION MENU
  2270.     AX = FFE5h
  2271.     DS:SI -> ASCIZ wildcard filespec followed by ASCIZ menu title
  2272.     DX = segment of window parameters???
  2273. Return: AX = DOS file handle for file
  2274.         DS:DX -> filename???
  2275.         FFFFh if function cancelled by user
  2276. Note:    available only when popped up
  2277. SeeAlso: AX=FFDAh
  2278. --------U-16FFE6-----------------------------
  2279. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK FOR AND GET KEYSTROKE
  2280.     AX = FFE6h
  2281. Return: AX = 0000h if no key available
  2282.          else  BIOS keycode
  2283. Notes:    available only when popped up
  2284.     invokes INT 28 idle interrupt before checking for key
  2285. --------U-16FFE7-----------------------------
  2286. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  2287.     AX = FFE7h
  2288.     BX = segment of ???
  2289. Return: ???
  2290. Note:    available only when popped up
  2291. --------U-16FFE8-----------------------------
  2292. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY NUMBER
  2293.     AX = FFE8h
  2294.     CX = number
  2295.     DH = attribute
  2296.     DS:SI -> destination for ASCII number
  2297. Return: DS:SI buffer filled in with alternating characters and attributes
  2298. --------U-16FFE9-----------------------------
  2299. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET FILE LIST???
  2300.     AX = FFE9h
  2301. Return: BX = segment of file/directory list (14 bytes per file, NUL-padded)
  2302. Note:    available only when popped up
  2303. --------U-16FFEA-----------------------------
  2304. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY COUNTED STRING
  2305.     AX = FFEAh
  2306.     DS:SI -> counted string (count byte followed by string)
  2307. Return: ???
  2308. Note:    available only when popped up
  2309. --------U-16FFEB-----------------------------
  2310. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  2311.     AX = FFEBh
  2312.     ???
  2313. Return: ???
  2314. --------U-16FFEC-----------------------------
  2315. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET KEY
  2316.     AX = FFECh
  2317.     DS:SI -> FAR routine to ???
  2318.     BX = ???
  2319.     ???
  2320. Return: AX = keystroke
  2321.         FFFFh if F10 pressed to go to menu
  2322. Notes:    available only when popped up
  2323.     invokes INT 28 while waiting for keystroke
  2324.     F10 is hotkey to Desktop menu
  2325. Index:    hotkeys;PC Tools DESKTOP
  2326. --------U-16FFED-----------------------------
  2327. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  2328.     AX = FFEDh
  2329. Return: AX = ???
  2330. Note:    available only when popped up
  2331. --------U-16FFEE-----------------------------
  2332. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE PULLDOWN MENUS
  2333.     AX = FFEEh
  2334.     DS:SI -> pulldown menu system description (see #0549)
  2335. Return: AX destroyed
  2336. Notes:    available only when popped up
  2337.     if the accessory does not need any menu items of its own, it should
  2338.       call AX=FFFAh instead
  2339. SeeAlso: AX=FFF7h,AX=FFFAh
  2340.  
  2341. Format of PC Tools DESKTOP pulldown menu system description:
  2342. Offset    Size    Description    (Table 0549)
  2343.  00h    WORD    offset of menu bar contents (counted string)
  2344.  02h    WORD    number of items on menu bar
  2345.  04h 10 BYTEs    scan codes for hotkeying to each of up to ten menu items
  2346.  0Eh 10 BYTEs    which character to highlight in each menu item (01h=first)
  2347.  18h    WORD    offset of first menu definition (see #0550)
  2348.  1Ah    WORD    offset of second menu definition
  2349.     ...
  2350.  
  2351. Format of PC Tools DESKTOP menu definition:
  2352. Offset    Size    Description    (Table 0550)
  2353.  00h    WORD    offset of menu contents (see #0551)
  2354.  02h    WORD    number of entries in menu
  2355.  04h    for each entry:
  2356.         Offset    Size    Description
  2357.          00h    BYTE    scancode of Alt-key to invoke entry
  2358.          01h    BYTE    character to highlight (01h=first, etc)
  2359.          02h    WORD    offset of FAR routine to handle selection
  2360.  
  2361. Format of PC Tools DESKTOP menu contents:
  2362. Offset    Size    Description    (Table 0551)
  2363.  00h    BYTE    number of lines in menu
  2364.  01h    BYTE    width of menu
  2365.  02h  N BYTEs    counted strings, one for each line in menu
  2366. --------U-16FFEFCX0000-----------------------
  2367. INT 16 U - PC Tools v5.1-8.0 DESKTOP - INSTALLATION CHECK
  2368.     AX = FFEFh
  2369.     CX = 0000h
  2370. Return: CX = ABCDh if PC Tools DESKTOP.EXE installed
  2371.         BX = segment of resident portion
  2372.         AX = ??? (v5.1/5.5 only)
  2373. SeeAlso: AX=FEEFh,AX=FFC5h,AX=FFF3h
  2374. --------U-16FFF0-----------------------------
  2375. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  2376.     AX = FFF0h
  2377.     DX = ???
  2378. Return: AX destroyed
  2379. Note:    available only when popped up
  2380. --------U-16FFF1BX0000-----------------------
  2381. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ALTERNATE INSTALLATION CHECK
  2382.     AX = FFF1h
  2383.     BX = 0000h  leave ??? flag as is
  2384.         nonzero set ??? flag
  2385. Return: CX = 5555h if installed
  2386.     DX = 5555h
  2387. --------U-16FFF2-----------------------------
  2388. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY HELP LINE
  2389.     AX = FFF2h
  2390.     DS:SI -> ASCIZ function key label string (each label preceded by '[')
  2391.         or help text
  2392. Return: AX destroyed
  2393. Notes:    available only when popped up
  2394.     if the specified string does not start with '[', it is displayed
  2395.       centered on the bottom line, else the function key labels are shown
  2396. --------U-16FFF3-----------------------------
  2397. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO UNLOAD RESIDENT DESKTOP
  2398.     AX = FFF3h
  2399. Note:    releases any EMS being used; restores video mode, page, and cursor
  2400.       shape; and restores interrupt vectors
  2401. SeeAlso: AX=FFC5h,AX=FFEFh
  2402. Index:    uninstall;PC Tools DESKTOP
  2403. --------U-16FFF4-----------------------------
  2404. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  2405.     AX = FFF4h
  2406.     ???
  2407. Return: ???
  2408. Note:    available only when popped up
  2409. SeeAlso: AX=FFF6h
  2410. --------U-16FFF5-----------------------------
  2411. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET SCREEN ATTRIBUTE ARRAY
  2412.     AX = FFF5h
  2413. Return: ES:BX -> screen attributes data structure (see #0552)
  2414.     AL = ??? (v6.0+)
  2415.  
  2416. Format of PC Tools DESKTOP attribute data structure:
  2417. Offset    Size    Description    (Table 0552)
  2418.  -1    BYTE    attribute for desktop background
  2419.  00h    BYTE    attribute for normal characters on desktop menu
  2420.  01h    BYTE    attribute for highlighted characters on desktop menu
  2421.  02h  5 BYTEs    ???
  2422.  07h    BYTE    attribute for dialog boxes
  2423.  08h 15 BYTEs    ???
  2424.  17h    BYTE    attribute for message boxes
  2425. --------U-16FFF6-----------------------------
  2426. INT 16 U - PC Tools v5.1-8.0 DESKTOP - INVOKE NOTEPAD EDITOR
  2427.     AX = FFF6h
  2428.     DS = segment of editor buffer structure (see #0553)
  2429.     BX = ???
  2430.     DX = segment of window parameters structure (see #0546)
  2431. Return: ???
  2432. Note:    available only when popped up
  2433. SeeAlso: AX=FFF4h
  2434.  
  2435. Format of PC Tools DESKTOP editor buffer structure:
  2436. Offset    Size    Description    (Table 0553)
  2437.  00h    WORD    offset of current cursor position in buffer segment
  2438.  02h  2 BYTEs    ???
  2439.  04h    WORD    offset of beginning of file data in buffer segment
  2440.  06h 10 BYTEs    ???
  2441.  10h  N BYTEs    ASCIZ name of file being edited
  2442. --------U-16FFF7-----------------------------
  2443. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS MENU BAR ENTRY???
  2444.     AX = FFF7h
  2445.     DS:SI -> ???
  2446.     ???
  2447. Return: ???
  2448. Notes:    available only when popped up
  2449.     performs input processing on the menu bar set up with AX=FFEEh
  2450. SeeAlso: AX=FFEEh,AX=FFFBh
  2451. --------U-16FFF8-----------------------------
  2452. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DRAW EMPTY WINDOW
  2453.     AX = FFF8h
  2454.     DS:0000h -> window parameters structure (see #0546)
  2455.     DS:BX -> DWORD to store address of ??? on screen
  2456. Return: ???
  2457. --------U-16FFF9-----------------------------
  2458. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE SCREEN REFRESH ROUTINE
  2459.     AX = FFF9h
  2460.     ES:BX -> FAR routine to redisplay the utility's window
  2461. Note:    available only when popped up
  2462. --------U-16FFFA-----------------------------
  2463. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE STANDARD PULLDOWN MENUS
  2464.     AX = FFFAh
  2465. Notes:    available only when popped up
  2466.     adds the "Window" option to the "Desktop" option which is the only one
  2467.       available when no accessories are active.  Unlike AX=FFEEh, no
  2468.       additional menu items are added between "Desktop" and "Window"
  2469. SeeAlso: AX=FFEEh,AX=FFFBh
  2470. --------U-16FFFB-----------------------------
  2471. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS STANDARD MENU BAR
  2472.     AX = FFFBh
  2473. Return: ???
  2474. Notes:    available only when popped up
  2475.     performs input processing on the standard menu bar set up with AX=FFFAh
  2476. SeeAlso: AX=FFF7h
  2477. --------U-16FFFC-----------------------------
  2478. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET HOTKEYS AND KEYBOARD VECTOR
  2479.     AX = FFFCh
  2480. Return: ES:BX -> hotkey table (see #0554)
  2481.     DS:DX = original INT 09 vector
  2482.  
  2483. Format of PC Tools DESKTOP hotkey table:
  2484. Offset    Size    Description    (Table 0554)
  2485.  00h  2 BYTEs    scancode/shift state for desktop hotkey
  2486.  02h  2 BYTEs    scancode/shift state for clipboard paste key
  2487.  04h  2 BYTEs    scancode/shift state for clipboard copy key
  2488.  06h  2 BYTEs    scancode/shift state for screen autodial key
  2489. --------U-16FFFD-----------------------------
  2490. INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY ???
  2491.     AX = FFFDh
  2492. Return: AX destroyed
  2493. Note:    copies 4000 bytes from ??? to ??? under certain circumstances
  2494. SeeAlso: AX=FF91h,AX=FF92h
  2495. --------M-16FFFE-----------------------------
  2496. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SHOW MOUSE CURSOR
  2497.     AX = FFFEh
  2498. SeeAlso: AX=FFFFh,INT 33/AX=0001h
  2499. --------M-16FFFF-----------------------------
  2500. INT 16 U - PC Tools v5.1-8.0 DESKTOP - HIDE MOUSE CURSOR
  2501.     AX = FFFFh
  2502. SeeAlso: AX=FFFEh,INT 33/AX=0002h
  2503. --------P-17----DX0ABC-----------------------
  2504. INT 17 - PRINTER - LPTx v5.x INSTALLATION CHECK
  2505.     DX = 0ABCh
  2506. Return: AX = AAAAh
  2507.     DX = BAAAh
  2508.     ES = code segment of resident portion
  2509. --------P-17----DX0B90-----------------------
  2510. INT 17 - PRINTER - LPTx v6.x INSTALLATION CHECK
  2511.     DX = 0B90h
  2512. Return: DX = ABBBh
  2513.     ES = code segment of resident portion
  2514. --------P-17----DX0B91-----------------------
  2515. INT 17 - PRINTER - LPTx v7.x INSTALLATION CHECK
  2516.     DX = 0B91h
  2517. Return: DX = ABCBh
  2518.     ES = code segment of resident portion
  2519. --------P-17----DX0F5F-----------------------
  2520. INT 17 - PRINTER - LPTx v4.x INSTALLATION CHECK
  2521.     DX = 0F5Fh
  2522. Return: AX = AAAAh
  2523.     DX = F555h
  2524.     ES = code segment of resident portion
  2525. --------B-1700-------------------------------
  2526. INT 17 - PRINTER - WRITE CHARACTER
  2527.     AH = 00h
  2528.     AL = character to write
  2529.     DX = printer number (00h-02h)
  2530. Return: AH = printer status (see #0555)
  2531. SeeAlso: AH=02h,AH=84h"AX",AX=6F02h,AH=F1h,INT 16/AX=FFE3h,INT 1A/AH=11h"NEC"
  2532. SeeAlso: INT 4B/AH=00h,PORT 0278h"PRINTER",MEM 0040h:0008h,MEM 0040h:0078h
  2533.  
  2534. Bitfields for printer status:
  2535. Bit(s)    Description    (Table 0555)
  2536.  7    not busy
  2537.  6    acknowledge
  2538.  5    out of paper
  2539.  4    selected
  2540.  3    I/O error
  2541.  2-1    unused
  2542.  0    timeout
  2543. Note:    for Tandy 2000, bit 7 indicates printer-busy when set rather than clear
  2544. --------B-1701-------------------------------
  2545. INT 17 - PRINTER - INITIALIZE PORT
  2546.     AH = 01h
  2547.     DX = printer number (00h-02h)
  2548. Return: AH = printer status (see #0555)
  2549. Note:    some printers report that they are ready immediately after
  2550.       initialization when they actually are not; a more reliable result may
  2551.       be obtained by calling AH=02h after a brief delay
  2552. SeeAlso: AH=02h,AH=FFh"PC-MOS",INT 1A/AH=10h"NEC",INT 4B/AH=01h
  2553. --------B-1702-------------------------------
  2554. INT 17 - PRINTER - GET STATUS
  2555.     AH = 02h
  2556.     DX = printer number (00h-02h)
  2557. Return: AH = printer status (see #0555)
  2558. Note:    PRINTFIX from MS-DOS 5.0 hooks this function and always returns AH=90h
  2559. SeeAlso: AH=01h,AH=F2h,INT 1A/AH=12h"NEC",INT 4B/AH=02h
  2560. --------P-1702--DX0000-----------------------
  2561. INT 17 - INSET - INSTALLATION CHECK
  2562.     AH = 02h
  2563.     DX = 0000h
  2564.     CX = 07C3h (1987d)
  2565. Return: CX = 07C2h (1986d) if installed
  2566. Program: INSET is a text/graphics integration program
  2567. --------b-170200BX5050-----------------------
  2568. INT 17 - Enhanced Parallel Port (EPP) BIOS - INSTALLATION CHECK
  2569.     AX = 0200h
  2570.     BX = 5050h ('PP')
  2571.     CH = 45h   ('E')
  2572.     DX = printer port number (00h-02h)
  2573. Return: AH = status
  2574.         00h if installed and port is an enhanced parallel port
  2575.         CX:AL = installed BIOS type
  2576.             5050h:45h ('PPE') if EPP v3.0+ BIOS installed
  2577.             4550h:50h ('EPP') if EPP v1.0 BIOS installed
  2578.         ---EPP 1.0, 3.0---
  2579.         DX:BX -> far entry point to Advanced BIOS (see #0556)
  2580.         ---EPP Revision 7---
  2581.         DX = EPP I/O base address
  2582.         ES:BX -> far entry point to EPP BIOS (see #0556,#0557)
  2583.         03h if installed but specified port not supported
  2584.         CF set
  2585. Program: The Enhanced Parallel Port BIOS provides support for parallel
  2586.       port peripherals using the enhanced modes of the IEEE 1284.
  2587. SeeAlso: AH=E0h,MEM 0040h:0008h,MEM 0040h:00DCh
  2588.  
  2589. (Table 0556)
  2590. Call EPP BIOS entry point with:
  2591.     DL = port number (v1.0,v3.0)
  2592.     DX = (Revision 7) EPP port I/O base address
  2593.     AH = function
  2594.         00h Query Configuration
  2595.         Return: AH = 00h if successful
  2596.                 AL = IRQ number used by port or FFh if no IRQ
  2597.                 BH = EPP BIOS revision (major in high nybble,
  2598.                   minor in low nybble)
  2599.                 BL = I/O capabilities (see #0559)
  2600.                 ES:DI -> ASCIZ driver information/version text
  2601.                 ---v1.0,v3.0---
  2602.                 CX = I/O port base address for parallel port
  2603.                 ---Revision 7---
  2604.                 CL = EPP chipset code (see #0560)
  2605.                 CH = hardware manufacturer's product code
  2606.         01h Set Mode
  2607.         AL = mode bits (see #0561)
  2608.         Return: AX,BX destroyed
  2609.         02h Get Mode
  2610.         Return: AL = mode bits (see also #0561)
  2611.                 bit 7: EPP port interrupts enabled
  2612.             AH = 00h
  2613.             CF clear
  2614.             BX destroyed
  2615.         03h Interrupt Control
  2616.         AL = subfunction
  2617.             00h enable parallel port interrupts
  2618.             01h disable parallel port interrupts
  2619.         Return: AH = status (00h,05h,06h) (see also #0558)
  2620.         04h EPP Reset
  2621.         Return: AH = 00h if successful
  2622.             AL destroyed
  2623.         05h perform Address-Write/Device-Select I/O cycle
  2624.         AL = device address
  2625.         Return: AH = status
  2626.             AL destroyed
  2627.         06h perform Address-Read I/O cycle
  2628.         Return: AL = returned address/device data
  2629.             AH = status
  2630.         07h write byte
  2631.         AL = data byte to write
  2632.         Return: AH = status
  2633.         08h output block of data
  2634.         DS:SI -> block of data to be sent to parallel port
  2635.         CX = number of bytes to output
  2636.         Return: AH = status (see #0558)
  2637.             CX = number of unsent bytes
  2638.         09h read byte of data
  2639.         Return: AH = status (see #0558)
  2640.             AL = byte read from parallel port
  2641.         0Ah read block of data
  2642.         ES:DI -> buffer for received data
  2643.         CX = number of bytes to read from paralle port
  2644.         Return: AH = status (see #0558)
  2645.             ES:DI buffer filled if successful
  2646.             CX = number of bytes not transferred
  2647.         0Bh Address/Byte-Read
  2648.         AL = device address
  2649.         Return: AH = status (see #0558)
  2650.             AL = byte read if successful
  2651.         0Ch Address/Byte-Write
  2652.         AL = device address
  2653.         DH = data byte (v1.0,v3.0)
  2654.         CL = data byte (Revision 7)
  2655.         Return: AH = status (see #0558)
  2656.         0Dh Address/Block-Read
  2657.         AL = device address
  2658.         ES:DI -> buffer for received data
  2659.         CX = number of bytes to read
  2660.         Return: AH = status (see #0558)
  2661.             CX = number of bytes NOT transferred
  2662.         0Eh Address/Block-Write
  2663.         AL = device address
  2664.         ES:DI -> data to be sent (v1.0,v3.0)
  2665.         DS:SI -> data to be send (Revision 7)
  2666.         CX = number of bytes to write
  2667.         Return: AH = status (see #0558)
  2668.             CX = number of bytes NOT transferred
  2669.         0Fh Lock Port
  2670.         AL = multiplexor port number
  2671.             bits 7-4: daisy chain port number (1-8)
  2672.             bits 3-0: mux device port number (1-8, 0 if no mux)
  2673.         Return: AH = status (00h,03h,05h) (see #0558)
  2674.         10h Unlock Port
  2675.         AL = multiplexor port number
  2676.             bits 7-4: daisy chain port number (1-8)
  2677.             bits 3-0: mux device port number (1-8, 0 if no mux)
  2678.         Return: AH = status (00h,03h,05h) (see #0558)
  2679.         11h Device Interrupt
  2680.         BL = multiplexor port number
  2681.             00h if no multiplexor, else mux device port (01h-08h)
  2682.         AL = subfunction
  2683.             00h disable device interrupts
  2684.             01h enable device interrupt
  2685.             ES:DI -> interrupt event handler
  2686.         Return: AH = status (00h,03h,05h,06h) (see #0558)
  2687.         Note:    AMI BIOS v1.00.12.AX1T ignores the multiplexor port
  2688.               number; it also always sets INT 0F to the address
  2689.               specified in ES:DI
  2690.         12h Real-Time Mode
  2691.         AL = subfunction
  2692.             00h check whether any real-time devices present
  2693.             01h add (advertise) real-time device
  2694.             02h remove real-time device
  2695.         Return: AH = status (00h,05h,06h,07h) (see #0558)
  2696.             AL = real-time devices present? (00h no, 01h yes)
  2697.         Note:    unlike all other functions, this one does not use DL/DX
  2698. Return: AH = status (see #0558)
  2699.     CF clear if successful
  2700.     CF set on error
  2701.     BX destroyed
  2702. SeeAlso: #0557
  2703.  
  2704. (Table 0557)
  2705. Call EPP BIOS (Revision 7) entry point multiplexor functions with:
  2706.     DX = EPP port base I/O address
  2707.     AH = function
  2708.         40h Query Mux
  2709.         Return: AH = status (see #0558)
  2710.             AL = currently-selected port
  2711.             CH = status flags
  2712.                 bit 0: channel locked
  2713.                 bit 1: interrupt pending
  2714.             BH destroyed
  2715.         Note:    the PhoenixBIOS v4.0 documentation lists BL as the
  2716.               currently-selected port and AL as the status flags
  2717.         41h Query Device Port
  2718.         AL = EPP multiplex device port (1-8)
  2719.         Return: AH = status (see #0558)
  2720.             CH = status flags (see #0562)
  2721.             BX = EPP product/device ID (0000h if undefined)
  2722.         Note:    the PhoenixBIOS v4.0 documentation lists AL as the
  2723.               status flags and CX as the device ID
  2724.         42h Set Product ID
  2725.         AL = EPP multiplex device port (1-8)
  2726.         CX = EPP product ID
  2727.         Return: AH = status (see #0558)
  2728.             BX destroyed
  2729.         50h Query Daisy Chain
  2730.         AL = EPP multiplexor device port (1-8)
  2731.         Return: AH = status (see #0558)
  2732.             CH = status flags
  2733.                 bit 0: channel locked
  2734.                 bit 1: interrupt pending
  2735.             BL = currently-selected device
  2736.             BH = EPP daisy chain revision (high nybble = major)
  2737.             CL = daisy-chain depth (00h if no daisy chain)
  2738.             ES:DI -> ASCIZ driver vendor identification string
  2739.         Note:    the PhoenixBIOS v4.0 documentation lists AH=51h as
  2740.               "Query Daisy Chain" and BL as the multiplexor port;
  2741.               it also lists AL as status flags on return
  2742.         51h Rescan Daisy Chain (dynamically reassign port numbers)
  2743.         AL = EPP multiplexor device port (1-8)
  2744.         Return: AH = status (see #0558)
  2745.             BX destroyed
  2746.         Note:    the PhoenixBIOS v4.0 documentation lists AH=50h as
  2747.               "Rescan Daisy Chain" and BL as the multiplexor port
  2748. Notes:    these functions are only valid if a port multiplexor or daisy chain
  2749.       is present
  2750.     PhoenixBIOS 4.0 documents function 50h as "Rescan" and 51h as
  2751.       "Query Daisy Chain"
  2752. SeeAlso: #0556,INT 2D/AL=DCh
  2753.  
  2754. (Table 0558)
  2755. Values for EPP BIOS function status:
  2756.  00h    successful
  2757.  02h    unsupported command/feature
  2758.  03h    unsupported parallel port
  2759.  05h    unsupported in current mode
  2760.  06h    invalid subfunction
  2761.  07h    already ???
  2762.  20h    multiplexor not present (AMI)
  2763.  40h    multiplexor not present
  2764.  41h    multiplexor currently locked
  2765.  80h    I/O timeout
  2766.  FFh    invalid/unsupported function
  2767. SeeAlso: #0556,#0557
  2768.  
  2769. Bitfields for EPP (v3.0, Revision 7) I/O capabilities:
  2770. Bit(s)    Description    (Table 0559)
  2771.  0    multiplexor present
  2772.  1    PS/2 bi-directional capable
  2773.  2    daisy chain present
  2774.  3    ECP capable
  2775.  4    EPP software emulation supported
  2776.  5    EPP capable
  2777.  6    fast Centronics supported
  2778.  7    standard EPP I/O map
  2779. SeeAlso: #0556
  2780.  
  2781. (Table 0560)
  2782. Values for EPP (Revision 7) chipset code:
  2783.  00h    Intel SL
  2784.  01h    FarPoint Communications
  2785.  02h    SMC
  2786.  03h    Chips&Technologies
  2787.  04h    Western Digital
  2788.  05h    National Semiconductor
  2789. SeeAlso: #0556
  2790.  
  2791. Bitfields for EPP BIOS mode bits:
  2792. Bit(s)    Description    (Table 0561)
  2793.  0    set compatibility mode
  2794.  1    set bi-directional mode
  2795.  2    set EPP mode
  2796. ---Revision 7,v3.0---
  2797.  3    set ECP mode
  2798.  4    set EPP software emulation
  2799.  5    set fast Centronics mode
  2800.  6-7 reserved (0)
  2801. SeeAlso: #0556,#M053
  2802.  
  2803. Bitfields for EPP BIOS multiplex status flags:
  2804. Bit(s)    Description    (Table 0562)
  2805.  0    port is selected
  2806.  1    port is locked
  2807.  2    interrupts are enabled
  2808.  3    interrupt pending
  2809. SeeAlso: #0557
  2810. --------P-1703-------------------------------
  2811. INT 17 U - Emulaser ELTSR - INSTALL INTERRUPT HANDLERS
  2812.     AH = 03h
  2813. Return: BX = ???
  2814.     CX = ???
  2815. Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
  2816.       Vertisoft Systems, Inc.
  2817. SeeAlso: AH=04h"Emulaser",AH=0Eh,INT 1A/AH=E5h
  2818. ----------1703-------------------------------
  2819. INT 17 - IBM SurePath BIOS - Officially "Private" Function
  2820.     AH = 03h
  2821. SeeAlso: AH=04h"IBM",AH=05h"IBM"
  2822. --------c-1703-------------------------------
  2823. INT 17 - PC-MOS/386 v5.01 - PRINT SPOOLER - PRINT STRING
  2824.     AH = 03h
  2825.     DX = printer port number
  2826.     CX = number of characters to print
  2827.     DS:SI -> string
  2828. Return: AH = printer status (see #0555)
  2829.     CX = number of characters actually printed
  2830. Desc:    send an entire string of chars to the print spooler with a single call
  2831. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  2832.       operating system by The Software Link, Inc.
  2833. SeeAlso: AH=00h,AH=01h,AH=02h,AH=FFh"PC-MOS"
  2834. --------c-1703--BX5A00-----------------------
  2835. INT 17 - DMP Print Spooler v2.03 - INSTALLATION CHECK
  2836.     AH = 03h
  2837.     BX = 5A00h
  2838. Return: AX = 5ACBh
  2839.     DI = 0000h
  2840.     ES = DMP code segment (also data segment)
  2841. Program: DMP is a Printer driver/spooler, by DMP (USA), available on the
  2842.       PCTODAY disk, volume 10, March 1991
  2843. --------N-170300-----------------------------
  2844. INT 17 - DOSISODE to WATTCP TSR Interface - "socket"
  2845.     AX = 0300h
  2846.     CX = type of socket from  socket( domain, type, protocol )
  2847.     DX = local identifier of socket (0 - 31)
  2848. Return: AX = 0000h success
  2849.         CX = segment of 4500 byte transfer buffer
  2850.         DX = offset of 4500 byte transfer buffer
  2851.        = FFFFH failure
  2852.         CX = error code
  2853.         ENFILE        23
  2854. Program: DOSISODE is the ISO developers environment which has been ported to
  2855.       DOS and will run with the Waterloo TCP turned into a resident TSR.
  2856.       Currently it allows a maximum of 6 open sockets.
  2857. Note:    this function will initialize the interface the first time it is
  2858.       called
  2859. SeeAlso: AX=0400h"DOSISODE",AX=0600h"DOSISODE",AX=0800h"DOSISODE"
  2860. SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
  2861. --------P-1704-------------------------------
  2862. INT 17 U - Emulaser ELTSR - BEGIN CAPTURING OUTPUT
  2863.     AH = 04h
  2864. Note:    has no effect unless ELTSR is deactivated (see AX=0503h)
  2865. SeeAlso: AH=03h"Emulaser",AX=0503h,INT 1A/AH=E5h
  2866. ----------1704-------------------------------
  2867. INT 17 - IBM SurePath BIOS - Officially "Private" Function
  2868.     AH = 04h
  2869. SeeAlso: AH=03h"IBM",AH=05h"IBM"
  2870. --------N-170400-----------------------------
  2871. INT 17 - DOSISODE to WATTCP TSR Interface - "bind"
  2872.     AX = 0400h
  2873. Note:    this function just returns
  2874. SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0C00h"DOSISODE"
  2875. ----------1705-------------------------------
  2876. INT 17 - IBM SurePath BIOS - Officially "Private" Function
  2877.     AH = 05h
  2878. SeeAlso: AH=03h"IBM",AH=04h"IBM"
  2879. --------P-170500-----------------------------
  2880. INT 17 U - Emulaser ELTSR - ???
  2881.     AX = 0500h
  2882.     ???
  2883. Return: AX = unload status (0001h safe to unload, 0002h not safe)
  2884.     BX = ???
  2885.     CX = PSP segment of ELTSR
  2886.     DX = activity flag (0000h disabled, 0001h capturing, 0002h ???printing)
  2887.     SI = ???
  2888.     DI = ???
  2889. SeeAlso: AH=04h,INT 1A/AH=E5h
  2890. --------N-170500-----------------------------
  2891. INT 17 - DOSISODE to WATTCP TSR Interface - "connect"
  2892.     AX = 0500h
  2893. SeeAlso: AX=0400h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"
  2894. --------P-170501-----------------------------
  2895. INT 17 U - Emulaser ELTSR - UNHOOK INTERRUPTS
  2896.     AX = 0501h
  2897. Return: (see AX=0500h)
  2898. Note:    restores interrupt vectors without checking whether they have been
  2899.       hooked by later programs; should only be called if ELTSR reports
  2900.       that it is safe to unload
  2901. SeeAlso: AH=04h,AX=0500h,AX=0503h,INT 1A/AH=E5h
  2902. Index:    uninstall;Emulaser ELTSR
  2903. --------P-170502-----------------------------
  2904. INT 17 U - Emulaser ELTSR - SET ???
  2905.     AX = 0502h
  2906.     BL = Emulaser port (31h = LPT1, 32h = LPT2, 33h = LPT3)
  2907.     CL = ???
  2908.     DL = ???
  2909. Return: (see AX=0500h)
  2910. SeeAlso: AH=04h,AX=0500h,INT 1A/AH=E5h
  2911. --------P-170503-----------------------------
  2912. INT 17 U - Emulaser ELTSR - DEACTIVATE???
  2913.     AX = 0503h
  2914. Return: (see AX=0500h)
  2915. SeeAlso: AH=04h,AX=0500h,AX=0501h,INT 1A/AH=E5h
  2916. --------P-1706-------------------------------
  2917. INT 17 U - Emulaser ELTSR - ???
  2918.     AH = 06h
  2919.     ???
  2920. Return: ???
  2921. SeeAlso: AX=0500h,AX=0503h,AH=07h"ELTSR",INT 1A/AH=E5h
  2922. --------N-170600-----------------------------
  2923. INT 17 - DOSISODE to WATTCP TSR Interface - "listen"
  2924.     AX = 0600h
  2925. Note:    this function just returns
  2926. SeeAlso: AX=0300h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"
  2927. SeeAlso: AX=0E00h"DOSISODE"
  2928. --------P-1707-------------------------------
  2929. INT 17 U - Emulaser ELTSR - OPEN CAPTURE FILE
  2930.     AH = 07h
  2931.     ES:DX -> ASCIZ filename to be opened
  2932. Return: ???
  2933. Note:    new output will be appended to the specified file
  2934. SeeAlso: AH=08h,INT 1A/AH=E5h
  2935. --------N-170700-----------------------------
  2936. INT 17 - DOSISODE to WATTCP TSR Interface - "accept"
  2937.     AX = 0700h
  2938. Note:    this function just returns
  2939. SeeAlso: AX=0600h"DOSISODE",AX=0800h"DOSISODE",AX=0C00h"DOSISODE"
  2940. --------P-1708-------------------------------
  2941. INT 17 U - Emulaser ELTSR - CLOSE CAPTURE FILE
  2942.     AH = 08h
  2943.     ???
  2944. Return: ???
  2945. Desc:    close the file previously opened by function 07h
  2946. SeeAlso: AH=07h,INT 1A/AH=E5h
  2947. --------N-170800-----------------------------
  2948. INT 17 - DOSISODE to WATTCP TSR Interface - "recvfrom"
  2949.     AX = 0800h
  2950. SeeAlso: AX=0500h"DOSISODE",AX=0900h"DOSISODE",AX=0A00h"DOSISODE"
  2951. --------P-1709-------------------------------
  2952. INT 17 U - Emulaser ELTSR - PRINT CAPTURE FILE???
  2953.     AH = 09h
  2954.     BX = ???
  2955.     CX = ???
  2956.     DX = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  2957. Return: AX = status
  2958.         00h successful
  2959.         FFh failed
  2960. Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
  2961.       Vertisoft Systems, Inc.
  2962. Note:    this function calls through to INT 1A/AX=E401h, and thus requires
  2963.       that either ELSPL or Disk Spool II be installed
  2964. SeeAlso: AH=0Ah,INT 1A/AX=E401h,INT 1A/AH=E5h
  2965. --------N-170900-----------------------------
  2966. INT 17 - DOSISODE to WATTCP TSR Interface - "sendto"
  2967.     AX = 0900h
  2968. SeeAlso: AX=0700h"DOSISODE",AX=0800h"DOSISODE",AX=0A00h"DOSISODE"
  2969. --------P-170A-------------------------------
  2970. INT 17 U - Emulaser ELTSR - SET ??? FILENAME
  2971.     AH = 0Ah
  2972.     ES:BX -> ??? buffer
  2973.     CX = length of ??? buffer
  2974. Return: ???
  2975. Note:    copies the specified name into the buffer passed to ELSPL as the
  2976.       filename by AH=09h
  2977. SeeAlso: AH=09h,INT 1A/AH=E5h
  2978. --------N-170A00-----------------------------
  2979. INT 17 - DOSISODE to WATTCP TSR Interface - "select"
  2980.     AX = 0A00h
  2981. SeeAlso: AX=0800h"DOSISODE",AX=0B00h"DOSISODE",AX=0E00h"DOSISODE"
  2982. --------P-170B-------------------------------
  2983. INT 17 U - Emulaser ELTSR - GET ???
  2984.     AH = 0Bh
  2985. Return: AX:BX -> ???
  2986. SeeAlso: AH=0Ah,INT 1A/AH=E5h
  2987. ----------170B-------------------------------
  2988. INT 17 - IBM SurePath BIOS - Officially "Private" Function
  2989.     AH = 0Bh
  2990. SeeAlso: AH=03h"IBM",AH=0Ch"IBM"
  2991. --------N-170B00-----------------------------
  2992. INT 17 - DOSISODE to WATTCP TSR Interface - "ioctl"
  2993.     AX = 0B00h
  2994.     DX = local identifier of socket (0 - 31)
  2995. Note:    this function sets the socket into non_block mode
  2996. SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
  2997. --------P-170C-------------------------------
  2998. INT 17 U - Emulaser ELTSR - SET ??? FLAG
  2999.     AH = 0Ch
  3000.     ???
  3001. Return: ???
  3002. SeeAlso: AH=0Bh,INT 1A/AH=E5h
  3003. ----------170C-------------------------------
  3004. INT 17 - IBM SurePath BIOS - Officially "Private" Function
  3005.     AH = 0Ch
  3006. SeeAlso: AH=0Bh"IBM",AH=0Dh"IBM"
  3007. --------N-170C00-----------------------------
  3008. INT 17 - DOSISODE to WATTCP TSR Interface - "close"
  3009.     AX = 0C00h
  3010. SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0D00h"DOSISODE"
  3011. --------P-170D-------------------------------
  3012. INT 17 U - Emulaser ELTSR - GET TRUE ScrlLk STATE
  3013.     AH = 0Dh
  3014. Return: AX = state (0000h off, 0010h on)
  3015. Desc:    determine the actual state of ScrlLk even when Emulaser is controlling
  3016.       the ScrlLk light as its activity indicator
  3017. SeeAlso: AH=0Ch,INT 16/AH=02h,INT 1A/AH=E5h
  3018. ----------170D-------------------------------
  3019. INT 17 - IBM SurePath BIOS - Officially "Private" Function
  3020.     AH = 0Dh
  3021. SeeAlso: AH=0Ch"IBM",AH=0Eh"IBM"
  3022. --------N-170D00-----------------------------
  3023. INT 17 - DOSISODE to WATTCP TSR Interface - "shutdown" - SHUTDOWN INTERFACE
  3024.     AX = 0D00h
  3025. Note:    this function is used to shutdown the interface
  3026. SeeAlso: AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
  3027. --------P-170E-------------------------------
  3028. INT 17 U - Emulaser ELTSR - BACKGROUND PROCESSING
  3029.     AH = 0Eh
  3030. Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
  3031.       Vertisoft Systems, Inc.
  3032. Note:    this function is called by ELTSR on every INT 08 to allow data to be
  3033.       processed in the background, but may also be called by applications
  3034.       to give Emulaser additional CPU time
  3035. SeeAlso: AH=0Dh,INT 1A/AH=E5h
  3036. ----------170E-------------------------------
  3037. INT 17 - IBM SurePath BIOS - Officially "Private" Function
  3038.     AH = 0Eh
  3039. SeeAlso: AH=03h"IBM",AH=0Dh"IBM",AH=80h"IBM"
  3040. --------N-170E00-----------------------------
  3041. INT 17 - DOSISODE to WATTCP TSR Interface - INSTALLATION CHECK
  3042.     AX = 0E00h
  3043. Return: CX = 1234h if installed
  3044. Program: DOSISODE is the ISO developers environment which has been ported to
  3045.       DOS and will run with the Waterloo TCP turned into a resident TSR.
  3046.       Currently it allows a maximum of 6 open sockets.
  3047. Note:    this function is used to check if the interface is loaded
  3048. SeeAlso: AX=0300h"DOSISODE",AX=0A00h"DOSISODE"
  3049. --------P-172000-----------------------------
  3050. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - INSTALLATION CHECK
  3051.     AX = 2000h
  3052.     BL = printer number???
  3053. Return: AX = status (see #0563)
  3054.     BX = driver version number (BH=major,BL=minor)
  3055.     CH = ??? (00h)
  3056.     CL = ???
  3057.     DX = ??? (0100h)
  3058. Note:    also enables the remaining printer driver functions (2001h-2007h)
  3059. SeeAlso: AX=2001h,AX=2002h,AX=2003h,AX=2004h,AX=2005h,AX=2006h,AX=2007h
  3060.  
  3061. (Table 0563)
  3062. Values for PC Paint function status:
  3063.  0000h    successful
  3064.  0001h    invalid printer???
  3065.  0002h    ???
  3066.  0003h    invalid subfunction
  3067.  0005h    driver disabled, must call function 00h first
  3068.  0009h    unknown printer error
  3069.  000Bh    printer not selected
  3070.  000Ch    printer out of paper
  3071.  000Eh    error while writing to serial printer
  3072.  000Fh    ???
  3073.  0010h    invalid function number
  3074.  0011h    value out of range
  3075. --------P-172001-----------------------------
  3076. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - SET ??? FLAG
  3077.     AX = 2001h
  3078.     BL = printer number???
  3079. Return: AX = status (see #0563)
  3080. --------P-172002-----------------------------
  3081. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET INFORMATION
  3082.     AX = 2002h
  3083.     BL = printer number???
  3084.     CL = desired information
  3085.         00h printer type
  3086.         Return: ES:DI -> ASCIZ printer name
  3087.         01h paper size
  3088.         DX = size index
  3089.         Return: ES:DI -> ASCIZ paper size description
  3090.         02h ???
  3091.         Return: BX = ???
  3092.         03h printer information???
  3093.         DX = ???
  3094.         ES:BX -> buffer for ??? (min 134 bytes)
  3095. Return: AX = status (see #0563)
  3096. SeeAlso: AX=2000h,AX=2004h
  3097. --------P-172003-----------------------------
  3098. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ???
  3099.     AX = 2003h
  3100.     ES:BX -> ???
  3101. Return: AX = status (see #0563)
  3102. SeeAlso: AX=2000h,AX=2004h
  3103. --------P-172004-----------------------------
  3104. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET ???
  3105.     AX = 2004h
  3106.     BL = printer number???
  3107. Return: AX = status (see #0563)
  3108.     ES:DI -> ???
  3109. SeeAlso: AX=2000h,AX=2003h
  3110. --------P-172005-----------------------------
  3111. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE PRINTER TO NEXT PAGE
  3112.     AX = 2005h
  3113.     BL = printer number???
  3114. Return: AX = status (see #0563)
  3115. Note:    this function also clears the flag set by AX=2001h
  3116. SeeAlso: AX=2000h,AX=2001h,AX=2006h
  3117. --------P-172006-----------------------------
  3118. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE TO NEXT PAGE & SHUT DOWN
  3119.     AX = 2006h
  3120.     BL = printer number???
  3121. Return: AX = status (see #0563)
  3122. Note:    this function also clears the flag set by AX=2001h and disables
  3123.       functions other than AX=2000h
  3124. SeeAlso: AX=2000h,AX=2001h,AX=2005h
  3125. --------P-172007-----------------------------
  3126. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - UNIMPLEMENTED
  3127.     AX = 2007h
  3128. Return: AX unchanged
  3129. SeeAlso: AX=2000h
  3130. --------N-172400-----------------------------
  3131. INT 17 - Shamrock Software NET.24 v3.11+ - ENABLE/DISABLE API FUNCTIONS
  3132.     AX = 2400h
  3133.     DL = new state
  3134.         00h disabled
  3135.         01h enabled
  3136. Return: DL = 24h if installed
  3137.     DH = minor version number
  3138.     CX = network address of this machine
  3139.     AL = status (see #0564)
  3140. SeeAlso: AX=2403h,INT 16/AX=4500h
  3141.  
  3142. (Table 0564)
  3143. Values for NET.24 function status:
  3144.  00h    successful
  3145.  01h    timeout
  3146.  02h    header error
  3147.  03h    data error
  3148.  04h    busy
  3149.  05h    invalid parameters
  3150. --------N-172401-----------------------------
  3151. INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, NO HANDSHAKE
  3152.     AX = 2401h
  3153.     BL = timeout in clock ticks
  3154. Return: AL = status (see #0564)
  3155.     DX:BX -> receive buffer
  3156. SeeAlso: AX=2402h,AX=2404h,AX=2408h
  3157. --------N-172402-----------------------------
  3158. INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT BLOCK, NO HANDSHAKE
  3159.     AX = 2402h
  3160.     transmit buffer filled (see AX=2403h)
  3161. Return: AL = status (see #0564)
  3162. SeeAlso: AX=2401h,AX=2403h,AX=2404h,AX=2409h
  3163. --------N-172403-----------------------------
  3164. INT 17 - Shamrock Software NET.24 v3.11+ - GET STATUS AND TRANSMISSION BUFFER
  3165.     AX = 2403h
  3166. Return: AL = status (see #0564)
  3167.     CX = number of characters in receive ring buffer
  3168.     DX:BX -> transmit buffer
  3169. SeeAlso: AX=2400h,AX=2402h
  3170. --------N-172404-----------------------------
  3171. INT 17 - Shamrock Software NET.24 v3.11+ - SEND ACK BLOCK
  3172.     AX = 2404h
  3173.     BX = target address
  3174. Return: AL = status (see #0564)
  3175. SeeAlso: AX=2402h,AX=2405h
  3176. --------N-172405-----------------------------
  3177. INT 17 - Shamrock Software NET.24 v3.11+ - SEND NAK BLOCK
  3178.     AX = 2405h
  3179.     BX = target address
  3180. Return: AL = status (see #0564)
  3181. SeeAlso: AX=2402h,AX=2404h
  3182. --------N-172406-----------------------------
  3183. INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED RECEIVE
  3184.     AX = 2406h
  3185. Return: AL = status (see #0564)
  3186. SeeAlso: AX=2407h,AX=240Ah
  3187. --------N-172407-----------------------------
  3188. INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE CHARACTER FROM REMOTE
  3189.     AX = 2407h
  3190. Return: AL = status (see also #0564)
  3191.         06h end of data
  3192.     DL = received character
  3193. SeeAlso: AX=2406h
  3194. --------N-172408-----------------------------
  3195. INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, WITH HANDSHAKE
  3196.     AX = 2408h
  3197. Return: AL = status (see also #0564)
  3198.         06h end of data
  3199.     CX = number of bytes in receive buffer
  3200.     DX:SI -> receive buffer
  3201. SeeAlso: AX=2401h,AX=2405h,AX=2409h
  3202. --------N-172409-----------------------------
  3203. INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT COMMAND, WITH HANDSHAKE
  3204.     AX = 2409h
  3205.     BX = target address
  3206.     CX = number of data bytes
  3207.     DL = command code to send
  3208.     DS:SI -> data bytes for command
  3209. Return: AL = status (see also #0564)
  3210.         03h no response
  3211.         06h remote currently unable to perform command
  3212. SeeAlso: AX=2405h,AX=2408h
  3213. --------N-17240A-----------------------------
  3214. INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED TRANSMIT
  3215.     AX = 240Ah
  3216. Return: AL = status (see #0564)
  3217. SeeAlso: AX=2406h,AX=240Bh,AX=240Ch
  3218. --------N-17240B-----------------------------
  3219. INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT SINGLE CHARACTER TO REMOTE
  3220.     AX = 240Bh
  3221.     DL = character to send
  3222. Return: AL = status (see also AX=2400h)
  3223.         03h transmission error
  3224.         06h write error
  3225. SeeAlso: AX=2407h,AX=240Ah,AX=240Ch
  3226. --------N-17240C-----------------------------
  3227. INT 17 - Shamrock Software NET.24 v3.11+ - END CHARACTER-ORIENTED TRANSMIT
  3228.     AX = 240Ch
  3229. Return: AL = status (see also AX=2400h)
  3230.         03h transmission error
  3231.         06h remote breaks connection
  3232. SeeAlso: AX=240Ah,AX=240Bh
  3233. --------J-175000-----------------------------
  3234. INT 17 - AX (Japanese AT) PRINTER - SET PRINTER COUNTRY CODE
  3235.     AX = 5000h
  3236.     BX = country code
  3237.         0001h USA (English), 0051h Japan
  3238. Return: AL = status
  3239.         00h successful
  3240.         01h bad country code
  3241.         02h other error
  3242. SeeAlso: AX=5001h,AH=51h,INT 10/AX=5000h,INT 16/AX=5000h
  3243. --------J-175001-----------------------------
  3244. INT 17 - AX (Japanese AT) PRINTER - GET PRINTER COUNTRY CODE
  3245.     AX = 5001h
  3246. Return: AL = status
  3247.         00h successful
  3248.         BX = country code
  3249.         02h error
  3250. SeeAlso: AX=5000h,AH=51h,INT 10/AX=5001h,INT 16/AX=5001h
  3251. --------J-1751-------------------------------
  3252. INT 17 - AX (Japanese AT) PRINTER - JIS to Shift-JIS CONVERSION
  3253.     AH = 51h
  3254.     DX = 2-byte JIS code
  3255. Return: DX = shift-JIS value or 0000h on error
  3256. Note:    one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
  3257.       characters to Shift-JIS characters, and the other performs the
  3258.       opposite conversion
  3259. SeeAlso: AX=5000h,AH=52h
  3260. --------J-1752-------------------------------
  3261. INT 17 - AX (Japanese AT) PRINTER - Shift-JIS to JIS CONVERSION
  3262.     AH = 52h
  3263.     DX = 2-byte shift-JIS code
  3264. Return: DX = JIS code or 0000h on error
  3265. Note:    one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
  3266.       characters to Shift-JIS characters, and the other performs the
  3267.       opposite conversion
  3268. SeeAlso: AH=51h
  3269. --------V-1760-------------------------------
  3270. INT 17 - FLASHUP.COM - INSTALLATION CHECK
  3271.     AH = 60h
  3272. Return: AL = 60h
  3273.     DX = CS of resident code
  3274. Notes:    FLASHUP.COM is part of Flash-Up Windows by The Software Bottling Co.
  3275.     FLASHUP also hooks INT 10 and receives commands via INT 10/AH=09h,0Ah
  3276.       consisting of an 80h followed by the actual command
  3277. SeeAlso: INT 10/AH=09h,INT 10/AH=0Ah
  3278. --------V-1761-------------------------------
  3279. INT 17 - SPEEDSCR.COM - INSTALLATION CHECK
  3280.     AH = 61h
  3281. Return: AL = 61h
  3282.     DX = CS of resident code
  3283. Note:    SPEEDSCR.COM is by The Software Bottling Co.
  3284. --------P-1762-------------------------------
  3285. INT 17 U - T2PS v1.0 - UNINSTALL
  3286.     AH = 62h
  3287. Return: nothing
  3288. SeeAlso: AH=63h,AH=64h,INT 05/AX=554Eh
  3289. --------P-1763-------------------------------
  3290. INT 17 U - T2PS v1.0 - SET PARAMETERS
  3291.     AH = 63h
  3292.     ES:SI -> settings (see #0565)
  3293. Program: T2PS is a shareware ASCII-to-PostScript converter by A.N.D.
  3294.       Technologies
  3295. SeeAlso: AH=62h,AH=64h,INT 05/AX=4E57h
  3296.  
  3297. Format of T2PS settings:
  3298. Offset    Size    Description    (Table 0565)
  3299.  00h    WORD    LPT port number (0=LPT1, etc.)
  3300.  02h    WORD    page heigh in points
  3301.  04h    WORD    page width in points
  3302.  06h    WORD    top margin in points
  3303.  08h    WORD    bottom margin in points
  3304.  0Ah    WORD    left margin in points
  3305.  0Ch    WORD    right margin in points
  3306.  0Eh    WORD    font size in points
  3307.  10h    WORD    tab size
  3308.  12h    WORD    timeout in clock ticks
  3309. --------P-1764-------------------------------
  3310. INT 17 U - T2PS v1.0 - GET PARAMETERS
  3311.     AH = 64h
  3312.     ES:SI -> buffer for settings (see #0565)
  3313. Return: ES:SI buffer filled
  3314. SeeAlso: AH=62h,AH=63h,INT 05/AX=5053h
  3315. --------b-176F00BX0000-----------------------
  3316. INT 17 - HP Vectra - EXTENDED BIOS - "F17_INQUIRE" - INSTALLATION CHECK
  3317.     AX = 6F00h
  3318.     BX = 0000h
  3319. Return: BX = 4850h ("HP") if HP Extended BIOS printer extensions available
  3320. SeeAlso: AX=6F02h,INT 14/AX=6F00h,INT 10/AX=6F00h,INT 14/AX=6F00h
  3321. SeeAlso: INT 33/AX=6F00h,INT 6F/AH=00h"HP Vectra"
  3322. --------b-176F02-----------------------------
  3323. INT 17 - HP Vectra - EXTENDED BIOS - "F17_PUT_BUFFER" - PRINT BUFFER
  3324.     AX = 6F02h
  3325.     CX = size of buffer in bytes
  3326.     DX = port number (0-3)
  3327.     ES:DI -> buffer containing characters to be printed
  3328. Return: AH = printer status (see #0555)
  3329.     CX = number of bytes successfully printed
  3330.     ---on error (AH bit 0 set)---
  3331.         ES:DI -> next byte to be sent
  3332.     ---if successful---
  3333.         ES:DI unchanged
  3334. SeeAlso: AH=00h,AX=6F00h,INT 14/AX=6F02h
  3335. ----------1780-------------------------------
  3336. INT 17 - IBM SurePath BIOS - Officially "Private" Function
  3337.     AH = 80h
  3338. SeeAlso: AH=03h"IBM",AH=0Bh"IBM"
  3339. --------N-1781-------------------------------
  3340. INT 17 - Alloy NTNX, MW386 - CANCEL JOBS FOR CURRENT USER
  3341.     AH = 81h
  3342.     AL = 00h (NTNX compatibility mode)
  3343.     CL = number of jobs to cancel
  3344. Return: AL = status (see #0566)
  3345. Note:    this function cancels the last CL printouts for the current task
  3346. SeeAlso: AH=82h
  3347.  
  3348. (Table 0566)
  3349. Values for Alloy status:
  3350.  00h    success
  3351.  01h-7Fh warning
  3352.  80h    general failure
  3353.  81h    host overloaded (NTNX only)
  3354.  82h    module busy (NTNX only)
  3355.  83h    host busy (NTNX only)
  3356.  84h    re-entry flag set
  3357.  85h    invalid request
  3358.  86h    invalid printer
  3359.  87h    invalid process ID
  3360.  89h    access denied
  3361.  8Ah    option not available for given port type
  3362.  8Bh    option not available for given task type
  3363.  91h    printer busy
  3364.  C2h    file not found
  3365.  C3h    path not found
  3366.  C4h    file access failure
  3367. --------N-1782-------------------------------
  3368. INT 17 - Alloy NTNX, MW386 - CANCEL ALL JOBS FOR CURRENT USER
  3369.     AH = 82h
  3370.     AL = 00h (NTNX compatibility mode)
  3371. Return: AL = status (see #0566)
  3372. SeeAlso: AH=81h
  3373. --------N-1783-------------------------------
  3374. INT 17 - Alloy NTNX, MW386 - SET NUMBER OF COPIES
  3375.     AH = 83h
  3376.     AL = mode
  3377.         00h NTNX compatibility
  3378.         CL = number of copies (max 99, default 1)
  3379.         02h MW386 v2+
  3380.         BX = logical device number
  3381.             00h-03h = LPT1-LPT4
  3382.             04h-07h = COM1-COM4
  3383.         CX = number of copies
  3384. Return: AL = status (see #0566)
  3385. Note:    in NTNX compatibility mode, this function only affects LPT1
  3386. --------N-1784-------------------------------
  3387. INT 17 - Alloy NTNX, MW386 - GENERATE PRINT BREAK
  3388.     AH = 84h
  3389.     AL = mode
  3390.         00h NTNX compatibility
  3391.         02h MW386 v2+
  3392.         BX = logical device number
  3393.             00h-03h = LPT1-LPT4
  3394.             04h-07h = COM1-COM4
  3395. Note:    closes spool file and tells spooler to queue the print job (LPT1 only
  3396.       under MW386 in NTNX compatibility mode)
  3397. --------J-1784-------------------------------
  3398. INT 17 - AX (Japanese AT) PRINTER - OUTPUT CHARACTER WITHOUT CONVERSION
  3399.     AH = 84h
  3400.     AL = character
  3401.     DX = printer number
  3402. Return: AH = printer status (see #0555)
  3403. SeeAlso: AH=00h,AH=85h
  3404. --------J-1785-------------------------------
  3405. INT 17 - AX (Japanese AT) PRINTER - ENABLE/DISABLE CHARACTER CONVERSION
  3406.     AH = 85h
  3407.     AL = new state (00h enabled, 01h disabled)
  3408. SeeAlso: AH=84h"AX"
  3409. --------N-1787-------------------------------
  3410. INT 17 - Alloy NTNX - SET INDOS POINTER
  3411.     AH = 87h
  3412.     AL = 00h
  3413.     CX:BX -> buffer for user-written printer drivers
  3414. Return: BX,CX destroyed
  3415. Note:    must be executed before the printer is enabled
  3416. SeeAlso: AH=8Ah
  3417. --------N-1788-------------------------------
  3418. INT 17 - Alloy NTNX, MW386 - REMOVE PRINTER FROM SPOOLER
  3419.     AH = 88h
  3420.     AL = mode
  3421.         00h NTNX compatibility
  3422.         DX = NTNX printer number (see #0567)
  3423.         01h MW386
  3424.         DX = MW386 printer number
  3425. Return: AH = status (see #0566)
  3426. Note:    removes specified printer from the spooler's list of printers
  3427. SeeAlso: AH=89h,AH=8Bh
  3428.  
  3429. (Table 0567)
  3430. Values for Alloy NTNX printer number:
  3431.  00h    host LPT1
  3432.  01h    host LPT2
  3433.  02h    host LPT3
  3434.  03h    host LPT4
  3435.  04h    host COM1
  3436.  05h    host COM2
  3437.  06h    user's logical COM2
  3438.  07h    user's terminal AUX port
  3439.  08h    user's logical COM1 (MW386 only)
  3440. --------N-1789-------------------------------
  3441. INT 17 - Alloy NTNX, MW386 - ADD PRINTER TO SPOOLER
  3442.     AH = 89h
  3443.     AL = mode
  3444.         00h NTNX compatibility
  3445.         DX = NTNX printer number (see #0567)
  3446.         01h MW386
  3447.         DX = MW386 printer number
  3448. Return: AL = status (see #0566)
  3449. Note:    the specified printer is added to the spooler's list of available
  3450.       printers
  3451. SeeAlso: AH=88h,AH=8Bh
  3452. --------N-178A-------------------------------
  3453. INT 17 - Alloy NTNX - ACTIVATE USER-WRITTEN PRINTER DRIVER
  3454.     AH = 8Ah
  3455.     ???
  3456. SeeAlso: AH=92h
  3457. --------N-178B-------------------------------
  3458. INT 17 - Alloy MW386 - GET PHYSICAL DEVICE NUMBER FROM NAME
  3459.     AH = 8Bh
  3460.     DS:DX -> ASCIZ printer name
  3461. Return: AL = status (see also AH=81h)
  3462.         00h successful
  3463.         DX = physical device number
  3464. SeeAlso: AH=89h,AH=8Ch,INT 14/AH=20h"Alloy"
  3465. --------N-178C-------------------------------
  3466. INT 17 - Alloy MW386 - GET DEVICE NAME FROM PHYSICAL DEVICE NUMBER
  3467.     AH = 8Ch
  3468.     DX = physical device number
  3469.     ES:DI -> 17-byte buffer for ASCIZ device name
  3470. Return: AL = status (see also AH=81h)
  3471.         00h successful
  3472.         ES:DI buffer filled
  3473. SeeAlso: AH=88h,AH=8Bh
  3474. --------N-178D-------------------------------
  3475. INT 17 - Alloy NTNX,MW386 - RESET SPOOLER
  3476.     AH = 8Dh
  3477.     AL = 00h
  3478. Return: AL = status (see #0566)
  3479. Notes:    clears all buffers and resets spooler to boot-up values
  3480.     MW386 supports this function for compatibility only; it is a NOP
  3481. --------N-178E-------------------------------
  3482. INT 17 - Alloy NTNX - GET INT 28 ENTRY POINT
  3483.     AH = 8Eh
  3484.     AL = 00h
  3485. Return: CX:BX -> INT 28 entry point
  3486. SeeAlso: AH=8Fh
  3487. --------N-178F-------------------------------
  3488. INT 17 - Alloy NTNX - GET DOS INTERCEPT ENTRY POINT
  3489.     AH = 8Fh
  3490.     AL = 00h
  3491. Return: CX:BX -> DOS intercept routine
  3492. SeeAlso: AH=8Eh
  3493. --------N-1790-------------------------------
  3494. INT 17 - Alloy NTNX, MW386 - SPOOL FILE BY NAME
  3495.     AH = 90h
  3496.     AL = mode
  3497.         00h NTNX compatibility
  3498.         DL = printer code (FFh=current) (NTNX, MW386 v1.x only)
  3499.         DH = number of copies (FFh=current) (NTNX, MW386 v1.x only)
  3500.         02h MW386 v2+
  3501.         BX = logical device number
  3502.             00h-03h = LPT1-LPT4
  3503.             04h-07h = COM1-COM4
  3504.     CX:SI -> ASCIZ pathname
  3505. Return: AL = status (see #0566)
  3506. Note:    in mode 00h, the file is always sent to logical LPT1
  3507. SeeAlso: AH=A0h
  3508. --------N-1791-------------------------------
  3509. INT 17 - Alloy NTNX, MW386 - GET USER NUMBER AND CURRENT PRINTER
  3510.     AH = 91h
  3511.     AL = mode
  3512.         00h NTNX compatibility
  3513.         Return: CX = user number (00h = host)
  3514.             DX = currently selected printer number (00h-08h)
  3515.         01h MW386
  3516.         Return: CX = user number
  3517.             DX = physical dev number of currently selected printer
  3518.         02h MW386 v2+
  3519.         BX = logical device number
  3520.             00h-03h = LPT1-LPT4
  3521.             04h-07h = COM1-COM4
  3522.         Return: CX = user number
  3523.             DX = physical device number
  3524. Return: AL = status (see #0566)
  3525. SeeAlso: AH=8Ch
  3526. --------N-1792-------------------------------
  3527. INT 17 - Alloy NTNX - CHECK PRINTER DRIVER
  3528.     AH = 92h
  3529.     AL = 00h
  3530.     CL = 00h
  3531. Return: CL = driver state
  3532.         01h initialized
  3533.         80h not initialized
  3534.     AX = status (see #0566)
  3535. SeeAlso: AH=8Ah
  3536. --------N-1794-------------------------------
  3537. INT 17 - Alloy NTNX, MW386 - SELECT PRINTER
  3538.     AH = 94h
  3539.     AL = mode
  3540.         00h NTNX compatibility
  3541.         DX = NTNX printer number (see #0567)
  3542.         01h MW386
  3543.         DX = MW386 printer number
  3544.         02h MW386 v2+
  3545.         BX = logical printer number
  3546.         DX = MW386 printer number
  3547. Return: AL = status (see #0566)
  3548. Note:    modes 00h and 01h affect only logical LPT1
  3549. SeeAlso: AH=8Bh,AH=95h
  3550. --------N-1795-------------------------------
  3551. INT 17 - Alloy NTNX, MW386 - GET CURRENT PRINTER
  3552.     AH = 95h
  3553.     AL = mode
  3554.         00h NTNX compatibility
  3555.         Return: DX = NTNX printer number (see #0567)
  3556.                 (FFFFh if current printer not compatible with NTNX)
  3557.         01h MW386
  3558.         Return: DX = MW386 printer number
  3559.         02h MW386 v2+
  3560.         BX = logical device number
  3561.             00h-03h = LPT1-LPT4
  3562.             04h-07h = COM1-COM4
  3563.         Return: DX = MW386 printer number (FFFFh = none)
  3564. Return: AL = status (see #0566)
  3565. Note:    modes 00h and 01h return the printer number of logical LPT1 only
  3566. SeeAlso: AH=94h
  3567. --------N-1796-------------------------------
  3568. INT 17 - Alloy NTNX - SET SERIAL PORT PARAMETERS
  3569.     AH = 96h
  3570.     AL = 00h
  3571. Note:    documentation states that this is a NOP, doing only XOR AX,AX before
  3572.       returning
  3573. SeeAlso: INT 14/AH=24h
  3574. --------N-1797-------------------------------
  3575. INT 17 - Alloy NTNX, MW386 - SET DATA DRIVEN PRINT BREAK
  3576.     AH = 97h
  3577.     AL = mode
  3578.         00h NTNX compatibility
  3579.         02h MW386 v2+
  3580.         BX = logical device number
  3581.             00h-03h = LPT1-LPT4
  3582.             04h-07h = COM1-COM4
  3583.     CH,CL,DH = three character break sequence
  3584.     DL = subfunction
  3585.         00h set break string
  3586.         else reset break
  3587. Return: AL = status (see #0566)
  3588. Notes:    mode 00h affects only logical LPT1
  3589.     when the break string is encountered, the spool file will be closed and
  3590.       queued for printing automatically
  3591.     the break string is not permanently saved, and will be reset each time
  3592.       MW386 or the user is rebooted
  3593. SeeAlso: AH=9Bh
  3594. --------N-1798-------------------------------
  3595. INT 17 - Alloy NTNX,MW386 - RESTART PRINTER
  3596.     AH = 98h
  3597.     AL = 00h
  3598.     DL = printer number (FFh=current)
  3599. Return: AL = status
  3600.         00h successful
  3601.         01h incorrect printer
  3602.         02h task not found
  3603. Note:    MW386 supports this function for compatibility only; it is a NOP
  3604. --------N-1799-------------------------------
  3605. INT 17 - Alloy NTNX, MW386 - GET/SET PRINTER MODE
  3606.     AH = 99h
  3607.     AL = mode
  3608.         00h NTNX compatibility
  3609.         DL = NTNX printer number (see #0567)
  3610.             (FFh = task's current logical LPT1)
  3611.         DH = mode (see #0568)
  3612.         01h MW386
  3613.         DX = MW386 printer number
  3614.         CL = mode (as for DH above)
  3615. Return: AL = status (see #0566)
  3616.     DH = mode (bits 1 and 2 set as above)
  3617.     DL = printer owner's user number if not spooled
  3618.  
  3619. Bitfields for Alloy printer mode:
  3620.  0    get mode if 1, set mode if 0    (Table 0568)
  3621.  1    private ("attached")
  3622.  2    direct instead of spooled
  3623.  3-7    reserved (0)
  3624. --------N-179A-------------------------------
  3625. INT 17 - Alloy NTNX,MW386 - SET TAB EXPANSION
  3626.     AH = 9Ah
  3627.     AL = mode
  3628.         00h NTNX compatibility
  3629.         DX = NTNX printer number (see #0567)
  3630.             (FFFFh = current logical LPT1)
  3631.         01h MW386
  3632.         DX = MW386 printer number
  3633.     CL = tab length (00h = no expansion, 01h-63h = spaces per tab)
  3634. Return: AL = status (see #0566)
  3635. Note:    beginning with MW386 v2.0, tab expansion is set on a per-printer basis
  3636.       rather than a per-user basis; NTNX and MW386 v1.x ignore DX
  3637. SeeAlso: AH=A4h
  3638. --------N-179B-------------------------------
  3639. INT 17 - Alloy NTNX,MW386 - SET PRINT BREAK TIMEOUT
  3640.     AH = 9Bh
  3641.     AL = mode
  3642.         00h NTNX compatibility
  3643.         CX = timeout value in clock ticks (1/18 sec) (00h = never)
  3644.         01h MW386
  3645.         CX = timeout value in seconds (00h = never)
  3646.         02h MW386 v2+
  3647.         BX = logical device number
  3648.             00h-03h = LPT1-LPT4
  3649.             04h-07h = COM1-COM4
  3650.         CX = timeout value in seconds (00h = never)
  3651. Return: AL = status (see #0566)
  3652. Notes:    modes 00h and 01h affect only the current logical LPT1
  3653.     if no data is sent to a printer for the specified amount of time, the
  3654.       spool file will be closed and queued for printing automatically
  3655. SeeAlso: AH=97h
  3656. --------N-17A0-------------------------------
  3657. INT 17 - Alloy MW386 - SPOOL COPY OF FILE
  3658.     AH = A0h
  3659.     AL = mode
  3660.         00h NTNX compatibility
  3661.         DX = ??? (NTNX, MW386 v1.x only)
  3662.         02h MW386 v2+
  3663.         BX = logical device number
  3664.             00h-03h = LPT1-LPT4
  3665.             04h-07h = COM1-COM4
  3666.     CX:SI -> ASCIZ pathname
  3667. Return: AL = status (see #0566)
  3668. Notes:    makes a copy of the specified file in the spooler's directory, allowing
  3669.       the original file to be modified or deleted while the copy is printed
  3670.     in mode 00h, the file is printed on logical LPT1
  3671. SeeAlso: AH=90h
  3672. --------N-17A4-------------------------------
  3673. INT 17 - Alloy MW386 - ENABLE/DISABLE FORM FEED
  3674.     AH = A4h
  3675.     AL = new state
  3676.         00h form feed after end of print job disabled
  3677.         01h form feed enabled
  3678. Return: AL = status (see #0566)
  3679. Note:    only affects the current logical LPT1
  3680. SeeAlso: AH=9Ah,AH=A6h,INT 7F/AH=05h"NTNX (Host)"
  3681. --------N-17A6-------------------------------
  3682. INT 17 - Alloy MW386 - ENABLE/DISABLE BANNER PAGE
  3683.     AH = A6h
  3684.     AL = new state
  3685.         00h banner page before print job disabled
  3686.         01h banner page enabled
  3687. Return: AL = status (see #0566)
  3688. Note:    only affects the current logical LPT1
  3689. SeeAlso: AH=A4h
  3690. --------N-17A7-------------------------------
  3691. INT 17 - Alloy MW386 v2+ - GET/SET SPOOL FLAGS
  3692.     AH = A7h
  3693.     AL = spool flags (see #0569)
  3694.     BX = logical device number
  3695.         00h-03h = LPT1-LPT4
  3696.         04h-07h = COM1-COM4
  3697. Return: AL = status (see #0566)
  3698. Note:    the documentation does not state which register contains the result of
  3699.       a GET
  3700. SeeAlso: AH=A4h,AH=A6h
  3701.  
  3702. Bitfields for Alloy spool flags:
  3703. Bit(s)    Description    (Table 0569)
  3704.  0    banner page enabled (see AH=A6h)
  3705.  1    form feed enabled (see AH=A4h)
  3706.  2-6    reserved (0)
  3707.  7    set flags if 1, get flags if 0
  3708. --------N-17A8-------------------------------
  3709. INT 17 - Alloy MW386 - DEFINE TEMPORARY FILENAME
  3710.     AH = A8h
  3711.     CX:SI -> ASCIZ filename without extension (max 8 chars)
  3712. Return: AL = status (see #0566)
  3713. Note:    allows application to specify banner page filename for spool files
  3714.       collected from the application's printer output
  3715. SeeAlso: AH=A9h
  3716. --------N-17A9-------------------------------
  3717. INT 17 - Alloy MW386 - CHANGE TEMPORARY SPOOL DRIVE
  3718.     AH = A9h
  3719.     AL = new spool drive (2=C:,3=D:,etc)
  3720. Return: AL = status (see #0566)
  3721. Note:    does not remove previous spooling directory since jobs may be pending
  3722. SeeAlso: AH=A8h
  3723. --------N-17AA-------------------------------
  3724. INT 17 - Alloy MW386 v2+ - GET REAL-TIME PRINTER STATUS
  3725.     AH = AAh
  3726.     AL = mode
  3727.         00h NTNX
  3728.         DX = NTNX printer number (see #0567)
  3729.         01h MW386
  3730.         DX = MW386 printer number
  3731. Return: AH = instantaneous printer status
  3732.         00h printer ready
  3733.         01h not ready
  3734.         12h off line
  3735.         13h out of paper
  3736.         14h general device failure
  3737.         15h device timeout
  3738.         16h bad device number
  3739. --------N-17AF-------------------------------
  3740. INT 17 - Alloy MW386 - CHECK SPOOLER
  3741.     AH = AFh
  3742. Return: AX = 55AAh if spooler available
  3743. --------c-17C0-------------------------------
  3744. INT 17 - PC Magazine PCSpool - GET CONTROL BLOCK ADDRESS
  3745.     AH = C0h
  3746.     DX = printer port (0-3)
  3747. Return: ES:BX -> control block (see #0570)
  3748. SeeAlso: AH=C1h
  3749.  
  3750. Format of PCSpool control block:
  3751. Offset    Size    Description    (Table 0570)
  3752.  00h    WORD    printer number
  3753.  02h    WORD    address of printer status port
  3754.  04h    WORD    number of first record in queue
  3755.  06h    WORD    number of last record in queue
  3756.  08h    DWORD    characters already printed
  3757.  0Ch    DWORD    number of characters remaining
  3758.  10h    DWORD    pointer to dequeue buffer
  3759.  14h    DWORD    previous count of characters printed
  3760.  18h    DWORD    number of clock ticks taken to print them
  3761.  1Ch    WORD    offset of next character to output
  3762.  1Eh    WORD    offset of next character to print
  3763.  20h    WORD    pointer to spooling queue record
  3764.  22h    BYTE    current spooling status
  3765.  23h    BYTE    current printer status:
  3766.         00h OK
  3767.         01h not ready
  3768.         02h paused with message
  3769.         03h paused
  3770.         04h initializing
  3771.         FEh non-existent port
  3772.         FFh not spooled
  3773.  24h    BYTE    current control record type
  3774.  25h    WORD    observed printer speed
  3775.  27h    WORD    characters to print per service
  3776.  29h    BYTE    01h if disk write needed
  3777.  2Ah    BYTE    01h if queued data should be flushed
  3778.  2Bh    BYTE    01h to update cps status
  3779. --------c-17C1--------------------------------
  3780. INT 17 - PC Magazine PCSpool - BUILD PAUSE CONTROL RECORD
  3781.     AH = C1h
  3782.     DX = printer port (0-3)
  3783.     DS:SI -> ASCIZ string to save for display
  3784. Note:    flushes pending writes
  3785. SeeAlso: AH=C0h,AH=C2h
  3786. --------c-17C2-------------------------------
  3787. INT 17 - PC Magazine PCSpool - FLUSH PENDING WRITES
  3788.     AH = C2h
  3789.     DX = printer port (0-3)
  3790. SeeAlso: AH=C3h
  3791. --------c-17C3-------------------------------
  3792. INT 17 - PC Magazine PCSpool - CANCEL PRINTER QUEUE (FLUSH ALL QUEUED OUTPUT)
  3793.     AH = C3h
  3794.     DX = printer port (0-3)
  3795. SeeAlso: AH=C2h,AH=C7h
  3796. --------c-17C4-------------------------------
  3797. INT 17 - PC Magazine PCSpool - QUERY SPOOLER ACTIVE
  3798.     AH = C4h
  3799. Return: DI = B0BFh
  3800.     SI = segment
  3801. --------c-17C5-------------------------------
  3802. INT 17 - PC Magazine PCSpool - JOB SKIP PRINTER QUEUE
  3803.     AH = C5h
  3804.     DX = printer port (0-3)
  3805. Note:    cancels up to the pause record
  3806. --------c-17C6-------------------------------
  3807. INT 17 - PC Magazine PCSpool - CHECK PRINTER QUEUE STATUS
  3808.     AH = C6h
  3809.     DX = printer port (0-3)
  3810. Return: AX = queue status
  3811.        0000h printer not active or at pause
  3812.        0001h printer busy
  3813. --------c-17C7-------------------------------
  3814. INT 17 - PC Magazine PCSpool - CLOSE QUEUE
  3815.     AH = C7h
  3816.     DX = printer port (0-3)
  3817. SeeAlso: AH=C3h
  3818. --------P-17CD00-----------------------------
  3819. INT 17 - INSET - EXECUTE COMMAND STRING
  3820.     AX = CD00h
  3821.     DS:DX -> ASCIZ command string (max 80 bytes)
  3822. Return: CX = 07C2h (1986d)
  3823. Note:    user interface menus pop up after last command, unless that command
  3824.     exits INSET
  3825. --------P-17CD01-----------------------------
  3826. INT 17 - INSET - GET IMAGE SIZE
  3827.     AX = CD01h
  3828.     DS:DX -> ASCIZ name of image file
  3829. Return: AX = height in 1/720th inch
  3830.     BX = width in 1/720th inch
  3831.     CX = 07C2h (1986d)
  3832. --------P-17CD02-----------------------------
  3833. INT 17 - INSET - INITIALIZE
  3834.     AX = CD02h
  3835. Return: CX = 07C2h (1986d)
  3836. Note:    all open files are closed and the printer is reset
  3837. SeeAlso: AX=CD04h
  3838. --------P-17CD03-----------------------------
  3839. INT 17 - INSET - EXECUTE INSET MENU WITHIN OVERRIDE MODE
  3840.     AX = CD03h
  3841. Return: CX = 07C2h (1986d)
  3842. --------P-17CD04-----------------------------
  3843. INT 17 - INSET - INITIALIZE LINKED MODE
  3844.     AX = CD04h
  3845.     ES:SI -> FAR routine for linked mode (see #0571)
  3846. Return: CX = 07C2h
  3847. SeeAlso: AX=CD02h,AX=CD08h
  3848.  
  3849. (Table 0571)
  3850. Values INSET linked-mode routine is called with:
  3851.     AL = function
  3852.         00h send character to printer
  3853.         BL = character to send
  3854.         01h send string to printer
  3855.         CX = number of bytes to send
  3856.         DS:DX -> buffer containing data
  3857.         02h move print head to horizontal starting position of image
  3858. Return: AX = status
  3859.         0000h success
  3860.         0001h failure
  3861. --------P-17CD05-----------------------------
  3862. INT 17 - INSET - START MERGING IMAGE INTO TEXT
  3863.     AX = CD05h
  3864.     DS:DX -> ASCIZ name of PIX file
  3865.     CX = left margin of text in 1/720th inch
  3866. Return: AH = printer type
  3867.         00h page-oriented (multiple images may be placed side-by-side)
  3868.         01h line-oriented (use AX=CD06h for vertical paper movement)
  3869.     CX = 07C2h (1986d)
  3870. SeeAlso: AX=CD07h
  3871. --------P-17CD06-----------------------------
  3872. INT 17 - INSET - GRAPHICS LINE FEED
  3873.     AX = CD06h
  3874. Return: AH = completion status
  3875.         00h image complete
  3876.         01h image incomplete
  3877.     CX = 07C2h (1986d)
  3878. SeeAlso: AX=CD09h
  3879. --------P-17CD07-----------------------------
  3880. INT 17 - INSET - FLUSH GRAPHICS FROM MERGE BUFFER
  3881.     AX = CD07h
  3882. Return: CX = 07C2h
  3883. SeeAlso: AX=CD05h
  3884. --------P-17CD08-----------------------------
  3885. INT 17 - INSET - CANCEL LINK MODE
  3886.     AX = CD08h
  3887. Return: CX = 07C2h
  3888. SeeAlso: AX=CD04h
  3889. --------P-17CD09-----------------------------
  3890. INT 17 - INSET - ALTER TEXT LINE SPACING
  3891.     AX = CD09h
  3892.     CX = line spacing in 1/720th inch
  3893. Return: CX = 07C2h
  3894. Note:    not yet implemented, line spacing is currently fixed at 1/6 inch
  3895. SeeAlso: AX=CD06h
  3896. --------P-17CD0A-----------------------------
  3897. INT 17 - INSET - GET SETUP
  3898.     AX = CD0Ah
  3899.     DS:DX -> buffer for IN.SET data
  3900. Return: CX = 07C2h
  3901. --------P-17CD0B-----------------------------
  3902. INT 17 - INSET - START GETTING SCALED IMAGE
  3903.     AX = CD0Bh
  3904.     DS:SI -> ASCIZ pathname of .PIX file
  3905.     BX = number of bitplanes
  3906.     CX = number of rows in output bitmap
  3907.     DX = number of columns in output bitmap
  3908. Return: AX = status
  3909.         0000h OK
  3910.         FFFFh error
  3911. Note:    image is returned in strips by repeated calls to AX=CD0Ch
  3912. --------P-17CD0C-----------------------------
  3913. INT 17 - INSET - GET NEXT IMAGE STRIP
  3914.     AX = CD0Ch
  3915. Return: AX = status
  3916.         0000h OK but not complete
  3917.         0001h OK and image complete
  3918.         FFFFh error
  3919.     DS:SI -> buffer (max 4K) for bit map strip
  3920.     CX = start row
  3921.     DX = number of rows
  3922.     BX = offset in bytes between bit planes
  3923. Note:    buffer may be overwritten by subsequent calls
  3924. SeeAlso: AX=CD0Bh
  3925. --------P-17E0-------------------------------
  3926. INT 17 - EPP BIOS - INSTALLATION CHECK
  3927.     AH = E0h
  3928. Return: ??? (AH <> E0h if installed ???)
  3929. SeeAlso: AX=0200h"EPP",AH=E1h,AH=E2h
  3930. --------P-17E1-------------------------------
  3931. INT 17 - EPP BIOS - DISABLE EPP
  3932.     AH = E1h
  3933.     ???
  3934. Return: ???
  3935. SeeAlso: AX=0200h"EPP",AH=E0h,AH=E2h
  3936. --------P-17E2-------------------------------
  3937. INT 17 - EPP BIOS - ENABLE EPP
  3938.     AH = E2h
  3939.     ???
  3940. Return: ???
  3941. SeeAlso: AX=0200h"EPP",AH=E0h,AH=E1h
  3942. --------P-17F0-------------------------------
  3943. INT 17 - NorthNet Jetstream API - INSTALLATION CHECK
  3944.     AH = F0h
  3945.     DX = printer port (0-3)
  3946. Return: AX = 0001h Jetstream present
  3947.          else  non-Jetstream port
  3948. Note:    NorthNet Jetstream is a high-performance DMA-driven parallel card able
  3949.       to drive printers at up to 80000 characters per second
  3950. --------P-17F1-------------------------------
  3951. INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER
  3952.     AH = F1h
  3953.     CX = data buffer length
  3954.     DX = printer port (0-3)
  3955.     DS:SI -> data buffer
  3956. Return: AX = status
  3957.         0000h printer not ready (see also AH=02h)
  3958.         other printing started
  3959. SeeAlso: AH=00h,AH=F2h,AH=F3h,AH=F5h
  3960. --------P-17F2-------------------------------
  3961. INT 17 - NorthNet Jetstream API - GET PRINT PROGRESS STATUS
  3962.     AH = F2h
  3963.     DX = printer port (0-3)
  3964. Return: AX = status
  3965.         0000h prior print request finished
  3966.         other number of characters left to print
  3967. SeeAlso: AH=02h,AH=F1h,AH=F3h
  3968. --------P-17F3-------------------------------
  3969. INT 17 - NorthNet Jetstream API - ABORT PRINT OPERATION
  3970.     AH = F3h
  3971.     DX = printer port (0-3)
  3972. Return: AX = number of unprinted characters due to abort
  3973. SeeAlso: AH=F1h,AH=F4h
  3974. --------P-17F4-------------------------------
  3975. INT 17 - NorthNet Jetstream API - SET COMPLETION (POST) ADDRESS
  3976.     AH = F4h
  3977.     DX = printer port (0-3)
  3978.     DS:DS -> FAR post address (called with interrupts on)
  3979. SeeAlso: AH=F1h,AH=F3h
  3980. --------P-17F5-------------------------------
  3981. INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER FROM EXTENDED MEMORY
  3982.     AH = F5h
  3983.     CX = data buffer length
  3984.     DX = printer port (0-3)
  3985.     DS:SI -> data buffer (32-bit physical address)
  3986. Return: AX = status
  3987.         0000h printer not ready (see also AH=02h)
  3988.         other printing started
  3989. SeeAlso: AH=F1h
  3990. --------c-17FF--BX0000-----------------------
  3991. INT 17 U - PC-MOS/386 v5.01 - PRINT SPOOLER - CLOSE SPOOL FILE
  3992.     AH = FFh
  3993.     BX = 0000h
  3994.     CX = 0000h
  3995.     DX = printer port number
  3996. Return: AH = printer status (see #0555 at AH=00h)
  3997. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  3998.       operating system by The Software Link, Inc.
  3999. Desc:    close the spool file immediately instead of waiting for the close time
  4000.       to elapse
  4001. SeeAlso: AH=01h,AH=03h"PC-MOS"
  4002. --------B-18---------------------------------
  4003. INT 18 - DISKLESS BOOT HOOK (START CASSETTE BASIC)
  4004. Desc:    called when there is no bootable disk available to the system
  4005. Notes:    only PCs produced by IBM contain BASIC in ROM, so the action is
  4006.       unpredictable on compatibles; this interrupt often reboots the
  4007.       system, and often has no effect at all
  4008.     network cards with their own BIOS can hook this interrupt to allow
  4009.       a diskless boot off the network (even when a hard disk is present
  4010.       if none of the partitions is marked as the boot partition)
  4011. SeeAlso: INT 2F/AX=4A06h,INT 86"NetBIOS"
  4012. --------J-1800-------------------------------
  4013. INT 18 - NEC PC-9800 series - KEYBOARD - GET KEYSTROKE
  4014.     AH = 00h
  4015. Return: AX = keystroke
  4016. SeeAlso: AH=01h,AH=02h,INT 16/AH=00h
  4017. --------J-1801-------------------------------
  4018. INT 18 - NEC PC-9800 series - KEYBOARD - CHECK FOR KEYSTROKE
  4019.     AH = 01h
  4020. Return: BH = status
  4021.         00h no keystrokes available
  4022.         01h keystroke available
  4023.         AX = keystroke
  4024. SeeAlso: AH=00h,AH=02h,INT 16/AH=01h
  4025. --------J-1802-------------------------------
  4026. INT 18 - NEC PC-9800 series - KEYBOARD - GET SHIFT STATUS
  4027.     AH = 02h
  4028. Return: AL = shift flags
  4029. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,INT 16/AH=02h
  4030. --------J-1803-------------------------------
  4031. INT 18 - NEC PC-9800 series - KEYBOARD - INITIALIZE
  4032.     AH = 03h
  4033.     ???
  4034. Return: ???
  4035. SeeAlso: AH=00h,AH=04h
  4036. --------J-1804-------------------------------
  4037. INT 18 - NEC PC-9800 series - KEYBOARD - KEY PRESSED
  4038.     AH = 04h
  4039.     ???
  4040. Return: ???
  4041. Note:    details are not available at this time
  4042. SeeAlso: AH=00h,AH=02h,INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02h
  4043. --------J-18---------------------------------
  4044. INT 18 - NEC PC-9800 series - VIDEO
  4045.     AH = function
  4046.         0Ah set video mode
  4047.         0Bh get video mode
  4048.         0Ch start text screen display
  4049.         0Dh end text screen display
  4050.         0Eh set single display area
  4051.         0Fh set multiple display area
  4052.         10h set cursor shape
  4053.         11h display cursor
  4054.         12h terminate cursor
  4055.         13h set cursor position
  4056.         14h read font patter
  4057.         16h initialize text video RAM
  4058.         1Ah define user character
  4059.         others
  4060.     ???
  4061. Return: ???
  4062. Notes:    details are not available at this time
  4063.     text video RAM is located at segments A000h (characters) and A200h
  4064.       (attributes), graphics video RAM at segment C000h
  4065.  
  4066. Bitfields for NEC PC-9800 series video attributes:
  4067. Bit(s)    Description    (Table 0572)
  4068.  0    disable drawing character
  4069.  1    blinking
  4070.  2    reverse video
  4071.  3    underline
  4072.  4    vertical line
  4073.  7-5    color
  4074.     (0=black, 1=blue, 2=red, 3=purple, 4=green, 5=cyan, 6=yellow, 7=white)
  4075. --------J-180E-------------------------------
  4076. INT 18 - NEC PC-9800 series - SET SINGLE DISPLAY AREA
  4077.     AH = 0Eh
  4078.     DX = offset of first byte to display???
  4079. Return: ???
  4080. SeeAlso: AH=1Bh,MEM 0050h:0001h
  4081. --------J-181B-------------------------------
  4082. INT 18 - NEC PC-9800 series - SET DISPLAY MODE
  4083.     AH = 1Bh
  4084.     AL = ??? (00h for text mode)
  4085. Return: ???
  4086. --------r-185350BX4849-----------------------
  4087. INT 18 - SPHINX C-- - WB.COM - API
  4088.     AX = 5350h ('SP')
  4089.     BX = 4849h ('HI')
  4090.     CX = 4E58h ('NX')
  4091.     DH = function
  4092.         01h set ???
  4093.         DL = ???
  4094.         02h get ???
  4095.         Return: DL = ???
  4096.         03h get ???
  4097.         Return: ES:DI -> ??? data buffer
  4098.         06h ???
  4099. Return: AX = 7370h ('sp') if installed
  4100.     BX = 6869h ('hi') if installed
  4101.     CX = 6E78h ('nx') if installed
  4102. Program: SPHINX C-- is a shareware compiler by Peter Cellik for a language
  4103.       which is a cross between C and assembler; WB.COM is the driver which
  4104.       launches the WorkBench
  4105. --------s-186900-----------------------------
  4106. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET STATUS
  4107.     AX = 6900h
  4108. Return: AX = amount of DRAM on card or 0000h if GUS not available
  4109. Program: YEA_GUS is a driver for the Graphics Ultra Sound which hooks INT 18h
  4110.       and then shells out the the program requiring its services
  4111. SeeAlso: AX=6901h,AX=690Ah,AX=690Bh
  4112. --------s-186901-----------------------------
  4113. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESET
  4114.     AX = 6901h
  4115.     BX = number of active voices (14-32)
  4116. Return: nothing
  4117. SeeAlso: AX=6900h
  4118. --------s-186902-----------------------------
  4119. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOLUME FOR SPECIFIC VOICE
  4120.     AX = 6902h
  4121.     BX = voice number (00h-1Fh)
  4122.     CX = linear volume (0000h-01FFh)
  4123. Return: nothing
  4124. SeeAlso: AX=6900h,AX=6903h,AX=6904h,AX=6909h,AX=690Ah
  4125. --------s-186903-----------------------------
  4126. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET FREQUENCY FOR VOICE
  4127.     AX = 6903h
  4128.     BX = voice number (00h-1Fh)
  4129.     CX = frequency in Hz (0-44100)
  4130. Return: nothing
  4131. SeeAlso: AX=6902h,AX=6904h
  4132. --------s-186904-----------------------------
  4133. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET LEFT/RIGHT BALANCE
  4134.     AX = 6904h
  4135.     BX = voice number (00h-1Fh)
  4136.     CX = balance (0 = left, 7 = even, 15 = right)
  4137. Return: nothing
  4138. SeeAlso: AX=6902h,AX=6903h
  4139. --------s-186905-----------------------------
  4140. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - PLAY MUSIC
  4141.     AX = 6905h
  4142.     BL = voice number
  4143.     BH = sample type (0 = 8-bit, 1 = 16-bit)
  4144.     CL = looping type (0 = none, 1 = forward, 2 = back and forth)
  4145.     CH:DI = 20-bit starting address for voice data
  4146.     DL:SI = 20-bit address for loop start
  4147.     DH:BP = 20-bit address for loop end
  4148. SeeAlso: AX=6903h,AX=6906h,AX=690Bh
  4149. --------s-186906-----------------------------
  4150. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - LOAD SOUND DATA
  4151.     AX = 6906h
  4152.     BL = data format (1 = twos-complement, 0 = not)
  4153.     BH = sample type (0 = 8-bit, 1 = 16-bit)
  4154.     CX = number of bytes to send
  4155.     ES:SI -> buffer containing data
  4156.     DL:DI = 20-bit address of GUS DRAM at which to load sound data
  4157. SeeAlso: AX=6900h,AX=6905h,AX=690Ch
  4158. --------s-186907-----------------------------
  4159. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - STOP VOICE
  4160.     AX = 6907h
  4161.     BX = voice number (00h-1Fh)
  4162. Return: nothing
  4163. SeeAlso: AX=6908h,AX=690Dh
  4164. --------s-186908-----------------------------
  4165. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOICE END
  4166.     AX = 6908h
  4167.     BX = voice number (00h-1Fh)
  4168.     CL:DX = 20-bit ending address
  4169. Return: nothing
  4170. SeeAlso: AX=690Bh
  4171. --------s-186909-----------------------------
  4172. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RAMP VOLUME
  4173.     AX = 6909h
  4174.     BL = voice number (00h-1Fh)
  4175.     BH = looping type (0 = none, 1 = forward, 2 = back and forth)
  4176.     CX = starting volume
  4177.     DX = ending volume
  4178.     DI:SI = time
  4179. Return: nothing
  4180. SeeAlso: AX=6902h,AX=690Ah
  4181. --------s-18690A-----------------------------
  4182. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET VOLUME
  4183.     AX = 690Ah
  4184.     BX = voice number (00h-1Fh)
  4185. Return: AX = current non-linear volume for voice
  4186. SeeAlso: AX=6902h,AX=6909h
  4187. --------s-18690B-----------------------------
  4188. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET POSITION
  4189.     AX = 690Bh
  4190.     BX = voice number
  4191. Return: BX:AX = 20-bit address at which voice is playing
  4192. SeeAlso: AX=6900h,AX=6905h,AX=6908h
  4193. --------s-18690C-----------------------------
  4194. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SAVE SOUND DATA
  4195.     AX = 690Ch
  4196.     BL = data format (1 = twos-complement, 0 = not)
  4197.     BH = sample type (0 = 8-bit, 1 = 16-bit)
  4198.     CX = number of bytes to get
  4199.     ES:SI -> buffer for retrieved data
  4200.     DL:DI = 20-bit address in GUS DRAM from which to read voice data
  4201. Return: nothing
  4202. SeeAlso: AX=6906h
  4203. --------s-18690D-----------------------------
  4204. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESTART VOICE
  4205.     AX = 690Dh
  4206.     BX = voice
  4207.     CX = sample type (0 = 8-bit, 1 = 16-bit)
  4208.     DX = looping type (0 = none, 1 = forward, 2 = back and forth)
  4209. Return: CX = balance value
  4210. SeeAlso: AX=6907h,AX=6908h
  4211. --------s-188000-----------------------------
  4212. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - INITIALIZE
  4213.     AX = 8000h
  4214. Program: EURO_MOD is a .MOD file player for the Gravis Ultra Sound which hooks
  4215.       INT 18h and then shells out to the program requiring its services
  4216. SeeAlso: AX=8001h,AX=8004h
  4217. --------s-188001-----------------------------
  4218. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - LOAD .MOD FILE
  4219.     AX = 8001h
  4220.     BX:CX -> ASCIZ filename
  4221. SeeAlso: AX=8000h,AX=8002h
  4222. --------s-188002-----------------------------
  4223. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - PLAY .MOD FILE
  4224.     AX = 8002h
  4225. SeeAlso: AX=8002h,AX=8003h
  4226. --------s-188003-----------------------------
  4227. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - STOP PLAYING
  4228.     AX = 8003h
  4229. --------s-188004-----------------------------
  4230. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - SHUTDOWN
  4231.     AX = 8004h
  4232. SeeAlso: AX=8000h,AX=8003h
  4233. --------B-19---------------------------------
  4234. INT 19 - SYSTEM - BOOTSTRAP LOADER
  4235. Desc:    This interrupt reboots the system without clearing memory or restoring
  4236.       interrupt vectors.  Because interrupt vectors are preserved, this
  4237.       interrupt usually causes a system hang if any TSRs have hooked
  4238.       vectors from 00h through 1Ch, particularly INT 08.
  4239. Notes:    Usually, the BIOS will try to read sector 1, head 0, track 0 from drive
  4240.       A: to 0000h:7C00h.  If this fails, and a hard disk is installed, the
  4241.       BIOS will read sector 1, head 0, track 0 of the first hard disk.
  4242.       This sector should contain a master bootstrap loader and a partition
  4243.       table (see #0574).  After loading the master boot sector at
  4244.       0000h:7C00h, the master bootstrap loader is given control
  4245.       (see #0577).    It will scan the partition table for an active
  4246.       partition, and will then load the operating system's bootstrap
  4247.       loader (contained in the first sector of the active partition) and
  4248.       give it control.
  4249.     true IBM PCs and most clones issue an INT 18 if neither floppy nor hard
  4250.       disk have a valid boot sector
  4251.     to accomplish a warm boot equivalent to Ctrl-Alt-Del, store 1234h in
  4252.       0040h:0072h and jump to FFFFh:0000h.    For a cold boot equivalent to
  4253.       a reset, store 0000h at 0040h:0072h before jumping.
  4254.     VDISK.SYS hooks this interrupt to allow applications to find out how
  4255.       much extended memory has been used by VDISKs (see #0573).  DOS 3.3+
  4256.       PRINT hooks INT 19 but does not set up a correct VDISK header block
  4257.       at the beginning of its INT 19 handler segment, thus causing some
  4258.       programs to overwrite extended memory which is already in use.
  4259.     the default handler is at F000h:E6F2h for 100% compatible BIOSes
  4260.     MS-DOS 3.2+ hangs on booting (even from floppy) if the hard disk
  4261.       contains extended partitions which point at each other in a loop,
  4262.       since it will never find the end of the linked list of extended
  4263.       partitions
  4264.     under Windows Real and Enhanced modes, calling INT 19 will hang the
  4265.       system in the same was as under bare DOS; under Windows Standard
  4266.       mode, INT 19 will successfully perform a cold reboot as it appears
  4267.       to have been redirected to a MOV AL,0FEh/OUT 64h,AL sequence
  4268. BUG:    when loading the remainder of the DOS system files fails, various
  4269.       versions of IBMBIO.COM/IO.SYS incorrectly restore INT 1E before
  4270.       calling INT 19, assuming that the boot sector had stored the
  4271.       contents of INT 1E at DS:SI instead of on the stack as it actually
  4272.       does
  4273. SeeAlso: INT 14/AH=17h,INT 18"BOOT HOOK",INT 49"Tandy 2000",INT 5B"PC Cluster"
  4274. SeeAlso: MEM 0040h:0067h,MEM F000h:FFF0h,CMOS 0Fh
  4275.  
  4276. Format of VDISK header block (at beginning of INT 19 handler's segment):
  4277. Offset    Size    Description    (Table 0573)
  4278.  00h 18 BYTEs    n/a (for VDISK.SYS, the device driver header)
  4279.  12h 11 BYTEs    signature string "VDISK     Vn.m" for VDISK.SYS version n.m
  4280.  1Dh 15 BYTEs    n/a
  4281.  2Ch  3 BYTEs    linear address of first byte of available extended memory
  4282.  
  4283. Format of hard disk master boot sector:
  4284. Offset    Size    Description    (Table 0574)
  4285.  00h 446 BYTEs    Master bootstrap loader code
  4286. 1BEh 16 BYTEs    partition record for partition 1 (see #0575)
  4287. 1CEh 16 BYTEs    partition record for partition 2
  4288. 1DEh 16 BYTEs    partition record for partition 3
  4289. 1EEh 16 BYTEs    partition record for partition 4
  4290. 1FEh    WORD    signature, AA55h indicates valid boot block
  4291.  
  4292. Format of partition record:
  4293. Offset    Size    Description    (Table 0575)
  4294.  00h    BYTE    boot indicator (80h = active partition)
  4295.  01h    BYTE    partition start head
  4296.  02h    BYTE    partition start sector (bits 0-5)
  4297.  03h    BYTE    partition start track (bits 8,9 in bits 6,7 of sector)
  4298.  04h    BYTE    operating system indicator (see #0576)
  4299.  05h    BYTE    partition end head
  4300.  06h    BYTE    partition end sector (bits 0-5)
  4301.  07h    BYTE    partition end track (bits 8,9 in bits 6,7 of sector)
  4302.  08h    DWORD    sectors preceding partition
  4303.  0Ch    DWORD    length of partition in sectors
  4304. SeeAlso: #0574
  4305.  
  4306. (Table 0576)
  4307. Values for operating system indicator:
  4308.  00h    empty
  4309.  01h    DOS 12-bit FAT
  4310.  02h    XENIX root file system
  4311.  03h    XENIX /usr file system (obsolete)
  4312.  04h    DOS 16-bit FAT (up to 32M)
  4313.  05h    DOS 3.3+ extended partition
  4314.  06h    DOS 3.31+ Large File System (16-bit FAT, over 32M)
  4315.  07h    QNX
  4316.  07h    OS/2 HPFS
  4317.  07h    Windows NT NTFS
  4318.  07h    Advanced Unix
  4319.  08h    OS/2 (v1.0-1.3 only)
  4320.  08h    AIX bootable partition, SplitDrive
  4321.  08h    Commodore DOS
  4322.  08h    DELL partition spanning multiple drives
  4323.  09h    AIX data partition
  4324.  09h    Coherent filesystem
  4325.  0Ah    OS/2 Boot Manager
  4326.  0Ah    OPUS
  4327.  0Ah    Coherent swap partition
  4328.  0Bh    Windows95 with 32-bit FAT
  4329.  0Ch    Windows95 with 32-bit FAT (using LBA-mode INT 13 extensions)
  4330.  0Eh    logical-block-addressable VFAT (same as 06h but using LBA-mode INT 13)
  4331.  0Fh    logical-block-addressable VFAT (same as 05h but using LBA-mode INT 13)
  4332.  10h    OPUS
  4333.  11h    OS/2 Boot Manager hidden 12-bit FAT partition
  4334.  12h    Compaq Diagnostics partition
  4335.  14h    (resulted from using Novell DOS 7.0 FDISK to delete Linux Native part)
  4336.  14h    OS/2 Boot Manager hidden sub-32M 16-bit FAT partition
  4337.  16h    OS/2 Boot Manager hidden over-32M 16-bit FAT partition
  4338.  17h    OS/2 Boot Manager hidden HPFS partition
  4339.  17h    hidden NTFS partition
  4340.  18h    AST special Windows swap file ("Zero-Volt Suspend" partition)
  4341.  19h    Willowtech Photon coS
  4342.  1Bh    hidden Windows95 FAT32 partition
  4343.  1Ch    hidden Windows95 FAT32 partition (using LBA-mode INT 13 extensions)
  4344.  1Eh    hidden LBA VFAT partition
  4345.  20h    Willowsoft Overture File System (OFS1)
  4346.  21h    officially listed as reserved
  4347.  21h    FSo2
  4348.  23h    officially listed as reserved
  4349.  24h    NEC MS-DOS 3.x
  4350.  26h    officially listed as reserved
  4351.  31h    officially listed as reserved
  4352.  33h    officially listed as reserved
  4353.  34h    officially listed as reserved
  4354.  36h    officially listed as reserved
  4355.  38h    Theos
  4356.  3Ch    PowerQuest PartitionMagic recovery partition
  4357.  40h    VENIX 80286
  4358.  41h    Personal RISC Boot
  4359.  42h    SFS (Secure File System) by Peter Gutmann
  4360.  50h    OnTrack Disk Manager, read-only partition
  4361.  51h    OnTrack Disk Manager, read/write partition
  4362.  51h    NOVEL
  4363.  52h    CP/M
  4364.  52h    Microport System V/386
  4365.  53h    OnTrack Disk Manager, write-only partition???
  4366.  54h    OnTrack Disk Manager (DDO)
  4367.  56h    GoldenBow VFeature
  4368.  61h    SpeedStor
  4369.  63h    Unix SysV/386, 386/ix
  4370.  63h    Mach, MtXinu BSD 4.3 on Mach
  4371.  63h    GNU HURD
  4372.  64h    Novell NetWare 286
  4373.  65h    Novell NetWare (3.11)
  4374.  67h    Novell
  4375.  68h    Novell
  4376.  69h    Novell
  4377.  70h    DiskSecure Multi-Boot
  4378.  71h    officially listed as reserved
  4379.  73h    officially listed as reserved
  4380.  74h    officially listed as reserved
  4381.  75h    PC/IX
  4382.  76h    officially listed as reserved
  4383.  7Eh    F.I.X.
  4384.  80h    Minix v1.1 - 1.4a
  4385.  81h    Minix v1.4b+
  4386.  81h    Linux
  4387.  81h    Mitac Advanced Disk Manager
  4388.  82h    Linux Swap partition
  4389.  82h    Prime
  4390.  83h    Linux native file system (ext2fs/xiafs)
  4391.  84h    OS/2-renumbered type 04h partition (related to hiding DOS C: drive)
  4392.  86h    FAT16 volume/stripe set (Windows NT)
  4393.  87h    HPFS Fault-Tolerant mirrored partition
  4394.  87h    NTFS volume/stripe set
  4395.  93h    Amoeba file system
  4396.  94h    Amoeba bad block table
  4397.  A0h    Phoenix NoteBIOS Power Management "Save-to-Disk" partition
  4398.  A1h    officially listed as reserved
  4399.  A3h    officially listed as reserved
  4400.  A4h    officially listed as reserved
  4401.  A5h    FreeBSD, BSD/386
  4402.  A6h    OpenBSD
  4403.  A9h    NetBSD (http://www.netbsd.org/)
  4404.  B1h    officially listed as reserved
  4405.  B3h    officially listed as reserved
  4406.  B4h    officially listed as reserved
  4407.  B6h    officially listed as reserved
  4408.  B7h    BSDI file system (secondarily swap)
  4409.  B8h    BSDI swap partition (secondarily file system)
  4410.  C1h    DR DOS 6.0 LOGIN.EXE-secured 12-bit FAT partition
  4411.  C4h    DR DOS 6.0 LOGIN.EXE-secured 16-bit FAT partition
  4412.  C6h    DR DOS 6.0 LOGIN.EXE-secured Huge partition
  4413.  C6h    corrupted FAT16 volume/stripe set (Windows NT)
  4414.  C7h    Syrinx Boot
  4415.  C7h    corrupted NTFS volume/stripe set
  4416.  D8h    CP/M-86
  4417.  DBh    CP/M, Concurrent CP/M, Concurrent DOS
  4418.  DBh    CTOS (Convergent Technologies OS)
  4419.  E1h    SpeedStor 12-bit FAT extended partition
  4420.  E3h    DOS read-only
  4421.  E3h    Storage Dimensions
  4422.  E4h    SpeedStor 16-bit FAT extended partition
  4423.  E5h    officially listed as reserved
  4424.  E6h    officially listed as reserved
  4425.  F1h    Storage Dimensions
  4426.  F2h    DOS 3.3+ secondary partition
  4427.  F3h    officially listed as reserved
  4428.  F4h    SpeedStor
  4429.  F4h    Storage Dimensions
  4430.  F6h    officially listed as reserved
  4431.  FEh    LANstep
  4432.  FEh    IBM PS/2 IML
  4433.  FFh    Xenix bad block table
  4434. Note:    for partition type 07h, one should inspect the partition boot record
  4435.       for the actual file system type
  4436. SeeAlso: #0575
  4437.  
  4438. (Table 0577)
  4439. Values Bootstrap loader is called with (IBM BIOS):
  4440.     CS:IP = 0000h:7C00h
  4441.     DH = access
  4442.         bits 7-6,4-0: don't care
  4443.         bit 5: =0 device supported by INT 13
  4444.     DL = boot drive
  4445.         00h first floppy
  4446.         80h first hard disk
  4447. --------B-1A00-------------------------------
  4448. INT 1A - TIME - GET SYSTEM TIME
  4449.     AH = 00h
  4450. Return: CX:DX = number of clock ticks since midnight
  4451.     AL = midnight flag, nonzero if midnight passed since time last read
  4452. Notes:    there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs
  4453.       (except on Tandy 2000, where the clock runs at 20 ticks per second)
  4454.     IBM and many clone BIOSes set the flag for AL rather than incrementing
  4455.       it, leading to loss of a day if two consecutive midnights pass
  4456.       without a request for the time (e.g. if the system is on but idle)
  4457.     since the midnight flag is cleared, if an application calls this
  4458.       function after midnight before DOS does, DOS will not receive the
  4459.       midnight flag and will fail to advance the date
  4460. SeeAlso: AH=01h,AH=02h,INT 21/AH=2Ch,INT 55"Tandy 2000",INT 4E/AH=02h"TI"
  4461. SeeAlso: INT 62/AX=0099h,MEM 0040h:006Ch,MEM 0040h:0070h
  4462. --------B-1A01-------------------------------
  4463. INT 1A - TIME - SET SYSTEM TIME
  4464.     AH = 01h
  4465.     CX:DX = number of clock ticks since midnight
  4466. Return: nothing
  4467. Notes:    there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs
  4468.       (except on Tandy 2000, where the clock runs at 20 ticks per second)
  4469.     this call resets the midnight-passed flag
  4470. SeeAlso: AH=00h,AH=03h,INT 21/AH=2Dh
  4471. --------B-1A02-------------------------------
  4472. INT 1A - TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS)
  4473.     AH = 02h
  4474. Return: CF clear if successful
  4475.         CH = hour (BCD)
  4476.         CL = minutes (BCD)
  4477.         DH = seconds (BCD)
  4478.         DL = daylight savings flag (00h standard time, 01h daylight time)
  4479.     CF set on error (i.e. clock not running or in middle of update)
  4480. Note:    this function is also supported by the Sperry PC, which predates the
  4481.       IBM AT; the data is returned in binary rather than BCD on the Sperry,
  4482.       and DL is always 00h
  4483. SeeAlso: AH=00h,AH=03h,AH=04h,INT 21/AH=2Ch
  4484. --------b-1A02-------------------------------
  4485. INT 1A - Tandy 2000 - TIME - GET DATE AND TIME
  4486.     AH = 02h
  4487. Return: BX = number of days since January 1, 1980
  4488.     CH = hours
  4489.     CL = minutes
  4490.     DH = seconds
  4491.     DL = hundredths
  4492. SeeAlso: AH=03h"Tandy 2000",INT 55"Tandy 2000"
  4493. --------B-1A03-------------------------------
  4494. INT 1A - TIME - SET REAL-TIME CLOCK TIME (AT,XT286,PS)
  4495.     AH = 03h
  4496.     CH = hour (BCD)
  4497.     CL = minutes (BCD)
  4498.     DH = seconds (BCD)
  4499.     DL = daylight savings flag (00h standard time, 01h daylight time)
  4500. Return: nothing
  4501. Note:    this function is also supported by the Sperry PC, which predates the
  4502.       IBM AT; the data is specified in binary rather than BCD on the
  4503.       Sperry, and the value of DL is ignored
  4504. SeeAlso: AH=01h,AH=03h,AH=05h,INT 21/AH=2Dh,INT 4B/AH=01h
  4505. --------b-1A03-------------------------------
  4506. INT 1A - Tandy 2000 - TIME - SET DATE AND TIME
  4507.     AH = 03h
  4508.     BX = number of days since January 1, 1980
  4509.     CH = hours
  4510.     CL = minutes
  4511.     DH = seconds
  4512.     DL = hundredths
  4513. Return: nothing
  4514. SeeAlso: AH=02h"Tandy 2000",INT 55"Tandy 2000"
  4515. --------B-1A04-------------------------------
  4516. INT 1A - TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS)
  4517.     AH = 04h
  4518. Return: CF clear if successful
  4519.         CH = century (BCD)
  4520.         CL = year (BCD)
  4521.         DH = month (BCD)
  4522.         DL = day (BCD)
  4523.     CF set on error
  4524. SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Ah,INT 4B/AH=02h"TI"
  4525. --------b-1A04-------------------------------
  4526. INT 1A - Sperry PC - GET REAL-TIME CLOCK DATE
  4527.     AH = 04h
  4528. Return: CF clear if successful
  4529.         CL = year-1980
  4530.         DH = month (binary) (01h-0Ch)
  4531.         DL = day (binary) (01h-1Fh)
  4532.     CF set on error
  4533. SeeAlso: AH=02h,AH=04h,AH=05h"Sperry",INT 21/AH=2Ah,INT 4B/AH=02h"TI"
  4534. --------B-1A05-------------------------------
  4535. INT 1A - TIME - SET REAL-TIME CLOCK DATE (AT,XT286,PS)
  4536.     AH = 05h
  4537.     CH = century (BCD)
  4538.     CL = year (BCD)
  4539.     DH = month (BCD)
  4540.     DL = day (BCD)
  4541. Return: nothing
  4542. SeeAlso: AH=04h,INT 21/AH=2Bh"DATE",INT 4B/AH=00h"TI"
  4543. --------b-1A05-------------------------------
  4544. INT 1A - Sperry PC - SET REAL-TIME CLOCK DATE
  4545.     AH = 05h
  4546.     CL = year-1980
  4547.     CH = 00h (???)
  4548.     DH = month (binary) (01h-0Ch)
  4549.     DL = day (binary) (01h-1Fh)
  4550. Return: nothing
  4551. SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Bh"DATE"
  4552. --------B-1A06-------------------------------
  4553. INT 1A - TIME - SET ALARM (AT,XT286,PS)
  4554.     AH = 06h
  4555.     CH = hour (BCD)
  4556.     CL = minutes (BCD)
  4557.     DH = seconds (BCD)
  4558. Return: CF set on error (alarm already set or clock stopped for update)
  4559.     CF clear if successful
  4560. Notes:    the alarm occurs every 24 hours until turned off, invoking INT 4A each
  4561.       time
  4562.     the BIOS does not check for invalid values for the time, so the CMOS
  4563.       clock chip's "don't care" setting (any values between C0h and FFh)
  4564.       may be used for any or all three parts.  For example, to create an
  4565.       alarm once a minute, every minute, call with CH=FFh, CL=FFh, and
  4566.       DH=00h.
  4567. SeeAlso: AH=07h,AH=0Ch,INT 4A"SYSTEM"
  4568. --------B-1A07-------------------------------
  4569. INT 1A - TIME - CANCEL ALARM (AT,XT286,PS)
  4570.     AH = 07h
  4571. Return: alarm disabled
  4572. Note:    does not disable the real-time clock's IRQ
  4573. SeeAlso: AH=06h,AH=0Dh,INT 70
  4574. --------B-1A08-------------------------------
  4575. INT 1A - TIME - SET RTC ACTIVATED POWER ON MODE (CONVERTIBLE)
  4576.     AH = 08h
  4577.     CH = hours in BCD
  4578.     CL = minutes in BCD
  4579.     DH = seconds in BCD
  4580. SeeAlso: AH=09h
  4581. --------B-1A09-------------------------------
  4582. INT 1A - TIME - READ RTC ALARM TIME AND STATUS (CONV,PS30)
  4583.     AH = 09h
  4584. Return: CH = hours in BCD
  4585.     CL = minutes in BCD
  4586.     DH = seconds in BCD
  4587.     DL = alarm status
  4588.         00h alarm not enabled
  4589.         01h alarm enabled but will not power up system
  4590.         02h alarm will power up system
  4591. SeeAlso: AH=08h
  4592. --------B-1A0A-------------------------------
  4593. INT 1A - TIME - READ SYSTEM-TIMER DAY COUNTER (XT2,PS)
  4594.     AH = 0Ah
  4595. Return: CF set on error
  4596.     CF clear if successful
  4597.         CX = count of days since Jan 1,1980
  4598. SeeAlso: AH=04h,AH=0Bh
  4599. --------B-1A0B-------------------------------
  4600. INT 1A - TIME - SET SYSTEM-TIMER DAY COUNTER (XT2,PS)
  4601.     AH = 0Bh
  4602.     CX = count of days since Jan 1,1980
  4603. Return: CF set on error
  4604.     CF clear if successful
  4605. SeeAlso: AH=05h,AH=0Ah
  4606. --------B-1A0C-------------------------------
  4607. INT 1A - TIME - SET RTC DATE/TIME ACTIVATED POWER-ON MODE (IBM)
  4608.     AH = 0Ch
  4609.     CH = hours (BCD)
  4610.     CL = minutes (BCD)
  4611.     DH = seconds (BCD)
  4612.     DL = day of month (BCD)
  4613. Return: CF clear if successful
  4614.     CF set on error (alarm already set or clock nonfunctional)
  4615. Desc:    set an automatic power-on for a given time in the future
  4616. Note:    IBM classifies this function as optional
  4617. SeeAlso: AH=06h,AH=0Dh,AH=0Eh,INT 4A
  4618. --------B-1A0D-------------------------------
  4619. INT 1A - TIME - RESET RTC DATE/TIME ACTIVATED POWER-ON MODE (IBM)
  4620.     AH = 0Dh
  4621. Return: CF clear if successful
  4622.     CF set on error
  4623. Desc:    cancel a previously-set power-on alarm
  4624. Note:    IBM classifies this function as optional
  4625. SeeAlso: AH=07h,AH=0Ch,AH=0Eh
  4626. --------B-1A0E-------------------------------
  4627. INT 1A - TIME - GET RTC DATE/TIME ALARM AND STATUS (IBM)
  4628.     AH = 0Eh
  4629. Return: CF clear if successful
  4630.         BH = alarm status
  4631.         00h disabled
  4632.         01h enabled but will not power-up system
  4633.         02h enabled, system will power-up on activation
  4634.         CH = alarm time, hours (BCD)
  4635.         CL = alarm time, minutes (BCD)
  4636.         DH = seconds (BCD)
  4637.         DL = day of month (BCD)
  4638.     CF set on error
  4639. SeeAlso: AH=0Ch,AH=0Dh,AH=0Fh
  4640. --------B-1A0F-------------------------------
  4641. INT 1A - TIME - INITIALIZE REAL-TIME CLOCK
  4642.     AH = 0Fh
  4643.     AL = reserved (0)
  4644. Return: CF clear if successful
  4645.     CF set on error
  4646. SeeAlso: AH=0Ch,AH=0Dh,AH=0Eh
  4647. --------J-1A10-------------------------------
  4648. INT 1A - NEC PC-9800 series - PRINTER - INITIALIZE
  4649.     AH = 10h
  4650.     ???
  4651. Return: ???
  4652. SeeAlso: AH=11h,AH=12h,INT 17/AH=01h
  4653. --------J-1A1000-----------------------------
  4654. INT 1A - NEC PC-9800 series - INSTALLATION CHECK
  4655.     AX = 1000h
  4656. Return: AX <> 1000h if NEC
  4657. --------J-1A11-------------------------------
  4658. INT 1A - NEC PC-9800 series - PRINTER - OUTPUT CHARACTER
  4659.     AH = 11h
  4660.     ???
  4661. Return: ???
  4662. SeeAlso: AH=10h,AH=12h,INT 17/AH=00h
  4663. --------J-1A12-------------------------------
  4664. INT 1A - NEC PC-9800 series - PRINTER - SENSE STATUS
  4665.     AH = 12h
  4666.     ???
  4667. Return: ???
  4668. SeeAlso: AH=10h,AH=11h,INT 17/AH=02h
  4669. --------A-1A3601-----------------------------
  4670. INT 1A - WORD PERFECT v5.0 Third Party Interface - INSTALLATION CHECK
  4671.     AX = 3601h
  4672. Return: DS:SI = routine to monitor keyboard input, immediately preceded by the
  4673.         ASCIZ string "WPCORP\0"
  4674. Notes:    WordPerfect 5.0 will call this interrupt at start up to determine if a
  4675.       third party product wants to interface with it.  The third party
  4676.       product must intercept this interrupt and return the address of a
  4677.       keyboard monitor routine.
  4678.     Before checking for keyboard input, and after every key entered by the
  4679.       user, Word Perfect will call the routine whose address was provided
  4680.       in DS:SI with the following parameters:
  4681.         Entry:    AX = key code or 0
  4682.             BX = WordPerfect state flag
  4683.         Exit:    AX = 0 or key code
  4684.             BX = 0 or segment address of buffer with key codes
  4685.     See the "WordPerfect 5.0 Developer's Toolkit" for further information.
  4686. SeeAlso: INT 16/AX=5500h
  4687. --------N-1A6108-----------------------------
  4688. INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDWITHREPLY" - SEND MSG AND GET REPLY
  4689.     AX = 6108h
  4690.     STACK:    WORD    conversation ID (0000h-0009h)
  4691.         DWORD    pointer to message buffer
  4692.         WORD    length of message
  4693.         DWORD    pointer to reply buffer
  4694.         WORD    length of reply buffer
  4695.         WORD    0000h (use default "Cparams" structure)
  4696. Return: AX = status (see #0578)
  4697.     STACK unchanged
  4698. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  4699.       which implements the Simple Network Application Protocol
  4700. SeeAlso: AX=6205h
  4701.  
  4702. (Table 0578)
  4703. Values for SNAP.EXE status:
  4704.  0000h    successful
  4705.  F830h    "SNAP_ABORTED"
  4706.  FC04h    "SNAP_SERVERDIED"
  4707.  FC05h    "SNAP_RESEND"
  4708.  FC06h    "SNAP_SELECTFAILED"
  4709.  FC07h    "SNAP_WRONGVERSION"
  4710.  FC08h    "SNAP_INVALIDACK"
  4711.  FC09h    "SNAP_TIMEOUT"
  4712.  FC0Ah    "SNAP_SERVERREJECT"
  4713.  FC0Bh    "SNAP_NOREPLYDUE"
  4714.  FC0Ch    "SNAP_NOAUTHENTICATE"/"SNAP_GUARDIAN_ERROR"
  4715.  FC0Dh    "SNAP_NOINIT"
  4716.  FC0Eh    "SNAP_SOCKETERROR"
  4717.  FC0Fh    "SNAP_BUFFERLIMIT"
  4718.  FC10h    "SNAP_INVALIDCID"
  4719.  FC11h    "SNAP_INVALIDOP"
  4720.  FC12h    "SNAP_XMITFAIL"
  4721.  FC13h    "SNAP_NOMORERETRIES"
  4722.  FC14h    "SNAP_BADPARMS"
  4723.  FC15h    "SNAP_NOMEMORY"
  4724.  FC16h    "SNAP_NOMORECONVS"
  4725.  FFFFh    failed (invalid function/parameter)
  4726. --------N-1A6205-----------------------------
  4727. INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDNOREPLY" - SEND MSG, DON'T AWAIT REPLY
  4728.     AX = 6205h
  4729.     STACK:    WORD    conversation ID (0000h-0009h)
  4730.         DWORD    pointer to message
  4731.         WORD    length of message
  4732.         WORD    0000h (use default "Cparms" structure)
  4733. Return: AX = status (see #0578)
  4734.     STACK unchanged
  4735. SeeAlso: AX=6108h
  4736. --------N-1A6308-----------------------------
  4737. INT 1A - SNAP.EXE 3.2+ - "SNAP_BEGINCONV" - BEGIN CONVERSATION
  4738.     AX = 6308h
  4739.     STACK:    WORD    offset of ASCIZ "guardian"
  4740.         WORD    offset of ASCIZ hostname
  4741.         WORD    offset of ASCIZ server name
  4742.         WORD    offset of ASCIZ userid
  4743.         WORD    offset of ASCIZ password
  4744.         WORD    offset of password length
  4745.         WORD    offset of password type
  4746.         WORD    offset of "Cparms" structure (see #0579)
  4747. Return: ???
  4748.     STACK unchanged
  4749. Note:    all stacked offsets are within the SNAP data segment (use AX=6A01h
  4750.       to allocate a buffer)
  4751. SeeAlso: AX=6405h,AX=7202h
  4752.  
  4753. Format of SNAP.EXE Cparms structure:
  4754. Offset    Size    Description    (Table 0579)
  4755.  00h    WORD    retry delay in seconds
  4756.  02h    WORD    timeout delay in seconds
  4757.  04h    WORD    maximum buffer size
  4758.  06h    WORD    encryption level
  4759. --------N-1A6405-----------------------------
  4760. INT 1A - SNAP.EXE 3.2+ - "SNAP_ENDCONV" - END CONVERSATION
  4761.     AX = 6405h
  4762.     STACK:    WORD    conversation ID (0000h-0009h)
  4763.         DWORD    pointer to message buffer
  4764.         WORD    length of message
  4765.         WORD    0000h (use default "Cparms" structure)
  4766. Return: AX = status (see #0578)
  4767.     STACK unchanged
  4768. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  4769.       which implements the Simple Network Application Protocol
  4770. SeeAlso: AX=6308h
  4771. --------N-1A6900-----------------------------
  4772. INT 1A - SNAP.EXE 3.2+ - "SNAP_DATASEG" - GET RESIDENT DATA SEGMENT
  4773.     AX = 6900h
  4774. Return: AX = value used for DS by resident code
  4775. SeeAlso: AX=6A01h,AX=6F01h
  4776. --------N-1A6A01-----------------------------
  4777. INT 1A - SNAP.EXE 3.2+ - "SNAP_ALLOC" - ALLOCATE BUFFER IN SNAP DATA SEGMENT
  4778.     AX = 6A01h
  4779.     STACK:    WORD    number of bytes to allocate
  4780. Return: AX = offset of allocated buffer or 0000h if out of memory
  4781.     STACK unchanged
  4782. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  4783.       which implements the Simple Network Application Protocol
  4784. SeeAlso: AX=6B01h
  4785. --------N-1A6B01-----------------------------
  4786. INT 1A - SNAP.EXE 3.2+ - "SNAP_FREE" - DEALLOCATE BUFFER IN SNAP DATA SEGMENT
  4787.     AX = 6B01h
  4788.     STACK:    WORD    offset within SNAP data segment of previously allocated
  4789.             buffer
  4790. Return: STACK unchanged
  4791. Note:    this call is a NOP if the specified offset is 0000h
  4792. SeeAlso: AX=6A01h
  4793. --------N-1A6C04-----------------------------
  4794. INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYTO" - COPY DATA TO RESIDENT SNAP PACKAGE
  4795.     AX = 6C04h
  4796.     STACK:    WORD    offset within SNAP data segment of dest (nonzero)
  4797.         WORD    segment of source buffer
  4798.         WORD    offset of source buffer
  4799.         WORD    number of bytes to copy
  4800. Return: AX = offset of byte after last one copied to destination
  4801.     STACK unchanged
  4802. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  4803.       which implements the Simple Network Application Protocol
  4804. SeeAlso: AX=6D04h
  4805. --------N-1A6D04-----------------------------
  4806. INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYFROM" - COPY DATA FROM RESIDENT SNAP PACKAGE
  4807.     AX = 6D04h
  4808.     STACK:    WORD    offset within SNAP data segment of source buffer
  4809.         WORD    segment of destination buffer
  4810.         WORD    offset of destination buffer
  4811.         WORD    number of bytes to copy
  4812. Return: AX = offset of byte after last one copied from source
  4813.     buffer filled
  4814.     STACK unchanged
  4815. SeeAlso: AX=6C04h
  4816. --------N-1A6E01-----------------------------
  4817. INT 1A - SNAP.EXE 3.2+ - "SNAP_SETDEBUG" - SET ???
  4818.     AX = 6E01h
  4819.     STACK:    WORD    new value for ???
  4820. Return: AX = old value of ???
  4821.     STACK unchanged
  4822. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  4823.       which implements the Simple Network Application Protocol
  4824. --------N-1A6F01-----------------------------
  4825. INT 1A - SNAP.EXE 3.2+ - "SNAP_CHKINSTALL" - INSTALLATION CHECK
  4826.     AX = 6F01h
  4827.     STACK: WORD 0000h
  4828. Return: AX = status
  4829.         0000h SNAP is resident
  4830.         other SNAP not present
  4831.     STACK unchanged
  4832. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  4833.       which implements the Simple Network Application Protocol, and is
  4834.       required by PCVENUS (a network shell).  The combination of SNAP and
  4835.       PCVENUS allows the use of the Andrew File System as one or more
  4836.       networked drives.
  4837. SeeAlso: AX=6900h,AX=7400h
  4838. --------N-1A7002-----------------------------
  4839. INT 1A - SNAP.EXE 3.2+ - "SNAP_SETANCHOR"
  4840.     AX = 7002h
  4841.     STACK:    WORD    anchor number (0000h-0009h)
  4842.         WORD    new value for the anchor
  4843. Return: AX = status
  4844.         0000h successful
  4845.         FFFFh failed (top word on stack not in range 00h-09h)
  4846.     STACK unchanged
  4847. SeeAlso: AX=7101h
  4848. --------N-1A7101-----------------------------
  4849. INT 1A - SNAP.EXE 3.2+ - "SNAP_GETANCHOR"
  4850.     AX = 7101h
  4851.     STACK:    WORD    anchor number (0000h-0009h)
  4852. Return: AX = anchor's value
  4853.     STACK unchanged
  4854. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  4855.       which implements the Simple Network Application Protocol
  4856. SeeAlso: AX=7002h
  4857. --------N-1A7202-----------------------------
  4858. INT 1A - SNAP.EXE 3.2+ - "SNAP_SETCONVPARMS" - SET CONVERSATION PARAMETERS
  4859.     AX = 7202h
  4860.     STACK:    WORD    conversation ID (0000h-0009h)
  4861.         WORD    offset within resident data segment of "Cparms"
  4862.               structure (see #0579)
  4863. Return: AX = status???
  4864.     STACK unchanged
  4865. SeeAlso: AX=6308h
  4866. --------N-1A7302-----------------------------
  4867. INT 1A - SNAP.EXE 3.2+ - "SNAP_CLIENTVERSION" - ???
  4868.     AX = 7302h
  4869.     STACK:    WORD    conversation ID (0000h-0009h)
  4870.         WORD    offset within resident data segment of ???
  4871. Return: AX = ???
  4872.     ???
  4873.     STACK unchanged
  4874. SeeAlso: AX=7400h
  4875. --------N-1A7400-----------------------------
  4876. INT 1A - SNAP.EXE 3.2+ - "SNAP_VERSION" - GET VERSION
  4877.     AX = 7400h
  4878. Return: AX = version (AH=major, AL=minor)
  4879. Note:    this call is only valid if SNAP is installed
  4880. SeeAlso: AX=7302h,INT 1A/AX=6F01h
  4881. --------N-1A75-------------------------------
  4882. INT 1A - SNAP.EXE 3.2+ - "SNAP_NOP" - ???
  4883.     AH = 75h
  4884.     AL = ???
  4885. Return: AX = ??? (0000h)
  4886. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  4887.       which implements the Simple Network Application Protocol
  4888. --------N-1A76-------------------------------
  4889. INT 1A - SNAP.EXE 3.2+ - "SNAP_802_5" - ???
  4890.     AH = 76h
  4891.     AL = ???
  4892. Return: AX = ???
  4893. --------N-1A77-------------------------------
  4894. INT 1A - SNAP.EXE 3.4 - ???
  4895.     AH = 77h
  4896.     AL = ??? (at least 01h)
  4897.     STACK:    WORD    ???
  4898.         ???
  4899. Return: ???
  4900.     STACK unchanged
  4901. --------N-1A7802-----------------------------
  4902. INT 1A - SNAP.EXE 3.4 - ???
  4903.     AX = 7802h
  4904.     STACK:    WORD    ???
  4905.         WORD    ???
  4906. Return: ???
  4907.     STACK unchanged
  4908. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  4909.       which implements the Simple Network Application Protocol
  4910. --------s-1A7F-------------------------------
  4911. INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
  4912.     AH = 7Fh
  4913.     ???
  4914. Return: ???
  4915. Note:    this function is not supported by the Tandy 1000SL/TL BIOS
  4916. SeeAlso: AH=80h,AH=83h,AH=85h
  4917. --------s-1A80-------------------------------
  4918. INT 1A - PCjr, Tandy 2500???, Tandy 1000SL/TL - SET UP SOUND MULTIPLEXOR
  4919.     AH = 80h
  4920.     AL = 00h source is 8253 channel 2
  4921.          01h source is cassette input
  4922.          02h source is I/O channel "Audio IN"
  4923.          03h source is sound generator chip
  4924. Note:    although documented in the 1000TL Technical Reference, the 1000TL
  4925.       BIOS has just an IRET for this call
  4926. SeeAlso: AH=7Fh,AH=83h
  4927. --------X-1A80-------------------------------
  4928. INT 1A - PCMCIA Socket Services v1.00 - GET NUMBER OF ADAPTERS
  4929.     AH = 80h
  4930. Return: CF clear if successful
  4931.         CX = 5353h ('SS') if Socket Services installed
  4932.         AL = number of adapters present (0-16)
  4933.         AH destroyed
  4934.     CF set on error
  4935.         AH = error code (see #0580)
  4936. SeeAlso: AH=83h"PCMCIA"
  4937.  
  4938. (Table 0580)
  4939. Values for PCMCIA error codes:
  4940.  01h    "BAD_ADAPTER" nonexistent adapter
  4941.  02h    "BAD_ATTRIBUTE" invalid attribute specified
  4942.  03h    "BAD_BASE" invalid system memory base address
  4943.  04h    "BAD_EDC" invalid EDC generator specified
  4944.  05h    "BAD_INDICATOR" invalid indicator specified
  4945.  06h    "BAD_IRQ" invalid IRQ channel specified
  4946.  07h    "BAD_OFFSET" invalid PCMCIA card offset specified
  4947.  08h    "BAD_PAGE" invalid page specified
  4948.  09h    "BAD_READ" unable to complete request
  4949.  0Ah    "BAD_SIZE" invalid window size specified
  4950.  0Bh    "BAD_SOCKET" nonexistent socket specified
  4951.  0Ch    "BAD_TECHNOLOGY" unsupported Card Technology for writes
  4952.  0Dh    "BAD_TYPE" unavailable window type specified
  4953.  0Eh    "BAD_VCC" invalid Vcc power level index specified
  4954.  0Fh    "BAD_VPP" invalid Vpp1 or Vpp2 power level index specified
  4955.  10h    "BAD_WAIT" invalid number of wait states specified
  4956.  11h    "BAD_WINDOW" nonexistent window specified
  4957.  12h    "BAD_WRITE" unable to complete request
  4958.  13h    "NO_ADAPTERS" no adapters installed, but Socket Services is present
  4959.  14h    "NO_CARD" no card in socket
  4960.  15h    function not supported
  4961.  16h    invalid mode
  4962.  17h    invalid speed
  4963.  18h    busy
  4964. --------X-1A81-------------------------------
  4965. INT 1A - PCMCIA Socket Services v1.00 - REGISTER STATUS CHANGE CALLBACK
  4966.     AH = 81h
  4967.     DS:DX -> callback routine (see #0581) or 0000h:0000h to disable
  4968. Return: CF clear if successful
  4969.         AH destroyed
  4970.     CF set on error
  4971.         AH = error code (see #0580)
  4972. Note:    the callback will be invoked on any socket changes whose notification
  4973.       has not been disabled with the status change enable mask; it may be
  4974.       invoked either while processing a hardware interrupt from the adapter
  4975.       or while processing the following Socket Services request
  4976. SeeAlso: AH=80h"PCMCIA",AH=82h"PCMCIA"
  4977.  
  4978. (Table 0581)
  4979. Values PCMCIA callback routine is invoked with:
  4980.     AL = adapter number
  4981.     BH = status change interrupt enable mask (see #0582)
  4982.     BL = socket number
  4983.     DH = current socket status (see #0583)
  4984.     DL = current card status (see #0584)
  4985. Return: all registers preserved
  4986. Notes:    the callback may be invoked during a hardware interrupt, and may not
  4987.       call on Socket Services
  4988.     the callback will be invoked once for each socket with a status change
  4989.  
  4990. Bitfields for PCMCIA status change interrupt enable mask:
  4991. Bit(s)    Description    (Table 0582)
  4992.  7    card detect change
  4993.  6    ready change
  4994.  5    battery warning change
  4995.  4    battery dead change
  4996.  3    insertion request
  4997.  2    ejection request
  4998.  1-0    reserved (0)
  4999.  
  5000. Bitfields for PCMCIA current socket status:
  5001. Bit(s)    Description    (Table 0583)
  5002.  7    card changed
  5003.  6    reserved (0)
  5004.  5    card insertion complete
  5005.  4    card ejection complete
  5006.  3    card insertion request pending
  5007.  2    card ejection request pending
  5008.  1    card locked
  5009.  0    reserved (0)
  5010.  
  5011. Bitfields for PCMCIA current card status:
  5012. Bit(s)    Description    (Table 0584)
  5013.  7    card detect
  5014.  6    ready
  5015.  5    battery voltage detect 2 (battery warning)
  5016.  4    battery voltage detect 1 (battery dead)
  5017.  3-1    reserved (0)
  5018.  0    write protected
  5019. --------s-1A8100-----------------------------
  5020. INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND - INSTALLATION CHECK
  5021.     AX = 8100h
  5022. Return: AL > 80h if supported
  5023.     AX = 00C4h if supported (1000SL/TL)
  5024.         CF set if sound chip is busy
  5025.         CF clear  if sound chip is free
  5026. Note:    the value of CF is not definitive; call this function until CF is
  5027.       clear on return, then call AH=84h"Tandy"
  5028. --------s-1A82-------------------------------
  5029. INT 1A - Tandy 2500???, Tandy 1000SL/TL - DIGITAL SOUND - RECORD SOUND
  5030.     AH = 82h
  5031.     ES:BX -> buffer for sound samples
  5032.     CX = length of buffer
  5033.     DX = transfer rate (1-4095, 1 is fastest)
  5034. Return: AH = 00h
  5035.     CF set if sound busy
  5036.     CF clear if sound chip free
  5037. Note:    the value in DX should be 1/10 the corresponding value for
  5038.       INT 1A/AH=83h on the 1000TL, 1/11.5 on the 1000SL.  Call
  5039.       INT 1A/AX=8100h and INT 1A/AH=84h before invoking this function.
  5040.     The BIOS issues an INT 15/AX=91FBh when the input is complete
  5041.     DMA across a 64K boundary is masked by the BIOS
  5042. --------X-1A82-------------------------------
  5043. INT 1A - PCMCIA Socket Services v1.00 - REGISTER CARD TECHNOLOGY CALLBACK
  5044.     AH = 82h
  5045.     DS:DX -> callback routine (see #0585) or 0000h:0000h
  5046. Return: CF clear if successful
  5047.         AH destroyed
  5048.     CF set on error
  5049.         AH = error code (see #0580)
  5050. Note:    the callback is invoked on a Write Multiple request with an unsupported
  5051.       card technology type
  5052. SeeAlso: AH=81h"PCMCIA",AH=94h
  5053.  
  5054. (Table 0585)
  5055. Values PCMCIA callback routine is invoked with:
  5056.     ES:AX -> Low-Level Socket Services Routines (see #0587)
  5057.     BH = socket attributes (see #0586)
  5058.     CX = number of bytes or words to write
  5059.     DS:SI -> data buffer to be written
  5060.     DX:DI -> 26-bit linear card address
  5061.     BP = card technology type
  5062. Return: CF clear if successful
  5063.     CF set on error
  5064.         AH = error code (07h,0Ch,12h,14h) (see #0580)
  5065.  
  5066. Bitfields for PCMCIA socket attributes:
  5067. Bit(s)    Description    (Table 0586)
  5068.  7-4    reserved (0)
  5069.  3    packed buffer
  5070.  2    even bytes only (only valid if 1 set)
  5071.  1    data width (clear = byte, set = word)
  5072.  0    memory type (clear = common, set = attribute)
  5073.  
  5074. Format of PCMCIA Low-Level Socket Services Routines:
  5075. Offset    Size    Description    (Table 0587)
  5076.  00h    WORD    offset of Write Many routine (see #0588)
  5077.  02h    WORD    offset of Write One routine (see #0589)
  5078.  04h    WORD    offset of Read One routine (see #0590)
  5079.  06h    WORD    offset of Increment Offset routine (see #0591)
  5080.  08h    WORD    offset of Set Offset routine (see #0592)
  5081.  0Ah    WORD    offset of Get Status routine (see #0593)
  5082.  
  5083. (Table 0588)
  5084. Call Write Many routine with:
  5085.     BH = socket attributes (see #0586)
  5086.     CX = number of bytes or words to write
  5087.     DS:SI -> data to be written
  5088. Return: CF clear if successful
  5089.     CF set on error
  5090.  
  5091. (Table 0589)
  5092. Call Write One routine with:
  5093.     AL/AX = data to be written
  5094.     BH = socket attributes (see #0586)
  5095. Return: CF clear if successful
  5096.     CF set on error
  5097.  
  5098. (Table 0590)
  5099. Call Read One routine with:
  5100.     BH = socket attributes (see #0586)
  5101. Return: CF clear if successful
  5102.         AL/AX = data read
  5103.     CF set on error
  5104.  
  5105. (Table 0591)
  5106. Call Increment Offset routine with:
  5107.     BH = socket attributes (see #0586)
  5108. Return: CF clear if successful
  5109.     CF set on error
  5110.  
  5111. (Table 0592)
  5112. Call Set Offset routine with:
  5113.     DX:DI = new offset address
  5114. Return: CF clear if successful
  5115.     CF set on error
  5116.  
  5117. (Table 0593)
  5118. Call Get Status routine with:
  5119.     nothing
  5120. Return: AL = current card status (see #0584)
  5121. --------s-1A83-------------------------------
  5122. INT 1A - Tandy 2500, Tandy 1000L series - START PLAYING DIGITAL SOUND
  5123.     AH = 83h
  5124.     AL = volume (0=silence, 7=highest)
  5125.     CX = number of bytes to play
  5126.     DX = time between sound samples (multiples of 273 nanoseconds)
  5127.         only bits 11-0 used
  5128.     ES:BX -> sound data (array of 8-bit unsigned PCM samples)
  5129. Return: AH = 00h
  5130.     CF set if sound is busy
  5131.     CF clear if sound chip is free
  5132. Notes:    this call returns immediately while the sound plays in the
  5133.       background; the sound chip is clocked at 3.57 MHz, with the low 12
  5134.       bits of DX specifying the clock divisor
  5135.     The BIOS appears to call INT 15/AX=91FBh when the sound device
  5136.       underflows to allow another INT 1A/AH=83h for seamless playing of
  5137.       long sounds.
  5138. SeeAlso: AH=84h"Tandy",INT 15/AH=91h
  5139. --------X-1A83-------------------------------
  5140. INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET SERVICES VERSION NUMBER
  5141.     AH = 83h
  5142.     AL = adapter number
  5143. Return: CF clear if successful
  5144.         AX = Socket Services version (BCD)
  5145.         BX = implementation version (BCD)
  5146.         CX = 5353h ("SS")
  5147.         DS:SI -> ASCIZ implementor description
  5148.     CF set on error
  5149.         AH = error code (01h) (see #0580)
  5150. Note:    the current version (from the Revision A.00 documentation) of Socket
  5151.       Services is 1.00 (AX=0100h)
  5152. SeeAlso: AH=80h"PCMCIA"
  5153. --------s-1A84-------------------------------
  5154. INT 1A - Tandy 2500, Tandy 1000L series - STOP PLAYING DIGITAL SOUND
  5155.     AH = 84h
  5156. Return: ???
  5157. Note:    the BIOS will call INT 15/AX=91FBh when the sound has stopped playing
  5158. SeeAlso: AH=83h"Tandy",AH=85h"Tandy"
  5159. --------X-1A84-------------------------------
  5160. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ADAPTER
  5161.     AH = 84h
  5162.     AL = adapter number
  5163. Return: CF clear if successful
  5164.         AH destroyed
  5165.         BH = number of windows
  5166.         BL = number of sockets (1-16)
  5167.         CX = number of EDCs
  5168.         DH = capabilities (see #0594)
  5169.         DL = status change interrupt used (only if DH bit 3 set)(see #0595)
  5170.     CF set on error
  5171.         AH = error code (01h) (see #0580)
  5172. SeeAlso: AH=80h"PCMCIA",AH=85h"PCMCIA",AH=87h
  5173.  
  5174. Bitfields for PCMCIA capabilities:
  5175. Bit(s)    Description    (Table 0594)
  5176.  7-6    reserved (0)
  5177.  5    status change interrupt is hardware shareable
  5178.  4    status change interrupt is software shareable
  5179.  3    status change interrupt
  5180.  2    data bus width is per-socket rather than per-window
  5181.  1    power management is per-adapter rather than per-socket
  5182.  0    indicators are per-adapter rather than per-socket
  5183.  
  5184. (Table 0595)
  5185. Values for PCMCIA status change interrupt usage:
  5186.  00h-0Fh IRQ level
  5187.  10h    NMI
  5188.  11h    I/O check
  5189.  12h    bus error
  5190.  13h    vendor specific
  5191.  14h-FFh reserved
  5192. --------s-1A85-------------------------------
  5193. INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
  5194.     AH = 85h
  5195.     ???
  5196. Return: ???
  5197. Note:    this function is not supported by the Tandy 1000SL/TL BIOS
  5198. SeeAlso: AH=7Fh,AH=83h"Tandy"
  5199. --------X-1A85-------------------------------
  5200. INT 1A - PCMCIA Socket Services v1.00 - GET ADAPTER
  5201.     AH = 85h
  5202.     AL = adapter number
  5203. Return: CF clear if successful
  5204.         AH destroyed
  5205.         DH = adapter attributes (see #0596)
  5206.     CF set on error
  5207.         AH = error code (01h) (see #0580)
  5208. SeeAlso: AH=84h"PCMCIA",AH=86h
  5209.  
  5210. Bitfields for PCMCIA adapter attributes:
  5211. Bit(s)    Description    (Table 0596)
  5212.  7-5    reserved (0)
  5213.  4    hardware share status change
  5214.  3    software share status change
  5215.  2    enable status change interrupts
  5216.  1    adapter preserves state information during reduced power consumption
  5217.  0    attempting to reduce power consumption
  5218. --------X-1A86-------------------------------
  5219. INT 1A - PCMCIA Socket Services v1.00 - SET ADAPTER
  5220.     AH = 86h
  5221.     AL = adapter number
  5222.     DH = new adapter attributes (see #0596)
  5223. Return: CF clear if successful
  5224.         AH destroyed
  5225.     CF set on error
  5226.         AH = error code (01h) (see #0580)
  5227. SeeAlso: AH=84h"PCMCIA",AH=85h"PCMCIA"
  5228. --------X-1A87-------------------------------
  5229. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE WINDOW
  5230.     AH = 87h
  5231.     AL = adapter number
  5232.     BH = window number
  5233. Return: CF clear if successful
  5234.         AH destroyed
  5235.         BL = capabilities (see #0597)
  5236.         CX = bitmap of assignable sockets
  5237.         DH = EISA A15-A12 address lines (in bits 7-4, bits 3-0 = 0)
  5238.         DL = supported access speeds (see #0598)
  5239.         DS:SI -> Memory Window Characteristics table (see #0599)
  5240.         DS:DI -> I/O Window Characteristics table (see #0600)
  5241.     CF set on error
  5242.         AH = error code (01h,11h) (see #0580)
  5243. SeeAlso: AH=84h"PCMCIA",AH=88h,AH=89h,AH=8Ch
  5244.  
  5245. Bitfields for PCMCIA window capabilities:
  5246. Bit(s)    Description    (Table 0597)
  5247.  7-5    reserved (0)
  5248.  4    separate enable for EISA comon space
  5249.  3    EISA I/O mappable
  5250.  2    I/O space
  5251.  1    attribute memory
  5252.  0    common memory
  5253.  
  5254. Bitfields for PCMCIA supported access speeds:
  5255. Bit(s)    Description    (Table 0598)
  5256.  7    reserved (0)
  5257.  6    600 ns
  5258.  5    300 ns
  5259.  4    250 ns
  5260.  3    200 ns
  5261.  2    150 ns
  5262.  1    100 ns
  5263.  0    WAIT line monitoring
  5264.  
  5265. Format of PCMCIA Memory Window Characteristics table:
  5266. Offset    Size    Description    (Table 0599)
  5267.  00h    WORD    window capabilities (see #0601)
  5268.  02h    WORD    minimum base address in 4K pages
  5269.  04h    WORD    maximum base address in 4K pages
  5270.  06h    WORD    minimum window size in 4K pages
  5271.  08h    WORD    maximum window size in 4K pages
  5272.  0Ah    WORD    window size granularity (4K units)
  5273.  0Ch    WORD    required base address alignment (4K units)
  5274.  0Eh    WORD    required card offset alignment (4K units)
  5275.  
  5276. Format of PCMCIA I/O Window Characteristics table:
  5277. Offset    Size    Description    (Table 0600)
  5278.  00h    WORD    window capabilities (see #0601)
  5279.  02h    WORD    minimum base address in bytes
  5280.  04h    WORD    maximum base address in bytes
  5281.  06h    WORD    minimum window size in bytes
  5282.  08h    WORD    maximum window size in bytes
  5283.  0Ah    WORD    window size granularity (bytes)
  5284.  
  5285. Bitfields for PCMCIA window capabilities:
  5286. Bit(s)    Description    (Table 0601)
  5287.  0    programmable base address
  5288.  1    programmable window size
  5289.  2    window disable/enable supported
  5290.  3    8-data bus
  5291.  4    16-data bus
  5292.  5    base address alignment on size boundary required
  5293.  6    power-of-two size granularity
  5294. ---memory windows---
  5295.  7    card offset must be aligned on size boundary
  5296.  8    paging hardware available
  5297.  9    paging hardware shared
  5298.  10    page disable/enable supported
  5299.  11-15    reserved (0)
  5300. ---I/O windows---
  5301.  7-15    reserved (0)
  5302. --------X-1A88-------------------------------
  5303. INT 1A - PCMCIA Socket Services v1.00 - GET WINDOW
  5304.     AH = 88h
  5305.     AL = adapter number
  5306.     BH = window number
  5307. Return: CF clear if successful
  5308.         AH destroyed
  5309.         BL = socket number (0-16) (0 = not assigned)
  5310.         CX = window size (bytes for I/O window, 4K units for memory window)
  5311.         DH = window attributes (see #0602)
  5312.         DL = access speed (only one bit set) (see #0598)
  5313.         SI = window base address (bytes if I/O, 4K units if memory)
  5314.         DI = card offset address (memory only, 4K units)
  5315.     CF set on error
  5316.         AH = error code (01h,11h) (see #0580)
  5317. SeeAlso: AH=87h,AH=89h,AH=8Ah
  5318.  
  5319. Bitfields for PCMCIA window attributes:
  5320. Bit(s)    Description    (Table 0602)
  5321.  0    memory-mapped rather than I/O-mapped
  5322.  1    attribute memory rather than common (memory-mapped)
  5323.     EISA mapped (I/O)
  5324.  2    enabled
  5325.  3    16-data path
  5326.  4    subdivided into pages (memory-mapped only)
  5327.  5    non-specific access slot enable (EISA-mapped only)
  5328.  6-7    reserved (0)
  5329. --------X-1A89-------------------------------
  5330. INT 1A - PCMCIA Socket Services v1.00 - SET WINDOW
  5331.     AH = 89h
  5332.     AL = adapter number
  5333.     BH = window number
  5334.     BL = socket number
  5335.     CX = window size (bytes if I/O window, 4K units if memory window)
  5336.     DH = window attributes (see #0602)
  5337.     DL = access speed (only one bit set) (see #0598)
  5338.     SI = window base address (bytes if I/O, 4K units if memory window)
  5339.     DI = card offset addrress (memory only, 4K units)
  5340. Return: CF clear if successful
  5341.         AH destroyed
  5342.     CF set on error
  5343.         AH = error code (01h,03h,07h,08h,0Ah,0Bh,0Dh,10h,11h) (see #0580)
  5344. SeeAlso: AH=87h,AH=88h,AH=8Bh
  5345. --------X-1A8A-------------------------------
  5346. INT 1A - PCMCIA Socket Services v1.00 - GET PAGE
  5347.     AH = 8Ah
  5348.     AL = adapter number
  5349.     BH = window number
  5350.     BL = page number
  5351. Return: CF clear if successful
  5352.         AH destroyed
  5353.         DX = page attributes (see #0603)
  5354.         DI = memory card offset (4K units)
  5355.     CF set on error
  5356.         AH = error code (01h,08h,11h) (see #0580)
  5357. Notes:    this function is only valid for memory-mapped windows
  5358.     the socket being operated on is implied by the previous AH=89h call
  5359. SeeAlso: AH=88h,AH=8Bh
  5360.  
  5361. Bitfields for PCMCIA page attributes:
  5362. Bit(s)    Description    (Table 0603)
  5363.  0    page enabled
  5364.  15-1    reserved (0)
  5365. --------X-1A8B-------------------------------
  5366. INT 1A - PCMCIA Socket Services v1.00 - SET PAGE
  5367.     AH = 8Bh
  5368.     AL = adapter number
  5369.     BH = window number
  5370.     BL = page number
  5371.     DX = page attributes (see #0603)
  5372.     DI = memory card offset (4K units)
  5373. Return: CF clear if successful
  5374.         AH destroyed
  5375.     CF set on error
  5376.         AH = error code (01h,02h,07h,08h,11h) (see #0580)
  5377. Notes:    this function is only valid for memory-mapped windows
  5378.     the socket being operated on is implied by the previous AH=89h call
  5379. SeeAlso: AH=89h,AH=8Ah
  5380. --------X-1A8C-------------------------------
  5381. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE SOCKET
  5382.     AH = 8Ch
  5383.     AL = adapter number
  5384.     BL = socket number (01h to maximum supported by adapter)
  5385. Return: CF clear if successful
  5386.         AH destroyed
  5387.         DH = capabilities (see #0604)
  5388.         DL = hardware indicators (see #0605)
  5389.         DS:SI -> Socket Characteristics table (see #0606)
  5390.         DS:DI -> Power Management table (see #0608)
  5391.     CF set on error
  5392.         AH = error code (01h,0Bh) (see #0580)
  5393. SeeAlso: AH=87h,AH=8Dh,AH=8Eh
  5394.  
  5395. Bitfields for PCMCIA socket capabilities:
  5396. Bit(s)    Description    (Table 0604)
  5397.  0    card change
  5398.  1    card lock
  5399.  2    insert card (motor control)
  5400.  3    eject card (motor control)
  5401.  4-7    reserved (0)
  5402.  
  5403. Bitfields for PCMCIA socket hardware indicators:
  5404. Bit(s)    Description    (Table 0605)
  5405.  0    busy status
  5406.  1    write-protected
  5407.  2    battery status
  5408.  3    card lock status
  5409.  4    XIP status (eXecute-In-Place)
  5410.  5-7    reserved (0)
  5411.  
  5412. Format of PCMCIA Socket Characteristics table:
  5413. Offset    Size    Description    (Table 0606)
  5414.  00h    WORD    supported card types (see #0607)
  5415.  02h    WORD    steerable IRQ levels (bit 0 = IRQ0 to bit 15 = IRQ15)
  5416.  04h    WORD    additional steerable IRQ levels
  5417.         bit 0: NMI
  5418.         bit 1: I/O check
  5419.         bit 2: bus error
  5420.         bit 3: vendor-unique
  5421.         bits 4-7 reserved (0)
  5422.  
  5423. Bitfields for supported card types:
  5424. Bit(s)    Description    (Table 0607)
  5425.  0    memory card
  5426.  1    I/O card
  5427.  2-7    reserved (0)
  5428.  
  5429. Format of PCMCIA Power Management table:
  5430. Offset    Size    Description    (Table 0608)
  5431.  00h    WORD    number of entries in table (0 if power management not avail)
  5432.  02h 2N BYTEs    power levels
  5433.         byte 0: voltage in 0.1V units
  5434.         byte 1: power supply
  5435.             bit 7: Vcc
  5436.             bit 6: Vpp1
  5437.             bit 5: Vpp2
  5438. --------X-1A8D-------------------------------
  5439. INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET
  5440.     AH = 8Dh
  5441.     AL = adapter number
  5442.     BL = socket number (01h to maximum supported by adapter)
  5443. Return: CF clear if successful
  5444.         AH destroyed
  5445.         BH = status change interrupt enable mask (see #0582)
  5446.         CH = Vcc level (lower nybble) (see #0608)
  5447.         CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble)
  5448.         DH = current socket status (see #0583)
  5449.         DL = indicators (see #0605)
  5450.         SI = card type (see #0609)
  5451.         DI = IRQ level steering (I/O only) (see #0610)
  5452.     CF set on error
  5453.         AH = error code (01h,0Bh) (see #0580)
  5454. SeeAlso: AH=8Ch,AH=8Eh
  5455.  
  5456. Bitfields for PCMCIA card type:
  5457. Bit(s)    Description    (Table 0609)
  5458.  0    memory
  5459.  1    I/O
  5460.  2-15    reserved (0)
  5461.  
  5462. Bitfields for PCMCIA I/O level steering:
  5463. Bit(s)    Description    (Table 0610)
  5464.  15    interrupt steering enabled
  5465.  14-5    reserved (0)
  5466.  4-0    IRQ level (0-15=IRQ,16=NMI,17=I/O check,18=bus error,19=vendor)
  5467. --------X-1A8E-------------------------------
  5468. INT 1A - PCMCIA Socket Services v1.00 - SET SOCKET
  5469.     AH = 8Eh
  5470.     AL = adapter number
  5471.     BL = socket number (01h to maximum supported by adapter)
  5472.     BH = status change interrupt enable mask (see #0582)
  5473.     CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble)
  5474.     DH = current socket status (see #0583)
  5475.     DL = indicators (see #0605)
  5476.     SI = card type (see #0609)
  5477.     DI = IRQ level steering (I/O only) (see #0610)
  5478. Return: CF clear if successful
  5479.         AH destroyed
  5480.     CF set on error
  5481.         AH = error code (01h,02h,05h,06h,0Bh,0Eh,0Fh) (see #0580)
  5482. SeeAlso: AH=8Ch,AH=8Dh
  5483. --------X-1A8F-------------------------------
  5484. INT 1A - PCMCIA Socket Services v1.00 - GET CARD
  5485.     AH = 8Fh
  5486.     AL = adapter number
  5487.     BL = socket number (01h to maximum supported by adapter)
  5488. Return: CF clear if successful
  5489.         AH destroyed
  5490.         DL = current card status (see #0584)
  5491.     CF set on error
  5492.         AH = error code (01h,0Bh) (see #0580)
  5493. SeeAlso: AH=8Dh,AH=90h
  5494. --------X-1A90-------------------------------
  5495. INT 1A - PCMCIA Socket Services v1.00 - RESET CARD
  5496.     AH = 90h
  5497.     AL = adapter number
  5498.     BL = socket number (01h to maximum supported by adapter)
  5499. Return: CF clear if successful
  5500.         AH destroyed
  5501.     CF set on error
  5502.         AH = error code (01h,0Bh,14h) (see #0580)
  5503. Note:    toggles RESET pin of the specified card, but does not wait after
  5504.       toggling the pin; it is the caller's responsibility to avoid
  5505.       accessing the card before it is ready again
  5506. --------X-1A91-------------------------------
  5507. INT 1A - PCMCIA Socket Services v1.00 - READ ONE
  5508.     AH = 91h
  5509.     AL = adapter number
  5510.     BL = socket number (01h to maximum supported by adapter)
  5511.     BH = attributes (see #0611)
  5512.     DX:SI = card address
  5513. Return: CF clear if successful
  5514.         AH destroyed
  5515.         CL/CX = value read
  5516.     CF set on error
  5517.         AH = error code (01h,07h,09h,0Bh,14h) (see #0580)
  5518.         CX may be destroyed
  5519. Note:    this function is only valid for I/O-mapped sockets
  5520. SeeAlso: AH=92h,AH=93h,INT 21/AX=440Dh"DOS 3.2+"
  5521.  
  5522. Bitfields for PCMCIA attributes:
  5523. Bit(s)    Description    (Table 0611)
  5524.  2    even bytes only
  5525.  1    word rather than byte
  5526.  0    attribute memory instead of common memory
  5527. --------X-1A92-------------------------------
  5528. INT 1A - PCMCIA Socket Services v1.00 - WRITE ONE
  5529.     AH = 92h
  5530.     AL = adapter number
  5531.     BL = socket number (01h to maximum supported by adapter)
  5532.     BH = attributes (see #0611)
  5533.     CL/CX = value to write
  5534.     DX:SI = card address
  5535. Return: CF clear if successful
  5536.         AH destroyed
  5537.     CF set on error
  5538.         AH = error code (01h,07h,0Bh,12h,14h) (see #0580)
  5539. Note:    this function is only valid for I/O-mapped sockets; it also does not
  5540.       implement Card Technology handling--use AH=94h when writing to
  5541.       non-RAM technologies
  5542. SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"DOS 3.2+"
  5543. --------X-1A93-------------------------------
  5544. INT 1A - PCMCIA Socket Services v1.00 - READ MULTIPLE
  5545.     AH = 93h
  5546.     AL = adapter number
  5547.     BL = socket number (01h to maximum supported by adapter)
  5548.     BH = attributes (see #0611)
  5549.     CX = number of bytes or words to read
  5550.     DX:SI = card address
  5551.     DS:DI -> data buffer to be filled
  5552. Return: CF clear if successful
  5553.         AH destroyed
  5554.     CF set on error
  5555.         AH = error code (01h,07h,09h,0Bh,14h) (see #0580)
  5556. Note:    this function is only available on I/O-mapped sockets
  5557. SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"DOS 3.2+"
  5558. --------X-1A94-------------------------------
  5559. INT 1A - PCMCIA Socket Services v1.00 - WRITE MULTIPLE
  5560.     AH = 94h
  5561.     AL = adapter number
  5562.     BL = socket number (01h to maximum supported by adapter)
  5563.     BH = attributes (see #0611)
  5564.     CX = number of bytes or words to read
  5565.     DX:DI = card address
  5566.     DS:SI -> buffer containing data
  5567.     BP = Card Technology type (0000h = RAM)
  5568. Return: CF clear if successful
  5569.         AH destroyed
  5570.     CF set on error
  5571.         AH = error code (01h,07h,0Bh,0Ch,12h,14h) (see #0580)
  5572. Notes:    this function is only available on I/O-mapped sockets
  5573.     Socket Services calls the Card Technology callback (see #0585) for
  5574.       any card technology it does not directly support
  5575. SeeAlso: AH=82h"PCMCIA",AH=92h,AH=93h,INT 21/AX=440Dh"DOS 3.2+"
  5576. --------X-1A95-------------------------------
  5577. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ERROR DETECTION CODE
  5578.     AH = 95h
  5579.     AL = adapter number
  5580.     BH = EDC generator number
  5581. Return: CF clear if successful
  5582.         AH destroyed
  5583.         CX = bitmap of assignable sockets
  5584.         DH = EDC capabilities (see #0612)
  5585.         DL = supported EDC types (see #0613)
  5586.     CF set on error
  5587.         AH = error code (01h,04h) (see #0580)
  5588. SeeAlso: AH=96h,AH=9Ch
  5589.  
  5590. Bitfields for EDC capabilities:
  5591. Bit(s)    Description    (Table 0612)
  5592.  0    unidirectional only generation
  5593.  1    bidirectional only generation
  5594.  2    register-based (I/O-mapped) support
  5595.  3    memory-mapped support
  5596.  4    pausable
  5597.  5-7    reserved (0)
  5598.  
  5599. Bitfields for supported EDC types:
  5600. Bit(s)    Description    (Table 0613)
  5601.  0    8-checksum
  5602.  1    16-CRC-SDLC
  5603.  2-7    reserved (0)
  5604. --------X-1A96-------------------------------
  5605. INT 1A - PCMCIA Socket Services v1.00 - GET ERROR DETECTION CODE
  5606.     AH = 96h
  5607.     AL = adapter number
  5608.     BH = EDC generator number
  5609. Return: CF clear if successful
  5610.         AH destroyed
  5611.         BL = socket number
  5612.         DH = EDC attributes (see #0614)
  5613.         DL = EDC type (see #0613) (only one bit set)
  5614.     CF set on error
  5615.         AH = error code (01h,04h) (see #0580)
  5616. SeeAlso: AH=95h,AH=97h,AH=9Ch
  5617.  
  5618. Bitfields for EDC attributes:
  5619. Bit(s)    Description    (Table 0614)
  5620.  0    unidirectional only
  5621.  1    (if 0 set) clear=read, set=write
  5622.  2-7    reserved (0)
  5623. --------X-1A97-------------------------------
  5624. INT 1A - PCMCIA Socket Services v1.00 - SET ERROR DETECTION CODE
  5625.     AH = 97h
  5626.     AL = adapter number
  5627.     BH = EDC generator
  5628.     BL = socket number
  5629.     DH = EDC attributes (see #0614)
  5630.     DL = EDC type (see #0613) (only one bit may be set)
  5631. Return: CF clear if successful
  5632.         AH destroyed
  5633.     CF set on error
  5634.         AH = error code (01h,02h,04h,0Bh) (see #0580)
  5635. SeeAlso: AH=96h,AH=9Ch
  5636. --------X-1A98-------------------------------
  5637. INT 1A - PCMCIA Socket Services v1.00 - START ERROR DETECTION CODE
  5638.     AH = 98h
  5639.     AL = adapter number
  5640.     BH = EDC generator
  5641. Return: CF clear if successful
  5642.         AH destroyed
  5643.     CF set on error
  5644.         AH = error code (01h,04h) (see #0580)
  5645. SeeAlso: AH=96h,AH=99h,AH=9Bh,AH=9Ch
  5646. --------X-1A99-------------------------------
  5647. INT 1A - PCMCIA Socket Services v1.00 - PAUSE ERROR DETECTION CODE
  5648.     AH = 99h
  5649.     AL = adapter number
  5650.     BH = EDC generator
  5651. Return: CF clear if successful
  5652.         AH destroyed
  5653.     CF set on error
  5654.         AH = error code (01h,04h) (see #0580)
  5655. SeeAlso: AH=9Ah
  5656. --------X-1A9A-------------------------------
  5657. INT 1A - PCMCIA Socket Services v1.00 - RESUME ERROR DETECTION CODE
  5658.     AH = 9Ah
  5659.     AL = adapter number
  5660.     BH = EDC generator
  5661. Return: CF clear if successful
  5662.         AH destroyed
  5663.     CF set on error
  5664.         AH = error code (01h,04h) (see #0580)
  5665. SeeAlso: AH=99h,AH=98h
  5666. --------X-1A9B-------------------------------
  5667. INT 1A - PCMCIA Socket Services v1.00 - STOP ERROR DETECTION CODE
  5668.     AH = 9Bh
  5669.     AL = adapter number
  5670.     BH = EDC generator
  5671. Return: CF clear if successful
  5672.         AH destroyed
  5673.     CF set on error
  5674.         AH = error code (see #0580)
  5675. SeeAlso: AH=98h,AH=99h,AH=9Ch
  5676. --------X-1A9C-------------------------------
  5677. INT 1A - PCMCIA Socket Services v1.00 - READ ERROR DETECTION CODE
  5678.     AH = 9Ch
  5679.     AL = adapter number
  5680.     BH = EDC generator
  5681. Return: CF clear if successful
  5682.         AH destroyed
  5683.         DL/DX = computed checksum or CRC
  5684.     CF set on error
  5685.         AH = error code (01h,04h) (see #0580)
  5686. SeeAlso: AH=95h,AH=96h,AH=98h,AH=99h,AH=9Bh
  5687. --------X-1A9D-------------------------------
  5688. INT 1A - PCMCIA Socket Services v2.1??? - GET VENDOR INFO
  5689.     AH = 9Dh
  5690.     AL = adapter number
  5691.     BH = EDC generator
  5692.     ES:EDI -> vendor information structure (see #0615)
  5693. Return: CF clear if successful
  5694.         AH destroyed
  5695.         DX = vendor release number in BCD
  5696.         ES:EDI unchanged
  5697.     CF set on error
  5698.         AH = error code (01h,15h) (see #0580)
  5699. Notes:    this API is supported by recent versions of the AMI BIOS
  5700.     the low-level API described here is hidden by the higher-level
  5701.       ExCA API once Card Services has been installed
  5702. SeeAlso: AH=9Dh"ExCA"
  5703.  
  5704. Format of Vendor Information structure:
  5705. Offset    Size    Description    (Table 0615)
  5706.  00h    WORD    buffer length (set to size of buffer below)
  5707.  04h    WORD    (ret) data length
  5708.  08h  x BYTEs    implementor name (ASCIIZ string)
  5709. --------X-1A9D-------------------------------
  5710. INT 1A - Intel PCMCIA ExCA Card Services - API
  5711.     AH = 9Dh
  5712.     AL = subfunction (see #0616)
  5713.     ???
  5714. Return: ???
  5715. SeeAlso: AH=9Dh"ExCA",#0811
  5716.  
  5717. (Table 0616)
  5718. Values for PCMCIA ExCA Card Services subfunction number:
  5719.  00h    Client Services: Get Number of Sockets
  5720.  01h    Advanced Client Utilities: Initialize
  5721.  02h    Client Services: Register Client
  5722.  03h    Client Services: Deregister Client
  5723.  04h    Advanced Client Utilities: Enumerate Clients
  5724.  05h    Client Services: Register SCB
  5725.  06h    Client Services: Deregister SCB
  5726.  07h    Advanced Client Utilities: Register MTD
  5727.  08h    Advanced Client Utilities: Deregister MTD
  5728.  09h    Advanced Client Utilities: Enumerate MTD
  5729.  0Ah    Client Services: Get Status
  5730.  0Bh    Client Services: Reset Card
  5731.  0Ch    Client Utilities: Get First Tuple
  5732.  0Dh    Client Utilities: Get Next Tuple
  5733.  0Eh    Client Utilities: Determine First Region
  5734.  0Fh    Client Utilities: Determine Next Region
  5735.  10h    Client Utilities: Get First Region
  5736.  11h    Client Utilities: Get Next Region
  5737.  12h    Client Utilities: Get First Partition
  5738.  13h    Client Utilities: Get Next Partition
  5739.  14h    Bulk Memory Services: Open Region
  5740.  15h    Bulk Memory Services: Read Memory
  5741.  16h    Bulk Memory Services: Write Memory
  5742.  17h    Bulk Memory Services: Copy Memory
  5743.  18h    Bulk Memory Services: Erase Memory
  5744.  19h    Resource Management: Request I/O
  5745.  1Ah    Resource Management: Release I/O
  5746.  1Bh    Resource Management: Request Memory
  5747.  1Ch    Client Services: Modify Window
  5748.  1Dh    Resource Management: Release Memory
  5749.  1Eh    Client Services: Map Mem Page
  5750.  1Fh    Advanced Client Utilities: Return SS Entry
  5751.  20h    Advanced Client Utilities: Map Log to Phy
  5752.  21h    Advanced Client Utilities: Map Log Phy to Log
  5753.  22h    Resource Management: Request IRQ
  5754.  23h    Resource Management: Release IRQ
  5755.  24h    Bulk Memory Services: Close Region
  5756. --------X-1A9E-------------------------------
  5757. INT 1A - PCMCIA Socket Services v2.1 - ACKNOWLEDGE INTERRUPT
  5758.     AH = 9Eh
  5759.     AL = adapter number
  5760. Return: CF clear if successful
  5761.         AH destroyed
  5762.         CX = bitmap representing sockets which have changed status
  5763.     CF set on error
  5764.         AH = error code (01h) (see #0580)
  5765. Note:    this API is supported by recent versions of the AMI BIOS
  5766. --------X-1A9F-------------------------------
  5767. INT 1A - PCMCIA Socket Services v2.1 - GET/SET PRIOR INT 1A HANDLER
  5768.     AH = 9Fh
  5769.     AL = adapter number
  5770.     BL = mode
  5771.         00h get prior INT 1Ah handler
  5772.         01h set prior INT 1Ah handler
  5773.         CX:DX -> new prior handler
  5774. Return: CF clear if successful
  5775.         AH destroyed
  5776.         CX:DX -> old prior handler
  5777.     CF set on error
  5778.         AH = error code (01h,15h,18h) (see #0580)
  5779. Desc:    allows hooking of INT 16h "behind" the Socket Services hook
  5780. Note:    this API is supported by recent versions of the AMI BIOS
  5781. SeeAlso: AH=9Eh,AH=A0h"PCMCIA",AH=AEh"PCMCIA"
  5782. --------c-1AA0-------------------------------
  5783. INT 1A U - Disk Spool II v2.07+ - INSTALLATION CHECK
  5784.     AH = A0h
  5785. Return: AH = B0h if installed
  5786.         AL = pending INT 1A/AH=D0h subfunction if nonzero???
  5787.         ES = code segment
  5788.         ES:BX -> name of current spool file
  5789.         ES:SI -> current despool file
  5790.         CL = despooler state (00h disabled, 41h enabled)
  5791.         CH = spooler state (00h disabled, 41h enabled)
  5792.         DL = despooler activity
  5793.         00h currently active printing a file
  5794.         41h standing by
  5795.         DH = 00h ???
  5796.            = 41h ???
  5797.         DI = 0000h ???
  5798.          0001h ???
  5799. Program: Disk Spool II is a shareware disk-based print spooler by Budget
  5800.       Software Company
  5801. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  5802.       as that is a licensed version of Disk Spool II
  5803. SeeAlso: AH=ABh,AH=C0h,AH=D0h,AH=E1h
  5804. --------X-1AA0-------------------------------
  5805. INT 1A - PCMCIA Socket Services v2.1 - GET/SET SOCKET SERVICES ADDRESS
  5806.     AH = A0h
  5807.     AL = adapter number
  5808.     BH = mode
  5809.         00h real mode
  5810.         01h 16:16 protected mode
  5811.         02h 16:32 protected mode
  5812.         03h 00:32 (Flat) protected mode
  5813.     BL = subfunction
  5814.         00h return number of additional data areas (see #0617)
  5815.         01h return description of additional data areas (see #0618)
  5816.         02h accept mode-specific pointers to data areas (see #0619)
  5817.     ES:EDI -> buffer supplied by caller
  5818. Return: CF clear if successful
  5819.         AH destroyed
  5820.         CX = number of additional data areas
  5821.         ES:EDI unchanged
  5822.     CF set on error
  5823.         AH = error code (01h,02h,15h,16h,18h) (see #0580)
  5824. SeeAlso: AH=9Fh,AH=AEh
  5825.  
  5826. Format of PCMCIA Subfunction 00h Buffer Table Entry structure:
  5827. Offset    Size    Description    (Table 0617)
  5828.  00h    DWORD    32-bit linear base address of the code segment
  5829.  04h    DWORD    segment limit of the code segment
  5830.  08h    DWORD    entry point offset
  5831.  0Ch    DWORD    32-bit linear base address of the data segment
  5832.         (ignored in 00:32 flat mode)
  5833.  10h    DWORD    segment limit of the data segment
  5834.  14h    DWORD    data area offset.  Only used in 32-bit protected mode.
  5835. SeeAlso: #0618,#0619
  5836.  
  5837. Format of PCMCIA Additional Data Area Description structure [array]:
  5838. Offset    Size    Description    (Table 0618)
  5839.  00h    DWORD    32-bit linear base address of the additional data segment
  5840.         (ignored in 00:32 flat mode)
  5841.  04h    DWORD    segment limit of the code segment
  5842.  08h    DWORD    data area offset (only used in 32-bit protected mode)
  5843. SeeAlso: #0617,#0619
  5844.  
  5845. Format of PCMCIA Subfunction 02h Buffer Table Entry structure:
  5846. Offset    Size    Description    (Table 0619)
  5847.  00h    DWORD    32-bit offset(ignored in 16:16 protected mode)
  5848.  04h    DWORD    selector (only used in 00:32 flat mode)
  5849.  08h    DWORD    reserved
  5850. SeeAlso: #0617,#0618
  5851. --------X-1AA1-------------------------------
  5852. INT 1A - PCMCIA Socket Services v2.1 - GET ACCESS OFFSETS
  5853.     AH = A1h
  5854.     AL = adapter number
  5855.     BH = Mode
  5856.          00h = Real Mode
  5857.          01h = 16:16 Protected Mode
  5858.          02h = 16:32 Protected Mode
  5859.          03h = 00:32 Protected Mode
  5860.     CX = Number of access offsets
  5861.     ES:EDI -> buffer supplied by caller, CX words long (see #0620)
  5862. Return: CF clear if successful
  5863.         AH destroyed
  5864.         DX = number of access offsets supported
  5865.         ES:EDI unchanged
  5866.     CF set on error
  5867.         AH = error code (01h,15h,16h) (see #0580)
  5868. Desc:    Returns an array of low-level adapter-specific optimized
  5869.     PC Card access routines for adapters that use registers
  5870.     or I/O ports to access PC Card memory.    Adapters that access
  5871.     PC Card memory through windows mapped to host system memory
  5872.     do not support this function.
  5873. Note:    offsets returned are 16-bit offsets into the
  5874.     Socket Services code segment.  They must be called
  5875.     appropriately for the processor mode selected.
  5876.     (Real, 16:16 and 16:32 modes use FAR CALL,
  5877.     Flat 00:32 mode uses a 32-bit NEAR CALL).
  5878. SeeAlso: AH=AEh
  5879.  
  5880. Format of Offset Table structure:
  5881. Offset    Size    Description    (Table 0620)
  5882.  00h    WORD    Set Address
  5883.  02h    WORD    Set Auto Increment
  5884.  04h    WORD    Read Byte
  5885.  06h    WORD    Read Word
  5886.  08h    WORD    Read Byte with Auto Increment
  5887.  0Ah    WORD    Read Word with Auto Increment
  5888.  0Ch    WORD    Read Words
  5889.  0Eh    WORD    Read Words with Auto Increment
  5890.  10h    WORD    Write Byte
  5891.  12h    WORD    Write Word
  5892.  14h    WORD    Write Byte with Auto Increment
  5893.  16h    WORD    Write Word with Auto Increment
  5894.  18h    WORD    Write Words
  5895.  1Ah    WORD    Write Words with Auto Increment
  5896.  1Ch    WORD    Compare Byte
  5897.  1Eh    WORD    Compare Byte with Auto Increment
  5898.  20h    WORD    Compare Words
  5899.  22h    WORD    Compare Words with Auto Increment
  5900. --------X-1AA2-------------------------------
  5901. INT 1A - CardBus Socket Services - ACCESS CONFIGURATION SPACE
  5902.     AH = A2h
  5903.     ??? details not available
  5904. Return: ???
  5905. --------X-1AA4-------------------------------
  5906. INT 1A - CardBus Socket Services - GET BRIDGE WINDOW / WINDOW CAPABILITIES
  5907.     AH = A4h
  5908.     ??? details not available
  5909. Return: ???
  5910. SeeAlso: AH=A5h"CardBus"
  5911. --------X-1AA5-------------------------------
  5912. INT 1A - CardBus Socket Services - SET BRIDGE WINDOW
  5913.     AH = A5h
  5914.     ??? details not available
  5915. Return: ???
  5916. SeeAlso: AH=A4h"CardBus"
  5917. --------c-1AAB-------------------------------
  5918. INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK
  5919.     AH = ABh
  5920. Return: AH = BAh if installed
  5921.         AL = pending INT 1A/AH=ADh subfunction if nonzero???
  5922.         ES = code segment
  5923.         ES:BX -> name of current spool file
  5924.         ES:SI -> current despool file
  5925.         CL = despooler state (00h disabled, 41h enabled)
  5926.         CH = spooler state (00h disabled, 41h enabled)
  5927.         DL = despooler activity
  5928.         00h currently active printing a file
  5929.         41h standing by
  5930.         DH = 00h ???
  5931.            = 41h ???
  5932.         DI = 0000h ???
  5933.          0001h ???
  5934. Program: Disk Spool II is a shareware disk-based print spooler by Budget
  5935.       Software Company
  5936. SeeAlso: AH=A0h,AH=ACh,AH=ADh,AH=E1h
  5937. --------c-1AAC-------------------------------
  5938. INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK
  5939.     AH = ACh
  5940. Return: (see AH=ABh)
  5941. Note:    this function is identical to AH=ABh
  5942. SeeAlso: AH=A0h,AH=ABh,AH=ADh
  5943. --------c-1AAD-------------------------------
  5944. INT 1A U - Disk Spool II v1.83 - FUNCTION CALLS
  5945.     AH = ADh
  5946.     AL = function code (see #0621)
  5947. Return: AH = 00h if successful
  5948. SeeAlso: AH=ABh
  5949.  
  5950. (Table 0621)
  5951. Values for Disk Spool function code:
  5952.  02h    enable spooler only
  5953.  03h    enable the despooler
  5954.  04h    disable the despooler
  5955.  08h    inhibit popup menu
  5956.  09h    enable popup menu
  5957.  0Ah    ???
  5958.  0Bh    disable the spooler
  5959.  0Ch    start despooler after last successfully printed document???
  5960.  0Dh    start despooler at the exact point where it last left off???
  5961.  0Eh    pop up the menu
  5962.  0Fh    ???
  5963.  11h    ???
  5964.  14h    ???
  5965.  15h    ???
  5966.  16h    ???
  5967.  17h    ???
  5968.  18h    ???
  5969.  19h    ???
  5970.  20h    clear file pointed to by the despooler???
  5971.  21h    ???
  5972.  22h    ???
  5973.  23h    ???
  5974.  30h    ???
  5975. --------X-1AAE-------------------------------
  5976. INT 1A - PCMCIA Socket Services v2.1 - VENDOR SPECIFIC
  5977.     AH = AEh
  5978.     AL = adapter number
  5979.     all other registers are vendor-specific
  5980. Return: vendor specific
  5981. SeeAlso: AH=A1h,AH=AFh
  5982. --------X-1AAE-------------------------------
  5983. INT 1A - PCMCIA Socket Services v2.1 - API
  5984.     AH = AEh
  5985.     SI = function
  5986.         0002h ???
  5987.         0100h ???
  5988.         0101h ???
  5989.         8000h ???
  5990.         8001h ???
  5991.     details not yet available
  5992. Return: CF clear if successful
  5993.     CF set on error
  5994.         AH = error code (02h,0Bh,11h,15h,17h) (see #0580)
  5995. SeeAlso: AH=9Eh
  5996. --------X-1AAF-------------------------------
  5997. INT 1A - PCMCIA v2 Card Services - API
  5998.     AH = AFh
  5999.     AL = function
  6000.         00h close memory
  6001.         01h copy memory
  6002.         02h deregister client
  6003.         03h get client information (see #0626)
  6004.         04h get configuration information (see #0628)
  6005.         05h get first partition
  6006.         06h get first region
  6007.         07h get first tuple (see #0635)
  6008.         08h get next partition
  6009.         09h get next region
  6010.         0Ah get next tuple
  6011.         0Bh    get Card Services information (see #0624)
  6012.         0Ch get status
  6013.         0Dh    get tuple data (see #0636)
  6014.         0Eh    get first client (see #0625)
  6015.         0Fh get/register Erase Queue
  6016.         10h    register client (see #0637)
  6017.         11h reset function
  6018.         12h map logical socket
  6019.         13h map logical window
  6020.         14h map memory page
  6021.         15h map physical socket
  6022.         16h map physical window
  6023.         17h modify window
  6024.         18h open memory
  6025.         19h read memory
  6026.         1Ah register MTD
  6027.         1Bh release I/O
  6028.         1Ch release IRQ (see #0639)
  6029.         1Dh release window
  6030.         1Eh release configuration (see #0640)
  6031.         1Fh request I/O (see #0641)
  6032.         20h request IRQ (see #0642)
  6033.         21h reqeust window (see #0644)
  6034.         22h request socket mask
  6035.         23h return SS entry
  6036.         24h write memory
  6037.         25h deregister Erase Queue
  6038.         26h check Erase Queue
  6039.         27h modify configuration
  6040.         28h register timer
  6041.         29h set region
  6042.         2Ah get next client
  6043.         2Bh validate CIS
  6044.         2Ch request exclusive access (see #0647)
  6045.         2Dh release exclusive access (see #0647)
  6046.         2Eh get event mask
  6047.         2Fh release socket mask
  6048.         30h request configuration (see #0648)
  6049.         31h set event mask
  6050.         32h add Socket Service
  6051.         33h replace Socket Service
  6052.         34h vendor-specific
  6053.         35h adjust resource information
  6054.         36h access configuration register
  6055.         37h get first window
  6056.         38h get next window
  6057.         39h get memory page
  6058.         3Ah request DMA
  6059.         3Bh release DMA
  6060.     further details not yet available
  6061. Return: ??? = result code (see #0622)
  6062. SeeAlso: AH=AEh
  6063.  
  6064. (Table 0622)
  6065. Values for PCMCIA Card Services result codes:
  6066.  00h    successful
  6067.  01h    invalid adapter number
  6068.  02h    bad value for attribute field
  6069.  03h    bad value for base system memory address
  6070.  04h    invalid EDC generator specified
  6071.  05h    (reserved for historical reasons)
  6072.  06h    invalid IRQ level specified
  6073.  07h    invalid PC Card memory array offset
  6074.  08h    invalid page number specified
  6075.  09h    unable to complete read request
  6076.  0Ah    invalid size specified
  6077.  0Bh    invalid socket number
  6078.  0Ch    (reserved for historical reasons)
  6079.  0Dh    invalid window or interface type
  6080.  0Eh    invalid Vcc power level specified
  6081.  0Fh    invalid Vpp1 or Vpp2 power level specified
  6082.  10h    (reserved for historical reasons)
  6083.  11h    invalid window number
  6084.  12h    unable to complete write request
  6085.  13h    (reserved for historical reasons)
  6086.  14h    no PC Card in socket
  6087.  15h    service not supported by implementation
  6088.  16h    unsupported processor mode
  6089.  17h    specified speed not available
  6090.  18h    busy -- retry later
  6091.  19h    undefined error (general failure)
  6092.  1Ah    storage medium write protected
  6093.  1Bh    argument length in (E)CX is invalid
  6094.  1Ch    bad value(s) in argument packet
  6095.  1Dh    configuration has already been locked
  6096.  1Eh    requested resource already in use
  6097.  1Fh    no more items of requested type available
  6098.  20h    out of resources
  6099.  21h    invalid client handle
  6100.  22h    unsupported client version
  6101.  
  6102. (Table 0623)
  6103. Values for Card Services Callback Event codes:
  6104.  01h    battery dead
  6105.  02h    battery low
  6106.  03h    card locked
  6107.  04h    card has become ready
  6108.  05h    card removed
  6109.  06h    card unlocked
  6110.  07h    motorized ejection complete
  6111.  08h    ejection requested
  6112.  09h    insertion complete
  6113.  0Ah    insertion requested
  6114.  0Bh    power management: resume
  6115.  0Ch    power management: suspend
  6116.  0Dh    exclusive access granted
  6117.  0Eh    exclusive access requested
  6118.  0Fh    perform physical reset
  6119.  10h    physical reset requested
  6120.  11h    card has been reset
  6121.  12h    MTD request (read/write/etc)
  6122.  14h    request for client info
  6123.  15h    timer has expired
  6124.  16h    Socket Service was modified
  6125.  17h    write-protected
  6126.  18h    attention requested
  6127.  40h    card insertion
  6128.  80h    reset complete
  6129.  81h    erase complete
  6130.  82h    registration complete
  6131.  
  6132. Format of Card Services Information:
  6133. Offset    Size    Description    (Table 0624)
  6134.  00h    WORD    length of information record in bytes
  6135.  02h    WORD    signature
  6136.  04h    WORD    number of sockets
  6137.  06h    WORD    revision level
  6138.  08h    WORD    Card Services level
  6139.  0Ah    WORD    offset of vendor string
  6140.  0Ch    WORD    length of vendor string
  6141.  0Eh    WORD    number of functions
  6142.  10h 255 BYTEs    vendor string
  6143. SeeAlso: #0626
  6144.  
  6145. Format of Card Services Client structure:
  6146. Offset    Size    Description    (Table 0625)
  6147.  00h    WORD    PCMCIA socket number
  6148.  02h    WORD    client attributes
  6149.  
  6150. Format of Cards Services Client Information:
  6151. Offset    Size    Description    (Table 0626)
  6152.  00h    WORD    maximum length of data in bytes (180)
  6153.  02h    WORD    (ret) length of returned data
  6154.  04h    WORD    attributes (see #0627)
  6155.  06h    WORD    revision level (BCD)
  6156.  08h    WORD    Card Services level (BCD)
  6157.  0Ah    WORD    revision date (DOS packed date format) (see #1352)
  6158.  0Ch    WORD    offset to name
  6159.  0Eh    WORD    length of name
  6160.  10h    WORD    offset to vendor string
  6161.  12h    WORD    length of vendor string
  6162.  14h 80 BYTEs    buffer for name
  6163.  64h 80 BYTEs    buffer for vendor string
  6164. SeeAlso: #0624,#0628
  6165.  
  6166. Bitfields for Card Services client attributes:
  6167. Bit(s)    Description    (Table 0627)
  6168.  0    memory client
  6169.  1    MTD client
  6170.  2    I/O client
  6171.  3    all clients can share this card
  6172.  4    only one client can use this card at a time
  6173. SeeAlso: #0626
  6174.  
  6175. Format of Card Services configuration information:
  6176. Offset    Size    Description    (Table 0628)
  6177.  00h    WORD    socket (usually 0000h)
  6178.  02h    WORD    attributes (see #0629)
  6179.  04h    BYTE    Vcc value
  6180.  05h    BYTE    Vpp1 value
  6181.  06h    BYTE    Vpp2 value
  6182.  07h    BYTE    interface type (see #0630)
  6183.  08h    DWORD    base address of configuration registers
  6184.  0Ch    BYTE    card's Status register setting (if present)
  6185.  0Dh    BYTE    card's Pin register setting (if present)
  6186.  0Eh    BYTE    card's Socket/Copy register setting (if present)
  6187.  0Fh    BYTE    card's Option register setting (if present)
  6188.  10h    BYTE    bitmap of present card configuration registers
  6189.  11h    BYTE    first device type
  6190.  12h    BYTE    function code
  6191.  13h    BYTE    SysInit mask
  6192.  14h    WORD    manufacturer code
  6193.  16h    WORD    manufacturer information
  6194.  18h    BYTE    valie card register values
  6195.  19h    BYTE    IRQ number assigned to PC Card
  6196.  1Ah    WORD    IRQ attributes (see #0632)
  6197.  1Ch    WORD    base port address (for I/O range 1)
  6198.  1Eh    BYTE    number of contiguous ports (for I/O range 1)
  6199.  1Fh    BYTE    bitmap of port attributes (for I/O range 1) (see #0633)
  6200.  20h    WORD    base port address (for I/O range 2)
  6201.  22h    BYTE    number of contiguous ports (for I/O range 2)
  6202.  23h    BYTE    bitmap of port attributes (for I/O range 2) (see #0633)
  6203.  24h    BYTE    number of I/O address lines decoded (16-bit PC Card only)
  6204.  25h    BYTE    extended status register setting (if present)
  6205.  26h    BYTE    bitmap of DMA attributes (see #0634)
  6206.         (note: value at call is used to set!)
  6207.  27h    BYTE    assigned DMA channel
  6208.  28h    BYTE    number of I/O windows in use on logical socket
  6209.  29h    BYTE    number of memory windows in use on logical socket
  6210. SeeAlso: #0627,#0648
  6211.  
  6212. Bitfields for Card Services Configuration attributes:
  6213. Bit(s)    Description    (Table 0629)
  6214.  0    exclusive
  6215.  1    IRQ active
  6216.  2    CardBus card
  6217.  3-5    reserved (0)
  6218.  6    DMA channel is active
  6219.  7    reserved (0)
  6220.  8    valid client
  6221.  9    overwrite voltage value
  6222.  10-15    reserved (0)
  6223. SeeAlso: #0628
  6224.  
  6225. Bitfields for Card Services Configuration interface type:
  6226. Bit(s)    Description    (Table 0630)
  6227.  0    memory interface
  6228.  1    I/O and memory interface
  6229.  2    CardBus interface
  6230.  3-7    reserved (0)
  6231. SeeAlso: #0628
  6232.  
  6233. Bitfields for Card Services Configuration registers:
  6234. Bit(s)    Description    (Table 0631)
  6235.  0    option value is value
  6236.  1    status value
  6237.  2    pin-replacement value
  6238.  3    copy value
  6239.  4    extended status value
  6240.  5-7    reserved (0)
  6241. SeeAlso: #0628
  6242.  
  6243. Bitfields for Card Services Configuration IRQ attributes:
  6244. Bit(s)    Description    (Table 0632)
  6245.  1-0    sharing
  6246.     00 no sharing
  6247.     01 time-multiplex sharing
  6248.     10 dynamic sharing
  6249.     11 reserved
  6250.  2    force pulse mode
  6251.  3    first used together
  6252.  4-7    reserved
  6253.  8    pulse IRQ has been assigned
  6254.  9-15    reserved
  6255. SeeAlso: #0628,#0633,#0634,#0639,#0642
  6256.  
  6257. Bitfields for Card Services Configuration Port attributes:
  6258. Bit(s)    Description    (Table 0633)
  6259.  0    shared I/O ports
  6260.  1    "CS_FirstCommonUsedCard"
  6261.  2    force alias access
  6262.  3    =1 sixteen-bit I/O
  6263.     =0 eight-bit I/O
  6264.  7-4    reserved (0)
  6265. SeeAlso: #0628,#0632,#0634,#0641
  6266.  
  6267. Bitfields for Card Services Configuration DMA attributes:
  6268. Bit(s)    Description    (Table 0634)
  6269.  1-0    sharing mode
  6270.     00 no sharing
  6271.     01 time-multiplex sharing
  6272.     10 dynamic sharing
  6273.     11 reserved
  6274.  3-2    DMA request signal
  6275.     00 reserved
  6276.     01 DMARQ uses pin SPKR#
  6277.     10 DMARQ uses pin IOIS16#
  6278.     11 DMARQ uses pin INPACK#
  6279.  4    DMA size
  6280.     0 eight bits
  6281.     1 sixteen bits
  6282.  7-5    reserved (0)
  6283. SeeAlso: #0628,#0632,#0633
  6284.  
  6285. Format of Card Services Tuple information:
  6286. Offset    Size    Description    (Table 0635)
  6287.  00h    WORD    logical socket number
  6288.  02h    WORD    attributes
  6289.         bit 0: return Link tuples
  6290.  04h    BYTE    code value of desired tuple
  6291.  05h    BYTE    reserved (0)
  6292.  06h    WORD    (ret) TupleFlags
  6293.  08h    DWORD    (ret) -> Card Services Link State Information
  6294.  0Ch    DWORD    (ret) -> Card Services CIS State Information
  6295.  10h    BYTE    (ret) code for tuple
  6296.  11h    BYTE    (ret) link value for tuple
  6297. SeeAlso: #0636
  6298.  
  6299. Format of Card Services GetTupleData record:
  6300. Offset    Size    Description    (Table 0636)
  6301.  00h    WORD    logical socket
  6302.  02h    WORD    attributes
  6303.  04h    BYTE    code value of desired tuple
  6304.  05h    BYTE    offset into tuple from link byte
  6305.  06h    WORD    flags
  6306.  08h    DWORD    -> Link
  6307.  0Ch    DWORD    -> CIS
  6308.  10h    WORD    (call) maximum amount of data to return (0004h)
  6309.  12h    WORD    (ret) amount of data returned
  6310.  14h    DWORD    (ret) tuple data
  6311. SeeAlso: #0635
  6312.  
  6313. Format of Card Services Client Registration record:
  6314. Offset    Size    Description    (Table 0637)
  6315.  00h    WORD    attributes
  6316.  02h    WORD    event mask
  6317.  04h    WORD    client data (passed to client event handler in DI)
  6318. --- 16-bit code ---
  6319.  06h    WORD    client data selector (passed to event handler in DS)
  6320.  08h    WORD    client data offset (passed to event handler in SI)
  6321.  0Ah    WORD    reserved
  6322. --- 32-bit code ---
  6323.  06h    WORD    reserved
  6324.  08h    DWORD    client data offset (passed to event handler in ESI)
  6325. ------
  6326.  0Ch    WORD    expected Card Services version (0210h for v2.10)
  6327.  
  6328. Bitfields for Card Services client event codes:
  6329. Bit(s)    Description    (Table 0638)
  6330.  0    change in write-protect status
  6331.  1    change in card lock
  6332.  2    ejection request
  6333.  3    insertion request
  6334.  4    battery is dead
  6335.  5    battery low
  6336.  6    change in Ready
  6337.  7    change in Card Detect
  6338.  8    power management change
  6339.  9    reset
  6340.  10    Socket Services updated
  6341.  11    extended status change
  6342. SeeAlso: #0637
  6343.  
  6344. Format of Card Services ReleaseIRQ record:
  6345. Offset    Size    Description    (Table 0639)
  6346.  00h    WORD    logical socket number
  6347.  02h    WORD    attributes (see #0632)
  6348.  04h    BYTE    assigned IRQ number to be released
  6349.  
  6350. Format of Card Services Release Configuration record:
  6351. Offset    Size    Description    (Table 0640)
  6352.  00h    WORD    logical socket number
  6353.  
  6354. Format of Card Services Request I/O record:
  6355. Offset    Size    Description    (Table 0641)
  6356.  00h    WORD    logical socket number
  6357.  02h    WORD    base port 1
  6358.  04h    BYTE    size of port range 1
  6359.  05h    BYTE    attributes for port range 1 (see #0633)
  6360.  06h    WORD    base port 2
  6361.  08h    BYTE    size of port range 2
  6362.  09h    BYTE    attributes for port range 2 (see #0633)
  6363.  0Ah    BYTE    number of address lines (typically 16)
  6364. SeeAlso: #0642,#0640
  6365.  
  6366. Format of Card Services Request IRQ record:
  6367. Offset    Size    Description    (Table 0642)
  6368.  00h    WORD    logical socket number
  6369.  02h    WORD    attributes (see #0632)
  6370.  04h    BYTE    (ret) assigned IRQ number, if successful
  6371.  05h    BYTE    IRQ info (see #0643)
  6372.  06h    WORD    bitmap of available IRQs (bit 0 = IRQ0, etc.)
  6373.         (only if bit 4 of IRQ info set)
  6374. SeeAlso: #0641,#0640
  6375.  
  6376. Bitfields for Card Services Request IRQ info flags:
  6377. Bit(s)    Description    (Table 0643)
  6378.  7    IRQ is shared
  6379.  6    pulse (edge-triggered) interrupt
  6380.  5    level interrupt
  6381.  4    use IRQ bitmap
  6382. --- bit 4 set ---
  6383.  3    vendor-specific interrupt
  6384.  2    bus error
  6385.  1    I/O check interrupt
  6386.  0    NMI
  6387. --- bit 4 clear ---
  6388.  3-0    IRQ number
  6389. SeeAlso: #0642
  6390.  
  6391. Format of Card Services Request Window record:
  6392. Offset    Size    Description    (Table 0644)
  6393.  00h    WORD    logical socket number
  6394.  02h    WORD    attributes (see #0645)
  6395.  04h    DWORD    system base adress
  6396.  08h    DWORD    size of memory window
  6397.  0Ch    BYTE    additional info
  6398.         if attributes bit ??? is set, this is the address-lines field
  6399.         otherwise, this is the access-speed field (see #0646)
  6400.  
  6401. Bitfields for Card Services Request Window attributes:
  6402. Bit(s)    Description    (Table 0645)
  6403.  0    I/O window instead of memory window
  6404.  1    attribute memory instead of normal memory (16-bit PC Cards only)
  6405.  2    window enabled
  6406.  3    16-bit data path instead of 8-bit path (16-bit PC Cards only, v2.10+)
  6407.     (ignored if bit 9 set)
  6408.  4    size is given in 16K pages (invalid for CardBus PC Cards)
  6409.  5    shared (invalid for CardBus)
  6410.  6    first shared (invalid for CardBus)
  6411.  7    "CS_BindingSpecific" (memory window only)
  6412.  8    card offsets are window-size granular (16-bit PC Card memory window)
  6413.  9    32-bit data path (CardBus only)
  6414.  10    reserved (0)
  6415.  12-11    prefetch/cache
  6416.     00 neither prefetchable nor cacheable
  6417.     01 prefetchable but not cacheable
  6418.     10 prefetchable and cachable
  6419.     11 reserved
  6420.  15-13    decoded base address register number (CardBus only)
  6421. SeeAlso: #0644,#0646
  6422.  
  6423. Bitfields for Card Services Request Window access-speed:
  6424. Bit(s)    Description    (Table 0646)
  6425.  6-3    mantissa
  6426.     0000 use device speed code
  6427.     0001  1.0
  6428.     0010  1.2
  6429.     0011  1.2 ???
  6430.     0100  1.5
  6431.     0101  2.0
  6432.     0110  2.5
  6433.     0111  3.0
  6434.     1000  3.5
  6435.     1001  4.0
  6436.     1010  4.5
  6437.     1011  5.0
  6438.     1100  5.5
  6439.     1101  6.0
  6440.     1110  7.0
  6441.     1111  8.0
  6442. --- if mantissa==0 ---
  6443.  2-0    device speed code
  6444.     000 reserved
  6445.     001 250 ns
  6446.     010 200 ns
  6447.     011 150 ns
  6448.     100 100 ns
  6449.     101-111 reserved
  6450. --- if mantissa<>0 ---
  6451.  2-0    speed exponent
  6452.     000    1 ns
  6453.     001    10 ns
  6454.     010   100 ns
  6455.     011    1 us
  6456.     100    10 us
  6457.     101   100 us
  6458.     110    1 ms
  6459.     111    10 ms
  6460. SeeAlso: #0644,#0645
  6461.  
  6462. Format of Card Services Request/Release Exclusive Access record:
  6463. Offset    Size    Description    (Table 0647)
  6464.  00h    WORD    logical socket number
  6465.  02h    WORD    attributes (currently all reserved, must be 0000h)
  6466.  
  6467. Format of Card Services Request Configuration record:
  6468. Offset    Size    Description    (Table 0648)
  6469.  00h    WORD    socket (usually 0000h)
  6470.  02h    WORD    attributes (see #0629)
  6471.  04h    BYTE    Vcc value
  6472.  05h    BYTE    Vpp1 value
  6473.  06h    BYTE    Vpp2 value
  6474.  07h    BYTE    interface type (see #0630)
  6475.  08h    DWORD    base address of configuration registers
  6476.  0Ch    BYTE    card's Status register setting (if present)
  6477.  0Dh    BYTE    card's Pin register setting (if present)
  6478.  0Eh    BYTE    card's Socket/Copy register setting (if present)
  6479.  0Fh    BYTE    card's Option register setting (if present)
  6480.  10h    BYTE    bitmap of present card configuration registers
  6481.  11h    BYTE    extended status register setting (if present)
  6482. SeeAlso: #0628
  6483. --------!---Section--------------------------
  6484.