home *** CD-ROM | disk | FTP | other *** search
/ Power CD-ROM!! 7 / POWERCD7.ISO / prgmming / inter43 / interrup.c < prev    next >
Text File  |  1994-11-06  |  332KB  |  9,325 lines

  1. Interrupt List, part 3 of 12
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994 Ralf Brown
  3. --------B-1580-------------------------------
  4. INT 15 C - OS HOOK - DEVICE OPEN (AT,XT286,PS)
  5.     AH = 80h
  6.     BX = device ID
  7.     CX = process ID
  8.     CF clear
  9. Return: CF clear if successful
  10.         AH = 00h
  11.     CF set on error
  12.         AH = status (see #0346)
  13. Note:    this function should be hooked by a multitasker which wishes to keep
  14.       track of device ownership; the default BIOS handler merely returns
  15.       successfully
  16. SeeAlso: AH=81h,AH=82h
  17.  
  18. (Table 0346)
  19. Values for status:
  20.  80h    invalid command (PC,PCjr)
  21.  86h    function not supported (XT)
  22. --------b-1580------------------------------------
  23. INT 15 - HUNTER 16 - GET/SET BATTERY CAPACITY (APM)
  24.     AH = 80h
  25.     AL = function
  26.         00h get
  27.         Return: AL = capacity (500mA + AL * 50mA, max 40 = 2500mA)
  28.         else set
  29.         BL = battery capacity (same as AL above)
  30. SeeAlso: AH=61h"HUNTER",AH=81h"HUNTER"
  31. --------B-1581-------------------------------
  32. INT 15 C - OS HOOK - DEVICE CLOSE
  33.     AH = 81h
  34.     BX = device ID
  35.     CX = process ID
  36.     CF clear
  37. Return: CF clear if successful
  38.         AH = 00h
  39.     CF set on error
  40.         AH = status (see #0346)
  41. Note:    this function should be hooked by a multitasker which wishes to keep
  42.       track of device ownership; the default BIOS handler merely returns
  43.       successfully
  44. SeeAlso: AH=80h,AH=82h
  45. --------b-1581------------------------------------
  46. INT 15 - HUNTER 16 - CONTROL POWER OUTPUT
  47.     AH = 81h
  48.     AL = new state of power output (00h off, nonzero on)
  49. Desc:    turn the +5V low power output on or off
  50. SeeAlso: AH=80h"HUNTER"
  51. --------B-1582-------------------------------
  52. INT 15 C - OS HOOK - PROGRAM TERMINATION
  53.     AH = 82h
  54.     BX = process ID
  55.     CF clear
  56. Return: CF clear if successful
  57.         AH = 00h
  58.     CF set on error
  59.         AH = status (see #0346)
  60. Notes:    closes all devices opened by the given process ID with function 80h
  61.     this function should be hooked by a multitasker which wishes to keep
  62.       track of device ownership; the default BIOS handler merely returns
  63.       successfully
  64. SeeAlso: AH=80h,AH=81h
  65. --------b-1582------------------------------------
  66. INT 15 - HUNTER 16 - SOUND OUTPUT
  67.     AH = 82h
  68.     DX = length (duration in seconds = DX * 666670 / frequency)
  69.     BX = pitch (see #0347)
  70. Desc:    Sound the tone specified in BX for the duration in DX
  71. SeeAlso: AX=1019h
  72.  
  73. (Table 0347)
  74. Values for HUNTER 16 sound pitch:
  75. BX(dec)     Note    Frequency    BX(dec)     Note    Frequency
  76.   425    G    1568.000     1515    A     440.000
  77.   451    F#    1479.503     1605    G#     415.307
  78.   477    F    1396.900     1701    G     392.000
  79.   506    E    1318.500     1802    F#     369.998
  80.   536    D#    1244.523     1909    F     349.230
  81.   568    D    1174.700     2022    E     329.630
  82.   601    C#    1108.749     2143    D#     311.127
  83.   637    C    1046.500     2270    D     293.660
  84.   675    B     958.770     2405    C#     277.183
  85.   715    A#     932.329     2548    MID C     261.630
  86.   758    A     880.000     2700    B     246.940
  87.   803    G#     830.609     2860    A#     233.081
  88.   850    G     783.990     3030    A     220.000
  89.   901    F#     739.990     3210    G#     207.654
  90.   954    F     698.460     3401    G     196.000
  91.  1011    E     659.260     3604    F#     184.996
  92.  1071    D#     622.257     3818    F     174.610
  93.  1135    D     587.330     4045    E     164.810
  94.  1203    C#     554.365     4286    D#     155.560
  95.  1274    C     523.250     4540    D     146.830
  96.  1350    B     493.880     4668    C#     142.827
  97.  1430    A#     466.162     4803    C     138.810
  98. --------B-1583-------------------------------
  99. INT 15 - BIOS - SET EVENT WAIT INTERVAL (AT,PS50+)
  100.     AH = 83h
  101.     AL = subfunction
  102.         00h set interval
  103.         CX:DX = microseconds to delay
  104.         ES:BX -> byte whose high bit is to be set at end of interval
  105.         01h cancel wait interval
  106. Return: CF set on error or function already busy
  107.         AH = status
  108.         80h invalid command (PC,PCjr)
  109.         86h function not supported (XT and later)
  110.     CF clear if successful
  111. Notes:    the resolution of the wait period is 977 microseconds on most systems
  112.       because most BIOSes use the 1/1024 second fast interrupt from the AT
  113.       real-time clock chip which is available on INT 70
  114.     IBM AT 1/10/84 BIOS ignores AL and always performs subfunction 00h
  115. SeeAlso: AH=41h,AH=86h,INT 70
  116. --------b-1583------------------------------------
  117. INT 15 - HUNTER 16 - CONTROL SCREEN SYNCHRONISATION
  118.     AH = 83h
  119.     AL = state of LCD window (00h disabled, nonzero enabled)
  120. Desc:    Enable/disable the facility where the displayed window tracks the
  121.       cursor output to keep the focus visible
  122. --------B-1584-------------------------------
  123. INT 15 - BIOS - JOYSTICK SUPPORT (XT after 11/8/82,AT,XT286,PS)
  124.     AH = 84h
  125.     DX = subfunction
  126.         0000h read joystick switches
  127.         Return: AL bits 7-4 = switch settings
  128.         0001h read positions of joysticks
  129.         Return: AX = X position of joystick A
  130.             BX = Y position of joystick A
  131.             CX = X position of joystick B
  132.             DX = Y position of joystick B
  133. Return: CF set on error
  134.         AH = status (see #0346)
  135.     CF clear if successful
  136. Notes:    if no game port is installed, subfunction 0000h returns AL=00h (all
  137.       switches open) and subfunction 0001h returns AX=BX=CX=DX=0000h
  138.     a 250kOhm joystick typically returns 0000h-01A0h
  139. --------b-158400----------------------------------
  140. INT 15 - HUNTER 16 - GET DISKETTE PORT
  141.     AX = 8400h
  142.     BH = Drive (0: A:, 1: B:)
  143. Return: AL = Port (0: COM1, >0: COM2)
  144. Desc:    return the COM port used for the floppy drive
  145. SeeAlso: AX=8401h
  146. --------b-158401----------------------------------
  147. INT 15 - HUNTER 16 - SET DISKETTE PORT
  148.     AX = 8401h
  149.     BH = Drive (0: A:, 1: B:)
  150.     BL = Port (0: COM1, >0: COM2)
  151. Desc:    set the COM port used for the floppy drive
  152. SeeAlso: AX=8400h
  153. --------B-1585-------------------------------
  154. INT 15 C - OS HOOK - SysReq KEY ACTIVITY (AT,PS)
  155.     AH = 85h
  156.     AL = SysReq key action (00h pressed, 01h released)
  157.     CF clear
  158. Return: CF clear if successful
  159.         AH = 00h
  160.     CF set on error
  161.         AH = status (see #0346)
  162. Notes:    called by keyboard decode routine
  163.     the default handler simply returns successfully; programs which wish
  164.       to monitor the SysReq key must hook this call
  165.     the SysReq key is often labeled SysRq
  166. SeeAlso: INT 09
  167. --------b-158500----------------------------------
  168. INT 15 - HUNTER 16 - RESTORE POWER MENU (APM)
  169.     AX = 8500h
  170. Desc:    restore the standard power menu
  171. SeeAlso: AX=8501h"HUNTER"
  172. --------b-158501----------------------------------
  173. INT 15 - HUNTER 16 - SET POWER MENU (APM)
  174.     AX = 8501h
  175.     BL = user software interrupt number
  176. Desc:    install an alternate power menu routine
  177. SeeAlso: AX=8500h"HUNTER"
  178. --------B-1586-------------------------------
  179. INT 15 - BIOS - WAIT (AT,PS)
  180.     AH = 86h
  181.     CX:DX = interval in microseconds
  182. Return: CF clear if successful (wait interval elapsed)
  183.     CF set on error or AH=83h wait already in progress
  184.         AH = status (see #0346)
  185. Note:    the resolution of the wait period is 977 microseconds on most systems
  186.       because most BIOSes use the 1/1024 second fast interrupt from the AT
  187.       real-time clock chip which is available on INT 70
  188. SeeAlso: AH=41h,AH=83h,INT 1A/AX=FF01h,INT 70
  189. --------b-1586------------------------------------
  190. INT 15 - HUNTER 16 - GET/SET SCREEN ATTRIBUTE TABLE
  191.     AH = 86h
  192.     AL = function (00h get, nonzero set)
  193.     BX = 1234h
  194.     DS:SI -> 256-byte Attribute buffer
  195. Note:    In text modes each character has its attribute byte XOR'd with the
  196.       corresponding byte in the attribute table.  If the attribute is 15,
  197.       15 is XOR'd with Table[15]
  198. --------B-1587-------------------------------
  199. INT 15 - SYSTEM - COPY EXTENDED MEMORY
  200.     AH = 87h
  201.     CX = number of words to copy (max 8000h)
  202.     ES:SI -> global descriptor table (see #0349)
  203. Return: CF set on error
  204.     CF clear if successful
  205.     AH = status (see #0348)
  206. Notes:    copy is done in protected mode with interrupts disabled by the default
  207.       BIOS handler; many 386 memory managers perform the copy with
  208.       interrupts enabled
  209.     this function is incompatible with the OS/2 compatibility box
  210. SeeAlso: AH=88h,AH=89h,INT 1F/AH=90h
  211.  
  212. (Table 0348)
  213. Values for extended-memory copy status:
  214.  00h    source copied into destination
  215.  01h    parity error
  216.  02h    interrupt error
  217.  03h    address line 20 gating failed
  218.  80h    invalid command (PC,PCjr)
  219.  86h    unsupported function (XT,PS30)
  220.  
  221. Format of global descriptor table:
  222. Offset    Size    Description    (Table 0349)
  223.  00h 16 BYTEs    zeros (used by BIOS)
  224.  10h    WORD    source segment length in bytes (2*CX-1 or greater)
  225.  12h  3 BYTEs    24-bit linear source address, low byte first
  226.  15h    BYTE    source segment access rights (93h)
  227.  16h    WORD    zero
  228.  18h    WORD    destination segment length in bytes (2*CX-1 or greater)
  229.  1Ah  3 BYTEs    24-bit linear destination address, low byte first
  230.  1Dh    BYTE    destination segment access rights (93h)
  231.  1Eh 18 BYTEs    zeros (used by BIOS)
  232. --------b-1587------------------------------------
  233. INT 15 - HUNTER 16 - SET INT 72h VECTOR
  234.     AH = 87h
  235.     DS:DX = new service routine
  236. Desc:    set the INT 72h vector which is called in 2 cases:
  237.       - when the machine is about to turn off or reboot, INT 72h is called
  238.         with AH=0
  239.       - when the machine is powering up INT 72h is called with AH=01h
  240. Note:    the actual INT 72h vector must also be changed with INT 21/AH=25h
  241. --------B-1588-------------------------------
  242. INT 15 - SYSTEM - GET EXTENDED MEMORY SIZE (286+)
  243.     AH = 88h
  244. Return: CF clear if successful
  245.         AX = number of contiguous KB starting at absolute address 100000h
  246.     CF set on error
  247.         AH = status
  248.         80h invalid command (PC,PCjr)
  249.         86h unsupported function (XT,PS30)
  250. Notes:    TSRs which wish to allocate extended memory to themselves often hook
  251.       this call, and return a reduced memory size.    They are then free to
  252.       use the memory between the new and old sizes at will.
  253.     the standard BIOS only returns memory between 1MB and 16MB; use AH=C7h
  254.       for memory beyond 16MB
  255.     not all BIOSes correctly return the carry flag, making this call
  256.       unreliable unless one first checks whether it is supported through
  257.       a mechanism other than calling the function and testing CF
  258. SeeAlso: AH=87h,AH=C7h
  259. --------b-1588------------------------------------
  260. INT 15 - HUNTER 16 - GET POWER UP KEYS
  261.     AH = 88h
  262. Return: AH = 00h
  263.     BX = column
  264.     CL = row
  265. SeeAlso: AH=71h
  266. --------B-1589-------------------------------
  267. INT 15 - SYSTEM - SWITCH TO PROTECTED MODE
  268.     AH = 89h
  269.     BL = interrupt number of IRQ0 (IRQ1-7 use next 7 interrupts)
  270.     BH = interrupt number of IRQ8 (IRQ9-F use next 7 interrupts)
  271.     ES:SI -> GDT for protected mode
  272.            offset 0h  null descriptor (initialize to zeros)
  273.               8h  GDT descriptor
  274.              10h  IDT descriptor
  275.              18h  DS
  276.              20h  ES
  277.              28h  SS
  278.              30h  CS
  279.              38h  uninitialized, used to build descriptor for BIOS CS
  280. Return: CF set on error
  281.        AH = FFh  error enabling address line 20
  282.     CF clear if successful
  283.        AH = 00h
  284.        in protected mode at specified address
  285. Notes:    BL and BH must be multiples of 8
  286.     the protected-mode CS must reference the same memory as the CS this
  287.       function is called from because execution continues with the address
  288.       following the interrupt call
  289. SeeAlso: AH=87h,AH=88h,INT 67/AX=DE0Ch
  290. --------b-158900----------------------------------
  291. INT 15 - HUNTER 16 - GET POWER MODE
  292.     AX = 8900h
  293. Return: AH = 00h
  294.     BL = current power mode
  295.         00h Standard Power Mode (SPM)
  296.         01h Advanced Power Mode (APM)
  297. SeeAlso: AX=8901h
  298. --------b-158901----------------------------------
  299. INT 15 - HUNTER 16 - SET POWER MODE
  300.     AX = 8901h
  301.     BL = new mode
  302.         00h Standard Power Mode (SPM)
  303.         01h Advanced Power Mode (APM)
  304. Return: AH = 00h
  305. SeeAlso: AX=8900h
  306. --------b-158A------------------------------------
  307. INT 15 - HUNTER 16 - CONTROL POWER INPUT (SPM)
  308.     AH = 8Ah
  309.     AL = new state of Power Input (00h disabled, nonzero enabled)
  310.     SI = 1234h
  311.     DI = 5678h
  312. Return: AH = status
  313.         00h success
  314.         FFh failure
  315. Desc:    Enable or disable Power Input. When Power Input is disabled the AC
  316.       adaptor will neither charge the batteries nor supply power to the
  317.       Hunter 16. Disable Power Input if using Alkaline batteries.
  318. --------b-158B------------------------------------
  319. INT 15 - HUNTER 16 - GET/SET CHARGER TEMPERATURE OVERRIDE
  320.     AH = 8Bh
  321.     AL = function
  322.         00h get
  323.         Return:    BH = Maximum charging temperature
  324.                 Temp = -20 + (n * 0.63) degrees Centigrade
  325.             BL = Minimum charging temperature
  326.         else set
  327.         BH = maximum charging temperature (as above)
  328.         BL = minimum charging temperature (as above)
  329. Return: AH = status
  330.         00h success
  331.         FFh failure 
  332. Desc:    get/set the temperature interval within which the charger should 
  333.       operate
  334. --------b-158C------------------------------------
  335. INT 15 - HUNTER 16 - GET/SET POWER SAVE ENTRY FLAG
  336.     AH = 8Ch
  337.     AL = function
  338.         00h get
  339.         Return: BX = which operations disable power save (see #0350)
  340.         else set
  341.         BX = which operations should disable power save (see #0350)
  342. SeeAlso: AH=8Dh
  343.  
  344. Bitfields for HUNTER 16 operations disabling power save:
  345. Bit(s)    Description    (Table 0350)
  346.  0    INT 10h prevents power save
  347.  1    INT 13h prevents power save
  348.  2    INT 14h prevents power save
  349.  3    INT 15h prevents power save
  350.  4    INT 1Ah prevents power save
  351.  5    INT 21h prevents power save
  352.  6    direct write to video RAM prevents power save
  353.  7    access to 8250 UART prevents power save
  354.  8    access to 8253 (Sound) prevents power save
  355. --------b-158D------------------------------------
  356. INT 15 - HUNTER 16 - GET/SET BOOST CHARGE (SPM)
  357.     AH = 8Dh
  358.     AL = function
  359.         00h get
  360.         Return: AL = Fast Charge state (00h prevented, else allowed)
  361.         nonzero set
  362.         BH = Fast Charge state (00h prevent, nonzero allow)
  363. Return: AH = status
  364.         00h success
  365.         FFh failure
  366. Desc:    control whether Fast Charging (200ma rather than 70ma) is allowed
  367. SeeAlso: AH=8Ch
  368. --------B-1590-------------------------------
  369. INT 15 - OS HOOK - DEVICE BUSY (AT,PS)
  370.     AH = 90h
  371.     AL = device type (see #0351)
  372.     ES:BX -> request block for type codes 80h through BFh
  373.     CF clear
  374. Return: CF set if wait time satisfied
  375.     CF clear if driver must perform wait
  376.         AH = 00h
  377. Notes:    type codes are allocated as follows:
  378.       00-7F non-reentrant devices; OS must arbitrate access
  379.       80-BF reentrant devices; ES:BX points to a unique control block
  380.       C0-FF wait-only calls, no complementary INT 15/AH=91h call
  381.     floppy and hard disk BIOS code uses this call to implement a timeout;
  382.       for device types 00h and 01h, a return of CF set means that the
  383.       timeout expired before the disk responded.
  384.     this function should be hooked by a multitasker to allow other tasks
  385.       to execute while the BIOS is waiting for I/O completion; the default
  386.       handler merely returns with AH=00h and CF clear
  387. SeeAlso: AH=91h,INT 13/AH=00h,INT 17/AH=00h,INT 1A/AH=83h
  388.  
  389. (Table 0351)
  390. Values for device type:
  391.  00h    disk
  392.  01h    diskette
  393.  02h    keyboard
  394.  03h    PS/2 pointing device
  395.  21h    waiting for keyboard input (Phoenix BIOS)
  396.  80h    network
  397.  FBh    digital sound (Tandy)
  398.  FCh    disk reset (PS)
  399.  FDh    diskette motor start
  400.  FEh    printer
  401. --------B-1591-------------------------------
  402. INT 15 - OS HOOK - DEVICE POST (AT,PS)
  403.     AH = 91h
  404.     AL = device type (see #0351)
  405.     ES:BX -> request block for type codes 80h through BFh
  406.     CF clear
  407. Return: AH = 00h
  408. Note:    this function should be hooked by a multitasker to allow other tasks
  409.       to execute while the BIOS is waiting for I/O completion; the default
  410.       handler merely returns with AH=00h and CF clear
  411. SeeAlso: AH=90h
  412. ----------15A100-----------------------------
  413. INT 15 U - AMI PCI BIOS - SET ??? FLAG
  414.     AX = A100h
  415. Return: AX = 0000h
  416.     CF clear
  417. Desc:    sets bit 7 of CMOS RAM location 37h and updates the CMOS checksum in
  418.       locations 3Eh and 3Fh
  419. Note:    in the examined version of the BIOS, nonzero values in AL cause it to
  420.       drop through to checking the next possible value of AH, i.e. only
  421.       subfunction 00h is supported
  422. --------b-15BC-------------------------------
  423. INT 15 - Phoenix 386 BIOS - DETERMINE CPU SPEED FOR DELAY LOOPS
  424.     AH = BCh
  425. Return: CF clear
  426.     (Phoenix 1.10 10a) BYTE 0040h:00B0h set to delay loop count
  427.     (Dell 4xxDE BIOS A11) WORD 0040h:00ECh set to delay loop count
  428. Note:    this function reads system timer channel 0 twice, then does
  429.       calculations on the returned values to determine the delay loop
  430.       counter needed by the BIOS for beeps and floppy timeouts
  431. SeeAlso: AX=2305h
  432. --------E-15BF00-----------------------------
  433. INT 15 - Rational Systems DOS/16M - ???
  434.     AX = BF00h
  435.     ???
  436. Return: ???
  437. Note:    under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h
  438. SeeAlso: AX=BF02h
  439. --------E-15BF01-----------------------------
  440. INT 15 - Rational Systems DOS/16M - ???
  441.     AX = BF01h
  442.     ???
  443. Return: ???
  444. Notes:    under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h
  445.     called by DOS/4GW
  446. SeeAlso: AX=BF00h,AX=BF02h
  447. --------E-15BF02DX0000-----------------------
  448. INT 15 - Rational Systems DOS/16M - INSTALLATION CHECK
  449.     AX = BF02h
  450.     DX = 0000h
  451. Return: DX = nonzero if installed
  452.         DX:SI -> XBRK structure (see #0352)
  453. Note:    this function is also supported by DOS/4G
  454. SeeAlso: AX=BF01h,AX=BFDCh,AX=BFDEh/BX=0000h
  455. SeeAlso: INT 21/AH=FFh/DH=0Eh,INT 2F/AH=A1h,INT 2F/AX=F100h,INT 2F/AX=FBA1h
  456.  
  457. Format of DOS/16M XBRK structure:
  458. Offset    Size    Description    (Table 0352)
  459.  00h    DWORD    linear address of first available byte
  460.  04h    DWORD    linear address of last available byte + 1 ???
  461.  08h    DWORD    real-mode address of XBRK structure???
  462.  0Ch    DWORD    ???
  463.  10h  2 BYTEs    ???
  464.  12h    WORD    segment of ???
  465.  14h  8 BYTEs    ???
  466.  1Ch 512 BYTEs    protected-mode IDT
  467. 21Ch  N BYTEs    protected-mode GDT
  468. --------E-15BF03-----------------------------
  469. INT 15 - Rational Systems DOS/4GW - UNINSTALL???
  470.     AX = BF03h
  471.     BX = PSP segment of extender
  472.     ???
  473. Return: ???
  474. Note:    if BX is not the PSP segment of the extender, it passes the call down
  475.       the INT 15 chain; this allows nested instances of the extender
  476. SeeAlso: AX=BF06h
  477. --------E-15BF04-----------------------------
  478. INT 15 - Rational Systems DOS/4GW - ???
  479.     AX = BF04h
  480.     BX = PSP segment of extender
  481. Return: nothing???
  482. Notes:    if BX is not the PSP segment of the extender, it passes the call down
  483.       the INT 15 chain; this allows nested instances of the extender
  484.     grabs INT 2Fh and installs handlers for INT 2F/AX=1605h-1607h
  485. SeeAlso: INT 2F/AX=1607h/BX=22C0h
  486. --------E-15BF05-----------------------------
  487. INT 15 - Rational Systems DOS/4GW - INITIALIZE PROTECTED-MODE INTERFACE
  488.     AX = BF05h
  489.     BX = PSP segment of extender
  490. Return: nothing???
  491. Notes:    if BX is not the PSP segment of the extender, it passes the call down
  492.       the INT 15 chain; this allows nested instances of the extender
  493.     calls INT 67/AX=DE01h if ???
  494. --------E-15BF06-----------------------------
  495. INT 15 - Rational Systems DOS/4GW - ???
  496.     AX = BF06h
  497.     BX = PSP segment of extender
  498.     ???
  499. Return: ???
  500. Note:    if BX is not the PSP segment of the extender, it passes the call down
  501.       the INT 15 chain; this allows nested instances of the extender
  502. SeeAlso: AX=BF03h
  503. --------E-15BFDCDX0000-----------------------
  504. INT 15 - Rational Systems DOS/4GW - INSTALLATION CHECK
  505.     AX = BFDCh
  506.     DX = 0000h
  507.     SI = 0000h
  508. Return: DX = nonzero if installed
  509.         DX:SI -> XBRK structure (see #0352)
  510. SeeAlso: AX=BF02h
  511. --------E-15BFDEBX0000-----------------------
  512. INT 15 - DESQview/X - DVDOS4GX.DVR - INSTALLATION CHECK
  513.     AX = BFDEh
  514.     BX = 0000h
  515. Return: AX = ??? (0003h)
  516.     BX = FFFFh
  517. SeeAlso: AX=BF02h
  518. --------E-15BFDEBX0001-----------------------
  519. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROCESS MANAGER NAME
  520.     AX = BFDEh
  521.     BX = 0001h
  522. Return: BX = 0000h (success)
  523.     CX:DX -> name of process manager executable
  524. SeeAlso: AX=BFDEh/BX=0000h
  525. --------E-15BFDEBX0002-----------------------
  526. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
  527.     AX = BFDEh
  528.     BX = 0002h
  529.     CX:DX -> ???
  530. Return: BX = 0000h (success)
  531. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0003h
  532. --------E-15BFDEBX0003-----------------------
  533. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  534.     AX = BFDEh
  535.     BX = 0003h
  536. Return: BX = 0000h (success)
  537.     CX:DX -> ???
  538. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0002h
  539. --------E-15BFDEBX0004-----------------------
  540. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  541.     AX = BFDEh
  542.     BX = 0004h
  543.     CL = ???
  544. Return: BX = 0000h (success)
  545.     CX:DX -> XBRK structure (see #0352)
  546. SeeAlso: AX=BFDEh/BX=0000h
  547. --------E-15BFDEBX0005-----------------------
  548. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  549.     AX = BFDEh
  550.     BX = 0005h
  551.     CX = new value for ???
  552. Return: BX = 0000h (success)
  553.     AX = old value of ???
  554.     DS:SI -> ??? (if AX nonzero on return)
  555.     ES:DI -> ??? (if AX zero on return)
  556. Note:    called by DOS4GW.EXE
  557. SeeAlso: AX=BFDEh/BX=0000h
  558. --------E-15BFDEBX0006-----------------------
  559. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  560.     AX = BFDEh
  561.     BX = 0006h
  562. Return: BX = 0000h (success)
  563.     AH = interrupt number??? (BEh)
  564.     CX:DX = ???
  565. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0007h,INT BE"DESQview"
  566. --------E-15BFDEBX0007-----------------------
  567. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
  568.     AX = BFDEh
  569.     BX = 0007h
  570.     CX:DX = ???
  571. Return: BX = 0000h (success)
  572. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0006h
  573. --------E-15BFDEBX0008-----------------------
  574. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  575.     AX = BFDEh
  576.     BX = 0008h
  577.     CX = segment of ???
  578.     DS = ???
  579. Return: BX = status
  580.         0000h successful
  581.         AL = ??? (80h or C0h)
  582.         DX = ??? (0603h) if AL=C0h
  583.         0001h failed
  584.         AX = 0000h
  585. Note:    called by DOS4GW.EXE
  586. SeeAlso: AX=BFDEh/BX=0000h
  587. --------E-15BFDEBX0009-----------------------
  588. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROTECTED MODE PROGRAM LOADER
  589.     AX = BFDEh
  590.     BX = 0009h
  591. Return: BX = 0000h (success)
  592.     CX:DX -> full pathname to LOAD32.EXP
  593. SeeAlso: AX=BFDEh/BX=0000h
  594. --------E-15BFDEBX000A-----------------------
  595. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - DECREMENT ???
  596.     AX = BFDEh
  597.     BX = 000Ah
  598. Return: BX = 0000h (success)
  599.     AX = new value of ??? counter
  600. Notes:    also resets a variety of values if the counter goes negative
  601.     called by DOS4GW.EXE
  602. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Bh
  603. --------E-15BFDEBX000B-----------------------
  604. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - INCREMENT ???
  605.     AX = BFDEh
  606.     BX = 000Bh
  607. Return: AX = new value of ??? counter
  608. Note:    called by DOS4GW.EXE
  609. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Ah
  610. --------E-15BFDEBX000C-----------------------
  611. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  612.     AX = BFDEh
  613.     BX = 000Ch
  614.     CL = ???
  615.         00h
  616.         nonzero
  617. Return: ???
  618. SeeAlso: AX=BFDEh/BX=0000h
  619. --------E-15BFDEBX000D-----------------------
  620. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  621.     AX = BFDEh
  622.     BX = 000Dh
  623.     ???
  624. Return: ???
  625. SeeAlso: AX=BFDEh/BX=0000h
  626. --------E-15BFDEBX000E-----------------------
  627. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  628.     AX = BFDEh
  629.     BX = 000Eh
  630.     DX:CX -> ???
  631. Return: AX = segment of handle for calling task
  632.     BX = ??? (probably destroyed)
  633.     DX:CX -> ???
  634. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Fh,AX=BFDEh/BX=0013h
  635. --------E-15BFDEBX000F-----------------------
  636. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  637.     AX = BFDEh
  638.     BX = 000Fh
  639. Return: AX = segment of handle for calling task
  640.     BX = ??? (probably destroyed)
  641.     DX:CX -> ???
  642. Note:    identical to AX=BFDEh/BX=000Eh with CX:DX = 0000h:0000h
  643. SeeAlso: AX=BFDEh/BX=000Eh,AX=BFDEh/BX=0010h
  644. --------E-15BFDEBX0010-----------------------
  645. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET TASK HANDLE
  646.     AX = BFDEh
  647.     BX = 0010h
  648. Return: AX = segment of caller's task handle
  649.     BX destroyed
  650. SeeAlso: AX=BFDEh/BX=000Fh
  651. --------E-15BFDEBX0011-----------------------
  652. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  653.     AX = BFDEh
  654.     BX = 0011h
  655. Return: CX = code segment of DVDOS4GX.DVR
  656.     BX = ??? (0004h)
  657. SeeAlso: AX=BFDEh/BX=0000h
  658. --------E-15BFDEBX0012-----------------------
  659. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  660.     AX = BFDEh
  661.     BX = 0012h
  662. Return: DX = code segment of DVDOS4GX.DVR
  663.     BX = ??? (012Ch)
  664.     CX = ??? (0006h)
  665. SeeAlso: AX=BFDEh/BX=0000h
  666. --------E-15BFDEBX0013-----------------------
  667. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  668.     AX = BFDEh
  669.     BX = 0013h
  670. Return: DX:CX -> ???
  671. SeeAlso: AX=BFDEh/BX=000Eh
  672. --------E-15BFDEBX0014-----------------------
  673. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - LOCK ??? MAILBOX
  674.     AX = BFDEh
  675.     BX = 0014h
  676.     CX = index of ??? mailbox
  677.         (0000h-0004h valid, but no range checking done)
  678. Return: AX,BX destroyed
  679. SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0017h
  680. --------E-15BFDEBX0015-----------------------
  681. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - UNLOCK ??? MAILBOX
  682.     AX = BFDEh
  683.     BX = 0015h
  684.     CX = index of ??? mailbox
  685.         (0000h-0004h valid, but no range checking done)
  686. Return: AX,BX destroyed
  687. SeeAlso: AX=BFDEh/BX=0014h,AX=BFDEh/BX=0016h
  688. --------E-15BFDEBX0016-----------------------
  689. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - CHECK IF ??? MAILBOX OWNED
  690.     AX = BFDEh
  691.     BX = 0016h
  692.     CX = index of ??? mailbox
  693.         (0000h-0004h valid, but no range checking done)
  694. Return: AX = status
  695.         0000h no one owns mailbox
  696.         0001h mailbox has an owner
  697.     BX destroyed
  698. SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0017h
  699. --------E-15BFDEBX0017-----------------------
  700. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ??? MAILBOX OWNER
  701.     AX = BFDEh
  702.     BX = 0017h
  703.     CX = index of ??? mailbox
  704.         (0000h-0004h valid, but no range checking done)
  705. Return: AX = segment of mailbox owner's handle
  706.     BX = segment of caller's task handle
  707. SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0016h
  708. --------E-15BFDEBXFFFD-----------------------
  709. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  710.     AX = BFDEh
  711.     BX = FFFDh
  712. Return: CX:DX = ???
  713. SeeAlso: AX=BFDEh/BX=FFFEh
  714. --------E-15BFDEBXFFFE-----------------------
  715. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
  716.     AX = BFDEh
  717.     BX = FFFEh
  718.     CX:DX = ???
  719. SeeAlso: AX=BFDEh/BX=FFFDh
  720. --------E-15BFDEBXFFFF-----------------------
  721. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - NOP
  722.     AX = BFDEh
  723.     BX = FFFFh
  724. SeeAlso: AX=BFDEh/BX=0000h
  725. --------B-15C0-------------------------------
  726. INT 15 - SYSTEM - GET CONFIGURATION (XT after 1/10/86,AT mdl 3x9,CONV,XT286,PS)
  727.     AH = C0h
  728. Return: CF set if BIOS doesn't support call
  729.     CF clear on success
  730.         ES:BX -> ROM table (see #0353)
  731.     AH = status
  732.         00h successful
  733.         86h unsupported function
  734. Notes:    the 1/10/86 XT BIOS returns an incorrect value for the feature byte
  735.     the configuration table is at F000h:E6F5h in 100% compatible BIOSes
  736.     Dell machines contain the signature "DELL" or "Dell" at absolute FE076h
  737.       and a model byte at absolute address FE845h (see #0359)
  738.     Hewlett-Packard machines contain the signature "HP" at F000h:00F8h and
  739.       a product identifier at F000h:00FAh (see #0361)
  740.     Compaq machines can be identified by the signature string "COMPAQ" at
  741.       F000h:FFEAh, and is preceded by additional information (see #0360)
  742.     Tandy 1000 machines contain 21h in the byte at F000h:C000h and FFh in
  743.       the byte at FFFFh:000Eh; Tandy 1000SL/TL machines only provide the
  744.       first three data bytes (model/submodel/revision) in the returned
  745.       table
  746.     Toshiba laptops contain the signature "TOSHIBA" at FE010h as part of
  747.       a laptop information record at F000h:E000h (see #0362)
  748.     some AST machines contain the string "COPYRIGHT AST RESEARCH" one byte
  749.       past the end of the configuration table
  750.     the Phoenix 386 BIOS contains a second version and date string
  751.       (presumably the last modification for that OEM version) beginning at
  752.       F000h:FFD8h, with each byte doubled (so that both ROM chips contain
  753.       the complete information)
  754. SeeAlso: AH=C7h,AH=C9h,AH=D1h
  755.  
  756. Format of ROM configuration table:
  757. Offset    Size    Description    (Table 0353)
  758.  00h    WORD    number of bytes following
  759.  02h    BYTE    model (see #0358)
  760.  03h    BYTE    submodel (see #0358)
  761.  04h    BYTE    BIOS revision: 0 for first release, 1 for 2nd, etc.
  762.  05h    BYTE    feature byte 1 (see #0354)
  763.  06h    BYTE    feature byte 2 (see #0355)
  764.  07h    BYTE    feature byte 3 (see #0356)
  765.  08h    BYTE    feature byte 4 (see #0357)
  766.  09h    BYTE    feature byte 5:
  767.         reserved (0) (IBM)
  768.         ??? (08h) (Phoenix 386 v1.10)
  769. ---AWARD BIOS---
  770.  0Ah  N BYTEs    AWARD copyright notice
  771. ---Phoenix BIOS---
  772.  0Ah    BYTE    ??? (00h)
  773.  0Bh    BYTE    major version
  774.  0Ch    BYTE    minor version (BCD)
  775.  0Dh  4 BYTEs    ASCIZ string "PTL" (Phoenix Technologies Ltd)
  776. ---Quadram Quad386---
  777.  0Ah 17 BYTEs    ASCII signature string "Quadram Quad386XT"
  778.  
  779. Bitfields for feature byte 1:
  780. Bit(s)    Description    (Table 0354)
  781.  7    DMA channel 3 used by hard disk BIOS
  782.  6    2nd 8259 installed
  783.  5    Real-Time Clock installed
  784.  4    INT 15/AH=4Fh called upon INT 09h
  785.  3    wait for external event (INT 15/AH=41h) supported
  786.  2    extended BIOS area allocated (usually at top of RAM)
  787.  1    bus is Micro Channel instead of ISA
  788.  0    system has dual bus (Micro Channel + ISA)
  789.  
  790. Bitfields for feature byte 2:
  791. Bit(s)    Description    (Table 0355)
  792.  7    reserved
  793.  6    INT 16/AH=09h (keyboard functionality) supported
  794.  5    INT 15/AH=C6h (get POS data) supported
  795.  4    INT 15/AH=C7h (return memory map info) supported
  796.  3    INT 15/AH=C8h (en/disable CPU functions) supported
  797.  2    non-8042 keyboard controller
  798.  1    data streaming supported
  799.  0    reserved
  800.  
  801. Bitfields for feature byte 3:
  802. Bit(s)    Description    (Table 0356)
  803.  7-5    reserved
  804.  4    ??? (set on 1992 PS/1's, N51SX, CL57SX, 35SX?, 40SX?)
  805.  3    SCSI subsystem supported on system board
  806.  2    information panel installed
  807.  1    IML (Initial Machine Load) system
  808.  0    SCSI supported in IML
  809.  
  810. Bitfields for feature byte 4:
  811. Bit(s)    Description    (Table 0357)
  812.  7    ??? (set on N51SX, CL57SX)
  813.  6-4    reserved
  814.  3    ??? (set on some 1992 PS/1's, 35SX, 40SX)
  815.  2-1    reserved
  816.  0    ??? (set on N51SX, CL57SX, 57SX)
  817.  
  818. (Table 0358)
  819. Values for model/submodel/revision:
  820. Model  Submdl  Rev    BIOS date    System
  821.  FFh    *    *    04/24/81    PC (original)
  822.  FFh    *    *    10/19/81    PC (some bugfixes)
  823.  FFh    *    *    10/27/82    PC (HD, 640K, EGA support)
  824.  FFh    00h    rev      ???        Tandy 1000SL
  825.  FFh    01h    rev      ???        Tandy 1000TL
  826.  FFh    46h    ***      ???        Olivetti M15
  827.  FEh    *    *    08/16/82    PC XT
  828.  FEh    *    *    11/08/82    PC XT and Portable
  829.  FEh    *    *    ../..x..    Toshiba laptops up to ~1987
  830.                     ("x"=product ID) (see #0363)
  831.  FEh    43h    ***      ???        Olivetti M240
  832.  FEh    A6h    ???      ???        Quadram Quad386
  833.  FDh    *    *    06/01/83    PCjr
  834.  FCh    *    *    01/10/84    AT models 068,099 6 MHz 20MB
  835.  FCh    00h    00h      ???        PC3270/AT
  836.  FCh    00h    01h    06/10/85    AT model  239      6 MHz 30MB
  837.  FCh    00h    > 01h      ???        7531/2 Industrial AT
  838.  FCh    01h    00h    11/15/85    AT models 319,339 8 MHz, Enh Keyb, 3.5"
  839.  FCh    01h    00h    09/17/87    Tandy 3000
  840.  FCh    01h    00h    ../..x..    Toshiba laptops since ~1988
  841.                     ("x"=product ID) (see #0363)
  842.  FCh    01h    00h    03/08/93    Compaq DESKPRO/i
  843.  FCh    01h    00h     various    Compaq DESKPRO, SystemPro, ProSignia
  844.  FCh    01h    00h    07/20/93    Zenith Z-Lite 425L
  845.  FCh    01h    20h    06/10/92    AST
  846.  FCh    01h    30h      ???        Tandy 3000NL
  847.  FCh    01h    ???      ???        Compaq 286/386
  848.  FCh    02h    00h    04/21/86    PC XT-286
  849.  FCh    02h    00h     various    Compaq LTE Lite
  850.  FCh    02h    00h    08/05/93    Compaq Contura 486/486c/486cx
  851.  FCh    04h    00h    02/13/87     ** PS/2 Model 50 (10 MHz/1 ws 286)
  852.  FCh    04h    02h      ???        PS/2 Model 50
  853.  FCh    04h    03h    04/18/88    PS/2 Model 50Z (10 MHz/0 ws 286)
  854.  FCh    04h    04h      ???        PS/2 Model 50Z
  855.  FCh    05h    00h    02/13/87     ** PS/2 Model 60 (10 MHz 286)
  856.  FCh    06h    00h      ???        IBM 7552-140 "Gearbox"
  857.  FCh    06h    01h      ???        IBM 7552-540 "Gearbox"
  858.  FCh    08h    ***      ???        Epson, unknown model
  859.  FCh    08h    00h      ???        PS/2 Model 25/286
  860.  FCh    09h    00h      ???        PS/2 Model 25 (10 MHz 286)
  861.  FCh    09h    02h    06/28/89    PS/2 Model 30-286
  862.  FCh    0Bh    00h    02/16/90    PS/1 Model 2011 (10 MHz 286)
  863.  FCh    20h    00h    02/18/93    Compaq ProLinea
  864.  FCh    30h    ***      ???        Epson, unknown model
  865.  FCh    31h    ***      ???        Epson, unknown model
  866.  FCh    33h    ***      ???        Epson, unknown model
  867.  FCh    39h    ???    09/16991    Toshiba T2200SX/60 (see also #0363)
  868.  FCh    3Ch    ???    01/28<91    Toshiba T2000SX/40 (see also #0363)
  869.  FCh    42h    ***      ???        Olivetti M280
  870.  FCh    45h    ***      ???        Olivetti M380 (XP 1, XP3, XP 5)
  871.  FCh    48h    ***      ???        Olivetti M290
  872.  FCh    4Fh    ***      ???        Olivetti M250
  873.  FCh    50h    ***      ???        Olivetti M380 (XP 7)
  874.  FCh    51h    ***      ???        Olivetti PCS286
  875.  FCh    52h    ***      ???        Olivetti M300
  876.  FCh    81h    00h    01/15/88    Phoenix 386 BIOS v1.10 10a
  877.  FCh    81h    01h      ???        "OEM machine"
  878.  FCh    82h    01h      ???        "OEM machine"
  879.  FCh    94h    00h      ???        Zenith 386
  880.  FBh    00h    01h    01/10/86    PC XT-089, Enh Keyb, 3.5" support
  881.  FBh    00h    02h    05/09/86    PC XT
  882.  FBh    4Ch    ***      ???        Olivetti M200
  883.  FAh    00h    00h    09/02/86    PS/2 Model 30 (8 MHz 8086)
  884.  FAh    00h    01h    12/12/86    PS/2 Model 30
  885.  FAh    01h    00h      ???        PS/2 Model 25/25L (8 MHz 8086)
  886.  FAh    30h    00h      ???        IBM Restaurant Terminal
  887.  FAh    4Eh    ***      ???        Olivetti M111
  888.  FAh    FEh    00h      ???        IBM PCradio 9075
  889.  F9h    00h    00h    09/13/85    PC Convertible
  890.  F9h    FFh    00h      ???        PC Convertible
  891.  F8h    00h    00h    03/30/87     ** PS/2 Model 80 (16MHz 386)
  892.  F8h    01h    00h    10/07/87    PS/2 Model 80 (20MHz 386)
  893.  F8h    02h    00h      ???        PS/2 Model 55-5571
  894.  F8h    04h    00h      ???        PS/2 Model 70
  895.  F8h    04h    02h    04/11/88    PS/2 Model 70 20MHz, type 2 system brd
  896.  F8h    04h    03h    03/17/89    PS/2 Model 70 20MHz, type 2 system brd
  897.  F8h    05h    00h      ???        IBM PC 7568
  898.  F8h    06h    00h      ???        PS/2 Model 55-5571
  899.  F8h    07h    00h      ???        IBM PC 7561/2
  900.  F8h    07h    01h      ???        PS/2 Model 55-5551
  901.  F8h    07h    02h      ???        IBM PC 7561/2
  902.  F8h    07h    03h      ???        PS/2 Model 55-5551
  903.  F8h    09h    00h      ???        PS/2 Model 70 16MHz, type 1 system brd
  904.  F8h    09h    02h    04/11/88    PS/2 Model 70 some models
  905.  F8h    09h    03h    03/17/89    PS/2 Model 70 some models
  906.  F8h    0Bh    00h    01/18/89    PS/2 Model P70 (8573-121) typ 2 sys brd
  907.  F8h    0Bh    02h    12/16/89    PS/2 Model P70 ??
  908.  F8h    0Ch    00h    11/02/88    PS/2 Model 55SX (16 MHz 386SX)
  909.  F8h    0Dh    00h      ???        PS/2 Model 70 25MHz, type 3 system brd
  910.  F8h    0Eh    00h      ???        PS/1 486SX
  911.  F8h    0Fh    00h      ???        PS/1 486DX
  912.  F8h    10h    00h      ???        PS/2 Model 55-5551
  913.  F8h    11h    00h    10/01/90    PS/2 Model 90 XP (25 MHz 486)
  914.  F8h    12h    00h      ???        PS/2 Model 95 XP
  915.  F8h    13h    00h    10/01/90    PS/2 Model 90 XP (33 MHz 486)
  916.  F8h    14h    00h    10/01/90    PS/2 Model 90-AK9 (25 MHz 486), 95 XP
  917.  F8h    15h    00h      ???        PS/2 Model 90 XP
  918.  F8h    16h    00h    10/01/90    PS/2 Model 90-AKD (33 MHz 486)
  919.  F8h    17h    00h      ???        PS/2 Model 90 XP
  920.  F8h    19h    05h      ???        PS/2 Model 35/35LS or 40 (20 MHz 386SX)
  921.  F8h    1Ah    00h      ???        PS/2 Model 95 XP
  922.  F8h    1Bh    00h    10/02/89    PS/2 Model 70-486 (25 MHz 486)
  923.  F8h    1Ch    00h    02/08/90    PS/2 Model 65-121 (16 MHz 386SX)
  924.  F8h    1Eh    00h    02/08/90    PS/2 Model 55LS (16 MHz 386SX)
  925.  F8h    23h    00h      ???        PS/2 Model L40 SX
  926.  F8h    23h    01h      ???        PS/2 Model L40 SX (20 MHz 386SX)
  927.  F8h    25h    00h      ???        PS/2 Model 57 SLC
  928.  F8h    25h    06h      ???        PS/2 Model M57 (20 MHz 386SLC)
  929.  F8h    26h    00h      ???        PS/2 Model 57 SX
  930.  F8h    26h    01h      ???        PS/2 Model 57 (20 MHz 386SX)
  931.  F8h    28h    00h      ???        PS/2 Model 95 XP
  932.  F8h    29h    00h      ???        PS/2 Model 90 XP
  933.  F8h    2Ah    00h      ???        PS/2 Model 95 XP (50 MHz 486)
  934.  F8h    2Bh    00h      ???        PS/2 Model 90 (50 MHz 486)
  935.  F8h    2Ch    00h      ???        PS/2 Model 95 XP
  936.  F8h    2Ch    01h      ???        PS/2 Model 95 (20 MHz 486SX)
  937.  F8h    2Dh    00h      ???        PS/2 Model 90 XP (20 MHz 486SX)
  938.  F8h    2Eh    00h      ???        PS/2 Model 95 XP
  939.  F8h    2Eh    01h      ???        PS/2 Model 95 (20 MHz 486SX + 487SX)
  940.  F8h    2Fh    00h      ???        PS/2 Model 90 XP (20 MHz 486SX + 487SX)
  941.  F8h    30h    00h      ???        PS/1 Model 2121 (16 MHz 386SX)
  942.  F8h    33h    00h      ???        PS/2 Model 30-386
  943.  F8h    34h    00h      ???        PS/2 Model 25-386
  944.  F8h    36h    00h      ???        PS/2 Model 95 XP
  945.  F8h    37h    00h      ???        PS/2 Model 90 XP
  946.  F8h    38h    00h      ???        PS/2 Model 57
  947.  F8h    39h    00h      ???        PS/2 Model 95 XP
  948.  F8h    3Fh    00h      ???        PS/2 Model 90 XP
  949.  F8h    40h    00h      ???        PS/2 Model 95 XP
  950.  F8h    41h    00h      ???        PS/2 Model 77
  951.  F8h    45h    00h      ???        PS/2 Model 90 XP (Pentium)
  952.  F8h    46h    00h      ???        PS/2 Model 95 XP (Pentium)
  953.  F8h    47h    00h      ???        PS/2 Model 90/95 E (Pentium)
  954.  F8h    48h    00h      ???        PS/2 Model 85
  955.  F8h    49h    00h      ???        PS/ValuePoint 325T
  956.  F8h    4Ah    00h      ???        PS/ValuePoint 425SX
  957.  F8h    4Bh    00h      ???        PS/ValuePoint 433DX
  958.  F8h    4Eh    00h      ???        PS/2 Model 295
  959.  F8h    50h    00h      ???        PS/2 Model P70 (8573) (16 MHz 386)
  960.  F8h    50h    01h    12/16/89    PS/2 Model P70 (8570-031)
  961.  F8h    52h    00h      ???        PS/2 Model P75 (33 MHz 486)
  962.  F8h    56h    00h      ???        PS/2 Model CL57 SX
  963.  F8h    57h    00h      ???        PS/2 Model 90 XP
  964.  F8h    58h    00h      ???        PS/2 Model 95 XP
  965.  F8h    59h    00h      ???        PS/2 Model 90 XP
  966.  F8h    5Ah    00h      ???        PS/2 Model 95 XP
  967.  F8h    5Bh    00h      ???        PS/2 Model 90 XP
  968.  F8h    5Ch    00h      ???        PS/2 Model 95 XP
  969.  F8h    5Dh    00h      ???        PS/2 Model N51 SLC
  970.  F8h    5Eh    00h      ???        IBM ThinkPad 700
  971.  F8h    61h    ***      ???        Olivetti P500
  972.  F8h    62h    ***      ???        Olivetti P800
  973.  F8h    80h    00h      ???        PS/2 Model 80 (25 MHz 386)
  974.  F8h    80h    01h    11/21/89    PS/2 Model 80-A21
  975.  F8h    81h    00h      ???        PS/2 Model 55-5502
  976.  F8h    87h    00h      ???        PS/2 Model N33SX
  977.  F8h    88h    00h      ???        PS/2 Model 55-5530T
  978.  F8h    97h    00h      ???        PS/2 Model 55 Note N23SX
  979.  F8h    99h    00h      ???        PS/2 Model N51 SX
  980.  F8h    F2h    30h      ???        Reply Model 32
  981.  F8h    F6h    30h      ???        Memorex Telex
  982.  F8h    FDh    00h      ???        IBM Processor Complex (with VPD)
  983.  F8h    ???    ???      ???        PS/2 Model 90 (25 MHz 486SX)
  984.  F8h    ???    ???      ???        PS/2 Model 95 (25 MHz 486SX)
  985.  F8h    ???    ???      ???        PS/2 Model 90 (25 MHz 486SX + 487SX)
  986.  F8h    ???    ???      ???        PS/2 Model 95 (25 MHz 486SX + 487SX)
  987.  E1h    ???    ???      ???        ??? (checked for by DOS4GW.EXE)
  988.  E1h    00h    00h      ???        PS/2 Model 55-5530 Laptop
  989.  9Ah    *    *      ???        Compaq XT/Compaq Plus
  990.  30h    ???    ???      ???        Sperry PC
  991.  2Dh    *    *      ???        Compaq PC/Compaq Deskpro
  992.  ???    56h    ???      ???        Olivetti, unknown model
  993.  ???    74h    ???      ???        Olivetti, unknown model
  994.     * This BIOS call is not implemented in these early versions.
  995.       Read Model byte at F000h:FFFEh and BIOS date at F000h:FFF5h.
  996.    ** These BIOS versions require the DASDDRVR.SYS patches.
  997.   *** These Olivetti and Epson machines store the submodel in the byte at
  998.     F000h:FFFDh.
  999.  
  1000. (Table 0359)
  1001. Values for Dell model byte:
  1002.  02h    Dell 200
  1003.  03h    Dell 300
  1004.  05h    Dell 220
  1005.  06h    Dell 310
  1006.  07h    Dell 325
  1007.  09h    Dell 310A
  1008.  0Ah    Dell 316
  1009.  0Bh    Dell 220E
  1010.  0Ch    Dell 210
  1011.  0Dh    Dell 316SX
  1012.  0Eh    Dell 316LT
  1013.  0Fh    Dell 320LX
  1014.  11h    Dell 425E
  1015.  
  1016. Format of Compaq product information:
  1017. Address        Size    Description    (Table 0360)
  1018.  F000h:FFE4h    BYTE    product family code (first byte)
  1019.  F000h:FFE4h    BYTE    Point release number
  1020.  F000h:FFE4h    BYTE    ROM version code
  1021.  F000h:FFE4h    BYTE    product family code (second byte)
  1022.  F000h:FFE8h    WORD    BIOS type code
  1023.  
  1024. Bitfields for Hewlett-Packard product identifier:
  1025. Bit(s)    Description    (Table 0361)
  1026.  4-0    machine code
  1027.     0 original Vectra
  1028.     1 ES/12
  1029.     2 RS/20
  1030.     3 Portable/CS
  1031.     4 ES
  1032.     5 CS
  1033.     6 RS/16
  1034.     other reserved
  1035.  7-5    CPU type
  1036.     0 = 80286
  1037.     1 = 8088
  1038.     2 = 8086
  1039.     3 = 80386
  1040.     other reserved
  1041.  
  1042. Format of Toshiba laptop information:
  1043. Offset    Size    Description    (Table 0362)
  1044.  00h  8 BYTEs    ASCII product number (e.g. "T2200SX ")
  1045.  08h  8 BYTEs    ASCII version number (e.g. "V1.20   ")
  1046.  10h  8 BYTEs    ASCII signature string "TOSHIBA "
  1047.  18h  8 BYTEs    always zero???
  1048.  20h    DWORD    -> built-in BIOS setup program entry point or 0000h:0000h
  1049. Note:    this record is located at F000h:E000h
  1050.  
  1051. (Table 0363)
  1052. Values for Toshiba product ID:
  1053. model prodID   version      date       product number    /hdd
  1054.  FEh    29h        ../..)..   Toshiba T1000LE
  1055.  FEh    2Ah        ../..*..   Toshiba T1000XE
  1056.  FEh    2Bh        ../..+..   Toshiba T1000SE
  1057.  FEh    2Ch        ../..,..   Toshiba T1000      -
  1058.  FEh    2Dh        ../..-..   Toshiba T1200F     -
  1059.  FEh    2Dh    V4.00    12/26-87   Toshiba T1200H    /20
  1060.  FEh    2Eh        ../.....   Toshiba T1100+
  1061.  FCh    22h        ../.."..   Toshiba T8500
  1062.  FCh    26h        01/15&88   Toshiba T5200     /100
  1063.  FCh    27h        ../..'..   Toshiba T5100
  1064.  FCh    28h        ../..(..   Toshiba T2000
  1065.  FCh    2Ah        12/26*89   Toshiba T1200XE
  1066.  FCh    2Bh        ../..+..   Toshiba T1600
  1067.  FCh    2Ch        ../..,..   Toshiba T3100e
  1068.  FCh    2Dh        ../..-..   Toshiba T3200
  1069.  FCh    2Fh        ../../..   Toshiba T3100
  1070.  FCh    34h        ../..4..   Toshiba T100X
  1071.  FCh    ???        ../.. ..   Toshiba T200
  1072.  FCh    ???        ../.. ..   Toshiba T200CS
  1073.  FCh    38h        ../..8..   Toshiba T2000SXe
  1074.  FCh    39h    V1.20    09/16991   Toshiba T2200SX   /60
  1075.  FCh    39h    V1.40    10/01992   Toshiba T2200SX   /120 (upgraded)
  1076.  FCh    3Ch    V1.50    01/28<91   Toshiba T2000SX   /40
  1077.  FCh    3Dh        ../..=..   Toshiba T3200SXC
  1078.  FCh    3Eh        ../..>..   Toshiba T3100SX
  1079.  FCh    3Fh        ../..?..   Toshiba T3200SX
  1080.  FCh    40h        ../..@..   Toshiba T4500C
  1081.  FCh    41h        04/05A92   Toshiba T4500     ("T4500SXC" ?)
  1082.  FCh    45h    V3.20    04/14E92   Toshiba T4400SX   ("C" or "SXC" on cover)
  1083.  FCh    45h        01/13E93   Toshiba T4400SXC
  1084.  FCh    46h *        ../..F..   Toshiba T6400
  1085.  FCh    46h *        ../..F..   Toshiba T6400C
  1086.  FCh    5Fh        ../.._..   Toshiba T3300SL
  1087.  FCh    69h        ../..i..   Toshiba T1900C
  1088.  FCh    6Ah        ../..j..   Toshiba T1900
  1089.  FCh    6Dh        ../..m..   Toshiba T1850C
  1090.  FCh    6Eh        12/25n92   Toshiba T1850
  1091.  FCh    6Fh        07/17o92   Toshiba T1800
  1092.  FCh    7Eh    V1.30    06/17~93   Toshiba T4600C
  1093.  FCh    7Fh        ../..x..   Toshiba T4600
  1094.  FCh    97h        ../..x..   Toshiba T4800CT
  1095.  FCh    98h *    V1.10    12/22x93   Toshiba T1910     /120 /320
  1096.  FCh    98h *        ../..x..   Toshiba T1910CS
  1097.  FCh    99h        ../..x..   Toshiba T4700CS
  1098.  FCh    9Bh    V2.30    01/31x94   Toshiba T4700CT
  1099.  FCh    9Bh    V2.50    03/22x94   Toshiba T4700CT   /320
  1100.  FCh    9Ch    V1.30    01/11x94   Toshiba T1950CT   /320
  1101.  FCh    9Dh *        ../..x..   Toshiba T1950
  1102.  FCh    9Dh *        ../..x..   Toshiba T1950CS
  1103.  FCh    9Eh *    V1.20    12/25x93   Toshiba T3400     /120
  1104.  FCh    9Eh *    V1.30    03/22x94   Toshiba T3400     /250
  1105.  FCh    9Eh *        ../..x..   Toshiba T3400CT
  1106. Note:    BIOS version numbers and dates may vary, esp. due to harddisk and
  1107.       flash BIOS upgrades
  1108.     the 8-bit ASCII graphics character in the "date" column above
  1109.       has been substituted by "x" because it depends on code page
  1110.     [*] These models have monochrome and color versions which can only be
  1111.       distinguished with INT 42/AX=7503h
  1112. --------B-15C1-------------------------------
  1113. INT 15 - SYSTEM - RETURN EXTENDED-BIOS DATA-AREA SEGMENT ADDRESS (PS)
  1114.     AH = C1h
  1115. Return: CF set on error
  1116.     CF clear if successful
  1117.         ES = segment of data area
  1118. SeeAlso: AH=04h"ABIOS"
  1119. --------M-15C200-----------------------------
  1120. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - ENABLE/DISABLE
  1121.     AX = C200h
  1122.     BH = new state
  1123.         00h disabled
  1124.         01h enabled
  1125. Return: CF set on error
  1126.     AH = status (see #0364)
  1127.  
  1128. (Table 0364)
  1129. Values for pointing device function status:
  1130.  00h    successful
  1131.  01h    invalid function
  1132.  02h    invalid input
  1133.  03h    interface error
  1134.  04h    need to resend
  1135.  05h    no device handler installed
  1136. --------M-15C201-----------------------------
  1137. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - RESET
  1138.     AX = C201h
  1139. Return: CF set on error
  1140.         AH = status (see #0364)
  1141.     CF clear if successful
  1142.         BH = device ID
  1143.         BL = value returned by attached device after reset
  1144.         AAh if device is a mouse
  1145. Note:    after successful completion of this call, the pointing device is set
  1146.       as follows: disabled, sample rate 100 Hz, resolution 4 counts/mm,
  1147.       scaling 1:1, unchanged data package size
  1148. SeeAlso: INT 33/AX=0000h
  1149. --------M-15C202-----------------------------
  1150. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET SAMPLING RATE
  1151.     AX = C202h
  1152.     BH = sampling rate
  1153.         00h 10/second
  1154.         01h 20/second
  1155.         02h 40/second
  1156.         03h 60/second
  1157.         04h 80/second
  1158.         05h 100/second
  1159.         06h 200/second
  1160. Return: CF set on error
  1161.         AH = status (see #0364)
  1162. SeeAlso: INT 33/AX=001Ch
  1163. --------M-15C203-----------------------------
  1164. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET RESOLUTION
  1165.     AX = C203h
  1166.     BH = resolution (see #0365)
  1167. Return: CF set on error
  1168.         AH = status (see #0364)
  1169.  
  1170. (Table 0365)
  1171. Values for pointing device resolution:
  1172.  00h    one count per mm
  1173.  01h    two counts per mm
  1174.  02h    four counts per mm
  1175.  03h    eight counts per mm
  1176. --------M-15C204-----------------------------
  1177. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - GET TYPE
  1178.     AX = C204h
  1179. Return: CF set on error
  1180.         AH = status (see #0364)
  1181.     CF clear if successful
  1182.         BH = device ID
  1183. --------M-15C205-----------------------------
  1184. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - INITIALIZE
  1185.     AX = C205h
  1186.     BH = data package size (1 - 8 bytes)
  1187. Return: CF set on error
  1188.         AH = status (see #0364)
  1189. Note:    the pointing device is set as follows: disabled, 100 Hz sample rate,
  1190.       resolution 4 counts/mm, scaling 1:1
  1191. SeeAlso: AX=C201h
  1192. --------M-15C206-----------------------------
  1193. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - EXTENDED COMMANDS
  1194.     AX = C206h
  1195.     BH = subfunction
  1196.         00h return device status
  1197.         Return: BL = pointing device status (see #0366)
  1198.             CL = resolution (see #0365)
  1199.             DL = sample rate, reports per second
  1200.         01h set scaling at 1:1
  1201.         02h set scaling at 2:1
  1202. Return: CF set on error
  1203.         AH = status (see #0364)
  1204.  
  1205. Bitfields for pointing device status:
  1206. Bit(s)    Description    (Table 0366)
  1207.  0    right button pressed
  1208.  1    reserved
  1209.  2    left button pressed
  1210.  3    reserved
  1211.  4    0 if 1:1 scaling, 1 if 2:1 scaling
  1212.  5    device enabled
  1213.  6    0 if stream mode, 1 if remote mode
  1214.  7    reserved
  1215. --------M-15C207-----------------------------
  1216. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET DEVICE HANDLER ADDR
  1217.     AX = C207h
  1218.     ES:BX -> FAR user device handler
  1219. Return: CF set on error
  1220.         AH = status (see #0364)
  1221. Note:    when the subroutine is called, it is passed the following values on
  1222.       the stack; the handler should return with a FAR return without
  1223.       popping the stack:
  1224.         WORD 1: status (see #0367)
  1225.         WORD 2: X data (high byte = 00h)
  1226.         WORD 3: Y data (high byte = 00h)
  1227.         WORD 4: 0000h
  1228. SeeAlso: INT 33/AX=000Ch
  1229.  
  1230. Bitfields for pointing device status:
  1231. Bit(s)    Description    (Table 0367)
  1232.  15-8    reserved (0)
  1233.  7    Y data overflowed
  1234.  6    X data overflowed
  1235.  5    Y data is negative
  1236.  4    X data is negative
  1237.  3    reserved (1)
  1238.  2    reserved (0)
  1239.  1    right button pressed
  1240.  0    left button pressed
  1241. --------B-15C3------------------------------
  1242. INT 15 - SYSTEM - ENABLE/DISABLE WATCHDOG TIMEOUT (PS50+)
  1243.     AH = C3h
  1244.     AL = function
  1245.         00h disable PS/2 watchdog timer
  1246.         01h enable PS/2 watchdog timer
  1247.         BX = timer counter (0001h-00FFh)
  1248.         02h disable Gearbox system
  1249.         03h enable Gearbox system
  1250. Return: CF set on error
  1251.     CF clear if successful
  1252. Note:    the watchdog timer generates an NMI
  1253. SeeAlso: INT 21/AH=2Bh/CX=6269h/DX=742Dh
  1254. --------B-15C4-------------------------------
  1255. INT 15 - SYSTEM - PROGRAMMABLE OPTION SELECT (PS50+)
  1256.     AH = C4h
  1257.     AL = subfunction
  1258.         00h return base POS register address
  1259.         01h enable selected slot for setup
  1260.         BL = slot number (1 to 8)
  1261.         02h disable setup for all slots (enable adapter)
  1262. Return: CF set on error
  1263.     DX = base POS register address (if subfunction 00h)
  1264. SeeAlso: AH=C6h
  1265. --------B-15C5-------------------------------
  1266. INT 15 UC - OS HOOK - ROM BIOS TRACING CALLOUT (PS30/286,PS50Z,PS95)
  1267.     AH = C5h
  1268.     AL = interrupt being invoked
  1269.         01h INT 19
  1270.         02h INT 14
  1271.         03h INT 16
  1272.         04h INT 40 (floppy INT 13)
  1273.         05h INT 17
  1274.         06h INT 10
  1275.         07h INT 12
  1276.         08h INT 11
  1277.         09h INT 1A
  1278. Return: all registers except AX must be preserved
  1279. Notes:    called as the very first action of the indicated ROM BIOS interrupt
  1280.       handlers on the PS/2 Models 30/286, 50Z, and 95
  1281.     default handler does nothing and returns CF clear for the above
  1282.       subfunctions, CF set and AH=86h for all other subfunctions
  1283.     value of AX passed to the original interrupt handler is pushed on
  1284.       stack immediately prior to call
  1285. --------B-15C6-------------------------------
  1286. INT 15 U - later PS/2 models - GET POS DATA
  1287.     AH = C6h
  1288.     ???
  1289. Return: ???
  1290. Notes:    this function is referenced by name and number in some IBM BIOS manuals
  1291.     IBM reports that "there are a number of problems with this call" and
  1292.       does not recommend its use.
  1293. SeeAlso: AH=C4h
  1294. --------B-15C7-------------------------------
  1295. INT 15 - SYSTEM - later PS/2s - RETURN MEMORY-MAP INFORMATION
  1296.     AH = C7h
  1297.     DS:SI -> user supplied memory map table (see #0368)
  1298. Note:    call AH=C0h and examine bit 4 of feature byte 2 to check if this
  1299.       function is supported
  1300. Return: CF set on error, clear if successful
  1301. SeeAlso: AH=C0h,AH=C9h,AH=D1h
  1302.  
  1303. Format of memory-map table structure:
  1304. Offset    Size    Description    (Table 0368)
  1305.  00h    WORD    length of table (excluding this word)
  1306.  02h    DWORD    local memory between 1M and 16M, in 1K blocks
  1307.  06h    DWORD    local memory between 16M and 4G, in 1K blocks
  1308.  0Ah    DWORD    system memory between 1M and 16M, in 1K blocks
  1309.  0Eh    DWORD    system memory between 16M and 4G, in 1K blocks
  1310.  12h    DWORD    cacheable memory between 1M and 16M, in 1K blocks
  1311.  16h    DWORD    cacheable memory between 16M and 4G, in 1K blocks
  1312.  1Ah    DWORD    1K blocks before start of non-system memory between 1M and 16M
  1313.  1Eh    DWORD    1K blocks before start of non-system memory between 16M and 4G
  1314.  22h  2 DWORDs    reserved
  1315. --------B-15C8-------------------------------
  1316. INT 15 - SYSTEM - ENABLE/DISABLE PROCESSOR FUNCTIONS
  1317.     AH = C8h
  1318.     AL = function
  1319.         00h disable cache or (90 and 95) disable cache L1
  1320.         01h enable cache or (90 and 95) enable cache L1
  1321.         ---models 90 and 95 only---
  1322.         02h disable cache L2
  1323.         03h enable cache L2
  1324.         04h disable both caches
  1325.         05h enable both caches
  1326.         06h return status of both caches
  1327.         07h-FFh Reserved
  1328. Return: CF set on error
  1329.     CF clear if successful
  1330.         AH = status (see #0369)
  1331.     For subfunction 06h only:
  1332.         BH = status of cache L2
  1333.         00h enabled
  1334.         01h disabled or not installed
  1335.         BL = status of cache L1 (same codes as BH)
  1336. Notes:     supported by at least PS/2 70, 70/486, 80-A21, 90, 95
  1337.     call AH=C0h and examine bit 3 of feature byte 2 to check if this
  1338.       function is supported.
  1339.     on a 486 system, any external caches must be disabled when the
  1340.       on-chip cache (L1) is disabled.
  1341. SeeAlso: AH=C0h
  1342.  
  1343. (Table 0369)
  1344. Values for status:
  1345.  00h    operation successful
  1346.  01h    function choice (in AL) is invalid
  1347.  02h    NVRAM data is invalid
  1348.  03h    cache test error
  1349.  04h    (90 and 95 only) cannot perform operation requested due to state of
  1350.       other cache (see note above)
  1351.  05h    no L2 cache is present
  1352.  09h    CPU in protected mode
  1353. --------B-15C9-------------------------------
  1354. INT 15 - newer PS/2; various BIOSes - GET CPU TYPE AND MASK REVISION
  1355.     AH = C9h
  1356.     AL = 10h (may be required on some non-PS BIOSes)
  1357. Return: CF clear if successful
  1358.         AH = 00h
  1359.         CH = CPU type (see #0370)
  1360.         CL = mask revision (stepping level) (see #0371)
  1361.     CF set on error
  1362.         AH = status (80h,86h = function not supported)
  1363. Notes:    the BIOS must save DX at startup in order to be able to support this
  1364.       call; PS/2 Models 56, 57, 90, and 95 are known to support it
  1365.     the PS/2 BIOS merely reads CMOS locations 190h (type) and 191h (rev)
  1366.  
  1367. (Table 0370)
  1368. Values for CPU type:
  1369.  03h    80386DX or clone
  1370.  04h    80486
  1371.  05h    Pentium
  1372.  23h    80386SX or clone
  1373.  33h    Intel i376
  1374.  43h    80386SL or clone
  1375.  A3h    IBM 386SLC
  1376.  A4h    IBM 486SLC
  1377.  
  1378. (Table 0371)
  1379. Values for stepping level:
  1380. ---i376 (type code 33h)---
  1381.  05h    A0
  1382.  08h    B
  1383. ---80386/80386DX (type code 03h)---
  1384.  03h    Intel B1 to B10, Am386DX/DXL step A
  1385.  05h    Intel D0
  1386.  08h    Intel D1/D2/E1, Am386DX/DXL step B
  1387. ---80386SL (type code 43h)---
  1388.  05h    A
  1389.  1xh    B
  1390. ---80386SX (type code 23h)---
  1391.  04h    Intel A0
  1392.  05h    Intel B, Am386SX/SXL step A1
  1393.  08h    Intel C/D1, Am386SX/SXL step B
  1394.  09h    Intel 386CX/386EX/386SXstatic step A
  1395. ---80486DX (type code 04h)---
  1396.  00h    Intel A0/A1
  1397.  01h    Intel B2 to B6
  1398.  02h    Intel C0
  1399.  03h    Intel C1
  1400.  04h    Intel D0
  1401.  10h    Intel cA2/cA3, Cx486SLC step A
  1402.  11h    Intel cB0/cB1
  1403. ---486DX2 (type code 04h)---
  1404.  02h    Am486DX2 (unknown stepping)
  1405.  32h    Intel DX2/Overdrive steps A0 to A2
  1406.  33h    Intel DX2/Overdrive step B1
  1407. ---486SX (type code 04h)---
  1408.  20h    Intel A0
  1409.  22h    Intel B0
  1410.  27h    Intel cA0
  1411.  28h    Intel cB0
  1412. ---486SL (type code 04h)---
  1413.  40h    Intel A
  1414. ---IntelSX2 (type code 04h)---
  1415.  5xh    Intel A
  1416. ---IntelDX4 (type code 04h)---
  1417.  8xh    Intel A
  1418. ---487SX (type code 04h)---
  1419.  20h    Intel A0
  1420.  21h    Intel B0
  1421. ---Pentium (type code 05h)---
  1422.  0xh    Intel P5 steps Ax (1993)
  1423.  1xh    Intel P5 steps Bx (1994)
  1424.  2xh    Intel P54C step A
  1425. ---RapidCAD (type code 03h)---
  1426.  40h    A
  1427. --------B-15CA-------------------------------
  1428. INT 15 U - PS/2 Model 95 - READ/WRITE CMOS MEMORY
  1429.     AH = CAh
  1430.     AL = function
  1431.         00h read CMOS
  1432.         Return: CL = value of CMOS location
  1433.         01h write CMOS
  1434.         CL = new value for CMOS location
  1435.     BL = CMOS location (0Eh-3Fh)
  1436. Return: CF clear if successful
  1437.         AH = 00h
  1438.     CF set on error
  1439.         AH = error code (see #0372)
  1440. Note:    writes do not update the CMOS checksum
  1441.  
  1442. (Table 0372)
  1443. Values for CMOS read/write error code:
  1444.  01h    CMOS lost power or has invalid checksum
  1445.  03h    specified location out of range (too high)
  1446.  04h    specified location out of range (too low)
  1447.  80h    unsupported function (PC)
  1448.  86h    unsupported function (XT)
  1449. --------B-15CB-------------------------------
  1450. INT 15 U - PS/2 Model 95 - RESERVED
  1451.     AH = CBh
  1452.     ???
  1453. Return: ???
  1454. --------B-15CC-------------------------------
  1455. INT 15 U - PS/2 Model 95 - RESERVED
  1456.     AH = CCh
  1457.     ???
  1458. Return: ???
  1459. --------V-15CCCC-----------------------------
  1460. INT 15 U - Toshiba laptops - VCHAD.EXE - INSTALLATION CHECK
  1461.     AX = CCCCh
  1462. Return: AX = ABCDh if installed
  1463. Note:    supported by Toshiba VGA change display utility VCHAD.EXE ver 2.90+
  1464.       older versions have the string "VCHAD" 2 bytes after the address of
  1465.       the INT 15 handler which is hooked by all versions for the SysReq key
  1466. SeeAlso: AH=85h
  1467. --------B-15CD-------------------------------
  1468. INT 15 U - PS/2 Model 95 - RESERVED
  1469.     AH = CDh
  1470.     ???
  1471. Return: ???
  1472. --------B-15CE--BL00-------------------------
  1473. INT 15 - later PS/2s - ALLOCATE DMA ARBITRATION LEVEL
  1474.     AH = CEh
  1475.     BL = 00h-0Eh arbitration level to be allocated
  1476.          0Fh-FFh reserved
  1477.     AL = option byte
  1478.         bit 7-1: reserved (0)
  1479.         bit 0: 0 = need DMA channel for arbitration level requested
  1480.            1 = no channel required for arbitration level
  1481. Return: CF set on error
  1482.         AH = status (80h,86h = function not supported)
  1483.     CF clear on success
  1484.         AL = channel number
  1485.         00h-07h channel number allocated for the arbiration level
  1486.         08h-FEh reserved
  1487.         FFh    no channel requested for arbitration level
  1488.         AH = status (see #0373)
  1489. Notes:     arbitration level 00h has the highest priority, 0Eh the lowest
  1490.      to perform a DMA transfer operation, be sure to call this function
  1491.        first, and call AH=CFh afterward.  Failure to use this function
  1492.        can cause unpredictable results.
  1493. SeeAlso: AH=CFh
  1494.  
  1495. (Table 0373)
  1496. Values for DMA arbitration status:
  1497.  00h    success
  1498.  01h    arbitration level not available
  1499.  02h    channel not available
  1500.  03h    invalid arbitration level passed
  1501. --------B-15CF-------------------------------
  1502. INT 15 - later PS/2s - DEALLOCATE DMA ARBITRATION LEVEL
  1503.     AH = CFh
  1504.     BL = arbitration level to be deallocated (see AH=CEh)
  1505. Return: CF set on error
  1506.         AH = status (80h,86h = function not supported)
  1507.     CF clear on success
  1508.         AH = status
  1509.         00h success
  1510.         04h arbitration level not allocated
  1511. SeeAlso: AH=CEh
  1512. --------B-15D0-------------------------------
  1513. INT 15 - later PS/2s - RESERVED
  1514.     AH = D0h
  1515.     ???
  1516. Return: ???
  1517. --------B-15D100DX0000-----------------------
  1518. INT 15 - later PS/2s - GET NUMBER OF DEVICE DESCRIPTOR TABLE (DDT) ENTRIES
  1519.     AX = D100h
  1520.     DX = 0000h (reserved, must set to 0)
  1521. Return: BL = size of one DDT entry, in bytes
  1522.     CX = number of DDT entries
  1523.     AH = return code (see #0374)
  1524.     CF set on error
  1525.     CF clear on success
  1526. SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D101h,AX=D102h,AX=D103h,AX=D104h
  1527.  
  1528. (Table 0374)
  1529. Values for return code:
  1530.  00h    success
  1531.  01h    requested DDT entry not found
  1532.  02h    DDT data not valid
  1533.  86h    function not supported
  1534. --------B-15D101-----------------------------
  1535. INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY NUMBER
  1536.     AX = D101h
  1537.     BX = number of requested entry (starting with 1)
  1538.     DX = 0000h (reserved, must be set to 0)
  1539.     ES:DI -> buffer to contain DDT entry (see #0375)
  1540. Return:    AH = return code (see #0374)
  1541.     CF set on error
  1542.     CF clear on success
  1543.         ES:DI buffer filled with DDT entry
  1544. SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D102h,AX=D104h
  1545.  
  1546. Format of Device Descriptor Table (DDT):
  1547. Offset    Size    Description    (Table 0375)
  1548.  00h    BYTE    bits 7-4: reserved (set to 0)
  1549.         bits 3-0: slot of device (0 = system board)
  1550.  01h    BYTE    bits 7-4: second interrupt for this device (0 = none)
  1551.         bits 3-0: first interrupt for this device (0 = none)
  1552.  02h    BYTE    bits 7-4: second arbitration level for this device
  1553.         bits 3-0: first arbitration level for this device
  1554.  03h    WORD    DDT indicators (see #0376)
  1555.  05h    BYTE    reserved (0)
  1556.  06h    WORD    device ID (0 = none)
  1557.  08h    WORD    starting address of first  I/O block (0 = none)
  1558.  0Ah    WORD    starting address of second I/O block (0 = none)
  1559.  OCh    WORD    starting address of third  I/O block (0 = none)
  1560.  OEh    DWORD    start of first non-system memory block (0 = none)
  1561.  12h    WORD    size of first non-system memory block (in kilobytes)
  1562.  14h    DWORD    start of second non-system memory block (0 = none)
  1563.  18h    WORD    size of second non-system memory block (in kilobytes)
  1564.  1Ah    BYTE    implementation identifier of the device
  1565.  1Bh    BYTE    implementation revision level of the device
  1566. Note:    I/O block addresses and non-system memory addresses are listed in
  1567.       ascending order in each DDT entry.
  1568.  
  1569. Bitfields for DDT indicators:
  1570. Bit(s)    Description    (Table 0376)
  1571.  15    reserved (0)
  1572.  14    second arbitration level exists
  1573.  13    first arbitration level exists
  1574.  12    serial interface is RS-422
  1575.  11    not address limited
  1576.  10    DMA channel used
  1577.  9    second arbitration level can be shared
  1578.  8    first arbitration level can be shared
  1579.  7-0    reserved (0)
  1580. --------B-15D102-----------------------------
  1581. INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY I/O ADDRSS
  1582.     AX = D102h
  1583.     BX = entry number at which to start searching
  1584.     CX = requested I/O port address
  1585.     DX = 0000h (reserved, must be set to 0)
  1586.     ES:DI -> buffer to contain DDT entry (see #0375)
  1587. Return:    AH = return code (see #0374)
  1588.     BX = DDT entry number where I/O port was found, or total entries
  1589.          plus 1 if port was not found.
  1590.     CF set on error
  1591.     CF clear on success
  1592.         ES:DI buffer filled with DDT entry
  1593. Desc:    the DDT is searched from the specified entry for the I/O port in CX,
  1594.       and the first entry in which it is found is returned
  1595. SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D101h,AX=D103h,AX=D104h
  1596. --------B-15D103DX0000-----------------------
  1597. INT 15 - later PS/2s - RETURN ENTIRE DDT
  1598.     AX = D103h
  1599.     DX = 0000h (reserved, must be set to 0)
  1600.     ES:DI -> buffer to contain DDT entry (see #0375)
  1601. Return:    AH = return code (see #0374)
  1602.     CF set on error
  1603.     CF clear on success
  1604.         ES:DI buffer filled with DDT entry
  1605. SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D104h
  1606. --------B-15D104-----------------------------
  1607. INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY DEVICE ID
  1608.     AX = D104h
  1609.     BX = entry number at which to start searching
  1610.     CX = requested device ID
  1611.     DX = 0000h (reserved, must be set to 0)
  1612.     ES:DI -> buffer to contain DDT entry (see #0375)
  1613. Return:    AH = return code (see #0374)
  1614.     BX = DDT entry number where device ID was found, or total entries
  1615.           plus 1 if port was not found.
  1616.     CF set on error
  1617.     CF clear on success
  1618.         ES:DI buffer filled with DDT entry
  1619. Desc:    the DDT is searched from the specified entry for the device ID in CX,
  1620.       and the first entry in which it is found is returned.
  1621. SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D101h,AX=D103h
  1622. --------B-15D2-------------------------------
  1623. INT 15 - later PS/2s - RESERVED
  1624.     AH = D2h
  1625.     ???
  1626. Return: ???
  1627. --------B-15D3-------------------------------
  1628. INT 15 - later PS/2s - RESERVED
  1629.     AH = D3h
  1630.     ???
  1631. Return: ???
  1632. --------B-15D4-------------------------------
  1633. INT 15 - later PS/2s - GET PHYSICAL FIXED DISK DRIVE NUMBER (SELECTABLE BOOT)
  1634.     AH = D4h
  1635.     DL = logical fixed disk drive number
  1636. Return:    AH = return code (see #0377)
  1637.     CF set on error
  1638.     CF clear on success
  1639.         AL = physical fixed disk drive number
  1640.  
  1641. (Table 0377)
  1642. Values for return code:
  1643.  00h    success
  1644.  01h    specified logical drive number is invalid
  1645.  80h    function not supported (on PCjr and PC)
  1646.  86h    function not supported
  1647. --------B-15D5-------------------------------
  1648. INT 15 - later PS/2s - RESERVED
  1649.     AH = D5h
  1650.     ???
  1651. Return: ???
  1652. --------B-15D600BL00-------------------------
  1653. INT 15 - later PS/2s - READ BOOT DEVICE ID
  1654.     AX = D600h
  1655.     BL = 00h
  1656.     DX = device ID
  1657. Return: CF clear if successful
  1658.         AH = 00h
  1659.     CF set on error
  1660.         AH = status (86h for function not supported)
  1661. SeeAlso: AX=D600h/BL=01h,AX=D601h/BL=00h,AX=D602h
  1662. --------B-15D600BL01-------------------------
  1663. INT 15 - later PS/2s - WRITE BOOT DEVICE ID
  1664.     AX = D600h
  1665.     BL = 01h
  1666.     DX = device ID
  1667. Return: CF clear on success
  1668.         AH = 00h
  1669.     CF set on error
  1670.         AH = status (86h for function not supported)
  1671. SeeAlso: AX=D600h/BL=00h,AX=D601h/BL=01h
  1672. --------B-15D601BL00-------------------------
  1673. INT 15 - later PS/2s - READ BOOT DEVICE KEY
  1674.     AX = D601h
  1675.     BL = 00h
  1676.     DX = device ID
  1677. Return: CF clear on success
  1678.         AH = 00h
  1679.     CF set on error
  1680.         AH = status (86h for function not supported)
  1681. SeeAlso: AX=D600h/BL=00h,AX=D601h/BL=01h,AX=D602h
  1682. --------B-15D601BL01-------------------------
  1683. INT 15 - later PS/2s - WRITE BOOT DEVICE KEY
  1684.     AX = D601h
  1685.     BL = 01h
  1686.     DX = device ID
  1687. Return: CF clear on success
  1688.         AH = 00h
  1689.     CF set on error
  1690.         AH = status (86h for function not supported)
  1691. SeeAlso: AX=D600h/BL=01h,AX=D601h/BL=00h
  1692. --------B-15D602-----------------------------
  1693. INT 15 - later PS/2s - QUERY BOOT REFERENCE PARTITION
  1694.     AX = D602h
  1695. Return: CF clear on success
  1696.         AH = 00h
  1697.         AL = status of reference-partition boot request
  1698.         00h boot not requested
  1699.         01h boot requested
  1700.     CF set on error
  1701.         AH = status (86h for function not supported)
  1702. SeeAlso: AX=D601h/BL=00h
  1703. --------X-15D800-----------------------------
  1704. INT 15 - EISA SYSTEM ROM - READ SLOT CONFIGURATION INFORMATION
  1705.     AX = D800h
  1706.     CL = slot number (including embedded and virtual)
  1707. Return: CF clear if successful
  1708.         AH = 00h
  1709.     CF set on error
  1710.         AH = error code (80h,82h,83h,86h,87h)(see #0379)
  1711.     AL = bit flags (see #0378)
  1712.     BH = major revision level of configuration utility
  1713.     BL = minor revision level of configuration utility
  1714.     CX = checksum of configuration file
  1715.     DH = number of device functions
  1716.     DL = combined function information byte
  1717.     SI:DI = 4-byte compressed ID (DI = bytes 0&1, SI = bytes 2&3)
  1718. Note:    call with AL=80h if using 32-bit CS addressing mode instead of 16-bit
  1719. SeeAlso: AX=D801h,AX=D804h
  1720.  
  1721. Bitfields for EISA AL bit flags:
  1722. Bit(s)    Description    (Table 0378)
  1723.  7    set if duplicate IDs
  1724.  6    set if product ID readable
  1725.  4,5    slot type (00=expansion, 01=embedded, 10=virtual device)
  1726.  0-3    duplicate ID number if bit 7 set
  1727.  
  1728. (Table 0379)
  1729. Values for EISA error code:
  1730.  80h    invalid slot number
  1731.  81h    invalid function number
  1732.  82h    EISA CMOS corrupt
  1733.  83h    empty slot
  1734.  84h    error clearing CMOS
  1735.  85h    EISA CMOS is full
  1736.  86h    invalid BIOS-FW function call
  1737.  87h    invalid system configuration
  1738.  88h    config utility version not supported
  1739. --------X-15D801-----------------------------
  1740. INT 15 - EISA SYSTEM ROM - READ FUNCTION CONFIGURATION INFORMATION
  1741.     AX = D801h
  1742.     CH = function number to read
  1743.     CL = slot number (including embedded and virtual)
  1744.     DS:SI -> 320-byte buffer for standard configuration data block
  1745. Return: CF clear if successful
  1746.         AH = 00h
  1747.         DS:SI buffer filled
  1748.     CF set on error
  1749.         AH = error code (80h-83h,86h,87h) (see #0379)
  1750.     BX destroyed
  1751. Note:    call with AL=81h if using 32-bit CS addressing mode instead of 16-bit
  1752. --------X-15D802-----------------------------
  1753. INT 15 - EISA SYSTEM ROM - CLEAR NONVOLATILE MEMORY (EISA CMOS)
  1754.     AX = D802h
  1755.     BH = EISA config utility major revision level
  1756.     BL = EISA config utility minor revision level
  1757. Return: CF clear if successful
  1758.         AH = 00h
  1759.     CF set on error
  1760.         AH = error code (84h,86h,88h) (see #0379)
  1761. Note:    call with AL=82h if using 32-bit CS addressing mode instead of 16-bit
  1762. SeeAlso: AX=D803h
  1763. --------X-15D803-----------------------------
  1764. INT 15 - EISA SYSTEM ROM - WRITE NONVOLATILE MEMORY
  1765.     AX = D803h
  1766.     CX = length of data structure (0000h = empty slot)
  1767.         includes two bytes for config file checksum
  1768.     DS:SI -> configuration data
  1769. Return: CF clear if successful
  1770.         AH = 00h
  1771.     CF set on error
  1772.         AH = error code (84h-86h) (see #0379)
  1773. Note:    call with AL=83h if using 32-bit CS addressing mode instead of 16-bit
  1774. SeeAlso: AX=D802h
  1775. --------X-15D804-----------------------------
  1776. INT 15 - EISA SYSTEM ROM - READ PHYSICAL SLOT
  1777.     AX = D804h
  1778.     CL = slot number (including embedded and virtual)
  1779. Return: CF clear if successful
  1780.         AH = 00h
  1781.     CF set on error
  1782.         AH = error code (80h,83h,86h) (see #0379)
  1783.     SI:DI = 4-byte compressed ID (DI = bytes 0&1, SI = bytes 2&3)
  1784. Note:    call with AL=84h if using 32-bit CS addressing mode instead of 16-bit
  1785. SeeAlso: AX=D800h
  1786. --------b-15D820-----------------------------
  1787. INT 15 - Compaq LTE Lite - GET ???
  1788.     AX = D820h
  1789.     DS:SI -> 17-byte buffer for ???
  1790. Return: DS:SI buffer filled (first byte is length of remaining data, unless
  1791.       it is greater than 10h, in which case the second byte is 00h and no
  1792.       other data is returned)
  1793. Note:    this function is also supported by Compaq's EISA System ROM, Contura
  1794.       486/486c/486cx and recent DESKPRO/i ROMs
  1795. SeeAlso: AX=D821h
  1796. --------b-15D821-----------------------------
  1797. INT 15 - Compaq LTE Lite - SET ???
  1798.     AX = D821h
  1799.     DS:SI -> counted string (should not be more than 16 bytes)
  1800. Return: AH = 00h
  1801. Note:    this function is also supported by Compaq's EISA System ROM, Contura
  1802.       486/486c/486cx and recent DESKPRO/i ROMs
  1803. SeeAlso: AX=D820h
  1804. --------b-15D822BL00-------------------------
  1805. INT 15 - Compaq EISA System ROM 04/08/93 - GET ???
  1806.     AX = D822h
  1807.     BL = 00h
  1808.     CX = size of buffer or 0000h to retrieve required buffer size
  1809.     DS:SI -> buffer for ??? (if CX nonzero)
  1810. Return: CF clear if successful
  1811.         AH = 00h
  1812.         DH = 08h
  1813.         CX = required buffer size to retrieve all data (if CX=0 on entry)
  1814.         DS:SI buffer filled (if CX nonzero on entry)
  1815.     CF set on error (BL nonzero)
  1816.         AH = 86h
  1817. --------b-15D823-----------------------------
  1818. INT 15 - Compaq EISA System ROM 04/08/93 - ???
  1819.     AX = D823h
  1820.     BL = subfunction??? (00h or 80h)
  1821.     BH = ???
  1822.     DS:SI -> buffer for ??? (see #0380)
  1823. Return: CF clear if successful
  1824.         AH = 00h
  1825.         DH = 08h
  1826.         DL = ???
  1827.     CF set on error
  1828.         AH = error code
  1829.         86h BL neither 00h nor 80h
  1830.         87h ???
  1831.  
  1832. Format of Compaq EISA buffer:
  1833. Offset    Size    Description    (Table 0380)
  1834.  00h    BYTE    ???
  1835.  01h    WORD    ???
  1836.  03h    BYTE    ???
  1837.  04h    WORD    ???
  1838.  06h    WORD    ???
  1839.     ???
  1840. ----------15D824-----------------------------
  1841. INT 15 - Compaq EISA System ROM 04/08/93 - ???
  1842.     AX = D824h
  1843.     CX = ???
  1844.     DS:SI -> ASCIZ string containing ???
  1845. Return: CF clear if successful
  1846.         AH = 00h
  1847.         CX = ???
  1848.     CF set on error
  1849.         AH = error code
  1850.         87h ??? failed
  1851.         88h ???
  1852. Note:    these functions are only available if ??? from keyboard controller
  1853.       command C0h
  1854. ----------15D825-----------------------------
  1855. INT 15 - Compaq EISA System ROM 04/08/93 - ???
  1856.     AX = D825h
  1857.     CX = ???
  1858.     SI = ???
  1859.     DI = ???
  1860.     ???
  1861. Return: CF clear if successful
  1862.         AH = 00h
  1863.         CX = ???
  1864.     CF set on error
  1865.         AH = error code
  1866.         87h ??? failed
  1867.         88h ???
  1868.             CX = ???
  1869. Note:    these functions are only available if ??? from keyboard controller
  1870.       command C0h
  1871. ----------15D826-----------------------------
  1872. INT 15 - Compaq EISA System ROM 04/08/93 - ???
  1873.     AX = D826h
  1874.     BX = ???
  1875.     CX = size of buffer in bytes
  1876.     DS:SI -> buffer for ???
  1877.     ???
  1878. Return: CF clear if successful
  1879.         AH = 00h
  1880.         CX = ???
  1881.     CF set on error
  1882.         AH = error code
  1883.         87h ??? failed
  1884.         88h ???
  1885. Note:    these functions are only available if ??? from keyboard controller
  1886.       command C0h
  1887. --------X-15D8-------------------------------
  1888. INT 15 - EISA SYSTEM ROM - 32-bit CS ADDRESSING MODE CALLS
  1889.     AH = D8h
  1890.     AL = 80h to 84h
  1891.     other registers as appropriate for AL=00h to 04h
  1892. Return: as appropriate for AL=00h to 04h
  1893. Note:    these functions are identical to AX=D800h to D804h, except that they
  1894.       should be called when using 32-bit CS addressing mode (pointers use
  1895.       ESI rather than SI as offset) instead of 16-bit addressing mode
  1896. SeeAlso: AX=D800h,AX=D801h,AX=D802h,AX=D803h,AX=D804h
  1897. --------b-15D8-------------------------------
  1898. INT 15 - Compaq EISA System ROM 04/08/93 - 32-bit CS ADDRESSING MODE CALLS
  1899.     AH = D8h
  1900.     AL = A0h to A6h
  1901.     other registers as appropriate for AL=20h to 26h
  1902. Return: as appropriate for AL=20h to 26h
  1903. Note:    these functions are identical to AX=D820h to D826h, except that they
  1904.       should be called when using 32-bit CS addressing mode
  1905. ----------15DA-------------------------------
  1906. INT 15 U - AMI PCI BIOS v1.00.05.AX1 - ???
  1907.     AH = DAh
  1908.     AL = function (00h-08h,12h,14h,15h,19h,88h-8Eh,92h,99h)
  1909.     ???
  1910. Return: ???
  1911. SeeAlso: AH=DBh
  1912. ----------15DB-------------------------------
  1913. INT 15 U - AMI PCI BIOS v1.00.05.AX1 - ???
  1914.     AH = DBh
  1915.     AL = function (00h-04h)
  1916.     ???
  1917. Return: ???
  1918. SeeAlso: AH=DAh
  1919. --------Q-15DE00-----------------------------
  1920. INT 15 - DESQview - GET PROGRAM NAME
  1921.     AX = DE00h
  1922. Return: AX = offset into DESQVIEW.DVO of program most recently selected from
  1923.         the "Switch Windows" menu (see #0381)
  1924. Note:    always returns AX=0000h under DESQview/X
  1925. SeeAlso: AX=DE07h
  1926.  
  1927. Format of program entry in DESQVIEW.DVO:
  1928. Offset    Size    Description    (Table 0381)
  1929.  00h    BYTE    length of name (FFh if end of file)
  1930.  01h  N BYTEs    name
  1931.       2 BYTEs    keys to invoke program (second = 00h if only one key used)
  1932.     BYTE    program type
  1933.         00h normal program
  1934.         04h divider
  1935.         80h Delete a Program
  1936.         81h Change a Program
  1937.     WORD    ??? apparently always 0000h
  1938. --------Q-15DE01-----------------------------
  1939. INT 15 - DESQview - UPDATE "OPEN WINDOW" MENU
  1940.     AX = DE01h
  1941. Return: nothing
  1942. Notes:    reads DESQVIEW.DVO, disables Open menu if file not in current directory
  1943.     NOP for DESQview/X
  1944. --------Q-15DE02-----------------------------
  1945. INT 15 - DESQview 1.x only - SET ??? FLAG FOR CURRENT WINDOW
  1946.     AX = DE02h
  1947. Return: nothing
  1948. Note:    this call is a NOP in DV 2.x
  1949. SeeAlso: AX=DE03h
  1950. --------Q-15DE03-----------------------------
  1951. INT 15 - DESQview 1.x only - GET ??? FOR CURRENT WINDOW
  1952.     AX = DE03h
  1953. Return: AX = ??? for current window
  1954.     BX = ??? for current window
  1955. Note:    this call is a NOP in DV 2.x
  1956. SeeAlso: AX=DE02h
  1957. --------Q-15DE04-----------------------------
  1958. INT 15 - DESQview - GET AVAILABLE COMMON MEMORY
  1959.     AX = DE04h
  1960. Return: BX = bytes of common memory available
  1961.     CX = largest block available
  1962.     DX = total common memory in bytes
  1963. SeeAlso: AX=DE05h,AX=DE06h
  1964. --------Q-15DE05-----------------------------
  1965. INT 15 - DESQview - GET AVAILABLE CONVENTIONAL MEMORY
  1966.     AX = DE05h
  1967. Return: BX = KB of memory available
  1968.     CX = largest block available
  1969.     DX = total conventional memory in KB
  1970. SeeAlso: AX=DE04h,AX=DE06h
  1971. --------Q-15DE06-----------------------------
  1972. INT 15 - DESQview - GET AVAILABLE EXPANDED MEMORY
  1973.     AX = DE06h
  1974. Return: BX = KB of expanded memory available
  1975.     CX = largest block available
  1976.     DX = total expanded memory in KB
  1977. SeeAlso: AX=DE04h,AX=DE05h
  1978. --------Q-15DE07-----------------------------
  1979. INT 15 - DESQview - "APPNUM" - GET CURRENT PROGRAM'S NUMBER
  1980.     AX = DE07h
  1981. Return: AX = number of program as it appears on the "Switch Windows" menu
  1982. Note:    this API call may be made from a hardware interrupt handler
  1983. SeeAlso: AX=DE00h
  1984. --------Q-15DE08-----------------------------
  1985. INT 15 - DESQview - GET ???
  1986.     AX = DE08h
  1987. Return: AX = 0000h if ??? is not set to the current task
  1988.          0001h if ??? is set to the current task
  1989. --------Q-15DE09-----------------------------
  1990. INT 15 - DESQview - UNIMPLEMENTED
  1991.     AX = DE09h
  1992. Return: nothing (NOP in DV 1.x and 2.x)
  1993. --------Q-15DE0A-----------------------------
  1994. INT 15 - DESQview v2.00+ - "DBGPOKE" - DISPLAY CHARACTER ON STATUS LINE
  1995.     AX = DE0Ah
  1996.     BL = character
  1997. Return: character displayed, next call will display in next position (which
  1998.     wraps back to the start of the line if off the right edge of screen)
  1999. Notes:    displays character on bottom line of *physical* screen, regardless
  2000.       of current size of window (even entirely hidden)
  2001.     does not know about graphics display modes, just pokes the characters
  2002.       into display memory
  2003.     this API call may be made from a hardware interrupt handler
  2004. SeeAlso: AX=1003h
  2005. --------Q-15DE0B-----------------------------
  2006. INT 15 - DESQview v2.00+ - "APILEVEL" - DEFINE MINIMUM API LEVEL REQUIRED
  2007.     AX = DE0Bh
  2008.     BL = API level minor version number
  2009.     BH = API level major version number
  2010. Return: AX = maximum API level (AH = major, AL = minor)
  2011. Notes:    if the requested API level is greater than the version of DESQview, a
  2012.       "You need a newer version" error window is popped up
  2013.     the API level defaults to 1.00, and is inherited by child tasks
  2014. --------Q-15DE0C-----------------------------
  2015. INT 15 - DESQview v2.00+ - "GETMEM" - ALLOCATE "SYSTEM" MEMORY
  2016.     AX = DE0Ch
  2017.     BX = number of bytes
  2018. Return: ES:DI -> allocated block or 0000h:0000h (DV 2.26+)
  2019. Note:    use SETERROR (AX=DE15h) to avoid a user prompt if there is insufficient
  2020.       system memory
  2021. SeeAlso: AX=1001h,AX=102Eh,AX=DE0Dh,AX=DE15h,AX=DE19h
  2022. --------Q-15DE0D-----------------------------
  2023. INT 15 - DESQview v2.00+ - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY
  2024.     AX = DE0Dh
  2025.     ES:DI -> previously allocated block
  2026. Return: nothing
  2027. SeeAlso: AX=1002h,AX=DE0Ch
  2028. --------Q-15DE0E-----------------------------
  2029. INT 15 - DESQview v2.00+ - "FINDMAIL" - FIND MAILBOX BY NAME
  2030.     AX = DE0Eh
  2031.     ES:DI -> name to find (see #0382)
  2032.     CX = length of name
  2033. Return: BX = 0000h not found
  2034.          0001h found
  2035.         DS:SI = object handle
  2036. SeeAlso: AH=12h/BH=11h,AH=12h/BX=1200h"GETNAME"
  2037.  
  2038. (Table 0382)
  2039. Values for special DESQview mailbox names:
  2040.  "COM1" ... "COM4"    RBcomm using COM1 ... COM4
  2041.  "DESQview/X Help Engine"
  2042.  "DESQview/X Network Server"  Network Manager
  2043.  "DESQview X Server0"    X-Windows server
  2044.  "DESQview X Server7"    X-Windows printing service
  2045.  "INBOX"        DESQview/X LPD requests
  2046.  "OUTBOX"        DESQview/X LPD responses
  2047.  "WAITBOX"        semaphore to synchronize DESQview/X LPD communications
  2048.  "_DVNM_"        DV/X v1.10 network manager
  2049. --------Q-15DE0F-----------------------------
  2050. INT 15 - DESQview v2.00+ - ENABLE DESQview EXTENSIONS
  2051.     AX = DE0Fh
  2052. Return: AX and BX destroyed (seems to be bug, weren't saved&restored)
  2053. Notes:    sends a manager stream with opcodes AEh, BDh, and BFh to task's window
  2054.     enables an additional mouse mode
  2055. --------Q-15DE10-----------------------------
  2056. INT 15 - DESQview v2.00+ - "PUSHKEY" - PUT KEY INTO KEYBOARD INPUT STREAM
  2057.     AX = DE10h
  2058.     BH = scan code
  2059.     BL = character
  2060. Return: nothing
  2061. Notes:    a later read will get the keystroke as if it had been typed by the user
  2062.     multiple pushes are read last-in first-out
  2063.     if a script exists for the pushed key in the current application, the
  2064.       script will be executed
  2065.     early copies of DV 2.00 destroy AX, BX, ES, and DI
  2066. SeeAlso: INT 16/AH=05h
  2067. --------Q-15DE11BL00-------------------------
  2068. INT 15 - DESQview v2.00+ - "JUSTIFY" - EN/DISABLE AUTOM. WINDOW JUSTIFICATION
  2069.     AX = DE11h
  2070.     BL = 00h      viewport will not move automatically
  2071.          nonzero  viewport will move to keep cursor visible (default)
  2072. Return: nothing
  2073. --------Q-15DE12BX0000-----------------------
  2074. INT 15 - DESQview v2.01+ - "CSTYLE" - SET "C"-COMPATIBLE CONTROL CHAR INTERPRET
  2075.     AX = DE12h
  2076.     BX = 0000h    select normal style (linefeed only moves down)
  2077.          nonzero  select C style (linefeed moves to start of next line)
  2078. Return: nothing
  2079. Note:    set on a per-task basis, and inherited from the parent task
  2080. --------Q-15DE13-----------------------------
  2081. INT 15 - DESQview v2.20+ - "GETCRIT" - GET CRITICAL NESTING COUNT
  2082.     AX = DE13h
  2083. Return: BX = number of calls to BEGINC or ENTERC
  2084.           (see INT 15/AX=101Bh,INT 15/AX=DE1Ch) without matching ENDC
  2085.           (see INT 15/AX=101Ch)
  2086. Note:    this API call may be made from within a hardware interrupt handler
  2087. SeeAlso: AX=101Bh,AX=101Ch,AX=DE1Bh,AX=DE1Ch
  2088. --------Q-15DE14-----------------------------
  2089. INT 15 - DESQview v2.20+ - GET OBJECT TYPE
  2090.     AX = DE14h
  2091.     ES:DI -> object
  2092. Return: BL = 00h not an object
  2093.          08h window or task
  2094.          09h mailbox
  2095.          0Ah keyboard
  2096.          0Bh timer
  2097.          0Ch objectq
  2098.          0Fh pointer
  2099.          10h panel
  2100. SeeAlso: AX=1016h
  2101. --------Q-15DE15-----------------------------
  2102. INT 15 - DESQview v2.20+ - SET ERROR HANDLING
  2103.     AX = DE15h
  2104.     BL = error handling mode
  2105.         00h post system error on all error conditions
  2106.         01h return carry flag set on calls to ADDTO, SUBFROM, and WRITE
  2107.         messages sent to mailboxes which fail due to lack of system
  2108.         or common memory
  2109.         02h (v2.26+) same as 01h, but also return null pointer for GETMEM
  2110.         calls which fail due to lack of system memory
  2111. Return: nothing
  2112. SeeAlso: AX=DE0Ch,AX=DE16h
  2113. --------Q-15DE16-----------------------------
  2114. INT 15 - DESQview v2.20+ - GET ERROR HANDLING
  2115.     AX = DE16h
  2116. Return: BL = current mode
  2117.         00h always post system error
  2118.         01h return carry flag set on failed mailbox writes
  2119.         02h return CF set on failed mailbox writes and NULL on failed
  2120.         GETMEM calls
  2121. SeeAlso: AX=DE15h
  2122. --------Q-15DE17-----------------------------
  2123. INT 15 - DESQview v2.20-2.25 - reserved
  2124.     AX = DE17h
  2125. Return: pops up "Programming error" window
  2126. Note:    AX = 1117h is NOT identical to this call under DESQview 2.20 thru 2.25
  2127. SeeAlso: AX=1117h
  2128. --------Q-15DE17-----------------------------
  2129. INT 15 - DESQview v2.26+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT
  2130.     AX = DE17h
  2131.     BX = function
  2132.         0000h   get current mapping context without setting
  2133.         nonzero set new mapping context to BX
  2134. Return: BX = mapping context in effect before call
  2135. Notes:    mapping contexts determine conventional-memory addressability; setting
  2136.       a mapping context ensures that the associated program and data areas
  2137.       are in memory for access.  Usable by drivers, TSRs and shared
  2138.       programs.
  2139.     caller need not be running under DESQview
  2140.     this API call may be made from a hardware interrupt handler
  2141. SeeAlso: AX=1016h,AX=1117h,AX=DE21h,INT 2F/AX=1685h
  2142. --------Q-15DE18-----------------------------
  2143. INT 15 - DESQview v2.20+ - internal - ???
  2144.     AX = DE18h
  2145.     BP = function number
  2146.         high byte must be 10h
  2147.         low byte is function
  2148.         00h set ???
  2149.             BL = ???  (00h-10h, video mode???)
  2150.             BH = value to store
  2151.         03h set ???
  2152.             BL = ??? (stored in driver)
  2153.         0Ah get ???
  2154.             ES:DI -> 18-byte buffer to hold ???
  2155. Note:    calls video driver (NOP for Hercules driver,probably CGA and MCGA also)
  2156. --------Q-15DE19-----------------------------
  2157. INT 15 - DESQview v2.23+ - "GETCOMMON" - ALLOCATE "COMMON" MEMORY
  2158.     AX = DE19h
  2159.     BX = number of bytes to allocate
  2160. Return: AX = 0000h successful
  2161.         ES:DI -> allocated block
  2162.          nonzero insufficient memory
  2163. Note:    this API call may be made from within a hardware interrupt handler
  2164. SeeAlso: AX=DE0Ch,AX=DE15h,AX=DE1Ah
  2165. --------Q-15DE1A-----------------------------
  2166. INT 15 - DESQview v2.23+ - "PUTCOMMON" - DEALLOCATE "COMMON" MEMORY
  2167.     AX = DE1Ah
  2168.     ES:DI -> previously allocated block
  2169. Return:    AX = 0000h (successful)
  2170. Note:    this function may be called from within a hardware interrupt handler
  2171. SeeAlso: AX=DE0Dh,AX=DE19h
  2172. --------Q-15DE1B-----------------------------
  2173. INT 15 - DESQview v2.23+ internal - DECREMENT CRITICAL NESTING COUNT
  2174.     AX = DE1Bh
  2175. Return: nothing
  2176. SeeAlso: AX=101Ch,AX=DE13h,AX=DE1Ch
  2177. --------Q-15DE1C-----------------------------
  2178. INT 15 - DESQview v2.23+ - "ENTERC" - INCREMENT CRITICAL NESTING COUNT
  2179.     AX = DE1Ch
  2180. Return: nothing
  2181. Notes:    similar to AX=101Bh, but begins the critical region without ensuring
  2182.       that DOS is free
  2183.     the official documentation states that this call should be paired with
  2184.       "ENDC" (AX=101Ch); no mention is made of AX=DE1Bh
  2185.     this API call may be made from within a hardware interrupt handler
  2186. SeeAlso: AX=101Bh,AX=101Ch,AX=DE13h,AX=DE1Bh
  2187. --------Q-15DE1D-----------------------------
  2188. INT 15 - DESQview v2.23+ - "PUTKEY" - FAKE USER KEYSTROKES
  2189.     AX = DE1Dh
  2190.     DX = segment of handle for task to receive keystroke
  2191.     BL = character
  2192.     BH = scan code
  2193. Return: AX = 0000h if successful
  2194.        nonzero if receiver's keyboard buffer was full
  2195. Notes:    the key is treated as though the user had pressed it, ignoring any
  2196.       script which may be bound to the key, and using the current field
  2197.       table if the keyboard object is in field processing mode
  2198.     multiple PUTKEYs are seen in the order in which they are executed
  2199. SeeAlso: AX=DE10h
  2200. --------Q-15DE1E-----------------------------
  2201. INT 15 - DESQview v2.23+ - "SCRNINFO" - GET TRUE VIDEO PARAMETERS
  2202.     AX = DE1Eh
  2203. Return: CL = actual number of rows on screen
  2204.     CH = actual number of columns on screen
  2205.     BL = actual video mode (may differ from INT 10/AH=0Fh return) (v2.26+)
  2206. Note:    this API call may be made from a hardware interrupt handler
  2207. SeeAlso: INT 10/AH=0Fh
  2208. --------Q-15DE1F-----------------------------
  2209. INT 15 - DESQview v2.23+ - "DOSUSER" - GET HANDLE OF TASK CURRENTLY USING DOS
  2210.     AX = DE1Fh
  2211. Return: BX = segment of task handle or 0000h if no tasks are using DOS
  2212. Note:    this API call may be made from within a hardware interrupt handler
  2213. SeeAlso: AX=DE13h,INT 21/AH=34h
  2214. --------Q-15DE20-----------------------------
  2215. INT 15 - DESQview v2.26+ - "DISPATCHINT" - INTERRUPT ANOTHER TASK
  2216.     AX = DE20h
  2217.     BX = segment of handle of task to interupt
  2218.     DX:CX -> FAR interrupt routine
  2219.     BP,SI,DI,DS,ES as required by interrupt routine
  2220. Return: nothing
  2221. Notes:    unlike "PGMINT" (AX=1021h), DISPATCHINT may be applied to the task
  2222.       making the DISPATCHINT call
  2223.     multiple "DISPATCHINT" calls are processed in the order in which they
  2224.       were executed
  2225.     the FAR routine is entered with the current ES, DS, SI, DI, and BP
  2226.       values, using the task's internal stack (see AX=101Ah); only SS:SP
  2227.       needs to be preserved
  2228.     this API call may be made from within a hardware interrupt handler
  2229. SeeAlso: AX=1021h,AX=DE2Ah
  2230. --------Q-15DE21-----------------------------
  2231. INT 15 - DESQview v2.26+ - "ASSERTVIR" - CONTROL 386 SCREEN VIRTUALIZATION
  2232.     AX = DE21h
  2233.     BX = new state
  2234.         0000h turn off
  2235.         nonzero turn on
  2236. Return: BX = old state of virtualization
  2237. Notes:    this API call may be made from within a hardware interrupt handler
  2238.     under DV 2.40 and 2.42, this call appears to have no effect and always
  2239.       returns a nonzero value in BX which appears to be the offset within
  2240.       the DV common memory segment of the caller's task object; it may
  2241.       only have an effect within a hardware interrupt handler
  2242. SeeAlso: AX=1117h,AX=DE17h
  2243. --------Q-15DE22-----------------------------
  2244. INT 15 - DESQview v2.26+ - "PROCESSMEM" - GET TASK MEMORY STATUS
  2245.     AX = DE22h
  2246.     DX = segment of task handle
  2247. Return: DX = total amount of memory in paragraphs
  2248.     BX = amount of system memory in paragraphs
  2249.     CX = largest block of system memory available in paragraphs
  2250.     AX = memory flags (see #0383)
  2251. Notes:    if the task handle is a child task, the returned values will be for the
  2252.       process containing the task, rather than the task itself
  2253.     if the process's system memory is swapped out, BX,CX,DX remain
  2254.       unchanged, because the memory usage cannot be determined
  2255. SeeAlso: AX=DE04h,AX=DE05h,AX=DE06h
  2256.  
  2257. Bitfields for DESQview process memory flags:
  2258. Bit(s)    Description    (Table 0383)
  2259.  0    system memory resides in shared memory
  2260.  1    process's memory is swapped out
  2261.  2    process's system memory is swapped out
  2262. --------Q-15DE23-----------------------------
  2263. INT 15 U - DESQview v2.31+ - ???
  2264.     AX = DE23h
  2265.     BX = ??? IRQ number on first PIC?
  2266.     CX = ??? IRQ number on second PIC?
  2267. Return: ???
  2268. Note:    called by QEMM 6.00+
  2269. --------Q-15DE24-----------------------------
  2270. INT 15 - DESQview v2.40+ - "XNEWPROC" - START NEW APPLICATION
  2271.     AX = DE24h
  2272.     BX = length of .DVP data
  2273.     CX = length of ??? string
  2274.     DS:SI -> ??? string
  2275.     ES:DI -> .DVP data (see #0295 at AX=102Ch)
  2276. Return: BX = segment of task handle??? or 0000h on error
  2277. Note:    this call is similar to AX=102Ch except that it can interpret the
  2278.       extended DVP data
  2279. SeeAlso: AX=102Ch
  2280. --------Q-15DE25-----------------------------
  2281. INT 15 - DESQview v2.40+ - "GETDVPATH" - GET DESQview DIRECTORY
  2282.     AX = DE25h
  2283.     ES:DI -> 67-byte buffer for ASCIZ directory name
  2284. Return: ES:DI buffer filled with directory from which DESQview was started
  2285. BUG:    DV 2.42 does not place a terminating NUL at the end of the directory
  2286.       name, so if the buffer is not cleared to zeros before the call,
  2287.       there is no way to tell where the directory name ends.  This bug
  2288.       has been fixed in DV 2.52 (DV/X 1.02)
  2289. SeeAlso: AX=DE2Eh,INT 21/AH=47h
  2290. --------Q-15DE26-----------------------------
  2291. INT 15 - DESQview v2.40+ - "GETFOREGROUND" - GET KEYBOARD FOCUS
  2292.     AX = DE26h
  2293. Return: BX = segment of handle for task with keyboard focus
  2294. Note:    under DESQview/X, the X server always has the keyboard focus unless a
  2295.       "direct" window is active
  2296. SeeAlso: AX=DE2Fh,INT 2F/AX=DE0Ah
  2297. --------Q-15DE27-----------------------------
  2298. INT 15 - DESQview v2.50+ - "ADDINSTANCEDATA" - ADD PER-TASK SAVE/RESTORE AREA
  2299.     AX = DE27h
  2300.     BX = type
  2301.         0000h process
  2302.         0001h task
  2303.     ES:DI -> list of Instance Item Structures (see #0384)
  2304. Return: CF clear if successful
  2305.         AX = ???
  2306.         BX = ???
  2307.     CF set on error
  2308.         AX = error code???
  2309.         0004h invalid BX value
  2310. Note:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2311. SeeAlso: INT 2F/AX=DE08h,INT 2F/AX=DE09h
  2312.  
  2313. Format of DESQview Instance Item Structure [one element of list]:
  2314. Offset    Size    Description    (Table 0384)
  2315.  00h    WORD    length of data area DESQview should save and restore on context
  2316.           switches (0000h = end of list)
  2317.  02h    DWORD    pointer to area to be saved/restored
  2318. --------Q-15DE28-----------------------------
  2319. INT 15 U - DESQview v2.50+ - ???
  2320.     AX = DE28h
  2321.     BX = segment of ??? or 0000h for default
  2322.     ???
  2323. Return: ???
  2324. Note:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2325. SeeAlso: AX=DE2Ah
  2326. --------Q-15DE29BX0000-----------------------
  2327. INT 15 U - DESQview/X - ???
  2328.     AX = DE29h
  2329.     BX = 0000h
  2330.     ???
  2331. Return: CF clear if successful
  2332.         ???
  2333.     CF set on error
  2334. Notes:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2335.     under DESQview 2.60, this function and all other subfunctions of
  2336.       AX=DE29h always return CF set, as they are unique to DESQview/X
  2337. --------Q-15DE29BX0001-----------------------
  2338. INT 15 U - DESQview/X - ???
  2339.     AX = DE29h
  2340.     BX = 0001h
  2341.     DX = segment of window handle
  2342. Return: CF clear if successful
  2343.         AX = ???
  2344.         DX = ???
  2345.     CF set on error
  2346. Note:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2347. --------Q-15DE29BX0002-----------------------
  2348. INT 15 U - DESQview/X - ???
  2349.     AX = DE29h
  2350.     BX = 0002h
  2351.     DX = segment of window handle
  2352. Return: CF clear if successful
  2353.         AX = ???
  2354.         DX = ???
  2355.     CF set on error
  2356. Note:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2357. --------Q-15DE29BX0003-----------------------
  2358. INT 15 U - DESQview/X - ???
  2359.     AX = DE29h
  2360.     BX = 0003h
  2361.     DX = segment of window handle
  2362. Return: CF clear if successful
  2363.         ???
  2364.     CF set on error
  2365. Note:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2366. --------Q-15DE29BX0004-----------------------
  2367. INT 15 U - DESQview/X - GET DISPLAY NAME
  2368.     AX = DE29h
  2369.     BX = 0004h
  2370.     CX = size of buffer in bytes
  2371.     DX = segment of window handle
  2372.     ES:DI -> buffer for display name
  2373. Return: CF clear if successful
  2374.         buffer filled with ASCIZ display name (truncated if necessary) or
  2375.           null string if no display
  2376.     CF set on error
  2377. Notes:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2378.     the name ":0" refers to the local display
  2379. --------Q-15DE29BX0005-----------------------
  2380. INT 15 U - DESQview/X - ???
  2381.     AX = DE29h
  2382.     BX = 0005h
  2383.     ???
  2384. Return: CF clear if successful
  2385.         ???
  2386.     CF set on error
  2387. Note:    under DESQview 2.60, this function and all other subfunctions of
  2388.       AX=DE29h always return CF set, as they are unique to DESQview/X
  2389. --------Q-15DE2A-----------------------------
  2390. INT 15 - DESQview v2.50+ - "DISPATCHINTAFTERDOS" - INTERRUPT ANOTHER TASK
  2391.     AX = DE2Ah
  2392.     BX = segment of handle for task to interrupt or 0000h for caller
  2393.     DX:CX -> interrupt routine
  2394.     BP,SI,DI,DS,ES as required by interrupt routine
  2395. Return: nothing
  2396. Notes:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2397.     this call is the same as AX=DE20h except that it will delay
  2398.       interrupting the specified task until after it has exited DOS
  2399. SeeAlso: AX=1021h,AX=DE20h
  2400. --------Q-15DE2B-----------------------------
  2401. INT 15 - DESQview v2.50+ - "OBJNEXT" - TRAVERSE OBJECT LIST
  2402.     AX = DE2Bh
  2403.     ES:DI -> starting object
  2404.         0000h:0000h for first object in list???
  2405. Return: AX = status
  2406.         0000h successful
  2407.         ES:DI -> next object of same type (window/non-window)
  2408.         0001h failed (ES:DI was not a valid handle)
  2409. Notes:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2410.     there are two separate lists, one for window/task objects and one
  2411.       for all other objects
  2412. SeeAlso: AX=1016h,AX=DE2Ah,AX=DE2Ch
  2413. --------Q-15DE2C-----------------------------
  2414. INT 15 - DESQview v2.50+ - "WININFO" - GET WINDOW INFORMATION
  2415.     AX = DE2Ch
  2416.     DX = window information format version (0100h for DESQview 2.5x)
  2417.     BX = segment of window handle or 0000h for default
  2418.     ES:DI -> buffer for window information (see #0385)
  2419. Return: AX = status
  2420.         0000h successful
  2421. Note:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2422. SeeAlso: AX=1000h,AX=1016h,AX=DE01h,AX=DE2Bh
  2423.  
  2424. Format of DESQview window information:
  2425. Offset    Size    Description    (Table 0385)
  2426.  00h    BYTE    task flag: 00h window, 01h task
  2427.  01h    BYTE    process number if owner task
  2428.         00h if non-owner task
  2429.  02h    WORD    segment of owner's handle, 0000h if orphaned
  2430.  04h    WORD    mapping context (see #0284 at AX=1016h)
  2431.  06h    BYTE    task status (see #0386)
  2432.  07h    BYTE    unused
  2433.  08h    WORD    status bits (see #0387)
  2434.  0Ah    BYTE    01h if foreground-only window
  2435.  
  2436. (Table 0386)
  2437. Values for DESQview task status:
  2438.  00h    "Waiting" waiting for input
  2439.  01h    "Idle" keyboard poll limit reached
  2440.  03h    same as 01h
  2441.  04h    "Pausing" INT 15/AX=1000h pause called
  2442.  04h    DV/X direct: user did something to allow task switch
  2443.  05h    "ModeChg" video mode about to be changed
  2444.  06h    "ModeNtf" notify that video mode changed
  2445.  07h    "MoniCh" requested change to other monitor
  2446.  08h    "StartPgm" control relinquished to start new process
  2447.  09h    "MgrCan" made window manager CANCEL command
  2448.  0Ah    "Slicing" time slice expired
  2449.  0Bh    "Exit DOS" notify on DOS calls
  2450.  0Ch    "Enter DOS" process is re-entering DOS
  2451.  0Dh    "Terminate" INT 21/AH=4Ch or task freed
  2452.  0Eh    "BrkNxt" Control-Break pressed
  2453.  0Fh    "MgrCol" keyboard focus taken away
  2454.  10h    "PgmInt" interrupted by API call from another task
  2455.  11h    "BldOpen" call to INT 15/AX=DE01h
  2456.  
  2457. Bitfields for DESQview task status bits:
  2458. Bit(s)    Description    (Table 0387)
  2459.  6    task is freeing another task
  2460.  5    process is being created
  2461.  4    user suspended process
  2462.  3    process suspended itself
  2463.  2    process is resized direct window (suspended)
  2464.  1    process swapped out
  2465.  0    DESQview process
  2466. --------Q-15DE2D-----------------------------
  2467. INT 15 U - DESQview v2.50+ - GET/SET SOCKET HANDLER
  2468.     AX = DE2Dh
  2469.     CX = direction
  2470.         FFFFh set socket handler
  2471.         DX:BX -> FAR function for socket interface
  2472.             must be of the format described under INT 63"DESQview"
  2473.         other get socket handler
  2474.         Return: DX:BX -> socket handler
  2475. Notes:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2476.     the "set" subfunction is normally called only by SOCKET.DVR
  2477. SeeAlso: AX=DE2Eh,INT 63"DESQview"
  2478. --------Q-15DE2E-----------------------------
  2479. INT 15 U - DESQview v2.50+ - SOCKET API
  2480.     AX = DE2Eh
  2481.     DX:BX -> socket record (see #0389)
  2482.         0000h:0000h to create a new socket record
  2483. Return: CX = size of socket record in bytes
  2484.     DX:BX -> socket record which was used
  2485. Notes:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2486.     socket records are allocated from common memory
  2487.     for Unix compatibility, each socket and connection on a socket is
  2488.       allocated a DOS file handle (referencing an SFT for NUL) which is
  2489.       used on various calls to specify which of possibly multiple
  2490.       connections is to be operated upon
  2491. SeeAlso: AX=DE2Dh,INT 61/AX=0001h/SF=0001h"VINES",INT 63"DESQview"
  2492.  
  2493. (Table 0388)
  2494. Values for DESQview/X socket API function number:
  2495.  0000h    initialize socket???
  2496.  0001h    "gethostname"
  2497.  0002h    "ioctl" check for input
  2498.  0003h    "sleep" delay for specified period
  2499.  0004h    "htons" convert word to network (big-endian) byte order
  2500.  0005h    "select"
  2501.  0006h    "bsd_close"/"so_close" close socket
  2502.  0007h    NOP
  2503.  0008h    "connect" initiate connection on socket
  2504.  0009h    "recv"/"recvfrom" read from socket
  2505.  000Ah    "socket"
  2506.  000Bh    ???
  2507.  000Ch    "gethostbyname"
  2508.  000Dh    "send"/"sendto" write to socket
  2509.  000Eh    ??? (does something to all connections for process)
  2510.  000Fh    "getpid" get process identifier
  2511.  0010h    "gettimeofday"
  2512.  0011h    "bind" assign name to socket
  2513.  0012h    "listen" listen for connections on socket
  2514.  0013h    "accept" accept connection on socket
  2515.  0014h    connect to X server
  2516.  0015h    "gethostbyaddr" get host information for an address
  2517.  0016h    "getprotobyname"
  2518.  0017h    "getprotobynumber"
  2519.  0018h    "getservbyname"
  2520.  0019h    "getservbyport"
  2521.  001Ah    "getsockname" determine name bound to socket
  2522.  001Bh    "getpeername" get name of connected peer
  2523.  001Ch    "getsockopt"/"setsockopt"
  2524.  001Dh    "so_exit"     close all sockets for calling process
  2525.  001Eh    "issock" determine whether file handle references socket
  2526.  001Fh    "so_attach" reattach previously detached socket
  2527.  0020h    "so_detach" temporarily detach socket
  2528.  0021h    get DESQview directory
  2529.  0022h    "NewProc" start new application (see AX=102Ch)
  2530.  0023h    "so_linkup"
  2531.  0024h    canonicalize filename
  2532.  0025h    indirect INT 15h call
  2533.  0026h    Network Manager interface
  2534.  0027h    "so_unlink"    close connection from "so_linkup"
  2535.  0028h    "raisepriority"
  2536.  0029h    "lowerpriority"
  2537.  002Ah    ???
  2538.  FFFFh    "NetExit" (appears to be a NOP)
  2539.  
  2540. Format of DESQview/X socket record:
  2541. Offset    Size    Description    (Table 0389)
  2542.  00h    WORD    signature F0ADh
  2543.  02h    WORD    function number (see #0388)
  2544.  04h    WORD    returned error code (see #0406)
  2545.  06h    WORD    maximum message size??? (usually 0400h)
  2546.  08h    WORD    PSP segment to use or 0000h if socket not valid
  2547.  0Ah    WORD    scratch space (JFT size)
  2548.  0Ch    DWORD    scratch space (JFT address)
  2549.  10h    DWORD    mailbox handle (initialized by function 0000h)
  2550.  14h    DWORD    timer object handle (initialized by function 0000h)
  2551. ---function 0000h---
  2552.  18h    WORD    (return) ???
  2553. ---function 0001h---
  2554.  18h    WORD    (return) status???
  2555.  1Ah 128 BYTEs    (return) ASCIZ hostname (empty string if not on network)
  2556.  9Ah    WORD    maximum length of hostname to return
  2557. ---function 0002h---
  2558.  18h    WORD    (return) status
  2559.  1Ah    WORD    socket's file handle
  2560.  1Ch    WORD    IOCTL function
  2561.         05h "FIONREAD" determine available input
  2562.         06h "FIONBIO" set blocking state of socket
  2563.  1Eh    WORD    (return, subfn 05h) number of bytes available for reading
  2564.         (call, subfn 06h) 0000h blocking, nonzero nonblocking
  2565. ---function 0003h---
  2566.  18h  2 BYTEs    unused
  2567.  1Ah    WORD    delay time in seconds
  2568. ---function 0004h---
  2569.  18h    WORD    (return) result in network (big-endian) byte order
  2570.  1Ah    WORD    value to convert to network byte order
  2571. ---function 0005h---
  2572.  18h    WORD    (return) number of handles meeting the specified conditions???
  2573.  1Ah    WORD    number of file handles in each bitset???
  2574.  1Ch    DWORD    bitset of socket handles to check for readability???
  2575.  20h    DWORD    bitset of socket handles to check for writability???
  2576.  24h    DWORD    bitset of socket handles to check for errors???
  2577.  28h    WORD    timeout in ??? or 0000h to block until some socket ready
  2578.  2Ah    DWORD    ???
  2579.  2Eh    DWORD    ???
  2580. ---function 0006h---
  2581.  18h    WORD    (return) status: 0000h if successful, FFFFh on error
  2582.  1Ah    WORD    socket's file handle
  2583. ---function 0008h---
  2584.  18h    WORD    (return) status: 0000h if successful, FFFFh on error
  2585.  1Ah    WORD    socket's file handle
  2586.  1Ch    WORD    0001h if socket name specified, 0000h if not
  2587.  1Eh    WORD    length of socket name
  2588.  20h  N BYTEs    name of socket to which to connect
  2589. ---function 0009h---
  2590.  18h    WORD    (return) number of bytes actually read, 0000h if connection
  2591.             closed, or FFFFh on error
  2592.  1Ah    WORD    socket's file handle
  2593.  1Ch    WORD    number of bytes to read
  2594.  1Eh    WORD    flags
  2595.  20h    WORD    0000h if no source address desired
  2596.         0001h if source address is to be stored (datagram sockets)
  2597.  22h    WORD    length of source address
  2598.  24h 110 BYTEs    source address
  2599.  92h 1K BYTEs    buffer for data to be read
  2600. ---function 000Ah---
  2601.  18h    WORD    (return) socket's file handle or FFFFh on error
  2602.  1Ah    WORD    address family (0001h,0002h)
  2603.  1Ch    WORD    socket type
  2604.  1Eh    WORD    protocol
  2605. ---function 000Bh---
  2606.  18h    WORD    (return) 0001h if ??? or FFFFh on error
  2607.  1Ah    WORD    socket's file handle
  2608.  1Eh    WORD    (call) ???
  2609. ---function 000Ch---
  2610.  18h 128 BYTEs    buffer containing ASCIZ hostname
  2611.         special case if empty string or "unix"
  2612.  98h    ???    'struct hostent' ???
  2613.  A2h    ???    (return) ???
  2614. ---function 000Dh---
  2615.  18h    WORD    (return) number of bytes actually written or FFFFh on error
  2616.  1Ah    WORD    socket's file handle
  2617.  1Ch    WORD    number of bytes to write
  2618.  1Eh    WORD    number of bytes to follow in subsequent writes???
  2619.  20h    WORD    flags
  2620.  22h    WORD    0000h if no destination specified, 0001h if destination present
  2621.  24h    WORD    ???
  2622.  26h    WORD    length of destination address
  2623.  28h 110 BYTEs    destination address
  2624.  96h 1K BYTEs    buffer containing data to be written
  2625. ---function 000Eh---
  2626.  no additional fields
  2627. ---function 000Fh---
  2628.  18h    DWORD    (return) DESQview task handle of calling process
  2629. ---function 0010h---
  2630.  18h    DWORD    (return) current time
  2631.  1Ch    DWORD    (return) ???
  2632. ---function 0011h---
  2633.  18h    WORD    (return) status: 0000h if successful, FFFFh on error
  2634.  1Ah    WORD    socket's file handle
  2635.  1Ch    WORD    length of name
  2636.  1Eh  N BYTEs    buffer for socket name
  2637. ---function 0012h---
  2638.  18h    WORD    (return) status: 0000h if successful, FFFFh on error
  2639.  1Ah    WORD    socket's file handle
  2640.  1Ch    WORD    maximum backlog of pending connections allowed on socket
  2641. ---function 0013h---
  2642.  18h    WORD    (return) file handle for new connection or FFFFh on error
  2643.  1Ah    WORD    listen()ing socket's file handle
  2644.  1Ch    WORD    (call) length of buffer for connecting entity's address
  2645.         (return) actual length of address
  2646.  1Eh  N BYTEs    buffer for connecting entity's address
  2647. ---function 0014h---
  2648.  18h    WORD    (return) socket's file handle or FFFFh on error
  2649.  1Ah  4 BYTEs    (return) ???
  2650.  1Eh    WORD    (return) ???
  2651.  20h    WORD    (return) ???
  2652.  22h 256 BYTEs    ASCIZ X display name
  2653. 122h    ???
  2654. ---function 0015h---
  2655.  18h    WORD    (call) type of address??? (test for 0001h seen)
  2656.  1Ah    WORD    (call) length of buffer for host address
  2657.  1Ch 110 BYTEs    buffer containing host address
  2658.  8Ah    WORD    (return) offset of official host name???
  2659.  8Ch    WORD    (return) offset of alias list???
  2660.  8Eh    WORD    (return) address type???
  2661.  90h    WORD    (return) length of an address in bytes???
  2662.  92h    WORD    (return) offset of address???
  2663.  9Ah  N BYTEs    (return) ??? buffer for hostname, alias list, and host address
  2664. ---function 0016h---
  2665.  18h    ???    buffer for protocol name???
  2666.  98h    ???
  2667. ---function 0017h---
  2668.  18h    WORD    (call) protocol number???
  2669.  1Ah    WORD    (return) ??? or 0001h
  2670. ---function 0018h---
  2671.  18h 128 BYTEs    buffer containing ???
  2672.  98h 128 BYTEs    buffer containing ???
  2673. 118h    WORD    (return) ???
  2674. ---function 0019h---
  2675.  18h    WORD    length of name???
  2676.  1Ah 128 BYTEs    buffer for name???
  2677.  9Ah    WORD    (return) ???
  2678. ---function 001Ah---
  2679.  18h    WORD    (return) 0000h if successful, FFFFh on error
  2680.  1Ah    WORD    socket's file handle
  2681.  1Ch    WORD    (call) length of buffer for socket name
  2682.         (return) actual length of socket name
  2683.  1Eh  N BYTEs    buffer for socket name
  2684. ---function 001Bh---
  2685.  18h    WORD    (return) status: 0000h if successful, FFFFh on error
  2686.  1Ah    WORD    socket's file handle
  2687.  1Ch    WORD    (call) size of buffer for name
  2688.         (return) actual size of name
  2689.  1Eh  N BYTEs    buffer for peer's name
  2690. ---function 001Ch---
  2691.  18h    WORD    (return) status: 0000h if successful, FFFFh on error
  2692.  1Ah    WORD    direction: 0000h to get, 0001h to set
  2693.  1Ch    WORD    socket's file handle
  2694.  1Eh    WORD    option level
  2695.  20h    WORD    option name
  2696.  22h    WORD    (call) length of buffer for option value
  2697.         (return) actual length of option value
  2698.  24h  N BYTEs    buffer for option value
  2699. ---function 001Dh---
  2700.  no additional fields
  2701. ---function 001Eh---
  2702.  18h    WORD    (return) status: 0000h ??? or 0001h ???
  2703.  1Ah    WORD    file handle which may or may not be a socket
  2704. ---function 001Fh---
  2705.  18h    WORD    (return) file handle or FFFFh on error
  2706.  1Ah    DWORD    (call) pointer to Socket Context Record (see #0407) of a
  2707.             previously detached socket
  2708. ---function 0020h---
  2709.  18h    WORD    (return) status: 0000h if successful or FFFFh on error
  2710.  1Ah    WORD    socket's file handle
  2711.  1Ch    DWORD    (return) pointer to Socket Context Record (see #0407) for
  2712.             the file handle
  2713. ---function 0021h---
  2714.  18h 64 BYTEs    buffer for DESQview startup directory (see AX=DE25h)
  2715. ---function 0022h---
  2716.  18h    DWORD    (return) task handle of new application
  2717.  1Ch    WORD    size of .DVP data
  2718.  1Eh 129 BYTEs    ASCIZ ???
  2719.  9Fh  N BYTEs    .DVP data (see #0295 at AX=102Ch)
  2720. ---function 0023h---
  2721.  18h    WORD    (return) ??? or FFFFh on error
  2722.  1Ah    WORD    socket's file handle???
  2723. ---function 0024h---
  2724.  18h    WORD    (return) DOS error code (see #0811 at INT 21/AH=59h)
  2725.             0000h if successful
  2726.  1Ah 129 BYTEs    ASCIZ filename/pathname
  2727. 11Bh 129 BYTEs    ASCIZ canonicalized filename/pathname (see INT 21/AH=60h)
  2728. ---function 0025h---
  2729.  18h    WORD    value of AX
  2730.  1Ah    WORD    value of BX
  2731.  1Ch    WORD    (call) value of CX for call if AH value other than 12h
  2732.         (call) number of stack parameters if AH value is 12h
  2733.         (return) returned CX for calls other than INT 15/AH=12h
  2734.  1Eh    WORD    value of DX
  2735.  20h    WORD    value of DI
  2736.  22h    WORD    value of SI
  2737.  24h    WORD    value of DS
  2738.  26h    WORD    value of ES
  2739.  28h    WORD    (return) value of FLAGS after call
  2740.  2Ah  N DWORDs    (call) stack parameters for INT 15/AH=12h call
  2741.         (return) stack results from INT 15/AH=12h call
  2742. ---function 0026h---
  2743.  18h    WORD    (call) Network Manager subfunction (see #0390)
  2744.         (return) status???
  2745.  1Ah    WORD    (call) size of parameter data
  2746.         (return) size of returned data
  2747.  1Ch  N BYTEs    (call) parameter data required by call (see #0391,#0392,#0393)
  2748.         (return) result data (see #0401,#0402,#0405)
  2749. ---function 0027h---
  2750.  18h    WORD    (return) status: 0000h if successful, FFFFh on error
  2751.  1Ah    WORD    socket's file handle
  2752. ---functions 0028h,0029h---
  2753.  18h    WORD    (call) file handle for which to set priority low/high
  2754.             FFFFh to change calling task's priority
  2755. ---function 002Ah---
  2756.  no additional fields
  2757.  
  2758. (Table 0390)
  2759. Values for DESQview/X Network Manager subfunction:
  2760.  0004h    "so_exit"???
  2761.  0005h    "gethostbyname"
  2762.  0006h    "gethostname"
  2763.  0009h    "socket"
  2764.  000Dh    "gethostbyaddr"
  2765.  000Fh    "getprotobyname"
  2766.  0010h    get protocol name for protocol number
  2767.  0011h    "getservbyname"
  2768.  0012h    "getservbyport" (see #0394)
  2769.  0013h    "getsockname"??? (see #0395)
  2770.  0016h    ??? (see #0396)
  2771.  0017h    kill Network Manager
  2772.  0018h    "getpeername"??? (see #0397)
  2773.  0019h    ??? (called by socket function 0000h) (see #0398)
  2774.  001Ah    ??? (see #0399)
  2775.  001Bh    "so_linkup" (see #0400)
  2776.  001Dh    get network services (see #0401)
  2777.  001Fh    "getpwuid"
  2778.  0020h    "getpwnam"
  2779.  0021h    "getpwvar"
  2780.  0022h    "crypt"
  2781.  0023h    "so_unlink"
  2782.  0024h    "getlogin" (see #0402)
  2783.  0028h    "sethostent"
  2784.  0029h    "gethostent"
  2785.  002Ah    "soaddhost"
  2786.  002Bh    "soupdatehost"
  2787.  002Ch    "sodeletehost"
  2788.  002Dh    "setservent"
  2789.  002Eh    "getservent"
  2790.  002Fh    "setpwent"
  2791.  0030h    "getpwent" (see #0403)
  2792.  0031h    ???
  2793.  0032h    ???
  2794.  0033h    ???
  2795.  0034h    get IP network number (see #0404)
  2796.  0035h    ??? (pops up Network Manager window)
  2797.  0037h    ???
  2798.  0038h    get machine name and IP address (see #0405)
  2799.  0039h    ???
  2800.  
  2801. Format of Function 0026h/Subfunction 000Fh data:
  2802. Offset    Size    Description    (Table 0391)
  2803.  00h  8 BYTEs    (return) ???
  2804.  
  2805. Format of Function 0026h/Subfunction 0010h data:
  2806. Offset    Size    Description    (Table 0392)
  2807.  00h  2 BYTEs    (return) ???
  2808.  02h    WORD    (return) protocol number
  2809.  04h    WORD    (call) protocol number for which to get name
  2810.  06h    WORD    (return) ???
  2811.  08h    var    (return) ASCIZ protocol name
  2812.  N    var    (return) ASCIZ protocol name
  2813.  
  2814. Format of Function 0026h/Subfunction 0011h data:
  2815. Offset    Size    Description    (Table 0393)
  2816.  00h  8 BYTEs    ???
  2817.  08h    var    (return) ASCIZ protocol name
  2818.     var    (return) ASCIZ ??? name
  2819.     var    (return) ASCIZ ??? name
  2820.  
  2821. Format of Function 0026h/Subfunction 0012h data:
  2822. Offset    Size    Description    (Table 0394)
  2823.  00h  8 BYTEs    (return) ???
  2824.  
  2825. Format of Function 0026h/Subfunction 0013h data:
  2826. Offset    Size    Description    (Table 0395)
  2827.  00h 116 BYTEs    (return) ???
  2828.  
  2829. Format of Function 0026h/Subfunction 0016h data:
  2830. Offset    Size    Description    (Table 0396)
  2831.  00h  4 BYTEs    (return) ???
  2832.  
  2833. Format of Function 0026h/Subfunction 0018h data:
  2834. Offset    Size    Description    (Table 0397)
  2835.  00h 116 BYTEs    (return) ???
  2836.  
  2837. Format of Function 0026h/Subfunction 0019h data:
  2838. Offset    Size    Description    (Table 0398)
  2839.  00h  4 BYTEs    (return) ???
  2840.  04h    DWORD    (return) task handle of ???
  2841.  
  2842. Format of Function 0026h/Subfunction 001Ah data:
  2843. Offset    Size    Description    (Table 0399)
  2844.  00h 38 BYTEs    (return) ???
  2845.  
  2846. Format of Function 0026h/Subfunction 001Bh data:
  2847. Offset    Size    Description    (Table 0400)
  2848.  00h 10 BYTEs    (return) ???
  2849.  
  2850. Format of Function 0026h/Subfunction 001Dh return data [array]:
  2851. Offset    Size    Description    (Table 0401)
  2852.  00h    WORD    ??? or FFFFh if end of array
  2853.  02h  7 BYTEs    ???
  2854.  09h 27 BYTEs    ASCIZ name of service
  2855.  
  2856. Format of Function 0026h/Subfunction 0024h return data:
  2857. Offset    Size    Description    (Table 0402)
  2858.  00h    var    ASCIZ username
  2859.  
  2860. Format of Function 0026h/Subfunction 0030h data:
  2861. Offset    Size    Description    (Table 0403)
  2862.  00h    WORD    (call) UID or 0000h for current user
  2863.         (return) ???
  2864.  02h    WORD    (return) UID
  2865.  04h  6 BYTEs    (return) ???
  2866.  0Ah    var    (return) ASCIZ username
  2867.     var    (return) ASCIZ encrypted password
  2868.     var    (return) ASCIZ initial ("home") directory
  2869.  
  2870. Format of Function 0026h/Subfunction 0034h data:
  2871. Offset    Size    Description    (Table 0404)
  2872.  00h  1-3 BYTEs IP network number of caller's machine (low byte first)
  2873.  
  2874. Format of Function 0026h/Subfunction 0038h return data:
  2875. Offset    Size    Description    (Table 0405)
  2876.  00h    BYTE    ???
  2877.  01h  4 BYTEs    IP address
  2878.  05h    var    ASCIZ machine name
  2879.     ???
  2880.  
  2881. (Table 0406)
  2882. Values for DESQview/X socket error code:
  2883.  0000h    successful
  2884.  0009h    "BADF" bad file handle
  2885.  000Ch    "ENOMEM" out of memory
  2886.  000Eh    "EFAULT" bad address
  2887.  0016h    "EINVAL" invalid argument
  2888.  0018h    "EMFILE" too many open files
  2889.  0020h    "EPIPE" ??? broken pipe
  2890.  0023h    "EWOULDBLOCK" operation cannot be completed at this time
  2891.  0024h    "EINPROGRESS" operation now in progress
  2892.  0026h    "ENOTSOCK" socket invalid
  2893.  0028h    "EMSGSIZE" message too long to send atomically
  2894.  002Ch    "ESOCKTNOSUPPORT" socket type not supported
  2895.  002Fh    "EAFNOSUPPORT" address family not supp. by protocol fam.
  2896.  0031h    "EDOM" argument too large
  2897.  0038h    "EISCONN" socket is already connected
  2898.  0039h    "ENOTCONN" socket is not connected
  2899.  
  2900. Format of DESQview/X Socket Context Record:
  2901. Offset    Size    Description    (Table 0407)
  2902.  00h    DWORD    pointer to next Socket Context Record, 0000h:0000h if last
  2903.  04h    WORD    SFT index for socket, 00FFh if not connected, FFFFh if detached
  2904.  06h    WORD    PSP segment of owner or 0000h
  2905.  08h    WORD    mapping context of owning window (see #0284 at AX=1016h)
  2906.  0Ah  2 BYTEs    ???
  2907.  0Ch    WORD    address family
  2908.  0Eh    WORD    socket type
  2909.  10h    WORD    protocol
  2910.  12h    WORD    socket state
  2911.         0001h created
  2912.         0002h bound
  2913.         0003h listening???
  2914.         0005h connected
  2915.  14h    DWORD    timer object handle
  2916.  18h    DWORD    object handle (mailbox???)
  2917.  1Ch    DWORD    object handle of parent of above object or 0000h:0000h
  2918.  20h    DWORD    pointer to ??? or 0000h
  2919.  24h  6 BYTEs    ???
  2920.  2Ah    WORD    file handle for socket or FFFFh
  2921.  2Ch  2 BYTEs    ???
  2922.  2Eh    WORD    nonzero if socket nonblocking
  2923. ---network connections only---
  2924.  30h  2 BYTEs    ???
  2925.  32h    WORD    ???
  2926.  34h  4 BYTEs    (big-endian) IP address of remote
  2927.  38h  6 BYTEs    ???
  2928. --------Q-15DE2F-----------------------------
  2929. INT 15 - DESQview v2.50+ - "VIDEONOTIFY" - HAS DIRECT WINDOW BEEN ACTIVE?
  2930.     AX = DE2Fh
  2931. Return: BX = status
  2932.         0001h keyboard focus has been given to a direct window since the
  2933.         last call
  2934.         0000h if not
  2935. Notes:    DESQview 2.50-2.53 are distributed as part of DESQview/X v1.00-1.10.
  2936.     Quarterdeck stated that this call would not be available under future
  2937.       versions of DESQview Classic, but it is still present in v2.60
  2938. --------Q-15DE30-----------------------------
  2939. INT 15 - DESQview v2.50+ - "GETDVXVERSION" - GET DESQview/X VERSION
  2940.     AX = DE30h
  2941. Return: BX = version (BH=major, BL=minor) or 0000h if not DESQview/X
  2942. Notes:    DESQview 2.50-2.53 are distributed as part of DESQview/X v1.00-1.10.
  2943.     you must first check the DESQview version to verify that it is 2.50 or
  2944.       greater
  2945. SeeAlso: INT 21/AH=2Bh/CX=4445h
  2946. --------Q-15DE31-----------------------------
  2947. INT 15 - DESQview/X v1.10 - ???
  2948.     AX = DE31h
  2949.     CX = ???
  2950.         0000h ???
  2951.         nonzero ???
  2952.     ???
  2953. Return: ???
  2954. --------b-15DF-------------------------------
  2955. INT 15 - Juko UNIQUE UX BIOS - TURBO MODE CONTROL
  2956.     AH = DFh
  2957.     AL = function
  2958.         00h turn on Turbo mode
  2959.         01h turn off Turbo mode
  2960.         02h set Turbo mode according to hardware switch
  2961. SeeAlso: INT 13/AX=FFFFh
  2962. --------b-15E00F-----------------------------
  2963. INT 15 - Compaq Systempro - MULTIPROCESSOR DISPATCH
  2964.     AX = E00Fh
  2965.     ES:BX -> start of 2nd processor's execution
  2966. Return: AL = status
  2967.         0Fh successful
  2968.         00h failure
  2969. SeeAlso: AX=E10Eh,AX=E200h
  2970. --------b-15E10E-----------------------------
  2971. INT 15 - Compaq Systempro - MULTIPROCESSOR END-OF-DISPATCH
  2972.     AX = E10Eh
  2973.     ES:BX -> start of 2nd processor's execution
  2974. Return: AL = status
  2975.         0Fh successful (halted)
  2976.         00h failure (not halted)
  2977. SeeAlso: AX=E00Fh,AX=E200h
  2978. --------b-15E200-----------------------------
  2979. INT 15 - Compaq Systempro - MULTIPROCESSOR AVAILABLE
  2980.     AX = E200h
  2981. Return: AX bit 15 set if 2nd processor available
  2982. SeeAlso: AX=E00Fh,AX=E10Eh
  2983. --------b-15E4-------------------------------
  2984. INT 15 - Tandy??? - ???
  2985.     AH = E4h
  2986.     AL = subfunction
  2987.         21h, 89h, 8Ah, 8Bh called by 386MAX v6.01
  2988.     DL = ???
  2989. Return: DL = 00h if successful???
  2990. Note:    the section of code in 386MAX which calls these functions also checks
  2991.       whether the ROM BIOS has both Tandy and Phoenix Technologies
  2992.       signatures if these calls fail; the Tandy 1000SL/TL BIOS does not
  2993.       support this function, however, returning the usual CF set/AH=86h for
  2994.       "unsupported function".
  2995. --------b-15E4-------------------------------
  2996. INT 15 - Compaq ROM BIOS 03/08/93 and newer - ???
  2997.     AH = E4h
  2998.     AL = subfunction
  2999.         00h get ???
  3000.         Return: CF clear
  3001.             AH = 00h
  3002.             CX = 0000h
  3003.             BX = ??? (read from [XBDA:0094h])
  3004.         01h,02h unsupported by this ROM version
  3005.         Return: CF set, AH = 86h
  3006.         80h,90h,A0h,B0h,C0h,D0h,E0h,F0h set ???
  3007.         Return: CF clear
  3008.             AH = 00h
  3009.             CX = 0000h
  3010.             BX = ???
  3011.         81h,91h,A1h,B1h,C1h,D1h,E1h,F1h unsupported by 3/8/93&4/8/93 ROMs
  3012.         Return: CF set, AH = 86h
  3013. Notes:    functions 80h/90h/etc. are not supported by the 4/8/93 EISA System ROM
  3014.     these functions are not supported by the 7/26/93 LTE Lite 386 ROM
  3015. --------b-15E800-----------------------------
  3016. INT 15 - Compaq Contura - GET ???
  3017.     AX = E800h
  3018. Return: AX = 0000h
  3019.     BH = 00h
  3020.     BL = ??? (read from port 0C7Ch)
  3021.     CH = ???
  3022.     CL = ???
  3023.     DX = 0000h
  3024. Note:    also supported by 3/8/93 DESKPRO/i and 7/26/93 LTE Lite 386 ROM BIOS
  3025. --------b-15E801-----------------------------
  3026. INT 15 - Compaq Contura - GET ???
  3027.     AX = E801h
  3028. Return: CF clear
  3029.     AX = extended memory in K (read from CMOS locations 30h and 31h)
  3030.     BH = ???
  3031.     BL = ???
  3032.     CX = extended memory in K (read from CMOS locations 17h and 18h)
  3033.     DX = ???
  3034. Note:    also supported by 3/8/93 DESKPRO/i and 7/26/93 LTE Lite 386 ROM BIOS
  3035. --------b-15E802-----------------------------
  3036. INT 15 - Compaq Contura - GET ???
  3037.     AX = E802h
  3038. Return: CF clear
  3039.     AX = 0000h
  3040.     BX = ???
  3041.     CX = 0000h
  3042. Note:    this function is also supported by the LTE Lite 25c, 25E, and 486; not
  3043.       supported by LTE Lite 20 and 25.
  3044. --------m-15F200CX454D-----------------------
  3045. INT 15 - Tandon memory mapper - Tandon MAPPER HARDWARE INITIALISATION CHECK ???
  3046.     AX = F200h
  3047.     CX = 454Dh
  3048. Return: CF clear if hardware already initialised
  3049.         BX = upper RAM areas in use
  3050.         bit 0: C000-C3FF
  3051.         bit 1: C400-C7FF
  3052.         ...
  3053.         bit 11: EC00-EFFF
  3054.     CF set if hardware not initialised yet
  3055. --------B-1600-------------------------------
  3056. INT 16 - KEYBOARD - GET KEYSTROKE
  3057.     AH = 00h
  3058. Return: AH = BIOS scan code
  3059.     AL = ASCII character
  3060. Notes:    on extended keyboards, this function discards any extended keystrokes,
  3061.       returning only when a non-extended keystroke is available
  3062.     the BIOS scan code is usually, but not always, the same as the hardware
  3063.       scan code processed by INT 09.  It is the same for ASCII keystrokes
  3064.       and most unshifted special keys (F-keys, arrow keys, etc.), but
  3065.       differs for shifted special keys.
  3066. SeeAlso: AH=01h,AH=05h,AH=10h,AH=20h,INT 18/AH=00h
  3067. --------B-1601-------------------------------
  3068. INT 16 - KEYBOARD - CHECK FOR KEYSTROKE
  3069.     AH = 01h
  3070. Return: ZF set if no keystroke available
  3071.     ZF clear if keystroke available
  3072.         AH = BIOS scan code
  3073.         AL = ASCII character
  3074. Note:    if a keystroke is present, it is not removed from the keyboard buffer;
  3075.       however, any extended keystrokes which are not compatible with 83/84-
  3076.       key keyboards are removed in the process of checking whether a
  3077.       non-extended keystroke is available
  3078. SeeAlso: AH=00h,AH=11h,AH=21h,INT 18/AH=01h
  3079. --------B-1602-------------------------------
  3080. INT 16 - KEYBOARD - GET SHIFT FLAGS
  3081.     AH = 02h
  3082. Return: AL = shift flags (see #0408)
  3083. SeeAlso: AH=12h,AH=22h,INT 17/AH=0Dh,INT 18/AH=02h
  3084.  
  3085. Bitfields for keyboard shift flags:
  3086. Bit(s)    Description    (Table 0408)
  3087.  7    Insert active
  3088.  6    CapsLock active
  3089.  5    NumLock active
  3090.  4    ScrollLock active
  3091.  3    Alt key pressed (either Alt on 101/102-key keyboards)
  3092.  2    Ctrl key pressed (either Ctrl on 101/102-key keyboards)
  3093.  1    left shift key pressed
  3094.  0    right shift key pressed
  3095. --------B-1603-------------------------------
  3096. INT 16 - KEYBOARD - SET TYPEMATIC RATE AND DELAY
  3097.     AH = 03h
  3098.     AL = subfunction
  3099.         00h set default delay and rate (PCjr and some PS/2)
  3100.         01h increase delay before repeat (PCjr)
  3101.         02h decrease repeat rate by factor of 2 (PCjr)
  3102.         03h increase delay and decrease repeat rate (PCjr)
  3103.         04h turn off typematic repeat (PCjr and some PS/2)
  3104.         05h set repeat rate and delay (AT,PS)
  3105.         BH = delay value (00h = 250ms to 03h = 1000ms)
  3106.         BL = repeat rate (00h=30/sec to 0Ch=10/sec [def] to 1Fh=2/sec)
  3107.         06h get current typematic rate and delay (newer PS/2s)
  3108.         Return: BL = repeat rate (see above)
  3109.             BH = delay (see above)
  3110. Note:    use INT 16/AH=09h to determine whether some of the subfunctions are
  3111.       supported
  3112. SeeAlso: INT 16/AH=09h,AH=29h"HUNTER",AH=2Ah"HUNTER"
  3113. --------B-1604-------------------------------
  3114. INT 16 - KEYBOARD - SET KEYCLICK (PCjr only)
  3115.     AH = 04h
  3116.     AL = keyclick state
  3117.         00h off
  3118.         01h on
  3119. SeeAlso: AH=03h
  3120. --------B-1605-------------------------------
  3121. INT 16 - KEYBOARD - STORE KEYSTROKE IN KEYBOARD BUFFER (AT/PS w enh keybd only)
  3122.     AH = 05h
  3123.     CH = scan code
  3124.     CL = ASCII character
  3125. Return: AL = 00h if successful
  3126.          01h if keyboard buffer full
  3127. Note:    under DESQview, a number of "keystrokes" invoke specific
  3128.       DESQview-related actions when they are read from the keyboard
  3129.       buffer (see #0409)
  3130. SeeAlso: AH=00h,AH=25h"K3",AH=71h,AH=FFh,INT 15/AX=DE10h
  3131.  
  3132. (Table 0409)
  3133. Values for pseudo-keystrokes for DESQview:
  3134.  38FBh or FB00h    switch to next window (only if main menu already popped up)
  3135.  38FCh or FC00h    pop up DESQview main menu
  3136.  38FEh or FE00h    close the current window
  3137.  38FFh or FF00h    pop up DESQview learn menu
  3138. --------B-1605-------------------------------
  3139. INT 16 - KEYBOARD - SELECT KEYBOARD LAYOUT (PCjr only)
  3140.     AH = 05h
  3141.     AL = function
  3142.         01h set keyboard layout to French
  3143.         02h set keyboard layout to German
  3144.         03h set keyboard layout to Italian
  3145.         04h set keyboard layout to Spanish
  3146.         05h set keyboard layout to UK
  3147.         80h check if function supported
  3148.         Return: AL <> 80h if supported
  3149. Return: ???
  3150. Note:    this function is called by the DOS 3.2 KEYBxx.COM
  3151. SeeAlso: AH=92h,AH=A2h
  3152. --------B-1609-------------------------------
  3153. INT 16 - KEYBOARD - GET KEYBOARD FUNCTIONALITY
  3154.     AH = 09h
  3155. Return: AL = supported keyboard functions (see #0410)
  3156. Note:    this function is only available if bit 6 of the second feature byte
  3157.       returned by INT 15/AH=C0h is set
  3158. SeeAlso: AH=03h,AH=0Ah,AH=10h,AH=11h,AH=12h,AH=20h,AH=21h,AH=22h,INT 15/AH=C0h
  3159.  
  3160. Bitfields for supported keyboard functions:
  3161. Bit(s)    Description    (Table 0410)
  3162.  7    reserved
  3163.  6    INT 16/AH=20h-22h supported (122-key keyboard support)
  3164.  5    INT 16/AH=10h-12h supported (enhanced keyboard support)
  3165.  4    INT 16/AH=0Ah supported
  3166.  3    INT 16/AX=0306h supported
  3167.  2    INT 16/AX=0305h supported
  3168.  1    INT 16/AX=0304h supported
  3169.  0    INT 16/AX=0300h supported
  3170. --------B-160A-------------------------------
  3171. INT 16 - KEYBOARD - GET KEYBOARD ID
  3172.     AH = 0Ah
  3173. Return: BX = keyboard ID (see #0411)
  3174. Note:    check return value from AH=09h to determine whether this function is
  3175.       supported
  3176. SeeAlso: AH=09h
  3177.  
  3178. (Table 0411)
  3179. Values for keyboard ID:
  3180.  0000h    no keyboard attached
  3181.  41ABh    Japanese "G" keyboard (translate mode)
  3182.  54ABh    Japanese "P" keyboard (translate mode)
  3183.  83ABh    Japanese "G" keyboard (pass-through mode)
  3184.  84ABh    Japanese "P" keyboard (pass-through mode)
  3185.  90ABh    old Japanese "G" keyboard
  3186.  91ABh    old Japanese "P" keyboard
  3187.  92ABh    old Japanese "A" keyboard
  3188. --------B-1610-------------------------------
  3189. INT 16 - KEYBOARD - GET ENHANCED KEYSTROKE (enhanced kbd support only)
  3190.     AH = 10h
  3191. Return: AH = BIOS scan code
  3192.     AL = ASCII character
  3193. Notes:    if no keystroke is available, this function waits until one is placed
  3194.       in the keyboard buffer
  3195.     the BIOS scan code is usually, but not always, the same as the hardware
  3196.       scan code processed by INT 09.  It is the same for ASCII keystrokes
  3197.       and most unshifted special keys (F-keys, arrow keys, etc.), but
  3198.       differs for shifted special keys.
  3199.     unlike AH=00h, this function does not discard extended keystrokes
  3200.     INT 16/AH=09h can be used to determine whether this function is
  3201.       supported, but only on later model PS/2s
  3202. SeeAlso: AH=00h,AH=09h,AH=11h,AH=20h
  3203. --------B-1611-------------------------------
  3204. INT 16 - KEYBOARD - CHECK FOR ENHANCED KEYSTROKE (enh kbd support only)
  3205.     AH = 11h
  3206. Return: ZF set if no keystroke available
  3207.     ZF clear if keystroke available
  3208.         AH = BIOS scan code
  3209.         AL = ASCII character
  3210. Notes:    if a keystroke is available, it is not removed from the keyboard buffer
  3211.     unlike AH=01h, this function does not discard extended keystrokes
  3212.     some versions of the IBM BIOS Technical Reference erroneously report
  3213.       that CF is returned instead of ZF
  3214.     INT 16/AH=09h can be used to determine whether this function is
  3215.       supported, but only on later model PS/2s
  3216. SeeAlso: AH=01h,AH=09h,AH=10h,AH=21h
  3217. --------B-1612-------------------------------
  3218. INT 16 - KEYBOARD - GET EXTENDED SHIFT STATES (enh kbd support only)
  3219.     AH = 12h
  3220. Return: AL = shift flags 1 (same as returned by AH=02h) (see #0412)
  3221.     AH = shift flags 2 (see #0413)
  3222. Notes:    AL bit 3 set only for left Alt key on many machines
  3223.     AH bits 7 through 4 always clear on a Compaq SLT/286
  3224.     INT 16/AH=09h can be used to determine whether this function is
  3225.       supported, but only on later model PS/2s
  3226. SeeAlso: AH=02h,AH=09h,AH=22h,AH=51h,INT 17/AH=0Dh
  3227.  
  3228. Bitfields for keyboard shift flags 1:
  3229. Bit(s)    Description    (Table 0412)
  3230.  7    Insert active
  3231.  6    CapsLock active
  3232.  5    NumLock active
  3233.  4    ScrollLock active
  3234.  3    Alt key pressed (either Alt on 101/102-key keyboards)
  3235.  2    Ctrl key pressed (either Ctrl on 101/102-key keyboards)
  3236.  1    left shift key pressed
  3237.  0    right shift key pressed
  3238.  
  3239. Bitfields for keyboard shift flags 2:
  3240. Bit(s)    Description    (Table 0413)
  3241.  7    SysReq key pressed (SysReq is often labeled SysRq)
  3242.  6    CapsLock pressed
  3243.  5    NumLock pressed
  3244.  4    ScrollLock pressed
  3245.  3    right Alt key pressed
  3246.  2    right Ctrl key pressed
  3247.  1    left Alt key pressed
  3248.  0    left Ctrl key pressed
  3249. --------J-1613-------------------------------
  3250. INT 16 - DOS/V - DOUBLE-BYTE CHARACTER SET SHIFT CONTROL
  3251.     AH = 13h
  3252.     AL = function
  3253.         00h set shift status
  3254.         DX = shift status (see #0414), must preserve internal status
  3255.               bits
  3256.         01h get shift status
  3257.         Return: DX = current shift status (see #0414)
  3258. Note:    these functions are supplied by the Japanese Front-End Processor
  3259. SeeAlso: AH=14h,INT 21/AX=6301h
  3260.  
  3261. Bitfields for DOS/V shift status:
  3262. Bit(s)    Description    (Table 0414)
  3263.  0    full-size rather than half-size
  3264.  2-1    character input mode
  3265.     00 alphanumeric, 01 Katakana, 10 Hiragana, 11 unused
  3266.  5-3    internal status
  3267.  6    Romaji enabled
  3268.  7    Katakana to Kanji conversion enabled
  3269.  15-8    internal status
  3270. --------J-1614-------------------------------
  3271. INT 16 - DOS/V - SHIFT STATUS DISPLAY CONTROL
  3272.     AH = 14h
  3273.     AL = function
  3274.         00h enable display
  3275.         01h disable display
  3276.         02h get display state
  3277.         Return: AL = current state (00h enabled, 01h disabled)
  3278. Desc:    control the screen-bottom shift status row(s) for the Japanese
  3279.       Front-End Processor
  3280. SeeAlso: AH=13h,INT 10/AH=19h,INT 10/AH=1Dh
  3281. --------B-1620-------------------------------
  3282. INT 16 - KEYBOARD - GET 122-KEY KEYSTROKE (122-key kbd support only)
  3283.     AH = 20h
  3284. Return: AH = BIOS scan code (see AH=10h for details)
  3285.     AL = ASCII character
  3286. Note:    use AH=09h to determine whether this function is supported
  3287. SeeAlso: AH=00h,AH=09h,AH=10h,AH=21h,AH=22h
  3288. --------b-1620------------------------------------
  3289. INT 16 - HUNTER 16 - SET TEMPORARY SHIFT
  3290.     AH = 20h
  3291.     AL = shift status (see #0415)
  3292. Notes:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  3293.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  3294.     the user can override the specified settings by pressing the keys
  3295.  
  3296. Bitfields for HUNTER 16 shift status:
  3297. Bit(s)    Description    (Table 0415)
  3298.  4    Scroll Lock on
  3299.  5    Num Lock on
  3300.  6    Caps Lock on
  3301. --------K-1620-------------------------------
  3302. INT 16 O - K3 v1.5+, K3PLUS v5.0+ - GET EXTENDED BUFFER STATE
  3303.     AH = 20h
  3304. Return: AX = K3 version
  3305.     ES:BX -> extended keyboard buffer start
  3306.     ES:DX -> extended keyboard buffer end
  3307.     ES:SI -> next keystroke
  3308.     ES:DI -> last keystroke in buffer
  3309.     CX = number of keystrokes in buffer
  3310. Program: K3PLUS is an enhancement by Matthias Paul and Axel C. Frinke of the
  3311.       K3 extended German keyboard driver by Martin Gerdes published in c't
  3312.       magazine in 1988
  3313. Note:    this function is normally unsupported under K3PLUS v6.0+; use AX=AF20h
  3314.       instead
  3315. SeeAlso: AH=25h"K3",AX=AF20h
  3316. --------B-1621-------------------------------
  3317. INT 16 - KEYBOARD - CHECK FOR 122-KEY KEYSTROKE (122-key kbd support only)
  3318.     AH = 21h
  3319. Return: ZF set if no keystroke available
  3320.     ZF clear if keystroke available
  3321.         AH = BIOS scan code
  3322.         AL = ASCII character
  3323. Notes:    use AH=09h to determine whether this function is supported
  3324.     some versions of the IBM BIOS Technical Reference erroneously report
  3325.       that CF is returned instead of ZF
  3326. SeeAlso: AH=01h,AH=09h,AH=11h,AH=20h,AH=21h
  3327. --------b-1621------------------------------------
  3328. INT 16 - HUNTER 16 - CONTROL SHIFT KEYS
  3329.     AH = 21h
  3330.     AL = shift keys to control (see #0408)
  3331.     BL = shift state for disabled keys
  3332. Note:    If a bit in AL is set the key is disabled and set to the state of the
  3333.       corresponding bit in BL
  3334. SeeAlso: AH=20h"HUNTER",AH=22h"HUNTER"
  3335. --------B-1622-------------------------------
  3336. INT 16 - KEYBOARD - GET 122-KEY SHIFT STATUS (122-key kbd support only)
  3337.     AH = 22h
  3338. Return: AL = shift flags 1 (see #0412)
  3339.     AH = shift flags 2 (see #0413)
  3340. Note:    use AH=09h to determine whether this function is supported
  3341. SeeAlso: AH=02h,AH=09h,AH=12h,AH=20h,AH=21h
  3342. --------b-1622------------------------------------
  3343. INT 16 - HUNTER 16 - CONTROL CTRL-ALT-DEL
  3344.     AH = 22h
  3345.     AL = new Ctrl-Alt-Del state (00h enabled, nonzero disabled)
  3346.     BX = 0708h
  3347.     CX = 0910h
  3348.     DX = 1112h
  3349. Return: AL = 00h if successful
  3350. SeeAlso: AH=21h"HUNTER",AH=23h"HUNTER",AH=2Ah
  3351. --------b-1623------------------------------------
  3352. INT 16 - HUNTER 16 - CONTROL EMERGENCY BREAKOUT
  3353.     AH = 23h
  3354.     AL = new state of breakout (00h enabled, nonzero disabled)
  3355.     BX = 0708h   
  3356.     CX = 0910h
  3357.     DX = 1112h
  3358. Return: AL = 00h if successful
  3359. Desc:    Enables or disables the emergency breakout feature, where the
  3360.       Hunter 16 at power on checks whether the X and P keys are pressed.
  3361.       If so the machine will boot rather than continue the running program
  3362. SeeAlso: AH=22h"HUNTER"
  3363. --------b-1624------------------------------------
  3364. INT 16 - HUNTER 16 - REDEFINE KEY CODES
  3365.     AH = 24h
  3366.     AL = Matrix Code (see #0416)
  3367.     BL = new Key code
  3368. Return: AL = status (00h successful, nonzero failed)
  3369. SeeAlso: AH=2Bh,AH=2Ch
  3370.  
  3371. (Table 0416)
  3372. Values for HUNTER 16 Matrix Code:
  3373.  Code  Key        Code    Key        Code    Key
  3374.  00h   Esc key        1Eh    Space        3Bh    L
  3375.  01h   1        21h    0        3Ch    ,
  3376.  02h   Q        22h    -        3Eh    Right shift
  3377.  03h   Tab        23h    '        42h    8
  3378.  04h   Num Lock        24h    Keypad 4    43h    7
  3379.  05h   \        25h    Enter        44h    U
  3380.  08h   LShift        26h    Keypad 7    45h    I
  3381.  09h   Ctrl        27h    .        46h    J
  3382.  0Ah   "Paw" key    28h    Keypad 1    47h    K
  3383.  0Bh   2        29h    Keypad 0    48h    M
  3384.  0Ch   W        2Ch    =        49h    N 
  3385.  0Dh   A        2Dh    Backspace    4Ah    /
  3386.  0Eh   S        2Eh    Keypad 8    4Dh    6
  3387.  0Fh   Z        2Fh    Keypad 9    4Eh    5
  3388.  11h   Alt        30h    Keypad 5    4Fh    T
  3389.  16h   4        31h    Keypad 6    50h    Y
  3390.  17h   3        32h    Keypad 2    51h    G
  3391.  18h   E        33h    Keypad 3    52h    H
  3392.  19h   R        34h    Keypad .    53h    B
  3393.  1Ah   D        37h    9        54h    V
  3394.  1Bh   F        38h    O        55h    #
  3395.  1Ch   X        39h    P        58h    Pwr
  3396.  1Dh   C        3Ah    ;        59h    Shift Pwr
  3397. --------b-1625------------------------------------
  3398. INT 16 - HUNTER 16 - RESET KEYBOARD
  3399.     AH = 25h
  3400. Return: AL = 00h
  3401. Desc:    restores the standard keyboard layout after any remapping
  3402. SeeAlso: AH=24h,AH=2Bh,AH=2Ch
  3403. --------K-1625-------------------------------
  3404. INT 16 O - K3 v1.5+, K3PLUS v5.0+ - COPY INTO EXTENDED BUFFER
  3405.     AH = 25h
  3406.     CX = number of keystrokes to copy
  3407.     ES:SI -> buffer containing keystrokes
  3408. Return: CF clear if successful
  3409.     CF set on error (i.e. buffer full)
  3410.         CX = number of keystrokes NOT transferred
  3411.         ES:SI -> first keystroke not transferred
  3412. Note:    this function is normally unsupported under K3PLUS v6.0+; use AX=AF20h
  3413.       instead
  3414. SeeAlso: AH=05h,AH=20h"K3",AX=AF25h
  3415. --------b-1626------------------------------------
  3416. INT 16 - HUNTER 16 - CONTROL KEYCLICK
  3417.     AH = 26h
  3418.     AL = new state of keyclicks (00h disabled, 01h enabled)
  3419. Return: AL = 00h
  3420. SeeAlso: AH=2Ah
  3421. --------b-1627------------------------------------
  3422. INT 16 - HUNTER 16 - CONTROL SCREEN DUMP AREA
  3423.     AH = 27h
  3424.     AL = what to dump
  3425.         00h whole (virtual) window
  3426.         01h LCD window only
  3427. Return: AL = 00h
  3428. Desc:    control whether printscren dumps the whole 80x25 screen or only the
  3429.       part displayed in the LCD window
  3430. Note:    the Hunter 16 has a 240x64 LCD display which serves as a window into
  3431.       a 640x200 virtual screen
  3432. --------b-1629------------------------------------
  3433. INT 16 - HUNTER 16 - GET KEY REPEAT
  3434.     AH = 29h
  3435. Return: BL = Typematic rate (characters per second) (see #0417)
  3436.     BH = delay (00h = 250ms, 01h = 500ms, 02h = 750ms, 03h = 1s)
  3437. SeeAlso: AH=03h,AH=2Ah
  3438.  
  3439. (Table 0417)
  3440. Values for HUNTER 16 Typematic rate:
  3441.  00h    30.0     08h    15.0     10h    7.5     18h    3.7
  3442.  01h    26.7     09h    13.3     11h    6.7     19h    3.3
  3443.  02h    24.0     0Ah    12.0     12h    6.0     1Ah    3.0
  3444.  03h    21.8     0Bh    10.9     13h    5.5     1Bh    2.7
  3445.  04h    20.0     0Ch    10.0     14h    5.0     1Ch    2.5
  3446.  05h    18.5     0Dh     9.2     15h    4.6     1Dh    2.3
  3447.  06h    17.1     0Eh     8.6     16h    4.3     1Eh    2.1
  3448.  07h    16.0     0Fh     8.0     17h    4.0     1Fh    2.0
  3449. SeeAlso: AH=2Ah
  3450. --------b-162A------------------------------------
  3451. INT 16 - HUNTER 16 - CONTROL KEY REPEAT
  3452.     AH = 2Ah
  3453.     AL = new state of keyboard autorepeat (00h disabled, 01h enabled)
  3454. SeeAlso: AH=03h,AH=26h,AH=29h,AH=2Bh
  3455. --------b-162B------------------------------------
  3456. INT 16 - HUNTER 16 - REDEFINE KEY SCAN CODES
  3457.     AH = 2Bh
  3458.     AL = which key table to redefine
  3459.         00h unshifted
  3460.         01h shifted
  3461.         02h Numlock
  3462.     BH = standard scan code of key (00h-80h)
  3463.     BL = new scan code
  3464. Desc:    redefine the generated scan code from BH to BL
  3465. SeeAlso: AH=24h,AH=2Ah,AH=2Ch
  3466. --------b-162C------------------------------------
  3467. INT 16 - HUNTER 16 - REDEFINE RAW KEY CODES
  3468.     AH = 2Ch
  3469.     AL = Matrix code of key (see AH=29h)
  3470.     BL = new key code
  3471. Return: AL = status (00h success, nonzero failed)
  3472. Desc:    redefine the key code generated by holding the PAW key down and
  3473.       pressing the key in AL
  3474. SeeAlso: AH=24h,AH=2Bh
  3475. --------b-162D------------------------------------
  3476. INT 16 - HUNTER 16 - CONTROL BREAK KEYS
  3477.     AH = 2Dh
  3478.     AL = enabled break keys
  3479.         bit 0 Ctrl-C
  3480.         bit 1 Ctrl-Break
  3481.     BX = 0708h
  3482.     CX = 0910h
  3483.     DX = 1112h
  3484. Return: AL = status (00h success, FFh failed)
  3485. SeeAlso: AH=21h"HUNTER"
  3486. --------U-163577-----------------------------
  3487. INT 16 U - TextWare TWTSR - API
  3488.     AX = 3577h
  3489.     CX = function
  3490.         00CBh ???
  3491.         Return: AX = 0000h
  3492.             BX = 0000h
  3493.             DX:CX -> ???
  3494.         00CCh uninstall
  3495.         Return: AX = status
  3496.                 0000h successful
  3497.                 FFFDh unable to unload because vectors taken
  3498.         00CDh ???
  3499.         Return: AX = 0000h
  3500.             BX = 0000h
  3501.             DX:CX -> ???
  3502.         other
  3503.         Return: AX = 5345h ('SE')
  3504. Program: TWTSR is a TSR which allows the TextWare hypertext browser to be
  3505.       popped up via hotkey
  3506. SeeAlso: AX=D724h
  3507. --------U-164252-----------------------------
  3508. INT 16 - TEXTCAP 2.0 - INSTALLATION CHECK
  3509.     AX = 4252h
  3510. Return: AX = 5242h if installed
  3511. Program: TEXTCAP 2.0 is a heavily modified (by Gisbert W. Selke) version of the
  3512.       PC Magazine utility CAPTURE written by Tom Kihlken
  3513. SeeAlso: AX=4253h,AX=4254h
  3514. --------U-164253-----------------------------
  3515. INT 16 - TEXTCAP 2.0 - UNINSTALL
  3516.     AX = 4253h
  3517. Return: AX = segment of resident code
  3518. Notes:    the uninstall code does not check whether interrupt vectors have been
  3519.       chained by other programs
  3520.     the caller must free the main memory block (using the returned segment)
  3521. SeeAlso: AX=4252h,AX=4254h
  3522. --------U-164254-----------------------------
  3523. INT 16 - TEXTCAP 2.0 - DUMP TEXT SCREEN TO FILE
  3524.     AX = 4254h
  3525. Return: AX = status
  3526.         4254h if screen dump will be written as soon as disk becomes idle
  3527.         5442h if screen dump written
  3528. SeeAlso: AX=4252h,AX=4253h
  3529. --------e-164500-----------------------------
  3530. INT 16 - Shamrock Software EMAIL - GET STATUS
  3531.     AX = 4500h
  3532.     DL = port number (01h = COM1)
  3533.     ES:BX -> 13-byte buffer for ASCIZ name
  3534. Return: AX = 4D00h if EMAIL installed on specified port
  3535.         ES:BX -> "" if no connection
  3536.           -> "*" if connection but caller has not identified name
  3537.           -> name otherwise
  3538.         CX = version (CH = major, CL = minor)
  3539.         DL = privilege level of user (00h = guest)
  3540.         DH = chosen language (00h German, 01h English)
  3541. SeeAlso: AX=4501h,AX=4502h
  3542. --------e-164501-----------------------------
  3543. INT 16 - Shamrock Software EMAIL - GET ELAPSED ONLINE TIME AND MAXIMUM TIME
  3544.     AX = 4501h
  3545.     DL = port number (01h = COM1)
  3546. Return: AX = 4D00h if EMAIL installed on specified port
  3547.         BX = maximum connect time in clock ticks
  3548.         CX = maximum connect time for guests (without name) in clock ticks
  3549.         DX = elapsed connect time of current user in clock ticks
  3550. SeeAlso: AX=4500h
  3551. --------e-164502-----------------------------
  3552. INT 16 - Shamrock Software EMAIL - GET CURRENT COMMUNICATIONS PARAMETERS
  3553.     AX = 4502h
  3554.     DL = port number (01h = COM1)
  3555. Return: AX = 4D00h if EMAIL installed on specified port
  3556.         BL = current value of serial port's Line Control Register
  3557.         BH = flags (see #0418)
  3558.         CX = selected country code (33 = France, 49 = Germany, etc)
  3559.         DX = baudrate divisor (115200/DX = baudrate)
  3560. SeeAlso: AX=4500h
  3561.  
  3562. Bitfields for Shamrock Software EMAIL flags:
  3563. Bit(s)    Description    (Table 0418)
  3564.  0    ISO code
  3565.  1    pause
  3566.  2    linefeed
  3567.  3    ANSI sequences
  3568. --------e-164503-----------------------------
  3569. INT 16 - Shamrock Software EMAIL - SPECIFY COMMAND-WORD FOR USER FUNCTION
  3570.     AX = 4503h
  3571.     DL = port number (01h = COM1)
  3572.     DH = maximum execution time in clock ticks (00h = 5 seconds)
  3573.     ES:BX -> ASCIZ string with new user command-word
  3574. Return: AX = 4D00h if EMAIL installed on specified port
  3575. Notes:    a single user command (consisting of only uppercase letters and digits)
  3576.       may be defined, and remains valid until it is overwritten or the
  3577.       EMAIL program terminates; the user command must be activated by
  3578.       calling AX=4504h at least once.
  3579.     an existing command word may be redefined with this function
  3580. SeeAlso: AX=4504h,AX=4505h
  3581. --------e-164504-----------------------------
  3582. INT 16 - Shamrock Software EMAIL - CHECK FOR USER FUNCTION COMMAND-WORD
  3583.     AX = 4504h
  3584.     DL = port number (01h = COM1)
  3585.     ES:BX -> 80-byte buffer for ASCIZ user input line
  3586. Return: AX = 4D00h if EMAIL installed on specified port
  3587.         DL = flags
  3588.         bit 0: user function supported (always set)
  3589.         bit 1: user entered user-function command word
  3590.         if DL bit 1 set,
  3591.         ES:BX buffer contains line entered by user which begins with
  3592.             the defined command word and has been converted to all
  3593.             caps
  3594. Note:    caller must process the returned commandline and invoke AX=4505h
  3595.       within five seconds with the result of that processing
  3596. SeeAlso: AX=4503h,AX=4505h
  3597. --------e-164505-----------------------------
  3598. INT 16 - Shamrock Software EMAIL - SEND RESULT OF USER FUNCTION
  3599.     AX = 4505h
  3600.     DL = port number (01h = COM1)
  3601.     DH = error flag
  3602.         bit 3: set on error
  3603.     ES:BX -> ASCIZ text to return to user, max 1024 bytes
  3604. Return: AH = 4Dh if EMAIL installed on specified port
  3605.     AL = status
  3606.         00h successful
  3607.         02h unable to perform function (timeout, prev call not complete)
  3608.         other error
  3609. Notes:    if the error flag in DH is set, the string is not sent and an error
  3610.       message is generated instead; if this function is not called within
  3611.       five seconds of AX=4504h, EMAIL automatically generates an error
  3612.       message
  3613.     the string is copied into an internal buffer, allowing this function's
  3614.       caller to continue immediately
  3615. SeeAlso: AX=4503h,AX=4504h,INT 17/AX=2400h
  3616. --------e-164506-----------------------------
  3617. INT 16 - Shamrock Software EMAIL - MONITOR XMODEM DOWNLOAD
  3618.     AX = 4506h
  3619.     DL = port number (01h = COM1)
  3620.     ES:BX -> 13-byte buffer for ASCIZ filename
  3621. Return: AX = 4D00h if EMAIL installed on specified port
  3622.         DH = Xmodem status
  3623.         00h no XGET command given
  3624.         01h XGET in progress
  3625.         02h XGET completed successfully
  3626.         ES:BX buffer filled with last filename given to XGET command
  3627.         (without path)
  3628. Note:    DH=02h will only be returned once per XGET; subsequent calls will
  3629.       return DH=00h
  3630. SeeAlso: AX=4500h,INT 17/AX=2408h
  3631. --------K-164D4F-----------------------------
  3632. INT 16 - M16_KBD.COM v5.6 - INSTALLATION CHECK
  3633.     AX = 4D4Fh
  3634. Return: AX = 6F6Dh if installed
  3635.         ES = segment of resident code
  3636. Program: M16_KBD is a shareware Cyrillic keyboard driver by I.V. Morozov
  3637. SeeAlso: INT 10/AX=1130h/BX=4D4Fh
  3638. --------J-165000-----------------------------
  3639. INT 16 - KEYBOARD - AX PC - SET KEYBOARD COUNTRY CODE
  3640.     AX = 5000h
  3641.     BX = country code
  3642.         0001h USA (English), 0051h Japan
  3643. Return: AL = status
  3644.         00h successful
  3645.         01h bad country code
  3646.         02h other error
  3647. SeeAlso: AX=5001h,INT 10/AX=5000h,INT 17/AX=5000h
  3648. --------J-165001-----------------------------
  3649. INT 16 - KEYBOARD - AX PC - GET KEYBOARD COUNTRY CODE
  3650.     AX = 5001h
  3651. Return: AL = status
  3652.         00h successful
  3653.         BX = country code
  3654.         02h error
  3655. SeeAlso: AX=5000h,INT 10/AX=5001h,INT 17/AX=5001h
  3656. --------J-1651-------------------------------
  3657. INT 16 - KEYBOARD - AX PC - READ SHIFT KEY STATUS
  3658.     AH = 51h
  3659. Return: AL = standard shift key states (see #0408,#0412)
  3660.     AH = Kana lock (00h off, 01h on)
  3661. SeeAlso: AH=02h,AH=12h,AH=22h
  3662. --------t-165453BX5242-----------------------
  3663. INT 16 - TSRBONES - INSTALLATION CHECK
  3664.     AX = 5453h ('TS')
  3665.     BX = 5242h ('RB')
  3666.     CX = 4F4Eh ('ON')
  3667.     DX = 4553h ('ES')
  3668. Return: AX = 4553h if installed
  3669.     BX = 4F4Eh if installed
  3670.     CX = 5242h if installed
  3671.     DX = 5453h if installed
  3672. Program: TSRBONES is a skeletal TSR framework by Robert Curtis Davis
  3673. Note:    these values are the default as the TSRBONES package is distributed,
  3674.       but will normally be changed when implementing an actual TSR with
  3675.       the TSRBONES skeleton
  3676. SeeAlso: INT 2D"AMIS"
  3677. --------A-165500-----------------------------
  3678. INT 16 C - Microsoft Word internal - MICROSOFT WORD COOPERATION WITH TSR
  3679.     AX = 5500h
  3680. Return: AX = 4D53h ('MS') if keyboard TSR present
  3681. Notes:    during startup, Microsoft Word tries to communicate with any TSRs
  3682.       that are present through this call.
  3683.     if the return is not 4D53h, Word installs its own INT 09 and INT 16
  3684.       handlers; otherwise it assumes that the TSR will handle the keyboard
  3685. SeeAlso: INT 1A/AX=3601h
  3686. --------A-1655FEDX0000-----------------------
  3687. INT 16 CU - Microsoft QBASIC internal - MICROSOFT COOPERATION WITH TSR???
  3688.     AX = 55FEh
  3689.     DX = 0000h
  3690.     ES:BX -> ??? function
  3691.     ES:CX -> ??? structure
  3692. Return: AX = result
  3693.         4D4Bh only the INT 1B handler will be installed.
  3694.         <> 4D4Bh handlers for INT 08, INT 09, INT 16, INT 1B, and
  3695.           INT 1C are installed
  3696. Notes:    The pointer in ES:CX seems to point at a structure defining a callback
  3697.       function when new keyboard keys are pressed. If a TSR returns
  3698.       AX=4D4Bh, QBASIC will stop (with IRQ's and interrupts enabled).
  3699. SeeAlso: INT 16/AX=5500h,INT 1A/AX=3601h
  3700. --------U-1655FF-----------------------------
  3701. INT 16 - Swap Utilities - ???
  3702.     AX = 55FFh
  3703.     BX >= 0004h
  3704.     CX = function
  3705.         0000h set ??? flag
  3706.         other clear ??? flag
  3707. Note:    present in SWAPSH and SWAPDT v1.77j, distributed with PC Tools v7, as
  3708.       well as the Trusted Access SCRNBLNK.COM; this may be part of the
  3709.       standard TesSeRact library
  3710. SeeAlso: INT 2F/AX=5453h
  3711. --------c-165758BX4858-----------------------
  3712. INT 16 U - Netroom CACHECLK - INSTALLATION CHECK
  3713.     AX = 5758h
  3714.     BX = 4858h ('HX')
  3715.     DX = 4443h ('DC')
  3716.     CX <> 5758h
  3717. Return: BX = 6878h if installed
  3718.     CX = 6463h if installed
  3719.         AX = code segment of TSR
  3720.         CX = internal version??? (v3.00 returns 0100h)
  3721. Program: CACHECLK is a "cloaked" disk cache included with Netroom
  3722. Notes:    if CX=5758h on entry, CACHECLK returns with all registers unchanged
  3723.     the cache statistics are located early in the segment pointed at by
  3724.       AX on return
  3725. SeeAlso: INT 2F/AX=5758h
  3726. ----------165758BX5754-----------------------
  3727. INT 16 U - Netroom ??? - ???
  3728.     AX = 5758h
  3729.     BX = 5754h
  3730.     ???
  3731. Return: ???
  3732. ----------165758BX5755-----------------------
  3733. INT 16 U - Netroom ??? - ???
  3734.     AX = 5758h
  3735.     BX = 5755h
  3736.     DS:SI -> ???
  3737. Return: ???
  3738. ----------165758BX5756-----------------------
  3739. INT 16 U - Netroom ??? - INSTALLATION CHECK
  3740.     AX = 5758h
  3741.     BX = 5756h
  3742. Return: BX <> 5756h if installed
  3743. --------m-165758BX5858-----------------------
  3744. INT 16 U - Netroom PRENET - GET OLD INTERRUPT VECTORS
  3745.     AX = 5758h
  3746.     BX = 5858h
  3747. Return: CF clear
  3748.     DX:BX -> saved copy of interrupt vector table
  3749. Note:    the installation check consists of calling this function and comparing
  3750.       BX against 5858h on return; if it has changed, PRENET is installed
  3751. SeeAlso: AX=5758h/BX=5859h
  3752. Index:    installation check;Netroom PRENET
  3753. --------m-165758BX5859-----------------------
  3754. INT 16 U - Netroom POSTNET - GET OLD INTERRUPT VECTORS
  3755.     AX = 5758h
  3756.     BX = 5859h
  3757. Return: CF clear
  3758.     DX:BX -> saved copy of interrupt vector table
  3759. Note:    the installation check consists of calling this function and comparing
  3760.       BX against 5859h on return; if it has changed, POSTNET is installed
  3761. SeeAlso: AX=5758h/BX=5858h
  3762. Index:    installation check;Netroom POSTNET
  3763. --------U-166969BX6968-----------------------
  3764. INT 16 - PC Tools v5.1+ BACKTALK - UNHOOK
  3765.     AX = 6969h
  3766.     BX = 6968h
  3767. Return: resident code unhooked, but not removed from memory
  3768. Index:    uninstall;BACKTALK
  3769. --------U-166969BX6969-----------------------
  3770. INT 16 - PC Tools v5.1+ BACKTALK - INSTALLATION CHECK
  3771.     AX = 6969h
  3772.     BX = 6969h
  3773.     DX = 0000h
  3774. Return: DX nonzero if installed
  3775.         BX = CS of resident code
  3776.         DX = PSP segment of resident code
  3777.         DS:SI -> ASCIZ identification string "CPoint Talk"
  3778. --------i-166A6B-----------------------------
  3779. INT 16 U - FastJuice - DISABLE/UNLOAD???
  3780.     AX = 6A6Bh
  3781. Return: ???
  3782. Program: FastJuice is a resident battery-power monitor by SeaSide Software
  3783. SeeAlso: AX=7463h
  3784. Index:    uninstall;FastJuice
  3785. --------G-166C63-----------------------------
  3786. INT 16 U - TMED v1.6a - INSTALLATION CHECK
  3787.     AX = 6C63h ('lc')
  3788. Return: AX = 4C43h ('LC') if installed
  3789. Program: TMED is a freeware resident memory editor by Liang Chen
  3790. --------b-166F00BX0000-----------------------
  3791. INT 16 - HP HIL Vectras - HP HIL Extended BIOS INSTALLATION CHECK
  3792.     AX = 6F00h
  3793.     BX = 0000h
  3794. Return: BX = 4850h if present
  3795. Notes:    called by recent MS Mouse drivers looking for an HP-HIL mouse
  3796.     supported by ES, QS, and RS series HP Vectras
  3797. SeeAlso: AX=6F0Dh
  3798. --------b-166F0D-----------------------------
  3799. INT 16 - HP HIL Vectras - GET HIL Extended BIOS INTERRUPT NUMBER
  3800.     AX = 6F0Dh
  3801. Return: AH = interrupt number (default 6Fh, 02h means 6Fh as well)
  3802. Note:    called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL
  3803.       input system
  3804. SeeAlso: AX=6F0Eh,INT 6F"HP"
  3805. --------b-166F0E-----------------------------
  3806. INT 16 - HP HIL Vectras - SET HIL Extended BIOS INTERRUPT NUMBER
  3807.     AX = 6F0Eh
  3808.     BL = new interrupt number (60h-6Fh,78h-7Fh)
  3809. Return: AH = status (00h = successful)
  3810. Desc:    allows the HIL Extended BIOS software to use a non-default interrupt
  3811.       number in case of an interrupt conflict with another application
  3812. Note:    called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL
  3813.       input system
  3814. SeeAlso: AX=6F0Dh,INT 6F"HP"
  3815. --------K-1670-------------------------------
  3816. INT 16 - FAKEY.COM - INSTALLATION CHECK
  3817.     AH = 70h
  3818. Return: AX = 1954h if installed
  3819. Program: FAKEY is a keystroke faking utility by System Enhancement Associates
  3820. --------K-1671-------------------------------
  3821. INT 16 - FAKEY.COM - PUSH KEYSTROKES
  3822.     AH = 71h
  3823.     CX = number of keystrokes
  3824.     DS:SI -> array of words containing keystrokes to be returned by AH=00h
  3825. Program: FAKEY is a keystroke faking utility by System Enhancement Associates
  3826. SeeAlso: AH=05h,AH=72h
  3827. --------K-1672-------------------------------
  3828. INT 16 - FAKEY.COM - CLEAR FAKED KEYSTROKES
  3829.     AH = 72h
  3830. Program: FAKEY is a keystroke faking utility by System Enhancement Associates
  3831. SeeAlso: AH=71h
  3832. --------K-1673-------------------------------
  3833. INT 16 - FAKEY.COM - PLAY TONES
  3834.     AH = 73h
  3835.     CX = number of tones to play
  3836.     DS:SI -> array of tones (see #0419)
  3837. Program: FAKEY is a keystroke faking utility by System Enhancement Associates
  3838. SeeAlso: INT 15/AX=1019h
  3839.  
  3840. Format of FAKEY.COM tone array entries:
  3841. Offset    Size    Description    (Table 0419)
  3842.  00h    WORD    divisor for timer channel 2
  3843.  02h    WORD    duration in clock ticks
  3844. --------i-167463-----------------------------
  3845. INT 16 U - FastJuice - INSTALLATION CHECK
  3846.     AX = 7463h ("tc")
  3847. Return: AX = 5443h ("TC") if installed
  3848. Program: FastJuice is a resident battery-power monitor by SeaSide Software
  3849. SeeAlso: AX=6A6Bh
  3850. --------R-1675-------------------------------
  3851. INT 16 - pcANYWHERE III - SET TICK COUNT FOR SCANNING
  3852.     AH = 75h
  3853.     AL = number of ticks between checks for new screen changes
  3854. --------R-1676-------------------------------
  3855. INT 16 - pcANYWHERE III - SET ERROR CHECKING TYPE
  3856.     AH = 76h
  3857.     AL = error checking type
  3858.         00h none
  3859.         01h fast
  3860.         02h slow
  3861. --------R-1677-------------------------------
  3862. INT 16 - pcANYWHERE III - LOG OFF
  3863.     AH = 77h
  3864.     AL = mode
  3865.         00h wait for another call
  3866.         01h leave in Memory Resident Mode
  3867.         02h leave in Automatic Mode
  3868.         FFh leave in current operating mode
  3869. --------U-167761-----------------------------
  3870. INT 16 - WATCH.COM v2.x-v3.0 - INSTALLATION CHECK
  3871.     AX = 7761h ('wa')
  3872. Return: AX = 5741h ('WA') if installed
  3873. Note:    WATCH.COM is part of the "TSR" package by Kim Kokkonen
  3874. SeeAlso: INT 21/AX=7761h
  3875. --------U-167788BX7789-----------------------
  3876. INT 16 - PC Magazine PUSHDIR.COM - INSTALLATION CHECK
  3877.     AX = 7788h
  3878.     BX = 7789h
  3879.     DS:SI -> signature "PUSHDIR VERSION 1.0"
  3880. Return: AX = 7789h if installed and signature correct
  3881.     BX = 7788h
  3882.     SI destroyed
  3883. --------R-1679-------------------------------
  3884. INT 16 - pcANYWHERE III - CHECK STATUS
  3885.     AH = 79h
  3886. Return: AX = status
  3887.         FFFFh if resident and active
  3888.         FFFEh if resident but not active
  3889.         FFFDh if in Memory Resident mode
  3890.         FFFCh if in Automatic mode
  3891.         other value if not resident
  3892. SeeAlso: AX=7B00h,INT 21/AX=2B44h
  3893. --------R-167A-------------------------------
  3894. INT 16 - pcANYWHERE III - CANCEL SESSION
  3895.     AH = 7Ah
  3896. --------R-167B00-----------------------------
  3897. INT 16 - pcANYWHERE III - SUSPEND
  3898.     AX = 7B00h
  3899. SeeAlso: AH=79h,AX=7B01h
  3900. --------R-167B01-----------------------------
  3901. INT 16 - pcANYWHERE III - RESUME
  3902.     AX = 7B01h
  3903. SeeAlso: AH=79h,AX=7B00h
  3904. --------R-167C-------------------------------
  3905. INT 16 - pcANYWHERE III - GET PORT CONFIGURATION
  3906.     AH = 7Ch
  3907. Return: AH = port number
  3908.     AL = baud rate
  3909.         00h = 50 baud
  3910.         01h = 75 baud
  3911.         02h = 110 baud
  3912.         03h = 134.5 baud
  3913.         04h = 150 baud
  3914.         05h = 300 baud
  3915.         06h = 600 baud
  3916.         07h = 1200 baud
  3917.         08h = 1800 baud
  3918.         09h = 2000 baud
  3919.         0Ah = 2400 baud
  3920.         0Bh = 4800 baud
  3921.         0Ch = 7200 baud
  3922.         0Dh = 9600 baud
  3923.         0Eh = 19200 baud
  3924. --------R-167D-------------------------------
  3925. INT 16 - pcANYWHERE III - GET/SET TERMINAL PARAMETERS
  3926.     AH = 7Dh
  3927.     AL = subfunction
  3928.         00h set terminal parameters
  3929.         01h get terminal parameters
  3930.         02h get configuration header and terminal parameters
  3931.     DS:CX -> terminal parameter block
  3932. --------R-167E-------------------------------
  3933. INT 16 - pcANYWHERE III - COMMUNICATIONS I/O THROUGH PORT
  3934.     AH = 7Eh
  3935.     AL = subfunction
  3936.         01h port input status
  3937.         Return AX = 0 if no characer ready,
  3938.                AX = 1 if character ready
  3939.         02h port input character
  3940.         Return AL = received character
  3941.         03h port output character in CX
  3942.         11h hang up phone
  3943. --------R-167F-------------------------------
  3944. INT 16 - pcANYWHERE III - SET KEYBOARD/SCREEN MODE
  3945.     AH = 7Fh
  3946.     AL = subfunction
  3947.         00h enable remote keyboard only
  3948.         01h enable host keyboard only
  3949.         02h enable both keyboards
  3950.         08h display top 24 lines
  3951.         09h display bottom 24 lines
  3952.         10h Hayes modem
  3953.         11h other modem
  3954.         12h direct connect
  3955. --------U-1680-------------------------------
  3956. INT 16 - MAKEY.COM - INSTALLATION CHECK
  3957.     AH = 80h
  3958. Return: AX = 1954h if installed
  3959. Program: MAKEY is a utility by System Enhancement Associates
  3960. --------U-168765BX4321-----------------------
  3961. INT 16 - AT.COM version 8/26/87 - API
  3962.     AX = 8765h
  3963.     BX = 4321h
  3964.     CX = ??? or FFFFh
  3965.     if CX = FFFFh
  3966.         DX = number of event to remove or FFFFh
  3967. Return: ES:BX -> event record array (see #0420)
  3968. Program: AT.COM is a resident scheduler by Bill Frolik
  3969.  
  3970. Format of AT.COM event record:
  3971. Offset    Size    Description    (Table 0420)
  3972.  00h    BYTE    in-use flag (00h free, 01h in use, FFh end of array)
  3973.  01h    BYTE    day of date on which to trigger
  3974.  02h    BYTE    month of date on which to trigger
  3975.  03h    BYTE    trigger time, minute
  3976.  04h    BYTE    trigger time, hour
  3977.  05h    WORD    offset of command to be executed
  3978. ----------1692-------------------------------
  3979. INT 16 - ???
  3980.     AH = 92h
  3981. Return: AH <= 80h if ???
  3982. Note:    this function is called by the DOS 3.2 KEYBxx.COM and DOS 5+ KEYB.COM
  3983. SeeAlso: AH=05h"PCjr",AH=A2h
  3984. --------U-1699-------------------------------
  3985. INT 16 - SCOUT v5.4 - GET ???
  3986.     AH = 99h
  3987. Return: AX = ABCDh
  3988.     BX:CX -> ??? (appears to be start of PSP for resident portion)
  3989. Program: Scout is a memory-resident file manager by New-Ware
  3990. SeeAlso: AH=9Eh
  3991. --------U-169E-------------------------------
  3992. INT 16 - SCOUT v5.4 - INSTALLATION CHECK
  3993.     AH = 9Eh
  3994. Return: AX = ABCDh if installed
  3995. Program: Scout is a memory-resident file manager by New-Ware
  3996. SeeAlso: AH=99h
  3997. ----------16A2-------------------------------
  3998. INT 16 - ???
  3999.     AH = A2h
  4000. Return: AH <= 80h if ???
  4001. Note:    this function is this function is called by the DOS 5+ KEYB.COM
  4002. SeeAlso: AH=92h
  4003. --------V-16AA-------------------------------
  4004. INT 16 - PTxxx.COM - (xxx=CGA,EGA,VGA,HER...) CALL GATE FOR GRAPHICS
  4005.     AH = AAh
  4006.     Various registers set up by high level language.
  4007. Return: Graphics performed
  4008. Note:    PT stands for Paint Tools which is a graphics library for Turbo Pascal,
  4009.       Modula 2 and others from DataBiten in Sweden. The library is
  4010.       installed as a memory resident driver.
  4011. --------U-16AABBBXEEFF-----------------------
  4012. INT 16 U - JORJ v4.3 - INSTALLATION CHECK
  4013.     AX = AABBh
  4014.     BX = EEFFh
  4015. Return: AX = EEFFh if installed
  4016.     BX = AABBh if installed
  4017.         CL = hotkey name (default 6Ah 'j' for Alt-J)
  4018. Program: JORJ is a shareware dictionary with phonetic lookup by Jorj Software
  4019.       Co.
  4020. Index:    hotkeys;JORJ
  4021. --------K-16AF20BX4B33-----------------------
  4022. INT 16 - K3PLUS v6.00+ (API v2.0+) - GET EXTENDED BUFFER STATE
  4023.     AX = AF20h
  4024.     BX = 4B33h ('K3')
  4025. Return: AX = K3 version (same as returned in BX by AX=AF4Dh)
  4026.     ES:BX -> extended keyboard buffer start
  4027.     ES:DX -> extended keyboard buffer end
  4028.     ES:SI -> next keystroke
  4029.     ES:DI -> last keystroke in buffer
  4030.     CX = number of keystrokes in buffer
  4031. Program: K3PLUS is an enhancement by Matthias Paul and Axel C. Frinke of the
  4032.       K3 extended German keyboard driver by Martin Gerdes published in c't
  4033.       magazine in 1988
  4034. Note:    this function replaces the identical function AH=20h"K3"
  4035. SeeAlso: AH=20h"K3",AX=AF25h,AX=AF4Dh,AX=AF50h
  4036. --------K-16AF25BX4B33-----------------------
  4037. INT 16 - K3PLUS v6.00+ (API v2.0+) - COPY INTO EXTENDED BUFFER
  4038.     AX = AF25h
  4039.     BX = 4B33h ('K3')
  4040.     CX = number of keystrokes to copy
  4041.     ES:SI -> buffer containing keystrokes
  4042. Return: CF clear if successful
  4043.     CF set on error (i.e. buffer full)
  4044.         CX = number of keystrokes NOT transferred
  4045.         ES:SI -> first keystroke not transferred
  4046. Note:    this function replaces the identical function AH=25h"K3"
  4047. SeeAlso: AH=25h"K3",AX=AF20h,AX=AF4Dh,AX=AF50h
  4048. --------K-16AF4DBX4B33-----------------------
  4049. INT 16 - K3PLUS v6.00+ (API v2.0+) - GET VERSION INFORMATION
  4050.     AX = AF4Dh
  4051.     BX = 4B33h ('K3')
  4052. Return: AL = 50h if installed
  4053.         BX = K3 version
  4054.         DX = API version
  4055.         ES:CX -> K3 structure (version-dependent) (see #0421)
  4056. Program: K3PLUS is an enhancement by Matthias Paul and Axel C. Frinke of the
  4057.       K3 extended German keyboard driver by Martin Gerdes published in c't
  4058.       magazine in 1988
  4059. SeeAlso: AX=AF20h,AX=AF50h,AX=AF80h,AX=AF83h
  4060. Index:    installation check;K3PLUS
  4061.  
  4062. Format of internal K3 structure:
  4063. Offset    Size    Description    (Table 0421)
  4064.  00h  3 BYTEs    signature "K3$"
  4065.  03h    BYTE    length of structure, including this byte and signature
  4066.  04h    WORD    compiler switch option flags A (see #0422)
  4067.  06h    WORD    compiler switch option flags B (see #0423)
  4068.  08h    BYTE    internal flags A (see #0424)
  4069.  09h    BYTE    internal flags B (see #0425)
  4070.  0Ah    WORD    DOS version recorded at startup
  4071.  0Ch    WORD    "ActTypeSpeed"
  4072.  0Eh    WORD    last Keyboard-ID sent
  4073.         41ABh translated, 83ABh native (pass-through)
  4074.  10h    WORD    offset of K3TAB Special
  4075.  12h    WORD    offset of K3TAB German
  4076.  14h    WORD    offset of K3TAB Alt
  4077.  16h    WORD    offset of K3TAB AltGr
  4078.  18h    WORD    offset of K3TAB Ctrl
  4079.  1Ah    WORD    offset of K3TAB NPad
  4080.  1Ch    WORD    offset of K3TAB CtrlNPad
  4081.  1Eh    WORD    offset of K3TAB AltNPad
  4082.  20h    WORD    offset of K3TAB ApoTbl or 0000h
  4083.  22h    WORD    offset of K3TAB UmlautTbl or 0000h
  4084.  24h    WORD    offset of K3TAB UmlautTblExp or 0000h
  4085.  26h    WORD    length of video mode table
  4086.  28h    WORD    offset of VidMdTbl or 0000h
  4087.  2Ah    BYTE    '$' end marker
  4088.  
  4089. Bitfields for K3PLUS compiler switch option flags A:
  4090. Bit(s)    Description    (Table 0422)
  4091.  15    GuINT16Fct2 (general use of INT 16 function 2)
  4092.  14    Int15df (INT 15 has to be predefined)
  4093.  13    GuAltNP (general use of Alt Numpad)
  4094.  12    SupAT (ATs+ supported)
  4095.  11    GuINT16Fct3 (general use of INT 16 function 3)
  4096.  10    GuINT16Ret (general use of INT16 bad function return)
  4097.  9-8    Layout (0-2, 3 reserved; 0=PC, 1=AT, 2=MF)
  4098.  7    ForceMF (force MF decode without read-ID)
  4099.  6    KXlate (translate keys for special keyboard)
  4100.  5    UmlautX (umlaut translation capability included)
  4101.  4    ApoX (translate apostrophe)
  4102.  3    DoINT16 (INT 16 handler included)
  4103.  2    UseCC (CopyCursor included)
  4104.  1-0    UseEB
  4105.     0=no extended keystroke buffer, 1=reserve mem, 2=use PSP, 3=reserved
  4106.  
  4107. Bitfields for K3 compiler switch option flags B:
  4108. Bit(s)    Description    (Table 0423)
  4109.  15-11    reserved (0)
  4110.  10    CtrlSeq (Ctrl macro capability included)
  4111.  9-8    SupINT16fct55FE
  4112.  6    DoInstallCheck (check for double installation)
  4113.  5    SupINT16fct5PcJr (INT 16/AH=05h"PCjr" supported)
  4114.  4    SendOut (sound and message output supported)
  4115.  3    SupInt16fct5500 (INT 16/AX=5500h supported)
  4116.  2    GuINT15Fct4F (calls to INT 15/AH=4Fh supported)
  4117.  1-0    UseBufferStart (0=use standard area, 1=set standard area,
  4118.     2=use internal indexes, 3=reserved)
  4119.  
  4120. Bitfields for K3 internal flags A:
  4121. Bit(s)    Description    (Table 0424)
  4122.  7    DoingUmlautExp
  4123.  6    CallINT15fct4F
  4124.  5    Beep1 (requires SendOut set in option flags B)
  4125.  4    ATflag (set for AT, 386, PS/2 Models 50-80)
  4126.  3    XTflag (set for PC, PC/XT, Micromint PC, Pencock PC, PS/2 Model 30)
  4127.  2    KeyClick
  4128.  1    UmlautExp
  4129.  0    UmlautTrans
  4130.  
  4131. Bitfields for K3 internal flags B:
  4132. Bit(s)    Description    (Table 0425)
  4133.  7-5    reserved
  4134.  4    TranslateE0 enabled
  4135.  3    Boot enabled
  4136.  2    PrintScreen enabled
  4137.  1    Break enabled
  4138.  0    ApoPendingBeep
  4139. --------K-16AF50BX4B33-----------------------
  4140. INT 16 - K3PLUS v6.00+ (API v2.0+) - CHECK IF FUNCTION SUPPORTED
  4141.     AX = AF50h
  4142.     BX = 4B33h ('K3')
  4143.     CH = function
  4144.         00h get function flags
  4145.         CL = 00h
  4146.         Return: CX = supported function flags (see #0426)
  4147.         nonzero reserved for extensions
  4148. SeeAlso: AX=AF20h,AX=AF4Dh,AX=AF51h,AX=AF80h
  4149.  
  4150. Bitfields for K3PLUS supported function list:
  4151. Bit(s)    Description    (Table 0426)
  4152.  0    function 4Dh supported
  4153.  1    function 50h supported
  4154.  2-3    reserved (0)
  4155.  4    function 20h supported
  4156.  5    function 25h supported
  4157.  6    function 51h supported
  4158.  7    reserved (0)
  4159.  8    function 80h supported
  4160.  9    function 81h supported
  4161.  10    function 82h supported
  4162.  11-15    reserved (0)
  4163. --------K-16AF51BX4B33-----------------------
  4164. INT 16 - K3PLUS v2.00+ - SET OPTIONS
  4165.     AX = AF51h
  4166.     BX = 4B33h ('K3')
  4167.     CX = switches
  4168. Return: AL = status
  4169.         00h done
  4170.         CX = previous switch settings
  4171.         01h switch not supported
  4172.         FFh other error
  4173. SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h
  4174. --------K-16AF80BX4B33-----------------------
  4175. INT 16 - K3PLUS v2.00+ - GET ORIGINAL INT 09h VECTOR
  4176.     AX = AF80h
  4177.     BX = 4B33h ('K3')
  4178. Return: AL = status
  4179.         00h not supported
  4180.         81h if successful
  4181.         ES:CX -> original INT 09 handler
  4182. SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF81h,AX=AF82h
  4183. --------K-16AF81BX4B33-----------------------
  4184. INT 16 - K3PLUS v2.00+ - GET ORIGINAL INT 16h HANDLER
  4185.     AX = AF81h
  4186.     BX = 4B33h ('K3')
  4187. Return: AL = status
  4188.         00h not supported
  4189.         82h if successful
  4190.         ES:CX -> original INT 16 handler
  4191. SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF82h
  4192. --------K-16AF82BX4B33-----------------------
  4193. INT 16 - K3PLUS v2.00+ - GET ORIGINAL INT 10h HANDLER
  4194.     AX = AF82h
  4195.     BX = 4B33h ('K3')
  4196. Return: AL = status
  4197.         00h not supported
  4198.         83h if successful
  4199.         ES:CX -> original INT 10 handler
  4200. Program: K3PLUS is an enhancement by Matthias Paul and Axel C. Frinke of the
  4201.       K3 extended German keyboard driver by Martin Gerdes published in c't
  4202.       magazine in 1988
  4203. SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF81h
  4204. --------m-16B0B1-----------------------------
  4205. INT 16 - VGARAM v1.00 - INSTALLATION CHECK
  4206.     AX = B0B1h
  4207.     ES:DI -> 6 byte signature "VGARAM"
  4208. Return: AX = B1B0h if installed,
  4209.     DS:BX -> VGARAM Status byte: 0 = OFF, 1 = ON
  4210. Program: VGARAM is a utility by Brett Warthen which makes VGA memory which is
  4211.       not used in text modes available for DOS
  4212. --------K-16CA--BX736B-----------------------
  4213. INT 16 - CtrlAlt Associates STACKEY.COM v3.00 - API
  4214.     AH = CAh
  4215.     BX = 736Bh ("sk")
  4216.     CX = 736Bh
  4217.     AL = function
  4218.         00h installation check
  4219.         Return: DX = words available in keyboard buffer
  4220.         01h place keystroke in buffer
  4221.         DX = keystroke (DH = scan code, DL = ASCII character)
  4222.         Return: DX = words available in keyboard buffer
  4223.                 FFFFh on error
  4224.         02h flush STACKEY and BIOS keyboard buffers
  4225. Return: AX = CAFFh if installed
  4226.         BX = segment of resident code
  4227.         CX = STACKEY version (CH = major, CL = minor)
  4228. Program: STACKEY is a shareware keyboard-input faking TSR
  4229. Index:    installation check;STACKEY
  4230. --------V-16CA00BX6570-----------------------
  4231. INT 16 - CtrlAlt Associates EGAPAL.COM v1.00 - INSTALLATION CHECK
  4232.     AX = CA00h
  4233.     BX = 6570h ("ep")
  4234.     CX = 6570h
  4235. Return: AX = CAFFh if installed
  4236.         BX = segment of resident code
  4237.         CX = ??? (0090h)
  4238. Program: EGAPAL is a TSR supplied with STACKEY which makes EGA palette settings
  4239.       permanent across mode switches
  4240. SeeAlso: AX=CA00h/BX=7670h
  4241. --------V-16CA00BX7670-----------------------
  4242. INT 16 - CtrlAlt Associates VGAPAL.COM v1.00 - INSTALLATION CHECK
  4243.     AX = CA00h
  4244.     BX = 7670h ("vp")
  4245.     CX = 7670h
  4246. Return: AX = CAFFh if installed
  4247.         BX = segment of resident code
  4248.         CX = ??? (0090h)
  4249. Program: VGAPAL is a TSR supplied with STACKEY which makes VGA palette settings
  4250.       permanent across mode switches
  4251. SeeAlso: AX=CA00h/BX=6570h
  4252. --------U-16D724CX00CB-----------------------
  4253. INT 16 U - APCAL v3.20 - GET ???
  4254.     AX = D724h
  4255.     CX = 00CBh
  4256. Return: AX = 0000h
  4257.     BX = 0000h
  4258.     DX:CX -> ??? or 0000h:0000h
  4259. Program: APCAL is an optionally-resident shareware appointment calendar by
  4260.       Gamma Software
  4261. SeeAlso: AX=3577h,AX=D724h/CX=00CCh,AX=D724h/CX=00CDh
  4262. --------U-16D724CX00CC-----------------------
  4263. INT 16 U - APCAL v3.20 - GET ???
  4264.     AX = D724h
  4265.     CX = 00CCh
  4266. Return: AX = 0000h
  4267.     BX = 0000h
  4268.     DX:CX -> ??? (apparently an internal data area)
  4269. SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CDh
  4270. --------U-16D724CX00CD-----------------------
  4271. INT 16 U - APCAL v3.20 - GET ???
  4272.     AX = D724h
  4273.     CX = 00CDh
  4274. Return: AX = ??? (5345h seen)
  4275. SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CCh
  4276. ----------16DFDF-----------------------------
  4277. INT 16 U - Corel PowerSCSI - FDAUDIO.COM - INSTALLATION CHECK
  4278.     AX = DFDFh
  4279. Return: ES:DI -> ASCII signature "FDAUDIO/CD" followed by ASCII date, i.e.
  4280.       "06/18/93" if installed
  4281. --------t-16E0E0-----------------------------
  4282. INT 16 - TurboPower TSRs - ALTERNATE INSTALLATION CHECK
  4283.     AX = E0E0h
  4284. Return: AX = 1F1Fh if installed
  4285.         DWORD 0040h:00F0h -> last data block in TSR list (see #0428)
  4286. Note:    the returned TSR list provides support for communication among TSRs
  4287.       built with TurboPower's Turbo Professional and Object Professional
  4288.       libraries for Turbo Pascal
  4289. SeeAlso: AX=F0F0h
  4290. --------U-16ED--BHED-------------------------
  4291. INT 16 - BORLAND TURBO LIGHTNING - API
  4292.     AH = EDh
  4293.     BH = EDh
  4294.     BL = function
  4295.         00h installation check
  4296.         Return: AX = 5205h
  4297.             CH = major version
  4298.             CL = minor version
  4299.         01h identical to function 00h???
  4300.         02h get resident data segment
  4301.         Return: AX = data segment of resident portion
  4302.         03h get resident ???
  4303.         Return: AX = offset of some buffer in resident code seg
  4304.         04h redefine auxiliary dictionary
  4305.         DS:SI -> counted filename string
  4306.         Return: AL = result code
  4307.         05h select active environment
  4308.         AL = environment (00h to 0Ch)
  4309.         Return: AX = status
  4310.                 0000h if OK
  4311.                 0001h if out of range
  4312.         06h toggle AutoProof???
  4313.         AL = state (00h off, 01h on)
  4314.         07h ???
  4315.         08h ???
  4316.         AL = char???
  4317.         CX = ???
  4318.         DX = ???
  4319.         Return: AX = 0, 1 or 2
  4320.         09h ???
  4321.         0Ah ???
  4322.         CX = ???
  4323.         DX = ???
  4324.         Return: AX = ???
  4325.         0Bh check dictionary integrity???
  4326.         DS:SI -> counted dictionary filename string
  4327.         Return: AX = 0, 40h, 80h
  4328.         0Ch spellcheck string (disk dictionary, possibly RAM dict as well)
  4329.         DS:SI -> counted string to check
  4330.         Return: AH = 0
  4331.             AL = result code
  4332.                00h string found in dictionary
  4333.                20h string begins more than one word
  4334.                40h string not found
  4335.         0Dh set ???
  4336.         (sets an internal flag)
  4337.         0Eh spellcheck string (RAM dictionary only)
  4338.         DS:SI -> counted string to check
  4339.         Return: AH = 00h
  4340.             AL = result code
  4341.                 00h string found in dictionary
  4342.                 01h string not found
  4343.                 02h ???
  4344.         0Fh ???
  4345.         10h ???
  4346. Notes:    AX in general returns an error code from most functions.
  4347. Index:    installation check;Turbo Lightning
  4348. --------U-16EF-------------------------------
  4349. INT 16 - CALCULATOR - INSTALLATION CHECK
  4350.     AH = EFh
  4351. Return: AX = 0088h if installed
  4352. Program: CALCULATOR is a shareware popup calculator by Andrzej Brzezinski and
  4353.       Marek Kosznik
  4354. --------b-16F0-------------------------------
  4355. INT 16 - Compaq 386 and newer - SET CPU SPEED
  4356.     AH = F0h
  4357.     AL = speed code (see #0427)
  4358.     if AL=09h,
  4359.         CX = speed value, 1 (slowest) to 50 (full), 3 ~= 8088
  4360. SeeAlso: AH=F1h,AH=F3h
  4361.  
  4362. (Table 0427)
  4363. Values for speed code:
  4364.  00h    equivalent to 6 MHz 80286 (COMMON)
  4365.  01h    equivalent to 8 MHz 80286 (FAST)
  4366.  02h    full 16 MHz (HIGH)
  4367.  03h    toggles between 8 MHz-equivalent and speed set by system board switch
  4368.       (AUTO or HIGH)
  4369.  08h    full 16 MHz except 8 MHz-equivalent during floppy disk access
  4370.  09h    specify speed directly
  4371. --------t-16F0F0-----------------------------
  4372. INT 16 - TurboPower TSRs - INSTALLATION CHECK
  4373.     AX = F0F0h
  4374. Return: AX = 0F0Fh if installed
  4375.         ES:DI -> last data block in TSR list
  4376. Note:    the returned TSR list provides support for communication among TSRs
  4377.       built with TurboPower's Turbo Professional and Object Professional
  4378.       libraries for Turbo Pascal
  4379. SeeAlso: AX=E0E0h
  4380.  
  4381. Format of TurboPower TSR data block:
  4382. Offset    Size    Description    (Table 0428)
  4383.  00h    DWORD    pointer to program tag (counted ASCII string)
  4384.  04h    WORD    interface version number (0400h)
  4385.  06h    DWORD    pointer to command entry point
  4386.  0Ah    DWORD    pointer to previous data block (0000h:0000h if none)
  4387.  0Eh    DWORD    pointer to next data block (0000h:0000h if none)
  4388. ---swappable TSRs only---
  4389.  12h    DWORD    pointer to swapping data
  4390.  16h    DWORD    pointer to user data
  4391.     more???
  4392. --------b-16F1-------------------------------
  4393. INT 16 - Compaq 386 and newer - READ CURRENT CPU SPEED
  4394.     AH = F1h
  4395. Return: AL = speed code (see #0427)
  4396.     if AL = 09h, CX = speed code
  4397. SeeAlso: AH=F0h,AH=F3h
  4398. --------b-16F2-------------------------------
  4399. INT 16 - Compaq 386 and newer - DETERMINE ATTACHED KEYBOARD TYPE
  4400.     AH = F2h
  4401. Return: AL = type
  4402.         00h if 11-bit AT keyboard is in use
  4403.         01h if 9-bit PC keyboard is in use
  4404.     AH = 00h (04/08/93 system ROM)
  4405. --------b-16F3-------------------------------
  4406. INT 16 - Compaq 80286s - SET CPU SPEED LIMIT (OVERRIDE JUMPER)
  4407.     AH = F3h
  4408.     AL = new limit
  4409.         00h limit is 6 Mhz
  4410.         01h limit is 8 Mhz/6 Mhz
  4411. SeeAlso: AH=F0h,AH=F1h
  4412. --------U-16F398-----------------------------
  4413. INT 16 U - NORTON GUIDES - INSTALLATION CHECK
  4414.     AX = F398h
  4415. Return: AX = 6A73h ("js")
  4416.     BH = scan code of current hot key
  4417.     BL = ASCII code of current hot key
  4418. Note:    NG.EXE was written by John Socha
  4419. --------b-16F400-----------------------------
  4420. INT 16 - Compaq Systempro and higher - CACHE CONTROLLER STATUS
  4421.     AX = F400h
  4422. Return: AH = E2h
  4423.     AL = status
  4424.         00h not present
  4425.         01h enabled
  4426.         02h disabled
  4427. SeeAlso: AX=F401h,AX=F402h
  4428. --------b-16F401-----------------------------
  4429. INT 16 - Compaq Systempro and higher - ENABLE CACHE CONTROLLER
  4430.     AX = F401h
  4431. Return: AX = E201h
  4432. SeeAlso: AX=F400h,AX=F402h
  4433. --------b-16F402-----------------------------
  4434. INT 16 - Compaq Systempro and higher - DISABLE CACHE CONTROLLER
  4435.     AX = F402h
  4436. Return: AX = E202h
  4437. SeeAlso: AX=F400h,AX=F401h
  4438. --------v-16FA00DX5945-----------------------
  4439. INT 16 U - PC Tools v8+ VSAFE, VWATCH - INSTALLATION CHECK
  4440.     AX = FA00h
  4441.     DX = 5945h
  4442. Return: CF clear
  4443.     DI = 4559h
  4444.     BX = BIOS hotkey scancode (default 2F00h) (VSAFE only)
  4445.         FFFFh if disabled
  4446. Note:    MS-DOS 6.0 bundles VSAFE and VWATCH as part of its virus protection
  4447. SeeAlso: AX=FA05h,INT 13/AH=FAh,INT 21/AH=FAh"VDEFEND",INT 2F/AX=6282h
  4448. --------v-16FA01DX5945-----------------------
  4449. INT 16 U - PC Tools v8+ VSAFE, VWATCH - UNINSTALL
  4450.     AX = FA01h
  4451.     DX = 5945h
  4452. Return: CF clear if successful
  4453.     DI = 4559h
  4454. SeeAlso: AX=FA00h
  4455. --------v-16FA02DX5945-----------------------
  4456. INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET/SET OPTIONS
  4457.     AX = FA02h
  4458.     DX = 5945h
  4459.     BL = new parameter flags (see #0429)
  4460. Return: CF clear
  4461.     DI = 4559h
  4462.     CL = old value of parameter flags
  4463.  
  4464. Bitfields for VSAFE/VWATCH parameter flags:
  4465. Bit(s)    Description    (Table 0429)
  4466.  7    Protect executable files
  4467.  6    Protect FD boot sector
  4468.  5    Protect HD boot sector
  4469.  4    Boot sector viruses
  4470.  3    Check executable files
  4471.  2    General write protect
  4472.  1    Resident
  4473.  0    HD Low level format
  4474. --------v-16FA03DX5945-----------------------
  4475. INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET ???
  4476.     AX = FA03h
  4477.     DX = 5945h
  4478. Return: CF clear
  4479.     DI = 4559h
  4480.     AX = 0002h
  4481. --------v-16FA04DX5945-----------------------
  4482. INT 16 U - PC Tools v8+ VSAFE - GET HOTKEY DISABLE FLAG
  4483.     AX = FA04h
  4484.     DX = 5945h
  4485. Return: CF clear
  4486.     DI = 4559h
  4487.     BL = hotkey disable flag (nonzero if hotkey disabled)
  4488. Note:    this function is a NOP under VWATCH, merely returning CF clear/DI=4559h
  4489. SeeAlso: AX=FA00h,AX=FA05h
  4490. --------v-16FA05DX5945-----------------------
  4491. INT 16 U - PC Tools v8+ VSAFE - SET HOTKEY DISABLE FLAG
  4492.     AX = FA05h
  4493.     DX = 5945h
  4494.     BL = new value of hotkey disable flag (nonzero to disable hotkey)
  4495. Return: CF clear
  4496.     DI = 4559h
  4497. Note:    this function is a NOP under VWATCH, merely returning CF clear/DI=4559h
  4498. SeeAlso: AX=FA00h,AX=FA04h
  4499. --------v-16FA06DX5945-----------------------
  4500. INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET NETWORK DRIVES TEST FLAG
  4501.     AX = FA06h
  4502.     DX = 5945h
  4503. Return: CF clear
  4504.     DI = 4559h
  4505.     BL = test status
  4506.         00h don't monitor network drives (default for VWATCH v2.1)
  4507.         FFh monitor network drives (default for VSAFE v2.0)
  4508.     CL = ??? (only VSAFE 2.0)
  4509. SeeAlso: AX=FA07h
  4510. --------v-16FA07DX5945-----------------------
  4511. INT 16 U - PC Tools v8+ VSAFE, VWATCH - SET NETWORK DRIVES TEST FLAG
  4512.     AX = FA07h
  4513.     DX = 5945h
  4514.     BL = new state
  4515.         00h don't monitor
  4516.         01h monitor network drives
  4517. Return: CF clear
  4518.     DI = 4559h
  4519. Note:    VWATCH v2.1 (from PC Tools 9.0) returns CF set instead
  4520. SeeAlso: AX=FA00h,AX=FA06h
  4521. --------v-16FA08DX5945-----------------------
  4522. INT 16 U - PC Tools v9+ VWATCH v2.1 - ???
  4523.     AX = FA08h
  4524.     DX = 5945h
  4525. Return: CF clear
  4526.     DI = 4559h
  4527.     AX = ??? (0002h)
  4528.     BX = version (BH=major, BL=two-digit minor)
  4529. Note:    this function is not supported by the PC Tools 9.0 VSAFE v2.0
  4530. SeeAlso: AX=FA00h,AX=FA06h
  4531. --------U-16FE55-----------------------------
  4532. INT 16 U - PC Tools v8+ programs - GET ???
  4533.     AX = FE55h
  4534.     CX = segment of resident program or 0000h for last loaded
  4535.     DX = 0000h
  4536. Return: DX = resident code segment (unchanged if CX=0000h on entry)
  4537.     AX = ??? or 0000h
  4538. Note:    this call is supported by CPSCHED, CPTASK, DATAMON, DPROTECT, DRIVEMAP,
  4539.       and DSKLIGHT beginning in PC Tools v8.0; programs other than CPTASK
  4540.       seem to hook it merely to return the same AX as the CPTASK loaded
  4541.       prior to them returned
  4542. --------U-16FEA4-----------------------------
  4543. INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - RESET ???
  4544.     AX = FEA4h
  4545. Return: nothing
  4546. Note:    this function is identical to AX=FFA4h, and is implemented by the same
  4547.       code in DESKTOP
  4548. SeeAlso: AX=FFA4h
  4549. --------U-16FEC6-----------------------------
  4550. INT 16 U - PC Tools v7+ CPSCHED - ENABLE/DISABLE CPSCHED API
  4551.     AX = FEC6h
  4552.     BL = new state (00h enabled, nonzero disabled)
  4553. Return: nothing
  4554. Desc:    specify whether CPSCHED API calls other than this one and AX=FE55h will
  4555.       be honored
  4556. --------U-16FED3-----------------------------
  4557. INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - ???
  4558.     AX = FED3h
  4559.     DS:SI -> 92-byte data record for ???
  4560. Return: ???
  4561. Note:    this function is identical to AX=FFD3h, and is implemented by the same
  4562.       code in DESKTOP
  4563. SeeAlso: AX=FFD3h
  4564. --------U-16FEDC-----------------------------
  4565. INT 16 U - PC Tools v7+ CPSCHED - UNHOOK INTERRUPTS
  4566.     AX = FEDCh
  4567. Return: AX,DX destroyed
  4568. Index:    uninstall;CPSCHED
  4569. --------U-16FEEFCX0000-----------------------
  4570. INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - INSTALLATION CHECK
  4571.     AX = FEEFh
  4572.     CX = 0000h
  4573. Return: CX = ABCDh if PC Tools scheduler (CPSCHED or DESKTOP) installed
  4574.         BX = segment of resident portion
  4575.         DX = (CPSCHED v8.0) resident CS
  4576. Note:    this function is identical to AX=FFD3h, and is implemented by the same
  4577.       code in DESKTOP
  4578. SeeAlso: AX=FFEFh
  4579. --------U-16FEF1-----------------------------
  4580. INT 16 U - PC Tools v7 only CPSCHED/DESKTOP - ALTERNATE INSTALLATION CHECK
  4581.     AX = FEF1h
  4582.     BX = ???
  4583. Return: CX = 5555h if PC Tools scheduler (CPSCHED or DESKTOP) installed
  4584.     DX = 5555h
  4585. Note:    this function is identical to AX=FFD3h, and is implemented by the same
  4586.       code in DESKTOP
  4587. SeeAlso: AX=FFF1h
  4588. --------K-16FF-------------------------------
  4589. INT 16 - KEYBOARD - KBUF extensions - ADD KEY TO TAIL OF KEYBOARD BUFFER
  4590.     AH = FFh
  4591.     DX = scan code
  4592. Return: AL = status
  4593.         00h success
  4594.         01h failure
  4595. Program: KBUF is a keyboard buffer expander by Mark Adler
  4596. SeeAlso: AH=05h
  4597. --------V-16FF-------------------------------
  4598. INT 16 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY ZOOM INTERRUPT
  4599.     AH = FFh
  4600. Return: AL = interrupt number to which BIOS keyboard handler has been relocated
  4601.     AL+1 = Zoom interrupt number
  4602.     BX = hotkey
  4603. Notes:    the default interrupts are 60h for keyboard and 61h for Zoom interrupt;
  4604.       the default hot key is F10
  4605.     not all vendors include the Tseng TSR which supports these functions
  4606. SeeAlso: INT 60"OPTIMA"
  4607. Index:    hotkeys;OPTIMA 1024 VGA
  4608. --------d-16FF70BX0000-----------------------
  4609. INT 16 U - PC Tools v8+ DRIVEMAP - INSTALLATION CHECK
  4610.     AX = FF70h
  4611.     BX = 0000h
  4612.     CX = 4C69h ('Li')
  4613.     DX = 6E6Bh ('nk')
  4614. Return: AX = 0000h
  4615.     CX = 4350h ('CP')
  4616.     DH = major version
  4617.     DL = minor version
  4618. Program: DRIVEMAP is a redirector which allows drives on computers connected
  4619.       over the parallel or serial ports to appear as local drives
  4620. SeeAlso: AX=FF70h/BX=0001h,AX=FF70h/BX=0002h
  4621. --------d-16FF70BX0001-----------------------
  4622. INT 16 U - PC Tools v8+ DRIVEMAP - ???
  4623.     AX = FF70h
  4624.     BX = 0001h
  4625.     DL = ???
  4626. Return: AX = ???
  4627.     DH = ???
  4628. SeeAlso: AX=FF70h/BX=0000h,AX=FF70h/BX=0002h
  4629. --------d-16FF70BX0002-----------------------
  4630. INT 16 U - PC Tools v8+ DRIVEMAP - ???
  4631.     AX = FF70h
  4632.     BX = 0002h
  4633.     CX = ???
  4634.     DX = ???
  4635. Return: AX = ??? or FFFEh/FFFFh on error
  4636.     DL = ???
  4637. BUG:    DRIVEMAP will branch to random locations for BX values other than
  4638.       those listed above for v8.0-9.0 because a) the incorrect register is
  4639.       range-tested, resulting in BX=0003h-5CD6h being accepted as valid
  4640.       function numbers, and b) the conditional which branches on invalid
  4641.       function numbers jumps to the following instruction, becoming a NOP
  4642. SeeAlso: INT 2F/AX=9203h"DRIVEMAP"
  4643. Index:    installation check;DRIVEMAP
  4644. --------T-16FF80BX0000-----------------------
  4645. INT 16 U - PC Tools v8+ CPTASK - INSTALLATION CHECK
  4646.     AX = FF80h
  4647.     BX = 0000h
  4648.     CX = 0000h
  4649.     DX = 0000h
  4650. Return: CX = 5555h if installed
  4651. Program: CPTASK is a task switcher by Central Point Software
  4652. --------T-16FF80BX0001-----------------------
  4653. INT 16 U - PC Tools v8+ CPTASK - GET ???
  4654.     AX = FF80h
  4655.     BX = 0001h
  4656.     ???
  4657. Return: DX:SI -> task list??? (ten entries of 70h bytes in v9.0)
  4658.     BX = ??? (PSP segment of resident code???)
  4659. --------T-16FF80BX0002-----------------------
  4660. INT 16 U - PC Tools v8+ CPTASK - GET ???
  4661.     AX = FF80h
  4662.     BX = 0002h
  4663. Return: DX:SI -> ???
  4664. --------T-16FF80BX0003-----------------------
  4665. INT 16 U - PC Tools v8+ CPTASK - GET ??? FLAGS
  4666.     AX = FF80h
  4667.     BX = 0003h
  4668. Return: AX = flags (see #0430)
  4669. SeeAlso: AX=FF80h/BX=0004h,AX=FF80h/BX=0006h
  4670.  
  4671. Bitfields for CPTASK flags:
  4672. Bit(s)    Description    (Table 0430)
  4673.  10    ???
  4674.  13    ???
  4675.  14    ???
  4676.  15    ???
  4677. --------T-16FF80BX0004-----------------------
  4678. INT 16 U - PC Tools v8+ CPTASK - SET ???
  4679.     AX = FF80h
  4680.     BX = 0004h
  4681.     CX = new value of ???
  4682. Return: ???
  4683. Note:    this function also sets bit 14 of the flags word returned by
  4684.       AX=FF80h/BX=0003h
  4685. --------T-16FF80BX0005-----------------------
  4686. INT 16 U - PC Tools v8+ CPTASK - GET NUMBER OF ACTIVE TASKS???
  4687.     AX = FF80h
  4688.     BX = 0005h
  4689. Return: AX = number of active tasks???
  4690. --------T-16FF80BX0006-----------------------
  4691. INT 16 U - PC Tools v8+ CPTASK - GET AND CLEAR ??? FLAG
  4692.     AX = FF80h
  4693.     BX = 0006h
  4694. Return: AX = old state (0000h clear, 0001h set)
  4695. Note:    the tested flag is bit 13 of the flags returned by AX=FF80h/BX=0003h
  4696. --------T-16FF80BX0007-----------------------
  4697. INT 16 U - PC Tools v8+ CPTASK - ???
  4698.     AX = FF80h
  4699.     BX = 0007h
  4700.     ES:DI -> ???
  4701.     ???
  4702. Return: ???
  4703. --------T-16FF80BX0008-----------------------
  4704. INT 16 U - PC Tools v8+ CPTASK - ???
  4705.     AX = FF80h
  4706.     BX = 0008h
  4707.     ???
  4708. Return: ???
  4709. --------T-16FF80BX0009-----------------------
  4710. INT 16 U - PC Tools v8+ CPTASK - GET ???
  4711.     AX = FF80h
  4712.     BX = 0009h
  4713. Return: CL = ???
  4714.     CH = ??? (01h or 02h)
  4715. --------T-16FF80BX000A-----------------------
  4716. INT 16 U - PC Tools v9+ CPTASK - SET ???
  4717.     AX = FF80h
  4718.     BX = 000Ah
  4719.     DS:SI -> 128-byte buffer containing ???
  4720. --------T-16FF80BX000B-----------------------
  4721. INT 16 U - PC Tools v9+ CPTASK - SET ???
  4722.     AX = FF80h
  4723.     BX = 000Bh
  4724.     DX = index of ??? task (1-10)
  4725. --------T-16FF80BX000C-----------------------
  4726. INT 16 U - PC Tools v9+ CPTASK - SET IDLE??? DELAY
  4727.     AX = FF80h
  4728.     BX = 000Ch
  4729.     CX = new delay time in minutes
  4730. --------T-16FF80BX4350-----------------------
  4731. INT 16 U - PC Tools v8+ CPTASK - UNINSTALL
  4732.     AX = FF80h
  4733.     BX = 4350h ('CP')
  4734.     CX = 5354h ('ST')
  4735. Return: never returns; terminates all tasks and exits to program originally
  4736.       calling CPTASK
  4737. --------U-16FF90-----------------------------
  4738. INT 16 U - PC Tools v8+ DESKTOP - ???
  4739.     AX = FF90h
  4740.     ???
  4741. Return: ???
  4742. Note:    available only when popped up
  4743. --------U-16FF91-----------------------------
  4744. INT 16 U - PC Tools v7+ DESKTOP - ???
  4745.     AX = FF91h
  4746.     ???
  4747. Return: AX = 0000h
  4748. Note:    calls AX=FFFDh after ???
  4749. SeeAlso: AX=FF92h,AX=FFFDh
  4750. --------U-16FF92-----------------------------
  4751. INT 16 U - PC Tools v7+ DESKTOP - ???
  4752.     AX = FF92h
  4753.     ???
  4754. Return: AX = 0000h
  4755. Note:    like AX=FF91h, but temporarily sets ??? to 3
  4756. SeeAlso: AX=FF91h,AX=FFFDh
  4757. --------U-16FF93-----------------------------
  4758. INT 16 U - PC Tools v7+ DESKTOP - SET ??? FLAG
  4759.     AX = FF93h
  4760. --------U-16FF94-----------------------------
  4761. INT 16 U - PC Tools v7+ DESKTOP - SET ???
  4762.     AX = FF94h
  4763.     CX = ??? (default 0017h)
  4764. --------U-16FF95-----------------------------
  4765. INT 16 U - PC Tools v7+ DESKTOP - SET ???
  4766.     AX = FF95h
  4767.     BX = ???
  4768. --------U-16FF96-----------------------------
  4769. INT 16 U - PC Tools v7+ DESKTOP - ???
  4770.     AX = FF96h
  4771.     CL = ???
  4772. Return: AX = ???
  4773. --------U-16FF97-----------------------------
  4774. INT 16 U - PC Tools v7+ DESKTOP - ???
  4775.     AX = FF97h
  4776.     DS:DX -> buffer for ??? (see #0431)
  4777. Return: ???
  4778.  
  4779. Format of PC Tools DESKTOP buffer:
  4780. Offset    Size    Description    (Table 0431)
  4781.  00h 48 BYTEs    ???
  4782.  30h 128 BYTEs    ???
  4783. --------U-16FF98-----------------------------
  4784. INT 16 U - PC Tools v7+ DESKTOP - OPEN \DESK.OVL FILE AND SEEK TO OVERLAY
  4785.     AX = FF98h
  4786.     DX = byte offset in file of overlay header (see #0432)
  4787. Return: BX = file handle for DESK.OVL file
  4788. Desc:    open the DESK.OVL file, seek to the specified offset, read in the
  4789.       overlay header, and seek to the offset specified by the header
  4790.  
  4791. Format of PC Tools DESKTOP overlay header:
  4792. Offset    Size    Description    (Table 0432)
  4793.  00h 12 BYTEs    NUL-padded ASCII overlay filename
  4794.  0Ch    DWORD    offset within DESK.OVL file of actual overlay
  4795. --------U-16FF99-----------------------------
  4796. INT 16 U - PC Tools v7+ DESKTOP - ???
  4797.     AX = FF99h
  4798.     ???
  4799. Return: ???
  4800. --------U-16FF9A-----------------------------
  4801. INT 16 U - PC Tools v7+ DESKTOP - GET NAME OF COLOR SCHEME
  4802.     AX = FF9Ah
  4803. Return: ES:BX -> name of current color scheme
  4804. Note:    available even if not popped up
  4805. --------U-16FF9B-----------------------------
  4806. INT 16 U - PC Tools v7+ DESKTOP - UNUSED
  4807.     AX = FF9Bh
  4808. Return: ???
  4809. Note:    sounds triple-length beep
  4810. --------T-16FF9C-----------------------------
  4811. INT 16 U - PC Tools v8+ CPTASK - SET/CLEAR ??? POINTER
  4812.     AX = FF9Ch
  4813.     BL = function
  4814.         00h set ??? pointer
  4815.         DS:SI -> ???
  4816.         01h clear pointer to 0000h:0000h
  4817. ----------16FF9D-----------------------------
  4818. INT 16 U - PC Tools v8+ CPTASK, VSAFE - ???
  4819.     AX = FF9Dh
  4820.     ES:BX -> ??? word
  4821. Return: ???
  4822. Note:    if ES is non-zero, the word pointed at by ES:BX determines whether the
  4823.       ??? flag is cleared (word = 0000h) or set (word is nonzero).    The
  4824.       flag is always cleared if ES=0000h.
  4825. --------U-16FF9E-----------------------------
  4826. INT 16 U - PC Tools v7+ DESKTOP - ???
  4827.     AX = FF9Eh
  4828.     DL = ???
  4829.         bit 7: ???
  4830.         bits 6-0: function number??? (00h,01h,other)
  4831.     ???
  4832. Return: ???
  4833. --------U-16FFA1-----------------------------
  4834. INT 16 U - PC Tools v7+ DESKTOP - ???
  4835.     AX = FFA1h
  4836.     ???
  4837. Return: ???
  4838. Note:    same as AX=FFA2h, except ??? set to FFh
  4839. SeeAlso: AX=FFA2h
  4840. --------U-16FFA2-----------------------------
  4841. INT 16 U - PC Tools v7+ DESKTOP - ???
  4842.     AX = FFA2h
  4843.     ???
  4844. Return: ???
  4845. Note:    calls AX=FFC7h (remove window) and AX=FFFDh
  4846. SeeAlso: AX=FFA1h,AX=FFC7h,AX=FFFDh
  4847. --------y-16FFA3BX0000-----------------------
  4848. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - INSTALLATION CHECK
  4849.     AX = FFA3h
  4850.     BX = 0000h
  4851.     CX = 0000h
  4852. Return: AX = segment of resident code
  4853.     BX = 5555h
  4854.     CX = 5555h
  4855. Note:    also supported by DOS 6 UNDELETE which is licensed from PC Tools
  4856. SeeAlso: INT 21/AH=3Fh"NB.SYS",INT 21/AX=4101h,INT 2F/AX=6284h
  4857. --------y-16FFA3BX0001-----------------------
  4858. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
  4859.     AX = FFA3h
  4860.     BX = 0001h
  4861.     CX = 0001h
  4862. Return: AX:BX -> ???
  4863.     CX = BX
  4864. --------y-16FFA3BX0002-----------------------
  4865. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
  4866.     AX = FFA3h
  4867.     BX = 0002h
  4868.     CX = 0002h
  4869. Return: AX = ??? (0 or 1)
  4870.     CX = BX = AX
  4871. --------y-16FFA3BX0003-----------------------
  4872. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
  4873.     AX = FFA3h
  4874.     BX = 0003h
  4875.     CX = 0003h
  4876. Return: AX = ??? (0 or 1)
  4877.     CX = BX = AX
  4878. --------y-16FFA3BX0004-----------------------
  4879. INT 16 U - PC Tools v7+ DATAMON - SET ??? FLAG
  4880.     AX = FFA3h
  4881.     BX = 0004h
  4882.     CX = 0004h
  4883. SeeAlso: AX=FFA3h/BX=0005h
  4884. --------y-16FFA3BX0005-----------------------
  4885. INT 16 U - PC Tools v7+ DATAMON - CLEAR ??? FLAG
  4886.     AX = FFA3h
  4887.     BX = 0005h
  4888.     CX = 0005h
  4889. SeeAlso: AX=FFA3h/BX=0004h
  4890. --------y-16FFA3BX0006-----------------------
  4891. INT 16 U - PC Tools v7+ DATAMON - SET PSP SEGMENT ???
  4892.     AX = FFA3h
  4893.     BX = 0006h
  4894.     CX = 0006h
  4895.     DX = current PSP segment as known to DOS??? or 0000h
  4896. ----------16FFA3BXFFA3-----------------------
  4897. INT 16 U - PC Tools v9 DSKLIGHT - INSTALLATION CHECK
  4898.     AX = FFA3h
  4899.     BX = FFA3h
  4900.     CX = FFA3h
  4901. Return: BX = CX = 5555h if installed
  4902.         AX = resident code segment
  4903. Program: DSKLIGHT is a TSR included with PC Tools v9+ which displays a disk-
  4904.       access indicator on the screen; in v7 and v8, this function was
  4905.       provided by DATAMON
  4906. Note:    DSKLIGHT chains to the previous handler if BX or CX is not FFA3h
  4907. --------U-16FFA4-----------------------------
  4908. INT 16 U - PC Tools v7-8 DESKTOP - ???
  4909.     AX = FFA4h
  4910. Return: ???
  4911. Notes:    available even when not popped up
  4912.     sets unknown flag if ??? conditions met
  4913. SeeAlso: AX=FEA4h
  4914. --------c-16FFA5CX1111-----------------------
  4915. INT 16 - PC-Cache v6+ - INSTALLATION CHECK
  4916.     AX = FFA5h
  4917.     CX = 1111h
  4918. Return: CH = 00h if installed
  4919.         ES:DI -> internal data (see #0433)
  4920.         CL = cache state
  4921.         01h enabled
  4922.         02h disabled
  4923. SeeAlso: INT 13/AH=27h,INT 13/AH=A0h,INT 21/AH=2Bh/CX=4358h
  4924.  
  4925. Format of PC-Cache internal data:
  4926. Offset    Size    Description    (Table 0433)
  4927. -1Ch 20 BYTEs    cached drive list, one byte per drive A: to T:
  4928.         each byte is either blank (20h) or drive letter (41h-54h)
  4929.  -8    BYTE    ???
  4930.  -7    WORD    number of physical transfers (scaled down to 0000h-7FFFh)
  4931.  -5    WORD    number of saved transfers (scaled down to 0000h-7FFFh)
  4932.  -3   3 BYTEs    ???
  4933. --------c-16FFA5CXAAAA-----------------------
  4934. INT 16 - PC-Cache v6+ - ENABLE DELAYED WRITES
  4935.     AX = FFA5h
  4936.     CX = AAAAh
  4937. Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
  4938. SeeAlso: AX=FFA5h/CX=CCCCh
  4939. --------c-16FFA5CXCCCC-----------------------
  4940. INT 16 - PC-Cache v6+ - FLUSH CACHE AND DISABLE DELAYED WRITES
  4941.     AX = FFA5h
  4942.     CX = CCCCh
  4943. Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
  4944. Note:    delayed writes are automatically disabled on EXECing
  4945.       (see INT 21/AH=4Bh) a program named either WIN.CO? or DV.E??;
  4946.       however, delayed writes are not automatically reenabled upon the
  4947.       program's termination in v6.
  4948. SeeAlso: AX=FFA5h/CX=AAAAh,AX=FFA5h/CX=FFFFh
  4949. --------c-16FFA5CXDDDD-----------------------
  4950. INT 16 - PC-Cache v6+ - FLUSH AND DISABLE CACHE
  4951.     AX = FFA5h
  4952.     CX = DDDDh
  4953. SeeAlso: AX=FFA5h/CX=EEEEh,AX=FFA5h/CX=FFFFh
  4954. --------c-16FFA5CXEEEE-----------------------
  4955. INT 16 - PC-Cache v6+ - ENABLE CACHE
  4956.     AX = FFA5h
  4957.     CX = EEEEh
  4958. SeeAlso: AX=FFA5h/CX=DDDDh
  4959. --------c-16FFA5CXFFFF-----------------------
  4960. INT 16 - PC-Cache v6+ - FLUSH CACHE
  4961.     AX = FFA5h
  4962.     CX = FFFFh
  4963. SeeAlso: AX=FFA5h/CX=CCCCh,AX=FFA5h/CX=DDDDh,INT 13/AH=A1h
  4964. --------U-16FFA6-----------------------------
  4965. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
  4966.     AX = FFA6h
  4967. Return: DS:SI -> ???
  4968. Note:    available only when popped up
  4969. --------U-16FFA7-----------------------------
  4970. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ??? PATH
  4971.     AX = FFA7h
  4972. Return: DS:SI -> ASCIZ path (directory from which PCTools was run???)
  4973. --------U-16FFA8-----------------------------
  4974. INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
  4975.     AX = FFA8h
  4976.     DS:SI -> three consecutive ASCIZ strings for ??? (max 256 bytes total)
  4977.     ???
  4978. Return: ???
  4979. Notes:    available only when popped up
  4980.     strings copied into internal buffer, among other actions
  4981. --------U-16FFA9-----------------------------
  4982. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET VERSION STRING
  4983.     AX = FFA9h
  4984. Return: DS:SI -> version string
  4985. --------U-16FFAA-----------------------------
  4986. INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
  4987.     AX = FFAAh
  4988.     ???
  4989. Return: ???
  4990. Note:    available only when popped up
  4991. --------U-16FFAB-----------------------------
  4992. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET EDITOR SETTINGS???
  4993.     AX = FFABh
  4994. Return: DS:SI -> editor setting strings???
  4995. --------U-16FFAC-----------------------------
  4996. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  4997.     AX = FFACh
  4998.     DL = ???
  4999. Note:    available only when popped up
  5000. --------U-16FFAD-----------------------------
  5001. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  5002.     AX = FFADh
  5003.     DL = ???
  5004. --------U-16FFAE-----------------------------
  5005. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
  5006.     AX = FFAEh
  5007. Return: AL = ???
  5008. --------U-16FFAF-----------------------------
  5009. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  5010.     AX = FFAFh
  5011.     DL = ???
  5012. --------U-16FFB0-----------------------------
  5013. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  5014.     AX = FFB0h
  5015.     BL = ???
  5016. --------U-16FFB1-----------------------------
  5017. INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
  5018.     AX = FFB1h
  5019.     ???
  5020. Return: ???
  5021. --------U-16FFB2-----------------------------
  5022. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
  5023.     AX = FFB2h
  5024. Return: DS:SI -> ???
  5025. --------U-16FFB3-----------------------------
  5026. INT 16 U - PC Tools v5.5-8.0 DESKTOP - ???
  5027.     AX = FFB3h
  5028.     ???
  5029. Return: ???
  5030. Note:    available only when popped up
  5031. --------U-16FFB4-----------------------------
  5032. INT 16 U - PC Tools v5.5-8.0 DESKTOP - SET ??? FLAG
  5033.     AX = FFB4h
  5034. Note:    available only when popped up
  5035. SeeAlso: AX=FFBBh
  5036. --------U-16FFB5-----------------------------
  5037. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET WINDOW PARAMETERS
  5038.     AX = FFB5h
  5039.     BX = window specifier (000Fh to 0019h) (see #0434)
  5040.     DX = 0000h get, nonzero = set
  5041.     ES:DI -> window parameter buffer (see #0435)
  5042. SeeAlso: AX=FFCBh
  5043.  
  5044. (Table 0434)
  5045. Values for PC Tools DESKTOP window specifier:
  5046.  000Fh    comm/FAX
  5047.  0014h    hotkey selection
  5048.  0015h    ASCII table
  5049.  0016h    system colors menu
  5050.  
  5051. Format of PC Tools DESKTOP window parameters:
  5052. Offset    Size    Description    (Table 0435)
  5053.  00h    BYTE    rows in window, not counting frame
  5054.  01h    BYTE    columns in window, not counting frame
  5055.  02h    BYTE    row number of top of window
  5056.  03h    BYTE    2*column number of left of window
  5057.  04h    BYTE    character attribute for ???
  5058.  05h    BYTE    character attribute for background/border
  5059.  06h    BYTE    character attribute for ???
  5060.  07h    DWORD    pointer to ??? on screen
  5061.  0Bh  4 BYTEs    ???
  5062.  0Fh    BYTE    nonzero if window may be resized
  5063. Note:    if running in monochrome mode, character attributes at offsets 04h to
  5064.       06h are stored unchanged, but attributes other than 07h, 0Fh, or 70h
  5065.       are changed to 07h on reading
  5066. --------U-16FFB6-----------------------------
  5067. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
  5068.     AX = FFB6h
  5069. Return: AH = ???
  5070.     AL = ???
  5071. --------U-16FFB7-----------------------------
  5072. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET ???
  5073.     AX = FFB7h
  5074.     BX = direction
  5075.         0000h copy to buffer
  5076.         else  copy from buffer
  5077.     DS:SI -> 70-byte buffer with ???
  5078. Return: data copied
  5079. Note:    available only when popped up under v6.0+
  5080. --------U-16FFB8-----------------------------
  5081. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET/SET???
  5082.     AX = FFB8h
  5083.     BH = subfunction
  5084.         00h get
  5085.         Return: BL = old value of ???
  5086.             CL = old value of ??? (v6.0+)
  5087.             CH = old value of ??? (v6.0+)
  5088.         nonzero set
  5089.         BL = new value for ???
  5090.         CL = new value for ??? (v6.0+)
  5091.         CH = new value for ??? (v6.0+)
  5092.         DH = ???
  5093.         Return: AL = old value replaced by CL (v6.0+)
  5094.             AH = old value replaced by CH (v6.0+)
  5095. --------U-16FFB9-----------------------------
  5096. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5097.     AX = FFB9h
  5098.     ???
  5099. Return: AX = ???
  5100.     CX = ???
  5101.     DS:SI -> ???
  5102.     ES:DI -> ???
  5103. --------U-16FFBA-----------------------------
  5104. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5105.     AX = FFBAh
  5106.     ???
  5107. Return: AX = ???
  5108. Note:    available only when popped up
  5109. --------U-16FFBB-----------------------------
  5110. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLEAR ??? FLAG
  5111.     AX = FFBBh
  5112. Note:    available only when popped up
  5113. SeeAlso: AX=FFB4h
  5114. --------U-16FFBC-----------------------------
  5115. INT 16 U - PC Tools v5.1-8.0 DESKTOP - RESTORE ORIGINAL SCREEN???
  5116.     AX = FFBCh
  5117. --------U-16FFBD-----------------------------
  5118. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? DATABASE INDEXING MESSAGES
  5119.     AX = FFBDh
  5120.     ???
  5121. Return: ???
  5122. --------U-16FFBE-----------------------------
  5123. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5124.     AX = FFBEh
  5125.     ???
  5126. Return: ???
  5127. Note:    available only when popped up
  5128. --------U-16FFBF-----------------------------
  5129. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5130.     AX = FFBFh
  5131.     BX = DOS file handle to write on
  5132.     ???
  5133. Return: ???
  5134. Note:    available only when popped up
  5135. --------U-16FFC0-----------------------------
  5136. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5137.     AX = FFC0h
  5138.     ???
  5139. Return: AX = 0000h if successful
  5140.     AX = FFFFh on error
  5141. Note:    available only when popped up
  5142. --------U-16FFC1-----------------------------
  5143. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5144.     AX = FFC1h
  5145.     BL = ???
  5146.     ES:DI -> data structure (see #0436)
  5147.     ???
  5148. Return: AX = ???
  5149. Note:    available only when popped up
  5150. SeeAlso: AX=FFC2h,AX=FFC3h
  5151.  
  5152. Format of PC Tools DESKTOP data structure:
  5153. Offset    Size    Description    (Table 0436)
  5154.  00h    WORD    ???
  5155.  02h    WORD    ???
  5156.  04h    WORD    ???
  5157.  06h    WORD    ???
  5158.  08h    WORD    ???
  5159.  0Ah    BYTE    ???
  5160.  0Bh    BYTE    ??? (zero/nonzero)
  5161. ---v7.1---
  5162.  0Ch    WORD    ???
  5163.  0Eh    BYTE    ???
  5164.  0Fh    WORD    ???
  5165.  11h    WORD    ???
  5166.     ???
  5167. --------U-16FFC2-----------------------------
  5168. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5169.     AX = FFC2h
  5170.     BL = ???
  5171.     ES:DI -> data structure (see #0436)
  5172.     ???
  5173. Return: AH = ???
  5174.     CX = ???
  5175.     DH = ???
  5176.     DL = ???
  5177. Note:    available only when popped up
  5178. SeeAlso: AX=FFC1h,AX=FFC3h
  5179. --------U-16FFC3-----------------------------
  5180. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5181.     AX = FFC3h
  5182.     BL = ???
  5183.     ES:DI -> data structure (see #0436)
  5184.     ???
  5185. Return: AH = ???
  5186.     CX = ???
  5187.     DH = ???
  5188.     DL = ???
  5189. Note:    available only when popped up
  5190. SeeAlso: AX=FFC1h,AX=FFC2h
  5191. --------U-16FFC4-----------------------------
  5192. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  5193.     AX = FFC4h
  5194. Return: AL = ???
  5195.     BX = segment of scratch space???
  5196.     CX = segment of stored screen data (section covered by window???)
  5197.     DX = segment of window parameters for ???
  5198.     ES:BP -> ???
  5199. Note:    available only when popped up in versions prior to 6.0
  5200. --------U-16FFC5-----------------------------
  5201. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK WHETHER DESKTOP LOADED RESIDENT
  5202.     AX = FFC5h
  5203. Return: BL = Desktop state
  5204.         00h if nonresident
  5205.         nonzero if loaded resident
  5206. Note:    available only when popped up; should call AX=FFEFh first to ensure
  5207.       that DESKTOP is active
  5208. SeeAlso: AX=FFEFh,AX=FFF3h
  5209. --------U-16FFC6-----------------------------
  5210. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  5211.     AX = FFC6h
  5212.     BL = new value for ???
  5213. --------U-16FFC7-----------------------------
  5214. INT 16 U - PC Tools v5.1-8.0 DESKTOP - REMOVE WINDOW
  5215.     AX = FFC7h
  5216.     ???
  5217. Return: ???
  5218. --------U-16FFC8-----------------------------
  5219. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  5220.     AX = FFC8h
  5221. Return: DS:SI -> ???
  5222. Note:    valid only while popped up
  5223. --------U-16FFC9-----------------------------
  5224. INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY DATA TO CLIPBOARD
  5225.     AX = FFC9h
  5226.     DS:SI -> characters to store in clipboard
  5227.     CX = size in bytes
  5228. Return: CF set on error
  5229. Notes:    available only when popped up
  5230.     while copying, bytes of 00h and 0Ah are skipped
  5231. --------U-16FFCA-----------------------------
  5232. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  5233.     AX = FFCAh
  5234.     DX = ???
  5235. Return: AX destroyed
  5236. Note:    available only when popped up
  5237. --------U-16FFCB-----------------------------
  5238. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SELECT WINDOW PARAMETERS???
  5239.     AX = FFCBh
  5240.     DX = window specifier???
  5241. Return: AX destroyed
  5242. Note:    available only when popped up
  5243. SeeAlso: AX=FFB5h
  5244. --------U-16FFCC-----------------------------
  5245. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY ASCIZ STRING CENTERED IN WINDOW
  5246.     AX = FFCCh
  5247.     DS:SI -> ASCIZ string
  5248. Return: AX = ???
  5249.     CX = ???
  5250.     ES:DI -> address past last character displayed (v5.1/5.5)
  5251.           -> ??? on menu bar (v6.0)
  5252. --------U-16FFCD-----------------------------
  5253. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5254.     AX = FFCDh
  5255.     DS:DX -> ???
  5256. Return: ???
  5257. Note:    available only when popped up
  5258. --------U-16FFCE-----------------------------
  5259. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? DELAYS
  5260.     AX = FFCEh
  5261.     CX = ???
  5262. Return: nothing???
  5263. --------U-16FFCF-----------------------------
  5264. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLOSE PRINTER/PRINT FILE
  5265.     AX = FFCFh
  5266. Note:    available only when popped up
  5267. --------U-16FFD0-----------------------------
  5268. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO PRINT???
  5269.     AX = FFD0h
  5270.     ???
  5271. Return: ???
  5272. Note:    available only when popped up
  5273. --------U-16FFD1-----------------------------
  5274. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY PRINT OPTIONS MENU
  5275.     AX = FFD1h
  5276. Return: BX = number of copies
  5277.     DX = destination
  5278.         00h cancel
  5279.         01h LPT1
  5280.         02h LPT2
  5281.         03h LPT3
  5282.         04h COM1
  5283.         05h COM2
  5284.         06h disk file
  5285. Note:    available only when popped up
  5286. --------U-16FFD2-----------------------------
  5287. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5288.     AX = FFD2h
  5289.     BX = ???
  5290. Return: BL = ???
  5291. Note:    available only when popped up
  5292. --------U-16FFD3-----------------------------
  5293. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5294.     AX = FFD3h
  5295.     DS:SI -> 92-byte data record for ???
  5296. Return: ???
  5297. SeeAlso: AX=FED3h
  5298. --------U-16FFD4BH3C-------------------------
  5299. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CREATE/OPEN/DELETE FILE
  5300.     AX = FFD4h
  5301.     BH = 3Ch create file (with no attributes)
  5302.          3Dh open file
  5303.          41h delete file
  5304.     BL = access mode
  5305.          00h read only
  5306.          01h write only
  5307.          02h read/write
  5308.     DS:SI -> ASCIZ filename
  5309. Return: BX = file handle
  5310.         0000h on error
  5311. Note:    operation is attempted in (in order) the directory from which the
  5312.       desktop was started/run???, the directory specified with the
  5313.       filename, X:\PCTOOLS\, and X:\
  5314. --------U-16FFD5-----------------------------
  5315. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5316.     AX = FFD5h
  5317.     ???
  5318. Return: ???
  5319. Note:    available only when popped up
  5320. --------U-16FFD6-----------------------------
  5321. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5322.     AX = FFD6h
  5323.     BX = ???
  5324.     CX = ???
  5325.     DX = offset in ???
  5326.     ???
  5327. Return: ???
  5328. Note:    available only when popped up
  5329. --------U-16FFD7-----------------------------
  5330. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5331.     AX = FFD7h
  5332.     ???
  5333. Return: BL = ???
  5334. Note:    available only when popped up
  5335. --------U-16FFD8-----------------------------
  5336. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SAFE CREATE FILE
  5337.     AX = FFD8h
  5338.     DS:BX -> ASCIZ filename
  5339. Return: BX = file handle
  5340.         0000h on error
  5341. Note:    pops up confirmation menu if file already exists
  5342.     only available when popped up???
  5343. --------U-16FFD9-----------------------------
  5344. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  5345.     AX = FFD9h
  5346. Return: AX = ???
  5347. Note:    available only when popped up
  5348. --------U-16FFDA-----------------------------
  5349. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET NAME OF LAST FILE OPENED
  5350.     AX = FFDAh
  5351.     DS:SI -> ??? (v5.1/5.5 only)
  5352. Return: DS:SI -> filename
  5353. --------U-16FFDB-----------------------------
  5354. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  5355.     AX = FFDBh
  5356.     BL = ???
  5357. Note:    available only when popped up
  5358. --------U-16FFDC-----------------------------
  5359. INT 16 U - PC Tools v5.1-8.0 DESKTOP - UNHOOK
  5360.     AX = FFDCh
  5361. Return: interrupt vectors 09h, 10h (v6.0+), 16h, 1Ch, and 21h restored to
  5362.       original values
  5363. Index:    uninstall;PC Tools DESKTOP
  5364. --------U-16FFDDBX0000-----------------------
  5365. INT 16 U - PC Tools v5.1+ PCShell API - INSTALLATION CHECK
  5366.     AX = FFDDh
  5367.     BX = 0000h
  5368. Return: CX = 5555h
  5369.     DX = 5555h if PCShell installed in resident mode
  5370. --------U-16FFDDBX0001-----------------------
  5371. INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
  5372.     AX = FFDDh
  5373.     BX = 0001h
  5374. Return: CF clear if request successful (PCShell will pop up)
  5375.     CF set on error
  5376. SeeAlso: AX=FFDDh/BX=0003h
  5377. --------U-16FFDDBX0002-----------------------
  5378. INT 16 U - PC Tools v5.1-5.5 PCShell API - GET ???
  5379.     AX = FFDDh
  5380.     BX = 0002h
  5381. Return: AL =
  5382.         00h ???
  5383.         01h ???
  5384. Note:    PCShell v6.0+ displays the error message "Incorrect PCRUN version",
  5385.       awaits a keystroke, and aborts the current process
  5386. --------U-16FFDDBX0003-----------------------
  5387. INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
  5388.     AX = FFDDh
  5389.     BX = 0003h
  5390. SeeAlso: AX=FFDDh/BX=0001h
  5391. --------U-16FFDDBX0004-----------------------
  5392. INT 16 U - PC Tools v5.1+ PCShell API - GET ???
  5393.     AX = FFDDh
  5394.     BX = 0004h
  5395. Return: CF clear if successful
  5396.         DS:SI -> ???
  5397. --------U-16FFDDBX0005-----------------------
  5398. INT 16 U - PC Tools v5.1+ PCShell API - ???
  5399.     AX = FFDDh
  5400.     BX = 0005h
  5401.     ???
  5402. Return: ???
  5403. Note:    resets various variables if certain conditions are met
  5404. --------U-16FFDDBX0006-----------------------
  5405. INT 16 U - PC Tools v5.1+ PCShell API - ???
  5406.     AX = FFDDh
  5407.     BX = 0006h
  5408.     ???
  5409. Return: ???
  5410. Note:    resets various variables if certain conditions are met
  5411. --------U-16FFDDBX0007-----------------------
  5412. INT 16 U - PC Tools v5.1+ PCShell API - SET ??? FLAG
  5413.     AX = FFDDh
  5414.     BX = 0007h
  5415. Return: CF clear if successful
  5416. SeeAlso: AX=FFDDh/BX=0008h
  5417. --------U-16FFDDBX0008-----------------------
  5418. INT 16 U - PC Tools v5.1+ PCShell API - CLEAR ??? FLAG
  5419.     AX = FFDDh
  5420.     BX = 0008h
  5421. Return: CF undefined
  5422. SeeAlso: AX=FFDDh/BX=0007h
  5423. --------U-16FFDDBX0009-----------------------
  5424. INT 16 U - PC Tools v6.0+ PCShell API - GET PCRUN PARAMETERS
  5425.     AX = FFDDh
  5426.     BX = 0009h
  5427. Return: CF clear if successful
  5428.         DS:SI -> list of pointers (see #0437)
  5429.  
  5430. Format of PC Tools PCShell returned pointer list:
  5431. Offset    Size    Description    (Table 0437)
  5432.  00h    WORD    offset of WORD containing ???
  5433.  02h    WORD    offset of name of program to execute
  5434.  04h    WORD    offset of 80-byte buffer for ???
  5435.  06h    WORD    offset of buffer for ??? (length in WORD preceding buffer)
  5436.  08h    WORD    offset of buffer for ??? (length in WORD preceding buffer)
  5437. --------U-16FFDDBX000A-----------------------
  5438. INT 16 U - PC Tools v6.0+ PCRUN API - INSTALLATION CHECK
  5439.     AX = FFDDh
  5440.     BX = 000Ah
  5441. Return: CX = 5555h if running
  5442.     DX = 5555h
  5443. Note:    also sets a flag
  5444. --------U-16FFDDBX000B-----------------------
  5445. INT 16 U - PC Tools v6.0+ PCRUN API - ???
  5446.     AX = FFDDh
  5447.     BX = 000Bh
  5448.     ???
  5449. Return: CX = 5555h if PCRUN active
  5450.     DX = 5555h
  5451. Note:    also clears flag set by AX=FFDDh/BX=000Ah
  5452. --------U-16FFDE-----------------------------
  5453. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY POPUP MENU
  5454.     AX = FFDEh
  5455.     DS:DX -> menu description (must be on a paragraph boundary)
  5456. Return: AX = ???
  5457.         AL seems to be the number of the selected button
  5458. Note:    available only when popped up
  5459. SeeAlso: AX=FFEEh
  5460. --------U-16FFDF-----------------------------
  5461. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5462.     AX = FFDFh
  5463.     ???
  5464. Return: ???
  5465. --------U-16FFE0-----------------------------
  5466. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5467.     AX = FFE0h
  5468.     CX = ???
  5469.     DX = ???
  5470. Note:    available only when popped up
  5471. --------U-16FFE1-----------------------------
  5472. INT 16 U - PC Tools v5.1-8.0 DESKTOP - BEEP
  5473.     AX = FFE1h
  5474. --------U-16FFE2-----------------------------
  5475. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5476.     AX = FFE2h
  5477.     DX = ???
  5478. Return: ???
  5479. Note:    available only when popped up
  5480. --------U-16FFE3-----------------------------
  5481. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PRINT CHARACTER
  5482.     AX = FFE3h
  5483.     BL = character to print to currently open printer or print file
  5484. Return: CF set on error
  5485. Note:    available only when popped up
  5486. SeeAlso: INT 17/AH=00h
  5487. --------U-16FFE4-----------------------------
  5488. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5489.     AX = FFE4h
  5490.     DX = segment of ???
  5491. Return: ???
  5492. Note:    available only when popped up
  5493. --------U-16FFE5-----------------------------
  5494. INT 16 U - PC Tools v5.1-8.0 DESKTOP - POP UP FILE SELECTION MENU
  5495.     AX = FFE5h
  5496.     DS:SI -> ASCIZ wildcard filespec followed by ASCIZ menu title
  5497.     DX = segment of window parameters???
  5498. Return: AX = DOS file handle for file
  5499.         DS:DX -> filename???
  5500.         FFFFh if function cancelled by user
  5501. Note:    available only when popped up
  5502. SeeAlso: AX=FFDAh
  5503. --------U-16FFE6-----------------------------
  5504. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK FOR AND GET KEYSTROKE
  5505.     AX = FFE6h
  5506. Return: AX = 0000h if no key available
  5507.          else  BIOS keycode
  5508. Notes:    available only when popped up
  5509.     invokes INT 28 idle interrupt before checking for key
  5510. --------U-16FFE7-----------------------------
  5511. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5512.     AX = FFE7h
  5513.     BX = segment of ???
  5514. Return: ???
  5515. Note:    available only when popped up
  5516. --------U-16FFE8-----------------------------
  5517. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY NUMBER
  5518.     AX = FFE8h
  5519.     CX = number
  5520.     DH = attribute
  5521.     DS:SI -> destination for ASCII number
  5522. Return: DS:SI buffer filled in with alternating characters and attributes
  5523. --------U-16FFE9-----------------------------
  5524. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET FILE LIST???
  5525.     AX = FFE9h
  5526. Return: BX = segment of file/directory list (14 bytes per file, NUL-padded)
  5527. Note:    available only when popped up
  5528. --------U-16FFEA-----------------------------
  5529. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY COUNTED STRING
  5530.     AX = FFEAh
  5531.     DS:SI -> counted string (count byte followed by string)
  5532. Return: ???
  5533. Note:    available only when popped up
  5534. --------U-16FFEB-----------------------------
  5535. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5536.     AX = FFEBh
  5537.     ???
  5538. Return: ???
  5539. --------U-16FFEC-----------------------------
  5540. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET KEY
  5541.     AX = FFECh
  5542.     DS:SI -> FAR routine to ???
  5543.     BX = ???
  5544.     ???
  5545. Return: AX = keystroke
  5546.         FFFFh if F10 pressed to go to menu
  5547. Notes:    available only when popped up
  5548.     invokes INT 28 while waiting for keystroke
  5549.     F10 is hotkey to Desktop menu
  5550. Index:    hotkeys;PC Tools DESKTOP
  5551. --------U-16FFED-----------------------------
  5552. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  5553.     AX = FFEDh
  5554. Return: AX = ???
  5555. Note:    available only when popped up
  5556. --------U-16FFEE-----------------------------
  5557. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE PULLDOWN MENUS
  5558.     AX = FFEEh
  5559.     DS:SI -> pulldown menu system description (see #0438)
  5560. Return: AX destroyed
  5561. Notes:    available only when popped up
  5562.     if the accessory does not need any menu items of its own, it should
  5563.       call AX=FFFAh instead
  5564. SeeAlso: AX=FFF7h,AX=FFFAh
  5565.  
  5566. Format of PC Tools DESKTOP pulldown menu system description:
  5567. Offset    Size    Description    (Table 0438)
  5568.  00h    WORD    offset of menu bar contents (counted string)
  5569.  02h    WORD    number of items on menu bar
  5570.  04h 10 BYTEs    scan codes for hotkeying to each of up to ten menu items
  5571.  0Eh 10 BYTEs    which character to highlight in each menu item (01h=first)
  5572.  18h    WORD    offset of first menu definition (see #0439)
  5573.  1Ah    WORD    offset of second menu definition
  5574.     ...
  5575.  
  5576. Format of PC Tools DESKTOP menu definition:
  5577. Offset    Size    Description    (Table 0439)
  5578.  00h    WORD    offset of menu contents (see #0440)
  5579.  02h    WORD    number of entries in menu
  5580.  04h    for each entry:
  5581.         Offset    Size    Description
  5582.          00h    BYTE    scancode of Alt-key to invoke entry
  5583.          01h    BYTE    character to highlight (01h=first, etc)
  5584.          02h    WORD    offset of FAR routine to handle selection
  5585.  
  5586. Format of PC Tools DESKTOP menu contents:
  5587. Offset    Size    Description    (Table 0440)
  5588.  00h    BYTE    number of lines in menu
  5589.  01h    BYTE    width of menu
  5590.  02h  N BYTEs    counted strings, one for each line in menu
  5591. --------U-16FFEFCX0000-----------------------
  5592. INT 16 U - PC Tools v5.1-8.0 DESKTOP - INSTALLATION CHECK
  5593.     AX = FFEFh
  5594.     CX = 0000h
  5595. Return: CX = ABCDh if PC Tools DESKTOP.EXE installed
  5596.         BX = segment of resident portion
  5597.         AX = ??? (v5.1/5.5 only)
  5598. SeeAlso: AX=FEEFh,AX=FFC5h,AX=FFF3h
  5599. --------U-16FFF0-----------------------------
  5600. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  5601.     AX = FFF0h
  5602.     DX = ???
  5603. Return: AX destroyed
  5604. Note:    available only when popped up
  5605. --------U-16FFF1BX0000-----------------------
  5606. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ALTERNATE INSTALLATION CHECK
  5607.     AX = FFF1h
  5608.     BX = 0000h  leave ??? flag as is
  5609.         nonzero set ??? flag
  5610. Return: CX = 5555h if installed
  5611.     DX = 5555h
  5612. --------U-16FFF2-----------------------------
  5613. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY HELP LINE
  5614.     AX = FFF2h
  5615.     DS:SI -> ASCIZ function key label string (each label preceded by '[')
  5616.         or help text
  5617. Return: AX destroyed
  5618. Notes:    available only when popped up
  5619.     if the specified string does not start with '[', it is displayed
  5620.       centered on the bottom line, else the function key labels are shown
  5621. --------U-16FFF3-----------------------------
  5622. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO UNLOAD RESIDENT DESKTOP
  5623.     AX = FFF3h
  5624. Note:    releases any EMS being used; restores video mode, page, and cursor
  5625.       shape; and restores interrupt vectors
  5626. SeeAlso: AX=FFC5h,AX=FFEFh
  5627. Index:    uninstall;PC Tools DESKTOP
  5628. --------U-16FFF4-----------------------------
  5629. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  5630.     AX = FFF4h
  5631.     ???
  5632. Return: ???
  5633. Note:    available only when popped up
  5634. SeeAlso: AX=FFF6h
  5635. --------U-16FFF5-----------------------------
  5636. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET SCREEN ATTRIBUTE ARRAY
  5637.     AX = FFF5h
  5638. Return: ES:BX -> screen attributes data structure (see #0441)
  5639.     AL = ??? (v6.0+)
  5640.  
  5641. Format of PC Tools DESKTOP attribute data structure:
  5642. Offset    Size    Description    (Table 0441)
  5643.  -1    BYTE    attribute for desktop background
  5644.  00h    BYTE    attribute for normal characters on desktop menu
  5645.  01h    BYTE    attribute for highlighted characters on desktop menu
  5646.  02h  5 BYTEs    ???
  5647.  07h    BYTE    attribute for dialog boxes
  5648.  08h 15 BYTEs    ???
  5649.  17h    BYTE    attribute for message boxes
  5650. --------U-16FFF6-----------------------------
  5651. INT 16 U - PC Tools v5.1-8.0 DESKTOP - INVOKE NOTEPAD EDITOR
  5652.     AX = FFF6h
  5653.     DS = segment of editor buffer structure (see #0442)
  5654.     BX = ???
  5655.     DX = segment of window parameters structure (see #0435)
  5656. Return: ???
  5657. Note:    available only when popped up
  5658. SeeAlso: AX=FFF4h
  5659.  
  5660. Format of PC Tools DESKTOP editor buffer structure:
  5661. Offset    Size    Description    (Table 0442)
  5662.  00h    WORD    offset of current cursor position in buffer segment
  5663.  02h  2 BYTEs    ???
  5664.  04h    WORD    offset of beginning of file data in buffer segment
  5665.  06h 10 BYTEs    ???
  5666.  10h  N BYTEs    ASCIZ name of file being edited
  5667. --------U-16FFF7-----------------------------
  5668. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS MENU BAR ENTRY???
  5669.     AX = FFF7h
  5670.     DS:SI -> ???
  5671.     ???
  5672. Return: ???
  5673. Notes:    available only when popped up
  5674.     performs input processing on the menu bar set up with AX=FFEEh
  5675. SeeAlso: AX=FFEEh,AX=FFFBh
  5676. --------U-16FFF8-----------------------------
  5677. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DRAW EMPTY WINDOW
  5678.     AX = FFF8h
  5679.     DS:0000h -> window parameters structure (see #0435)
  5680.     DS:BX -> DWORD to store address of ??? on screen
  5681. Return: ???
  5682. --------U-16FFF9-----------------------------
  5683. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE SCREEN REFRESH ROUTINE
  5684.     AX = FFF9h
  5685.     ES:BX -> FAR routine to redisplay the utility's window
  5686. Note:    available only when popped up
  5687. --------U-16FFFA-----------------------------
  5688. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE STANDARD PULLDOWN MENUS
  5689.     AX = FFFAh
  5690. Notes:    available only when popped up
  5691.     adds the "Window" option to the "Desktop" option which is the only one
  5692.       available when no accessories are active.  Unlike AX=FFEEh, no
  5693.       additional menu items are added between "Desktop" and "Window"
  5694. SeeAlso: AX=FFEEh,AX=FFFBh
  5695. --------U-16FFFB-----------------------------
  5696. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS STANDARD MENU BAR
  5697.     AX = FFFBh
  5698. Return: ???
  5699. Notes:    available only when popped up
  5700.     performs input processing on the standard menu bar set up with AX=FFFAh
  5701. SeeAlso: AX=FFF7h
  5702. --------U-16FFFC-----------------------------
  5703. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET HOTKEYS AND KEYBOARD VECTOR
  5704.     AX = FFFCh
  5705. Return: ES:BX -> hotkey table (see #0443)
  5706.     DS:DX = original INT 09 vector
  5707.  
  5708. Format of PC Tools DESKTOP hotkey table:
  5709. Offset    Size    Description    (Table 0443)
  5710.  00h  2 BYTEs    scancode/shift state for desktop hotkey
  5711.  02h  2 BYTEs    scancode/shift state for clipboard paste key
  5712.  04h  2 BYTEs    scancode/shift state for clipboard copy key
  5713.  06h  2 BYTEs    scancode/shift state for screen autodial key
  5714. --------U-16FFFD-----------------------------
  5715. INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY ???
  5716.     AX = FFFDh
  5717. Return: AX destroyed
  5718. Note:    copies 4000 bytes from ??? to ??? under certain circumstances
  5719. SeeAlso: AX=FF91h,AX=FF92h
  5720. --------M-16FFFE-----------------------------
  5721. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SHOW MOUSE CURSOR
  5722.     AX = FFFEh
  5723. SeeAlso: AX=FFFFh,INT 33/AX=0001h
  5724. --------M-16FFFF-----------------------------
  5725. INT 16 U - PC Tools v5.1-8.0 DESKTOP - HIDE MOUSE CURSOR
  5726.     AX = FFFFh
  5727. SeeAlso: AX=FFFEh,INT 33/AX=0002h
  5728. --------P-17----DX0ABC-----------------------
  5729. INT 17 - PRINTER - LPTx v5.x INSTALLATION CHECK
  5730.     DX = 0ABCh
  5731. Return: AX = AAAAh
  5732.     DX = BAAAh
  5733.     ES = code segment of resident portion
  5734. --------P-17----DX0B90-----------------------
  5735. INT 17 - PRINTER - LPTx v6.x INSTALLATION CHECK
  5736.     DX = 0B90h
  5737. Return: DX = ABBBh
  5738.     ES = code segment of resident portion
  5739. --------P-17----DX0B91-----------------------
  5740. INT 17 - PRINTER - LPTx v7.x INSTALLATION CHECK
  5741.     DX = 0B91h
  5742. Return: DX = ABCBh
  5743.     ES = code segment of resident portion
  5744. --------P-17----DX0F5F-----------------------
  5745. INT 17 - PRINTER - LPTx v4.x INSTALLATION CHECK
  5746.     DX = 0F5Fh
  5747. Return: AX = AAAAh
  5748.     DX = F555h
  5749.     ES = code segment of resident portion
  5750. --------B-1700-------------------------------
  5751. INT 17 - PRINTER - WRITE CHARACTER
  5752.     AH = 00h
  5753.     AL = character to write
  5754.     DX = printer number (00h-02h)
  5755. Return: AH = printer status (see #0444)
  5756. SeeAlso: AH=02h,AH=84h"AX",AH=F1h,INT 16/AX=FFE3h,INT 1A/AH=11h"NEC"
  5757.  
  5758. Bitfields for printer status:
  5759. Bit(s)    Description    (Table 0444)
  5760.  7    not busy
  5761.  6    acknowledge
  5762.  5    out of paper
  5763.  4    selected
  5764.  3    I/O error
  5765.  2-1    unused
  5766.  0    timeout
  5767. --------B-1701-------------------------------
  5768. INT 17 - PRINTER - INITIALIZE PORT
  5769.     AH = 01h
  5770.     DX = printer number (00h-02h)
  5771. Return: AH = printer status (see #0444)
  5772. Note:    some printers report that they are ready immediately after
  5773.       initialization when they actually are not; a more reliable result may
  5774.       be obtained by calling AH=02h after a brief delay
  5775. SeeAlso: AH=02h,AH=FFh"PC-MOS",INT 1A/AH=10h"NEC"
  5776. --------B-1702-------------------------------
  5777. INT 17 - PRINTER - GET STATUS
  5778.     AH = 02h
  5779.     DX = printer number (00h-02h)
  5780. Return: AH = printer status (see #0444)
  5781. Note:    PRINTFIX from MS-DOS 5.0 hooks this function and always returns AH=90h
  5782. SeeAlso: AH=01h,AH=F2h,INT 1A/AH=12h"NEC"
  5783. --------P-1702--DX0000-----------------------
  5784. INT 17 - INSET - INSTALLATION CHECK
  5785.     AH = 02h
  5786.     DX = 0000h
  5787.     CX = 07C3h (1987d)
  5788. Return: CX = 07C2h (1986d) if installed
  5789. Program: INSET is a text/graphics integration program
  5790. --------b-170200BX5050-----------------------
  5791. INT 17 - Advanced Parallel Port BIOS - INSTALLATION CHECK
  5792.     AX = 0200h
  5793.     BX = 5050h ('PP')
  5794.     CH = 45h   ('E')
  5795.     DX = printer port number (00h-02h)
  5796. Return: AH = 00h      \
  5797.     AL = 45h       If Advanced BIOS Installed
  5798.     CX = 5050h    /
  5799.     DX:BX -> far entry point to Advanced BIOS
  5800. Program: The Advanced Parallel Port BIOS provides support for parallel
  5801.       port peripherals using the enhanced modes of the IEEE 1284.
  5802. --------P-1703-------------------------------
  5803. INT 17 U - Emulaser ELTSR - INSTALL INTERRUPT HANDLERS
  5804.     AH = 03h
  5805. Return: BX = ???
  5806.     CX = ???
  5807. Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
  5808.       Vertisoft Systems, Inc.
  5809. SeeAlso: AH=04h"Emulaser",AH=0Eh,INT 1A/AH=E5h
  5810. --------c-1703-------------------------------
  5811. INT 17 - PC-MOS/386 v5.01 - PRINT SPOOLER - PRINT STRING
  5812.     AH = 03h
  5813.     DX = printer port number
  5814.     CX = number of characters to print
  5815.     DS:SI -> string
  5816. Return: AH = printer status (see #0444)
  5817.     CX = number of characters actually printed
  5818. Desc:    send an entire string of chars to the print spooler with a single call
  5819. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  5820.       operating system by The Software Link, Inc.
  5821. SeeAlso: AH=00h,AH=01h,AH=02h,AH=FFh"PC-MOS"
  5822. --------P-1704-------------------------------
  5823. INT 17 U - Emulaser ELTSR - BEGIN CAPTURING OUTPUT
  5824.     AH = 04h
  5825. Note:    has no effect unless ELTSR is deactivated (see AX=0503h)
  5826. SeeAlso: AH=03h"Emulaser",AX=0503h,INT 1A/AH=E5h
  5827. --------P-170500-----------------------------
  5828. INT 17 U - Emulaser ELTSR - ???
  5829.     AX = 0500h
  5830.     ???
  5831. Return: AX = unload status (0001h safe to unload, 0002h not safe)
  5832.     BX = ???
  5833.     CX = PSP segment of ELTSR
  5834.     DX = activity flag (0000h disabled, 0001h capturing, 0002h ???printing)
  5835.     SI = ???
  5836.     DI = ???
  5837. SeeAlso: AH=04h,INT 1A/AH=E5h
  5838. --------P-170501-----------------------------
  5839. INT 17 U - Emulaser ELTSR - UNHOOK INTERRUPTS
  5840.     AX = 0501h
  5841. Return: (see AX=0500h)
  5842. Note:    restores interrupt vectors without checking whether they have been
  5843.       hooked by later programs; should only be called if ELTSR reports
  5844.       that it is safe to unload
  5845. SeeAlso: AH=04h,AX=0500h,AX=0503h,INT 1A/AH=E5h
  5846. Index:    uninstall;Emulaser ELTSR
  5847. --------P-170502-----------------------------
  5848. INT 17 U - Emulaser ELTSR - SET ???
  5849.     AX = 0502h
  5850.     BL = Emulaser port (31h = LPT1, 32h = LPT2, 33h = LPT3)
  5851.     CL = ???
  5852.     DL = ???
  5853. Return: (see AX=0500h)
  5854. SeeAlso: AH=04h,AX=0500h,INT 1A/AH=E5h
  5855. --------P-170503-----------------------------
  5856. INT 17 U - Emulaser ELTSR - DEACTIVATE???
  5857.     AX = 0503h
  5858. Return: (see AX=0500h)
  5859. SeeAlso: AH=04h,AX=0500h,AX=0501h,INT 1A/AH=E5h
  5860. --------P-1706-------------------------------
  5861. INT 17 U - Emulaser ELTSR - ???
  5862.     AH = 06h
  5863.     ???
  5864. Return: ???
  5865. SeeAlso: AH=05h,INT 1A/AH=E5h
  5866. --------P-1707-------------------------------
  5867. INT 17 U - Emulaser ELTSR - OPEN CAPTURE FILE
  5868.     AH = 07h
  5869.     ES:DX -> ASCIZ filename to be opened
  5870. Return: ???
  5871. Note:    new output will be appended to the specified file
  5872. SeeAlso: AH=08h,INT 1A/AH=E5h
  5873. --------P-1708-------------------------------
  5874. INT 17 U - Emulaser ELTSR - CLOSE CAPTURE FILE
  5875.     AH = 08h
  5876.     ???
  5877. Return: ???
  5878. Desc:    close the file previously opened by function 07h
  5879. SeeAlso: AH=07h,INT 1A/AH=E5h
  5880. --------P-1709-------------------------------
  5881. INT 17 U - Emulaser ELTSR - PRINT CAPTURE FILE???
  5882.     AH = 09h
  5883.     BX = ???
  5884.     CX = ???
  5885.     DX = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  5886. Return: AX = status
  5887.         00h successful
  5888.         FFh failed
  5889. Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
  5890.       Vertisoft Systems, Inc.
  5891. Note:    this function calls through to INT 1A/AX=E401h, and thus requires
  5892.       that either ELSPL or Disk Spool II be installed
  5893. SeeAlso: AH=0Ah,INT 1A/AX=E401h,INT 1A/AH=E5h
  5894. --------P-170A-------------------------------
  5895. INT 17 U - Emulaser ELTSR - SET ??? FILENAME
  5896.     AH = 0Ah
  5897.     ES:BX -> ??? buffer
  5898.     CX = length of ??? buffer
  5899. Return: ???
  5900. Note:    copies the specified name into the buffer passed to ELSPL as the
  5901.       filename by AH=09h
  5902. SeeAlso: AH=09h,INT 1A/AH=E5h
  5903. --------P-170B-------------------------------
  5904. INT 17 U - Emulaser ELTSR - GET ???
  5905.     AH = 0Bh
  5906. Return: AX:BX -> ???
  5907. SeeAlso: AH=0Ah,INT 1A/AH=E5h
  5908. --------P-170C-------------------------------
  5909. INT 17 U - Emulaser ELTSR - SET ??? FLAG
  5910.     AH = 0Ch
  5911.     ???
  5912. Return: ???
  5913. SeeAlso: AH=0Bh,INT 1A/AH=E5h
  5914. --------P-170D-------------------------------
  5915. INT 17 U - Emulaser ELTSR - GET TRUE ScrlLk STATE
  5916.     AH = 0Dh
  5917. Return: AX = state (0000h off, 0010h on)
  5918. Desc:    determine the actual state of ScrlLk even when Emulaser is controlling
  5919.       the ScrlLk light as its activity indicator
  5920. SeeAlso: AH=0Ch,INT 16/AH=02h,INT 1A/AH=E5h
  5921. --------P-170E-------------------------------
  5922. INT 17 U - Emulaser ELTSR - BACKGROUND PROCESSING
  5923.     AH = 0Eh
  5924. Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
  5925.       Vertisoft Systems, Inc.
  5926. Note:    this function is called by ELTSR on every INT 08 to allow data to be
  5927.       processed in the background, but may also be called by applications
  5928.       to give Emulaser additional CPU time
  5929. SeeAlso: AH=0Dh,INT 1A/AH=E5h
  5930. --------P-172000-----------------------------
  5931. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - INSTALLATION CHECK
  5932.     AX = 2000h
  5933.     BL = printer number???
  5934. Return:    AX = status (see #0445)
  5935.     BX = driver version number (BH=major,BL=minor)
  5936.     CH = ??? (00h)
  5937.     CL = ???
  5938.     DX = ??? (0100h)
  5939. Note:    also enables the remaining printer driver functions (2001h-2007h)
  5940. SeeAlso: AX=2001h,AX=2002h,AX=2003h,AX=2004h,AX=2005h,AX=2006h,AX=2007h
  5941.  
  5942. (Table 0445)
  5943. Values for PC Paint function status:
  5944.  0000h    successful
  5945.  0001h    invalid printer???
  5946.  0002h    ???
  5947.  0003h    invalid subfunction
  5948.  0005h    driver disabled, must call function 00h first
  5949.  0009h    unknown printer error
  5950.  000Bh    printer not selected
  5951.  000Ch    printer out of paper
  5952.  000Eh    error while writing to serial printer
  5953.  000Fh    ???
  5954.  0010h    invalid function number
  5955.  0011h    value out of range
  5956. --------P-172001-----------------------------
  5957. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - SET ??? FLAG
  5958.     AX = 2001h
  5959.     BL = printer number???
  5960. Return: AX = status (see #0445)
  5961. --------P-172002-----------------------------
  5962. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET INFORMATION
  5963.     AX = 2002h
  5964.     BL = printer number???
  5965.     CL = desired information
  5966.         00h printer type
  5967.         Return: ES:DI -> ASCIZ printer name
  5968.         01h paper size
  5969.         DX = size index
  5970.         Return: ES:DI -> ASCIZ paper size description
  5971.         02h ???
  5972.         Return: BX = ???
  5973.         03h printer information???
  5974.         DX = ???
  5975.         ES:BX -> buffer for ??? (min 134 bytes)
  5976. Return: AX = status (see #0445)
  5977. SeeAlso: AX=2000h,AX=2004h
  5978. --------P-172003-----------------------------
  5979. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ???
  5980.     AX = 2003h
  5981.     ES:BX -> ???
  5982. Return: AX = status (see #0445)
  5983. SeeAlso: AX=2000h,AX=2004h
  5984. --------P-172004-----------------------------
  5985. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET ???
  5986.     AX = 2004h
  5987.     BL = printer number???
  5988. Return: AX = status (see #0445)
  5989.     ES:DI -> ???
  5990. SeeAlso: AX=2000h,AX=2003h
  5991. --------P-172005-----------------------------
  5992. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE PRINTER TO NEXT PAGE
  5993.     AX = 2005h
  5994.     BL = printer number???
  5995. Return: AX = status (see #0445)
  5996. Note:    this function also clears the flag set by AX=2001h
  5997. SeeAlso: AX=2000h,AX=2001h,AX=2006h
  5998. --------P-172006-----------------------------
  5999. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE TO NEXT PAGE & SHUT DOWN
  6000.     AX = 2006h
  6001.     BL = printer number???
  6002. Return: AX = status (see #0445)
  6003. Note:    this function also clears the flag set by AX=2001h and disables
  6004.       functions other than AX=2000h
  6005. SeeAlso: AX=2000h,AX=2001h,AX=2005h
  6006. --------P-172007-----------------------------
  6007. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - UNIMPLEMENTED
  6008.     AX = 2007h
  6009. Return: AX unchanged
  6010. SeeAlso: AX=2000h
  6011. --------N-172400-----------------------------
  6012. INT 17 - Shamrock Software NET.24 v3.11+ - ENABLE/DISABLE API FUNCTIONS
  6013.     AX = 2400h
  6014.     DL = new state
  6015.         00h disabled
  6016.         01h enabled
  6017. Return: DL = 24h if installed
  6018.     DH = minor version number
  6019.     CX = network address of this machine
  6020.     AL = status (see #0446)
  6021. SeeAlso: AX=2403h,INT 16/AX=4500h
  6022.  
  6023. (Table 0446)
  6024. Values for NET.24 function status:
  6025.  00h    successful
  6026.  01h    timeout
  6027.  02h    header error
  6028.  03h    data error
  6029.  04h    busy
  6030.  05h    invalid parameters
  6031. --------N-172401-----------------------------
  6032. INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, NO HANDSHAKE
  6033.     AX = 2401h
  6034.     BL = timeout in clock ticks
  6035. Return: AL = status (see #0446)
  6036.     DX:BX -> receive buffer
  6037. SeeAlso: AX=2402h,AX=2404h,AX=2408h
  6038. --------N-172402-----------------------------
  6039. INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT BLOCK, NO HANDSHAKE
  6040.     AX = 2402h
  6041.     transmit buffer filled (see AX=2403h)
  6042. Return: AL = status (see #0446)
  6043. SeeAlso: AX=2401h,AX=2403h,AX=2404h,AX=2409h
  6044. --------N-172403-----------------------------
  6045. INT 17 - Shamrock Software NET.24 v3.11+ - GET STATUS AND TRANSMISSION BUFFER
  6046.     AX = 2403h
  6047. Return: AL = status (see #0446)
  6048.     CX = number of characters in receive ring buffer
  6049.     DX:BX -> transmit buffer
  6050. SeeAlso: AX=2400h,AX=2402h
  6051. --------N-172404-----------------------------
  6052. INT 17 - Shamrock Software NET.24 v3.11+ - SEND ACK BLOCK
  6053.     AX = 2404h
  6054.     BX = target address
  6055. Return: AL = status (see #0446)
  6056. SeeAlso: AX=2402h,AX=2405h
  6057. --------N-172405-----------------------------
  6058. INT 17 - Shamrock Software NET.24 v3.11+ - SEND NAK BLOCK
  6059.     AX = 2405h
  6060.     BX = target address
  6061. Return: AL = status (see #0446)
  6062. SeeAlso: AX=2402h,AX=2404h
  6063. --------N-172406-----------------------------
  6064. INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED RECEIVE
  6065.     AX = 2406h
  6066. Return: AL = status (see #0446)
  6067. SeeAlso: AX=2407h,AX=240Ah
  6068. --------N-172407-----------------------------
  6069. INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE CHARACTER FROM REMOTE
  6070.     AX = 2407h
  6071. Return: AL = status (see also #0446)
  6072.         06h end of data
  6073.     DL = received character
  6074. SeeAlso: AX=2406h
  6075. --------N-172408-----------------------------
  6076. INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, WITH HANDSHAKE
  6077.     AX = 2408h
  6078. Return: AL = status (see also #0446)
  6079.         06h end of data
  6080.     CX = number of bytes in receive buffer
  6081.     DX:SI -> receive buffer
  6082. SeeAlso: AX=2401h,AX=2405h,AX=2409h
  6083. --------N-172409-----------------------------
  6084. INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT COMMAND, WITH HANDSHAKE
  6085.     AX = 2409h
  6086.     BX = target address
  6087.     CX = number of data bytes
  6088.     DL = command code to send
  6089.     DS:SI -> data bytes for command
  6090. Return: AL = status (see also #0446)
  6091.         03h no response
  6092.         06h remote currently unable to perform command
  6093. SeeAlso: AX=2405h,AX=2408h
  6094. --------N-17240A-----------------------------
  6095. INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED TRANSMIT
  6096.     AX = 240Ah
  6097. Return: AL = status (see #0446)
  6098. SeeAlso: AX=2406h,AX=240Bh,AX=240Ch
  6099. --------N-17240B-----------------------------
  6100. INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT SINGLE CHARACTER TO REMOTE
  6101.     AX = 240Bh
  6102.     DL = character to send
  6103. Return: AL = status (see also AX=2400h)
  6104.         03h transmission error
  6105.         06h write error
  6106. SeeAlso: AX=2407h,AX=240Ah,AX=240Ch
  6107. --------N-17240C-----------------------------
  6108. INT 17 - Shamrock Software NET.24 v3.11+ - END CHARACTER-ORIENTED TRANSMIT
  6109.     AX = 240Ch
  6110. Return: AL = status (see also AX=2400h)
  6111.         03h transmission error
  6112.         06h remote breaks connection
  6113. SeeAlso: AX=240Ah,AX=240Bh
  6114. --------J-175000-----------------------------
  6115. INT 17 - AX (Japanese AT) PRINTER - SET PRINTER COUNTRY CODE
  6116.     AX = 5000h
  6117.     BX = country code
  6118.         0001h USA (English), 0051h Japan
  6119. Return: AL = status
  6120.         00h successful
  6121.         01h bad country code
  6122.         02h other error
  6123. SeeAlso: AX=5001h,AH=51h,INT 10/AX=5000h,INT 16/AX=5000h
  6124. --------J-175001-----------------------------
  6125. INT 17 - AX (Japanese AT) PRINTER - GET PRINTER COUNTRY CODE
  6126.     AX = 5001h
  6127. Return: AL = status
  6128.         00h successful
  6129.         BX = country code
  6130.         02h error
  6131. SeeAlso: AX=5000h,AH=51h,INT 10/AX=5001h,INT 16/AX=5001h
  6132. --------J-1751-------------------------------
  6133. INT 17 - AX (Japanese AT) PRINTER - JIS to Shift-JIS CONVERSION
  6134.     AH = 51h
  6135.     DX = 2-byte JIS code
  6136. Return: DX = shift-JIS value or 0000h on error
  6137. Note:    one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
  6138.       characters to Shift-JIS characters, and the other performs the
  6139.       opposite conversion
  6140. SeeAlso: AX=5000h,AH=52h
  6141. --------J-1752-------------------------------
  6142. INT 17 - AX (Japanese AT) PRINTER - Shift-JIS to JIS CONVERSION
  6143.     AH = 52h
  6144.     DX = 2-byte shift-JIS code
  6145. Return: DX = JIS code or 0000h on error
  6146. Note:    one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
  6147.       characters to Shift-JIS characters, and the other performs the
  6148.       opposite conversion
  6149. SeeAlso: AH=51h
  6150. --------V-1760-------------------------------
  6151. INT 17 - FLASHUP.COM - INSTALLATION CHECK
  6152.     AH = 60h
  6153. Return: AL = 60h
  6154.     DX = CS of resident code
  6155. Notes:    FLASHUP.COM is part of Flash-Up Windows by The Software Bottling Co.
  6156.     FLASHUP also hooks INT 10 and receives commands via INT 10/AH=09h,0Ah
  6157.       consisting of an 80h followed by the actual command
  6158. SeeAlso: INT 10/AH=09h,INT 10/AH=0Ah
  6159. --------V-1761-------------------------------
  6160. INT 17 - SPEEDSCR.COM - INSTALLATION CHECK
  6161.     AH = 61h
  6162. Return: AL = 61h
  6163.     DX = CS of resident code
  6164. Note:    SPEEDSCR.COM is by The Software Bottling Co.
  6165. --------P-1762-------------------------------
  6166. INT 17 U - T2PS v1.0 - UNINSTALL
  6167.     AH = 62h
  6168. Return: nothing
  6169. SeeAlso: AH=63h,AH=64h,INT 05/AX=554Eh
  6170. --------P-1763-------------------------------
  6171. INT 17 U - T2PS v1.0 - SET PARAMETERS
  6172.     AH = 63h
  6173.     ES:SI -> settings (see #0447)
  6174. Program: T2PS is a shareware ASCII-to-PostScript converter by A.N.D.
  6175.       Technologies
  6176. SeeAlso: AH=62h,AH=64h,INT 05/AX=4E57h
  6177.  
  6178. Format of T2PS settings:
  6179. Offset    Size    Description    (Table 0447)
  6180.  00h    WORD    LPT port number (0=LPT1, etc.)
  6181.  02h    WORD    page heigh in points
  6182.  04h    WORD    page width in points
  6183.  06h    WORD    top margin in points
  6184.  08h    WORD    bottom margin in points
  6185.  0Ah    WORD    left margin in points
  6186.  0Ch    WORD    right margin in points
  6187.  0Eh    WORD    font size in points
  6188.  10h    WORD    tab size
  6189.  12h    WORD    timeout in clock ticks
  6190. --------P-1764-------------------------------
  6191. INT 17 U - T2PS v1.0 - GET PARAMETERS
  6192.     AH = 64h
  6193.     ES:SI -> buffer for settings (see #0447)
  6194. Return: ES:SI buffer filled
  6195. SeeAlso: AH=62h,AH=63h,INT 05/AX=5053h
  6196. --------N-1781-------------------------------
  6197. INT 17 - Alloy NTNX, MW386 - CANCEL JOBS FOR CURRENT USER
  6198.     AH = 81h
  6199.     AL = 00h (NTNX compatibility mode)
  6200.     CL = number of jobs to cancel
  6201. Return: AL = status (see #0448)
  6202. Note:    this function cancels the last CL printouts for the current task
  6203. SeeAlso: AH=82h
  6204.  
  6205. (Table 0448)
  6206. Values for Alloy status:
  6207.  00h    success
  6208.  01h-7Fh warning
  6209.  80h    general failure
  6210.  81h    host overloaded (NTNX only)
  6211.  82h    module busy (NTNX only)
  6212.  83h    host busy (NTNX only)
  6213.  84h    re-entry flag set
  6214.  85h    invalid request
  6215.  86h    invalid printer
  6216.  87h    invalid process ID
  6217.  89h    access denied
  6218.  8Ah    option not available for given port type
  6219.  8Bh    option not available for given task type
  6220.  91h    printer busy
  6221.  C2h    file not found
  6222.  C3h    path not found
  6223.  C4h    file access failure
  6224. --------N-1782-------------------------------
  6225. INT 17 - Alloy NTNX, MW386 - CANCEL ALL JOBS FOR CURRENT USER
  6226.     AH = 82h
  6227.     AL = 00h (NTNX compatibility mode)
  6228. Return: AL = status (see #0448)
  6229. SeeAlso: AH=81h
  6230. --------N-1783-------------------------------
  6231. INT 17 - Alloy NTNX, MW386 - SET NUMBER OF COPIES
  6232.     AH = 83h
  6233.     AL = mode
  6234.         00h NTNX compatibility
  6235.         CL = number of copies (max 99, default 1)
  6236.         02h MW386 v2+
  6237.         BX = logical device number
  6238.             00h-03h = LPT1-LPT4
  6239.             04h-07h = COM1-COM4
  6240.         CX = number of copies
  6241. Return: AL = status (see #0448)
  6242. Note:    in NTNX compatibility mode, this function only affects LPT1
  6243. --------N-1784-------------------------------
  6244. INT 17 - Alloy NTNX, MW386 - GENERATE PRINT BREAK
  6245.     AH = 84h
  6246.     AL = mode
  6247.         00h NTNX compatibility
  6248.         02h MW386 v2+
  6249.         BX = logical device number
  6250.             00h-03h = LPT1-LPT4
  6251.             04h-07h = COM1-COM4
  6252. Note:    closes spool file and tells spooler to queue the print job (LPT1 only
  6253.       under MW386 in NTNX compatibility mode)
  6254. --------J-1784-------------------------------
  6255. INT 17 - AX (Japanese AT) PRINTER - OUTPUT CHARACTER WITHOUT CONVERSION
  6256.     AH = 84h
  6257.     AL = character
  6258.     DX = printer number
  6259. Return: AH = printer status (see #0444)
  6260. SeeAlso: AH=00h,AH=85h
  6261. --------J-1785-------------------------------
  6262. INT 17 - AX (Japanese AT) PRINTER - ENABLE/DISABLE CHARACTER CONVERSION
  6263.     AH = 85h
  6264.     AL = new state (00h enabled, 01h disabled)
  6265. SeeAlso: AH=84h"AX"
  6266. --------N-1787-------------------------------
  6267. INT 17 - Alloy NTNX - SET INDOS POINTER
  6268.     AH = 87h
  6269.     AL = 00h
  6270.     CX:BX -> buffer for user-written printer drivers
  6271. Return: BX,CX destroyed
  6272. Note:    must be executed before the printer is enabled
  6273. SeeAlso: AH=8Ah
  6274. --------N-1788-------------------------------
  6275. INT 17 - Alloy NTNX, MW386 - REMOVE PRINTER FROM SPOOLER
  6276.     AH = 88h
  6277.     AL = mode
  6278.         00h NTNX compatibility
  6279.         DX = NTNX printer number (see #0449)
  6280.         01h MW386
  6281.         DX = MW386 printer number
  6282. Return: AH = status (see #0448)
  6283. Note:    removes specified printer from the spooler's list of printers
  6284. SeeAlso: AH=89h,AH=8Bh
  6285.  
  6286. (Table 0449)
  6287. Values for Alloy NTNX printer number:
  6288.  00h    host LPT1
  6289.  01h    host LPT2
  6290.  02h    host LPT3
  6291.  03h    host LPT4
  6292.  04h    host COM1
  6293.  05h    host COM2
  6294.  06h    user's logical COM2
  6295.  07h    user's terminal AUX port
  6296.  08h    user's logical COM1 (MW386 only)
  6297. --------N-1789-------------------------------
  6298. INT 17 - Alloy NTNX, MW386 - ADD PRINTER TO SPOOLER
  6299.     AH = 89h
  6300.     AL = mode
  6301.         00h NTNX compatibility
  6302.         DX = NTNX printer number (see #0449)
  6303.         01h MW386
  6304.         DX = MW386 printer number
  6305. Return: AL = status (see #0448)
  6306. Note:    the specified printer is added to the spooler's list of available
  6307.       printers
  6308. SeeAlso: AH=88h,AH=8Bh
  6309. --------N-178A-------------------------------
  6310. INT 17 - Alloy NTNX - ACTIVATE USER-WRITTEN PRINTER DRIVER
  6311.     AH = 8Ah
  6312.     ???
  6313. SeeAlso: AH=92h
  6314. --------N-178B-------------------------------
  6315. INT 17 - Alloy MW386 - GET PHYSICAL DEVICE NUMBER FROM NAME
  6316.     AH = 8Bh
  6317.     DS:DX -> ASCIZ printer name
  6318. Return: AL = status (see also AH=81h)
  6319.         00h successful
  6320.         DX = physical device number
  6321. SeeAlso: AH=89h,AH=8Ch,INT 14/AH=20h"Alloy"
  6322. --------N-178C-------------------------------
  6323. INT 17 - Alloy MW386 - GET DEVICE NAME FROM PHYSICAL DEVICE NUMBER
  6324.     AH = 8Ch
  6325.     DX = physical device number
  6326.     ES:DI -> 17-byte buffer for ASCIZ device name
  6327. Return: AL = status (see also AH=81h)
  6328.         00h successful
  6329.         ES:DI buffer filled
  6330. SeeAlso: AH=88h,AH=8Bh
  6331. --------N-178D-------------------------------
  6332. INT 17 - Alloy NTNX,MW386 - RESET SPOOLER
  6333.     AH = 8Dh
  6334.     AL = 00h
  6335. Return: AL = status (see #0448)
  6336. Notes:    clears all buffers and resets spooler to boot-up values
  6337.     MW386 supports this function for compatibility only; it is a NOP
  6338. --------N-178E-------------------------------
  6339. INT 17 - Alloy NTNX - GET INT 28 ENTRY POINT
  6340.     AH = 8Eh
  6341.     AL = 00h
  6342. Return: CX:BX -> INT 28 entry point
  6343. SeeAlso: AH=8Fh
  6344. --------N-178F-------------------------------
  6345. INT 17 - Alloy NTNX - GET DOS INTERCEPT ENTRY POINT
  6346.     AH = 8Fh
  6347.     AL = 00h
  6348. Return: CX:BX -> DOS intercept routine
  6349. SeeAlso: AH=8Eh
  6350. --------N-1790-------------------------------
  6351. INT 17 - Alloy NTNX, MW386 - SPOOL FILE BY NAME
  6352.     AH = 90h
  6353.     AL = mode
  6354.         00h NTNX compatibility
  6355.         DL = printer code (FFh=current) (NTNX, MW386 v1.x only)
  6356.         DH = number of copies (FFh=current) (NTNX, MW386 v1.x only)
  6357.         02h MW386 v2+
  6358.         BX = logical device number
  6359.             00h-03h = LPT1-LPT4
  6360.             04h-07h = COM1-COM4
  6361.     CX:SI -> ASCIZ pathname
  6362. Return: AL = status (see #0448)
  6363. Note:    in mode 00h, the file is always sent to logical LPT1
  6364. SeeAlso: AH=A0h
  6365. --------N-1791-------------------------------
  6366. INT 17 - Alloy NTNX, MW386 - GET USER NUMBER AND CURRENT PRINTER
  6367.     AH = 91h
  6368.     AL = mode
  6369.         00h NTNX compatibility
  6370.         Return: CX = user number (00h = host)
  6371.             DX = currently selected printer number (00h-08h)
  6372.         01h MW386
  6373.         Return: CX = user number
  6374.             DX = physical dev number of currently selected printer
  6375.         02h MW386 v2+
  6376.         BX = logical device number
  6377.             00h-03h = LPT1-LPT4
  6378.             04h-07h = COM1-COM4
  6379.         Return: CX = user number
  6380.             DX = physical device number
  6381. Return: AL = status (see #0448)
  6382. SeeAlso: AH=8Ch
  6383. --------N-1792-------------------------------
  6384. INT 17 - Alloy NTNX - CHECK PRINTER DRIVER
  6385.     AH = 92h
  6386.     AL = 00h
  6387.     CL = 00h
  6388. Return: CL = driver state
  6389.         01h initialized
  6390.         80h not initialized
  6391.     AX = status (see #0448)
  6392. SeeAlso: AH=8Ah
  6393. --------N-1794-------------------------------
  6394. INT 17 - Alloy NTNX, MW386 - SELECT PRINTER
  6395.     AH = 94h
  6396.     AL = mode
  6397.         00h NTNX compatibility
  6398.         DX = NTNX printer number (see #0449)
  6399.         01h MW386
  6400.         DX = MW386 printer number
  6401.         02h MW386 v2+
  6402.         BX = logical printer number
  6403.         DX = MW386 printer number
  6404. Return: AL = status (see #0448)
  6405. Note:    modes 00h and 01h affect only logical LPT1
  6406. SeeAlso: AH=8Bh,AH=95h
  6407. --------N-1795-------------------------------
  6408. INT 17 - Alloy NTNX, MW386 - GET CURRENT PRINTER
  6409.     AH = 95h
  6410.     AL = mode
  6411.         00h NTNX compatibility
  6412.         Return: DX = NTNX printer number (see #0449)
  6413.                 (FFFFh if current printer not compatible with NTNX)
  6414.         01h MW386
  6415.         Return: DX = MW386 printer number
  6416.         02h MW386 v2+
  6417.         BX = logical device number
  6418.             00h-03h = LPT1-LPT4
  6419.             04h-07h = COM1-COM4
  6420.         Return: DX = MW386 printer number (FFFFh = none)
  6421. Return: AL = status (see #0448)
  6422. Note:    modes 00h and 01h return the printer number of logical LPT1 only
  6423. SeeAlso: AH=94h
  6424. --------N-1796-------------------------------
  6425. INT 17 - Alloy NTNX - SET SERIAL PORT PARAMETERS
  6426.     AH = 96h
  6427.     AL = 00h
  6428. Note:    documentation states that this is a NOP, doing only XOR AX,AX before
  6429.       returning
  6430. SeeAlso: INT 14/AH=24h
  6431. --------N-1797-------------------------------
  6432. INT 17 - Alloy NTNX, MW386 - SET DATA DRIVEN PRINT BREAK
  6433.     AH = 97h
  6434.     AL = mode
  6435.         00h NTNX compatibility
  6436.         02h MW386 v2+
  6437.         BX = logical device number
  6438.             00h-03h = LPT1-LPT4
  6439.             04h-07h = COM1-COM4
  6440.     CH,CL,DH = three character break sequence
  6441.     DL = subfunction
  6442.         00h set break string
  6443.         else reset break
  6444. Return: AL = status (see #0448)
  6445. Notes:    mode 00h affects only logical LPT1
  6446.     when the break string is encountered, the spool file will be closed and
  6447.       queued for printing automatically
  6448.     the break string is not permanently saved, and will be reset each time
  6449.       MW386 or the user is rebooted
  6450. SeeAlso: AH=9Bh
  6451. --------N-1798-------------------------------
  6452. INT 17 - Alloy NTNX,MW386 - RESTART PRINTER
  6453.     AH = 98h
  6454.     AL = 00h
  6455.     DL = printer number (FFh=current)
  6456. Return: AL = status
  6457.         00h successful
  6458.         01h incorrect printer
  6459.         02h task not found
  6460. Note:    MW386 supports this function for compatibility only; it is a NOP
  6461. --------N-1799-------------------------------
  6462. INT 17 - Alloy NTNX, MW386 - GET/SET PRINTER MODE
  6463.     AH = 99h
  6464.     AL = mode
  6465.         00h NTNX compatibility
  6466.         DL = NTNX printer number (see #0449)
  6467.             (FFh = task's current logical LPT1)
  6468.         DH = mode (see #0450)
  6469.         01h MW386
  6470.         DX = MW386 printer number
  6471.         CL = mode (as for DH above)
  6472. Return: AL = status (see #0448)
  6473.     DH = mode (bits 1 and 2 set as above)
  6474.     DL = printer owner's user number if not spooled
  6475.  
  6476. Bitfields for Alloy printer mode:
  6477.  0    get mode if 1, set mode if 0    (Table 0450)
  6478.  1    private ("attached")
  6479.  2    direct instead of spooled
  6480.  3-7    reserved (0)
  6481. --------N-179A-------------------------------
  6482. INT 17 - Alloy NTNX,MW386 - SET TAB EXPANSION
  6483.     AH = 9Ah
  6484.     AL = mode
  6485.         00h NTNX compatibility
  6486.         DX = NTNX printer number (see #0449)
  6487.             (FFFFh = current logical LPT1)
  6488.         01h MW386
  6489.         DX = MW386 printer number
  6490.     CL = tab length (00h = no expansion, 01h-63h = spaces per tab)
  6491. Return: AL = status (see #0448)
  6492. Note:    beginning with MW386 v2.0, tab expansion is set on a per-printer basis
  6493.       rather than a per-user basis; NTNX and MW386 v1.x ignore DX
  6494. SeeAlso: AH=A4h
  6495. --------N-179B-------------------------------
  6496. INT 17 - Alloy NTNX,MW386 - SET PRINT BREAK TIMEOUT
  6497.     AH = 9Bh
  6498.     AL = mode
  6499.         00h NTNX compatibility
  6500.         CX = timeout value in clock ticks (1/18 sec) (00h = never)
  6501.         01h MW386
  6502.         CX = timeout value in seconds (00h = never)
  6503.         02h MW386 v2+
  6504.         BX = logical device number
  6505.             00h-03h = LPT1-LPT4
  6506.             04h-07h = COM1-COM4
  6507.         CX = timeout value in seconds (00h = never)
  6508. Return: AL = status (see #0448)
  6509. Notes:    modes 00h and 01h affect only the current logical LPT1
  6510.     if no data is sent to a printer for the specified amount of time, the
  6511.       spool file will be closed and queued for printing automatically
  6512. SeeAlso: AH=97h
  6513. --------N-17A0-------------------------------
  6514. INT 17 - Alloy MW386 - SPOOL COPY OF FILE
  6515.     AH = A0h
  6516.     AL = mode
  6517.         00h NTNX compatibility
  6518.         DX = ??? (NTNX, MW386 v1.x only)
  6519.         02h MW386 v2+
  6520.         BX = logical device number
  6521.             00h-03h = LPT1-LPT4
  6522.             04h-07h = COM1-COM4
  6523.     CX:SI -> ASCIZ pathname
  6524. Return: AL = status (see #0448)
  6525. Notes:    makes a copy of the specified file in the spooler's directory, allowing
  6526.       the original file to be modified or deleted while the copy is printed
  6527.     in mode 00h, the file is printed on logical LPT1
  6528. SeeAlso: AH=90h
  6529. --------N-17A4-------------------------------
  6530. INT 17 - Alloy MW386 - ENABLE/DISABLE FORM FEED
  6531.     AH = A4h
  6532.     AL = new state
  6533.         00h form feed after end of print job disabled
  6534.         01h form feed enabled
  6535. Return: AL = status (see #0448)
  6536. Note:    only affects the current logical LPT1
  6537. SeeAlso: AH=9Ah,AH=A6h,INT 7F/AH=05h"NTNX (Host)"
  6538. --------N-17A6-------------------------------
  6539. INT 17 - Alloy MW386 - ENABLE/DISABLE BANNER PAGE
  6540.     AH = A6h
  6541.     AL = new state
  6542.         00h banner page before print job disabled
  6543.         01h banner page enabled
  6544. Return: AL = status (see #0448)
  6545. Note:    only affects the current logical LPT1
  6546. SeeAlso: AH=A4h
  6547. --------N-17A7-------------------------------
  6548. INT 17 - Alloy MW386 v2+ - GET/SET SPOOL FLAGS
  6549.     AH = A7h
  6550.     AL = spool flags (see #0451)
  6551.     BX = logical device number
  6552.         00h-03h = LPT1-LPT4
  6553.         04h-07h = COM1-COM4
  6554. Return: AL = status (see #0448)
  6555. Note:    the documentation does not state which register contains the result of
  6556.       a GET
  6557. SeeAlso: AH=A4h,AH=A6h
  6558.  
  6559. Bitfields for Alloy spool flags:
  6560. Bit(s)    Description    (Table 0451)
  6561.  0    banner page enabled (see AH=A6h)
  6562.  1    form feed enabled (see AH=A4h)
  6563.  2-6    reserved (0)
  6564.  7    set flags if 1, get flags if 0
  6565. --------N-17A8-------------------------------
  6566. INT 17 - Alloy MW386 - DEFINE TEMPORARY FILENAME
  6567.     AH = A8h
  6568.     CX:SI -> ASCIZ filename without extension (max 8 chars)
  6569. Return: AL = status (see #0448)
  6570. Note:    allows application to specify banner page filename for spool files
  6571.       collected from the application's printer output
  6572. SeeAlso: AH=A9h
  6573. --------N-17A9-------------------------------
  6574. INT 17 - Alloy MW386 - CHANGE TEMPORARY SPOOL DRIVE
  6575.     AH = A9h
  6576.     AL = new spool drive (2=C:,3=D:,etc)
  6577. Return: AL = status (see #0448)
  6578. Note:    does not remove previous spooling directory since jobs may be pending
  6579. SeeAlso: AH=A8h
  6580. --------N-17AA-------------------------------
  6581. INT 17 - Alloy MW386 v2+ - GET REAL-TIME PRINTER STATUS
  6582.     AH = AAh
  6583.     AL = mode
  6584.         00h NTNX
  6585.         DX = NTNX printer number (see #0449)
  6586.         01h MW386
  6587.         DX = MW386 printer number
  6588. Return: AH = instantaneous printer status
  6589.         00h printer ready
  6590.         01h not ready
  6591.         12h off line
  6592.         13h out of paper
  6593.         14h general device failure
  6594.         15h device timeout
  6595.         16h bad device number
  6596. --------N-17AF-------------------------------
  6597. INT 17 - Alloy MW386 - CHECK SPOOLER
  6598.     AH = AFh
  6599. Return: AX = 55AAh if spooler available
  6600. --------c-17C0-------------------------------
  6601. INT 17 - PC Magazine PCSpool - GET CONTROL BLOCK ADDRESS
  6602.     AH = C0h
  6603.     DX = printer port (0-3)
  6604. Return: ES:BX -> control block (see #0452)
  6605. SeeAlso: AH=C1h
  6606.  
  6607. Format of PCSpool control block:
  6608. Offset    Size    Description    (Table 0452)
  6609.  00h    WORD    printer number
  6610.  02h    WORD    address of printer status port
  6611.  04h    WORD    number of first record in queue
  6612.  06h    WORD    number of last record in queue
  6613.  08h    DWORD    characters already printed
  6614.  0Ch    DWORD    number of characters remaining
  6615.  10h    DWORD    pointer to dequeue buffer
  6616.  14h    DWORD    previous count of characters printed
  6617.  18h    DWORD    number of clock ticks taken to print them
  6618.  1Ch    WORD    offset of next character to output
  6619.  1Eh    WORD    offset of next character to print
  6620.  20h    WORD    pointer to spooling queue record
  6621.  22h    BYTE    current spooling status
  6622.  23h    BYTE    current printer status:
  6623.         00h OK
  6624.         01h not ready
  6625.         02h paused with message
  6626.         03h paused
  6627.         04h initializing
  6628.         FEh non-existent port
  6629.         FFh not spooled
  6630.  24h    BYTE    current control record type
  6631.  25h    WORD    observed printer speed
  6632.  27h    WORD    characters to print per service
  6633.  29h    BYTE    01h if disk write needed
  6634.  2Ah    BYTE    01h if queued data should be flushed
  6635.  2Bh    BYTE    01h to update cps status
  6636. --------c-17C1--------------------------------
  6637. INT 17 - PC Magazine PCSpool - BUILD PAUSE CONTROL RECORD
  6638.     AH = C1h
  6639.     DX = printer port (0-3)
  6640.     DS:SI -> ASCIZ string to save for display
  6641. Note:    flushes pending writes
  6642. SeeAlso: AH=C0h,AH=C2h
  6643. --------c-17C2-------------------------------
  6644. INT 17 - PC Magazine PCSpool - FLUSH PENDING WRITES
  6645.     AH = C2h
  6646.     DX = printer port (0-3)
  6647. SeeAlso: AH=C3h
  6648. --------c-17C3-------------------------------
  6649. INT 17 - PC Magazine PCSpool - CANCEL PRINTER QUEUE (FLUSH ALL QUEUED OUTPUT)
  6650.     AH = C3h
  6651.     DX = printer port (0-3)
  6652. SeeAlso: AH=C2h,AH=C7h
  6653. --------c-17C4-------------------------------
  6654. INT 17 - PC Magazine PCSpool - QUERY SPOOLER ACTIVE
  6655.     AH = C4h
  6656. Return: DI = B0BFh
  6657.     SI = segment
  6658. --------c-17C5-------------------------------
  6659. INT 17 - PC Magazine PCSpool - JOB SKIP PRINTER QUEUE
  6660.     AH = C5h
  6661.     DX = printer port (0-3)
  6662. Note:    cancels up to the pause record
  6663. --------c-17C6-------------------------------
  6664. INT 17 - PC Magazine PCSpool - CHECK PRINTER QUEUE STATUS
  6665.     AH = C6h
  6666.     DX = printer port (0-3)
  6667. Return: AX = queue status
  6668.        0000h printer not active or at pause
  6669.        0001h printer busy
  6670. --------c-17C7-------------------------------
  6671. INT 17 - PC Magazine PCSpool - CLOSE QUEUE
  6672.     AH = C7h
  6673.     DX = printer port (0-3)
  6674. SeeAlso: AH=C3h
  6675. --------P-17CD00-----------------------------
  6676. INT 17 - INSET - EXECUTE COMMAND STRING
  6677.     AX = CD00h
  6678.     DS:DX -> ASCIZ command string (max 80 bytes)
  6679. Return: CX = 07C2h (1986d)
  6680. Note:    user interface menus pop up after last command, unless that command
  6681.     exits INSET
  6682. --------P-17CD01-----------------------------
  6683. INT 17 - INSET - GET IMAGE SIZE
  6684.     AX = CD01h
  6685.     DS:DX -> ASCIZ name of image file
  6686. Return: AX = height in 1/720th inch
  6687.     BX = width in 1/720th inch
  6688.     CX = 07C2h (1986d)
  6689. --------P-17CD02-----------------------------
  6690. INT 17 - INSET - INITIALIZE
  6691.     AX = CD02h
  6692. Return: CX = 07C2h (1986d)
  6693. Note:    all open files are closed and the printer is reset
  6694. SeeAlso: AX=CD04h
  6695. --------P-17CD03-----------------------------
  6696. INT 17 - INSET - EXECUTE INSET MENU WITHIN OVERRIDE MODE
  6697.     AX = CD03h
  6698. Return: CX = 07C2h (1986d)
  6699. --------P-17CD04-----------------------------
  6700. INT 17 - INSET - INITIALIZE LINKED MODE
  6701.     AX = CD04h
  6702.     ES:SI -> FAR routine for linked mode (see #0453)
  6703. Return: CX = 07C2h
  6704. SeeAlso: AX=CD02h,AX=CD08h
  6705.  
  6706. (Table 0453)
  6707. Values INSET linked-mode routine is called with:
  6708.     AL = function
  6709.         00h send character to printer
  6710.         BL = character to send
  6711.         01h send string to printer
  6712.         CX = number of bytes to send
  6713.         DS:DX -> buffer containing data
  6714.         02h move print head to horizontal starting position of image
  6715. Return:    AX = status
  6716.         0000h success
  6717.         0001h failure
  6718. --------P-17CD05-----------------------------
  6719. INT 17 - INSET - START MERGING IMAGE INTO TEXT
  6720.     AX = CD05h
  6721.     DS:DX -> ASCIZ name of PIX file
  6722.     CX = left margin of text in 1/720th inch
  6723. Return: AH = printer type
  6724.         00h page-oriented (multiple images may be placed side-by-side)
  6725.         01h line-oriented (use AX=CD06h for vertical paper movement)
  6726.     CX = 07C2h (1986d)
  6727. SeeAlso: AX=CD07h
  6728. --------P-17CD06-----------------------------
  6729. INT 17 - INSET - GRAPHICS LINE FEED
  6730.     AX = CD06h
  6731. Return: AH = completion status
  6732.         00h image complete
  6733.         01h image incomplete
  6734.     CX = 07C2h (1986d)
  6735. SeeAlso: AX=CD09h
  6736. --------P-17CD07-----------------------------
  6737. INT 17 - INSET - FLUSH GRAPHICS FROM MERGE BUFFER
  6738.     AX = CD07h
  6739. Return: CX = 07C2h
  6740. SeeAlso: AX=CD05h
  6741. --------P-17CD08-----------------------------
  6742. INT 17 - INSET - CANCEL LINK MODE
  6743.     AX = CD08h
  6744. Return: CX = 07C2h
  6745. SeeAlso: AX=CD04h
  6746. --------P-17CD09-----------------------------
  6747. INT 17 - INSET - ALTER TEXT LINE SPACING
  6748.     AX = CD09h
  6749.     CX = line spacing in 1/720th inch
  6750. Return: CX = 07C2h
  6751. Note:    not yet implemented, line spacing is currently fixed at 1/6 inch
  6752. SeeAlso: AX=CD06h
  6753. --------P-17CD0A-----------------------------
  6754. INT 17 - INSET - GET SETUP
  6755.     AX = CD0Ah
  6756.     DS:DX -> buffer for IN.SET data
  6757. Return: CX = 07C2h
  6758. --------P-17CD0B-----------------------------
  6759. INT 17 - INSET - START GETTING SCALED IMAGE
  6760.     AX = CD0Bh
  6761.     DS:SI -> ASCIZ pathname of .PIX file
  6762.     BX = number of bitplanes
  6763.     CX = number of rows in output bitmap
  6764.     DX = number of columns in output bitmap
  6765. Return: AX = status
  6766.         0000h OK
  6767.         FFFFh error
  6768. Note:    image is returned in strips by repeated calls to AX=CD0Ch
  6769. --------P-17CD0C-----------------------------
  6770. INT 17 - INSET - GET NEXT IMAGE STRIP
  6771.     AX = CD0Ch
  6772. Return: AX = status
  6773.         0000h OK but not complete
  6774.         0001h OK and image complete
  6775.         FFFFh error
  6776.     DS:SI -> buffer (max 4K) for bit map strip
  6777.     CX = start row
  6778.     DX = number of rows
  6779.     BX = offset in bytes between bit planes
  6780. Note:    buffer may be overwritten by subsequent calls
  6781. SeeAlso: AX=CD0Bh
  6782. --------P-17F0-------------------------------
  6783. INT 17 - NorthNet Jetstream API - INSTALLATION CHECK
  6784.     AH = F0h
  6785.     DX = printer port (0-3)
  6786. Return: AX = 0001h Jetstream present
  6787.          else  non-Jetstream port
  6788. Note:    NorthNet Jetstream is a high-performance DMA-driven parallel card able
  6789.       to drive printers at up to 80000 characters per second
  6790. --------P-17F1-------------------------------
  6791. INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER
  6792.     AH = F1h
  6793.     CX = data buffer length
  6794.     DX = printer port (0-3)
  6795.     DS:SI -> data buffer
  6796. Return: AX = status
  6797.         0000h printer not ready (see also AH=02h)
  6798.         other printing started
  6799. SeeAlso: AH=00h,AH=F2h,AH=F3h,AH=F5h
  6800. --------P-17F2-------------------------------
  6801. INT 17 - NorthNet Jetstream API - GET PRINT PROGRESS STATUS
  6802.     AH = F2h
  6803.     DX = printer port (0-3)
  6804. Return: AX = status
  6805.         0000h prior print request finished
  6806.         other number of characters left to print
  6807. SeeAlso: AH=02h,AH=F1h,AH=F3h
  6808. --------P-17F3-------------------------------
  6809. INT 17 - NorthNet Jetstream API - ABORT PRINT OPERATION
  6810.     AH = F3h
  6811.     DX = printer port (0-3)
  6812. Return: AX = number of unprinted characters due to abort
  6813. SeeAlso: AH=F1h,AH=F4h
  6814. --------P-17F4-------------------------------
  6815. INT 17 - NorthNet Jetstream API - SET COMPLETION (POST) ADDRESS
  6816.     AH = F4h
  6817.     DX = printer port (0-3)
  6818.     DS:DS -> FAR post address (called with interrupts on)
  6819. SeeAlso: AH=F1h,AH=F3h
  6820. --------P-17F5-------------------------------
  6821. INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER FROM EXTENDED MEMORY
  6822.     AH = F5h
  6823.     CX = data buffer length
  6824.     DX = printer port (0-3)
  6825.     DS:SI -> data buffer (32-bit physical address)
  6826. Return: AX = status
  6827.         0000h printer not ready (see also AH=02h)
  6828.         other printing started
  6829. SeeAlso: AH=F1h
  6830. --------c-17FF--BX0000-----------------------
  6831. INT 17 U - PC-MOS/386 v5.01 - PRINT SPOOLER - CLOSE SPOOL FILE
  6832.     AH = FFh
  6833.     BX = 0000h
  6834.     CX = 0000h
  6835.     DX = printer port number
  6836. Return: AH = printer status (see #0444 at AH=00h)
  6837. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  6838.       operating system by The Software Link, Inc.
  6839. Desc:    close the spool file immediately instead of waiting for the close time
  6840.       to elapse
  6841. SeeAlso: AH=01h,AH=03h"PC-MOS"
  6842. --------B-18---------------------------------
  6843. INT 18 - DISKLESS BOOT HOOK (START CASSETTE BASIC)
  6844. Desc:    called when there is no bootable disk available to the system
  6845. Notes:    only PCs produced by IBM contain BASIC in ROM, so the action is
  6846.       unpredictable on compatibles; this interrupt often reboots the
  6847.       system, and often has no effect at all
  6848.     network cards with their own BIOS can hook this interrupt to allow
  6849.       a diskless boot off the network (even when a hard disk is present
  6850.       if none of the partitions is marked as the boot partition)
  6851. SeeAlso: INT 2F/AX=4A06h,INT 86"NetBIOS"
  6852. --------J-1800-------------------------------
  6853. INT 18 - NEC PC-9800 series - KEYBOARD - GET KEYSTROKE
  6854.     AH = 00h
  6855. Return: AX = keystroke
  6856. SeeAlso: AH=01h,AH=02h,INT 16/AH=00h
  6857. --------J-1801-------------------------------
  6858. INT 18 - NEC PC-9800 series - KEYBOARD - CHECK FOR KEYSTROKE
  6859.     AH = 01h
  6860. Return: ZF set if no keystroke available
  6861.     ZF clear if keystroke available
  6862.         AX = keystroke
  6863. SeeAlso: AH=00h,AH=02h,INT 16/AH=01h
  6864. --------J-1802-------------------------------
  6865. INT 18 - NEC PC-9800 series - KEYBOARD - GET SHIFT STATUS
  6866.     AH = 02h
  6867. Return: AL = shift flags
  6868. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,INT 16/AH=02h
  6869. --------J-1803-------------------------------
  6870. INT 18 - NEC PC-9800 series - KEYBOARD - INITIALIZE
  6871.     AH = 03h
  6872.     ???
  6873. Return: ???
  6874. SeeAlso: AH=00h,AH=04h
  6875. --------J-1804-------------------------------
  6876. INT 18 - NEC PC-9800 series - KEYBOARD - KEY PRESSED
  6877.     AH = 04h
  6878.     ???
  6879. Return: ???
  6880. Note:    details are not available at this time
  6881. SeeAlso: AH=00h,AH=02h,INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02h
  6882. --------J-18---------------------------------
  6883. INT 18 - NEC PC-9800 series - VIDEO
  6884.     AH = function
  6885.         0Ah set video mode
  6886.         0Bh get video mode
  6887.         0Ch start text screen display
  6888.         0Dh end text screen display
  6889.         0Eh set single display area
  6890.         0Fh set multiple display area
  6891.         10h set cursor shape
  6892.         11h display cursor
  6893.         12h terminate cursor
  6894.         13h set cursor position
  6895.         14h read font patter
  6896.         16h initialize text video RAM
  6897.         1Ah define user character
  6898.     ???
  6899. Return: ???
  6900. Notes:    details are not available at this time
  6901.     text video RAM is located at segments A000h (characters) and A200h
  6902.       (attributes)
  6903. ----------185350BX4849-----------------------
  6904. INT 18 - SPHINX C-- - WB.COM - API
  6905.     AX = 5350h ('SP')
  6906.     BX = 4849h ('HI')
  6907.     CX = 4E58h ('NX')
  6908.     DH = function
  6909.         01h set ???
  6910.         DL = ???
  6911.         02h get ???
  6912.         Return: DL = ???
  6913.         03h get ???
  6914.         Return: ES:DI -> ??? data buffer
  6915.         06h ???
  6916. Return: AX = 7370h ('sp') if installed
  6917.     BX = 6869h ('hi') if installed
  6918.     CX = 6E78h ('nx') if installed
  6919. Program: SPHINX C-- is a shareware compiler by Peter Cellik for a language
  6920.       which is a cross between C and assembler; WB.COM is the driver which
  6921.       launches the WorkBench
  6922. --------s-186900-----------------------------
  6923. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET STATUS
  6924.     AX = 6900h
  6925. Return: AX = amount of DRAM on card or 0000h if GUS not available
  6926. Program: YEA_GUS is a driver for the Graphics Ultra Sound which hooks INT 18h
  6927.       and then shells out the the program requiring its services
  6928. SeeAlso: AX=6901h,AX=690Ah,AX=690Bh
  6929. --------s-186901-----------------------------
  6930. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESET
  6931.     AX = 6901h
  6932.     BX = number of active voices (14-32)
  6933. Return: nothing
  6934. SeeAlso: AX=6900h
  6935. --------s-186902-----------------------------
  6936. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOLUME FOR SPECIFIC VOICE
  6937.     AX = 6902h
  6938.     BX = voice number (00h-1Fh)
  6939.     CX = linear volume (0000h-01FFh)
  6940. Return: nothing
  6941. SeeAlso: AX=6900h,AX=6903h,AX=6904h,AX=6909h,AX=690Ah
  6942. --------s-186903-----------------------------
  6943. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET FREQUENCY FOR VOICE
  6944.     AX = 6903h
  6945.     BX = voice number (00h-1Fh)
  6946.     CX = frequency in Hz (0-44100)
  6947. Return: nothing
  6948. SeeAlso: AX=6902h,AX=6904h
  6949. --------s-186904-----------------------------
  6950. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET LEFT/RIGHT BALANCE
  6951.     AX = 6904h
  6952.     BX = voice number (00h-1Fh)
  6953.     CX = balance (0 = left, 7 = even, 15 = right)
  6954. Return: nothing
  6955. SeeAlso: AX=6902h,AX=6903h
  6956. --------s-186905-----------------------------
  6957. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - PLAY MUSIC
  6958.     AX = 6905h
  6959.     BL = voice number
  6960.     BH = sample type (0 = 8-bit, 1 = 16-bit)
  6961.     CL = looping type (0 = none, 1 = forward, 2 = back and forth)
  6962.     CH:DI = 20-bit starting address for voice data
  6963.     DL:SI = 20-bit address for loop start
  6964.     DH:BP = 20-bit address for loop end
  6965. SeeAlso: AX=6903h,AX=6906h,AX=690Bh
  6966. --------s-186906-----------------------------
  6967. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - LOAD SOUND DATA
  6968.     AX = 6906h
  6969.     BL = data format (1 = twos-complement, 0 = not)
  6970.     BH = sample type (0 = 8-bit, 1 = 16-bit)
  6971.     CX = number of bytes to send
  6972.     ES:SI -> buffer containing data
  6973.     DL:DI = 20-bit address of GUS DRAM at which to load sound data
  6974. SeeAlso: AX=6900h,AX=6905h,AX=690Ch
  6975. --------s-186907-----------------------------
  6976. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - STOP VOICE
  6977.     AX = 6907h
  6978.     BX = voice number (00h-1Fh)
  6979. Return: nothing
  6980. SeeAlso: AX=6908h,AX=690Dh
  6981. --------s-186908-----------------------------
  6982. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOICE END
  6983.     AX = 6908h
  6984.     BX = voice number (00h-1Fh)
  6985.     CL:DX = 20-bit ending address
  6986. Return: nothing
  6987. SeeAlso: AX=690Bh
  6988. --------s-186909-----------------------------
  6989. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RAMP VOLUME
  6990.     AX = 6909h
  6991.     BL = voice number (00h-1Fh)
  6992.     BH = looping type (0 = none, 1 = forward, 2 = back and forth)
  6993.     CX = starting volume
  6994.     DX = ending volume
  6995.     DI:SI = time
  6996. Return: nothing
  6997. SeeAlso: AX=6902h,AX=690Ah
  6998. --------s-18690A-----------------------------
  6999. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET VOLUME
  7000.     AX = 690Ah
  7001.     BX = voice number (00h-1Fh)
  7002. Return: AX = current non-linear volume for voice
  7003. SeeAlso: AX=6902h,AX=6909h
  7004. --------s-18690B-----------------------------
  7005. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET POSITION
  7006.     AX = 690Bh
  7007.     BX = voice number
  7008. Return: BX:AX = 20-bit address at which voice is playing
  7009. SeeAlso: AX=6900h,AX=6905h,AX=6908h
  7010. --------s-18690C-----------------------------
  7011. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SAVE SOUND DATA
  7012.     AX = 690Ch
  7013.     BL = data format (1 = twos-complement, 0 = not)
  7014.     BH = sample type (0 = 8-bit, 1 = 16-bit)
  7015.     CX = number of bytes to get
  7016.     ES:SI -> buffer for retrieved data
  7017.     DL:DI = 20-bit address in GUS DRAM from which to read voice data
  7018. Return: nothing
  7019. SeeAlso: AX=6906h
  7020. --------s-18690D-----------------------------
  7021. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESTART VOICE
  7022.     AX = 690Dh
  7023.     BX = voice
  7024.     CX = sample type (0 = 8-bit, 1 = 16-bit)
  7025.     DX = looping type (0 = none, 1 = forward, 2 = back and forth)
  7026. Return: CX = balance value
  7027. SeeAlso: AX=6907h,AX=6908h
  7028. --------s-188000-----------------------------
  7029. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - INITIALIZE
  7030.     AX = 8000h
  7031. Program: EURO_MOD is a .MOD file player for the Gravis Ultra Sound which hooks
  7032.       INT 18h and then shells out to the program requiring its services
  7033. SeeAlso: AX=8001h,AX=8004h
  7034. --------s-188001-----------------------------
  7035. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - LOAD .MOD FILE
  7036.     AX = 8001h
  7037.     BX:CX -> ASCIZ filename
  7038. SeeAlso: AX=8000h,AX=8002h
  7039. --------s-188002-----------------------------
  7040. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - PLAY .MOD FILE
  7041.     AX = 8002h
  7042. SeeAlso: AX=8002h,AX=8003h
  7043. --------s-188003-----------------------------
  7044. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - STOP PLAYING
  7045.     AX = 8003h
  7046. --------s-188004-----------------------------
  7047. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - SHUTDOWN
  7048.     AX = 8004h
  7049. SeeAlso: AX=8000h,AX=8003h
  7050. --------B-19---------------------------------
  7051. INT 19 - SYSTEM - BOOTSTRAP LOADER
  7052. Desc:    This interrupt reboots the system without clearing memory or restoring
  7053.       interrupt vectors.  Because interrupt vectors are preserved, this
  7054.       interrupt usually causes a system hang if any TSRs have hooked
  7055.       vectors from 00h through 1Ch, particularly INT 08.
  7056. Notes:    Usually, the BIOS will try to read sector 1, head 0, track 0 from drive
  7057.       A: to 0000h:7C00h.  If this fails, and a hard disk is installed, the
  7058.       BIOS will read sector 1, head 0, track 0 of the first hard disk.
  7059.       This sector should contain a master bootstrap loader and a partition
  7060.       table (see #0455).  After loading the master boot sector at
  7061.       0000h:7C00h, the master bootstrap loader is given control.  It will
  7062.       scan the partition table for an active partition, and will then load
  7063.       the operating system's bootstrap loader (contained in the first
  7064.       sector of the active partition) and give it control.
  7065.     true IBM PCs and most clones issue an INT 18 if neither floppy nor hard
  7066.       disk have a valid boot sector
  7067.     to accomplish a warm boot equivalent to Ctrl-Alt-Del, store 1234h in
  7068.       0040h:0072h and jump to FFFFh:0000h.    For a cold boot equivalent to
  7069.       a reset, store 0000h at 0040h:0072h before jumping.
  7070.     VDISK.SYS hooks this interrupt to allow applications to find out how
  7071.       much extended memory has been used by VDISKs (see #0454).  DOS 3.3+
  7072.       PRINT hooks INT 19 but does not set up a correct VDISK header block
  7073.       at the beginning of its INT 19 handler segment, thus causing some
  7074.       programs to overwrite extended memory which is already in use.
  7075.     the default handler is at F000h:E6F2h for 100% compatible BIOSes
  7076.     MS-DOS 3.2+ hangs on booting (even from floppy) if the hard disk
  7077.       contains extended partitions which point at each other in a loop,
  7078.       since it will never find the end of the linked list of extended
  7079.       partitions
  7080.     under Windows Real and Enhanced modes, calling INT 19 will hang the
  7081.       system in the same was as under bare DOS; under Windows Standard
  7082.       mode, INT 19 will successfully perform a cold reboot as it appears
  7083.       to have been redirected to a MOV AL,0FEh/OUT 64h,AL sequence
  7084. SeeAlso: INT 14/AH=17h,INT 18,INT 5B"PC Cluster"
  7085.  
  7086. Format of VDISK header block (at beginning of INT 19 handler's segment):
  7087. Offset    Size    Description    (Table 0454)
  7088.  00h 18 BYTEs    n/a (for VDISK.SYS, the device driver header)
  7089.  12h 11 BYTEs    signature string "VDISK     Vn.m" for VDISK.SYS version n.m
  7090.  1Dh 15 BYTEs    n/a
  7091.  2Ch  3 BYTEs    linear address of first byte of available extended memory
  7092.  
  7093. Format of hard disk master boot sector:
  7094. Offset    Size    Description    (Table 0455)
  7095.  00h 446 BYTEs    Master bootstrap loader code
  7096. 1BEh 16 BYTEs    partition record for partition 1 (see #0456)
  7097. 1CEh 16 BYTEs    partition record for partition 2
  7098. 1DEh 16 BYTEs    partition record for partition 3
  7099. 1EEh 16 BYTEs    partition record for partition 4
  7100. 1FEh    WORD    signature, AA55h indicates valid boot block
  7101.  
  7102. Format of partition record:
  7103. Offset    Size    Description    (Table 0456)
  7104.  00h    BYTE    boot indicator (80h = active partition)
  7105.  01h    BYTE    partition start head
  7106.  02h    BYTE    partition start sector (bits 0-5)
  7107.  03h    BYTE    partition start track (bits 8,9 in bits 6,7 of sector)
  7108.  04h    BYTE    operating system indicator (see #0457)
  7109.  05h    BYTE    partition end head
  7110.  06h    BYTE    partition end sector (bits 0-5)
  7111.  07h    BYTE    partition end track (bits 8,9 in bits 6,7 of sector)
  7112.  08h    DWORD    sectors preceding partition
  7113.  0Ch    DWORD    length of partition in sectors
  7114.  
  7115. (Table 0457)
  7116. Values for operating system indicator:
  7117.  00h    empty
  7118.  01h    DOS 12-bit FAT
  7119.  02h    XENIX root file system
  7120.  03h    XENIX /usr file system (obsolete)
  7121.  04h    DOS 16-bit FAT
  7122.  05h    DOS 3.3+ extended partition
  7123.  06h    DOS 3.31+ Large File System
  7124.  07h    QNX
  7125.  07h    OS/2 HPFS
  7126.  07h    Advanced Unix
  7127.  08h    AIX bootable partition, SplitDrive
  7128.  09h    AIX data partition
  7129.  09h    Coherent filesystem
  7130.  0Ah    OS/2 Boot Manager
  7131.  0Ah    OPUS
  7132.  0Ah    Coherent swap partition
  7133.  10h    OPUS
  7134.  12h    Compaq Diagnostics partition
  7135.  18h    AST special Windows swap file
  7136.  24h    NEC MS-DOS 3.x
  7137.  40h    VENIX 80286
  7138.  50h    Disk Manager, read-only partition
  7139.  51h    Disk Manager, read/write partition
  7140.  51h    Novell???
  7141.  52h    CP/M
  7142.  52h    Microport System V/386
  7143.  56h    GoldenBow VFeature
  7144.  61h    SpeedStor
  7145.  63h    Unix SysV/386, 386/ix
  7146.  63h    Mach, MtXinu BSD 4.3 on Mach
  7147.  63h    GNU HURD
  7148.  64h    Novell NetWare
  7149.  65h    Novell NetWare (3.11)
  7150.  70h    DiskSecure Multi-Boot
  7151.  75h    PC/IX
  7152.  80h    Minix v1.1 - 1.4a
  7153.  81h    Minix v1.4b+
  7154.  81h    Linux
  7155.  81h    Mitac Advanced Disk Manager
  7156.  82h    Linux Swap partition
  7157.  83h    Linux native file system (ext2fs/xiafs)
  7158.  84h    OS/2-renumbered type 04h partition (related to hiding DOS C: drive)
  7159.  93h    Amoeba file system
  7160.  94h    Amoeba bad block table
  7161.  B7h    BSDI file system (secondarily swap)
  7162.  B8h    BSDI swap partition (secondarily file system)
  7163.  C1h    DR-DOS 6.0 LOGIN.EXE-secured 12-bit FAT partition
  7164.  C4h    DR-DOS 6.0 LOGIN.EXE-secured 16-bit FAT partition
  7165.  C6h    DR-DOS 6.0 LOGIN.EXE-secured Huge partition
  7166.  DBh    CP/M, Concurrent CP/M, Concurrent DOS
  7167.  DBh    CTOS (Convergent Technologies OS)
  7168.  E1h    SpeedStor 12-bit FAT extended partition
  7169.  E4h    SpeedStor 16-bit FAT extended partition
  7170.  F2h    DOS 3.3+ secondary
  7171.  FEh    LANstep
  7172.  FFh    Xenix bad block table
  7173. --------B-1A00-------------------------------
  7174. INT 1A - TIME - GET SYSTEM TIME
  7175.     AH = 00h
  7176. Return: CX:DX = number of clock ticks since midnight
  7177.     AL = midnight flag, nonzero if midnight passed since time last read
  7178. Notes:    there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs
  7179.     IBM and many clone BIOSes set the flag for AL rather than incrementing
  7180.       it, leading to loss of a day if two consecutive midnights pass
  7181.       without a request for the time (e.g. if the system is on but idle)
  7182. SeeAlso: AH=01h,AH=02h,INT 21/AH=2Ch,INT 62/AX=0099h
  7183. --------B-1A01-------------------------------
  7184. INT 1A - TIME - SET SYSTEM TIME
  7185.     AH = 01h
  7186.     CX:DX = number of clock ticks since midnight
  7187. SeeAlso: AH=00h,AH=03h,INT 21/AH=2Dh
  7188. --------B-1A02-------------------------------
  7189. INT 1A - TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS)
  7190.     AH = 02h
  7191. Return: CF clear if successful
  7192.         CH = hour (BCD)
  7193.         CL = minutes (BCD)
  7194.         DH = seconds (BCD)
  7195.         DL = daylight savings flag (00h standard time, 01h daylight time)
  7196.     CF set on error (i.e. clock not running or in middle of update)
  7197. SeeAlso: AH=00h
  7198. --------B-1A03-------------------------------
  7199. INT 1A - TIME - SET REAL-TIME CLOCK TIME (AT,XT286,PS)
  7200.     AH = 03h
  7201.     CH = hour (BCD)
  7202.     CL = minutes (BCD)
  7203.     DH = seconds (BCD)
  7204.     DL = daylight savings flag (00h standard time, 01h daylight time)
  7205. SeeAlso: AH=01h
  7206. --------B-1A04-------------------------------
  7207. INT 1A - TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS)
  7208.     AH = 04h
  7209. Return: CF clear if successful
  7210.         CH = century (BCD)
  7211.         CL = year (BCD)
  7212.         DH = month (BCD)
  7213.         DL = day (BCD)
  7214.     CF set on error
  7215. SeeAlso: AH=02h,AH=05h,INT 21/AH=2Ah
  7216. --------B-1A05-------------------------------
  7217. INT 1A - TIME - SET REAL-TIME CLOCK DATE (AT,XT286,PS)
  7218.     AH = 05h
  7219.     CH = century (BCD)
  7220.     CL = year (BCD)
  7221.     DH = month (BCD)
  7222.     DL = day (BCD)
  7223. SeeAlso: AH=04h,INT 21/AH=2Bh
  7224. --------B-1A06-------------------------------
  7225. INT 1A - TIME - SET ALARM (AT,XT286,PS)
  7226.     AH = 06h
  7227.     CH = hour (BCD)
  7228.     CL = minutes (BCD)
  7229.     DH = seconds (BCD)
  7230. Return: CF set on error (alarm already set or clock stopped for update)
  7231.     CF clear if successful
  7232. Notes:    the alarm occurs every 24 hours until turned off, invoking INT 4A each
  7233.       time
  7234.     the BIOS does not check for invalid values for the time, so the CMOS
  7235.       clock chip's "don't care" setting (any values between C0h and FFh)
  7236.       may be used for any or all three part.  For example, to create an
  7237.       alarm once a minute, every minute, call with CH=C0h, CL=C0h, and
  7238.       DH=00h.
  7239. SeeAlso: AH=07h,INT 4A
  7240. --------B-1A07-------------------------------
  7241. INT 1A - TIME - CANCEL ALARM (AT,XT286,PS)
  7242.     AH = 07h
  7243. Return: alarm disabled
  7244. Note:    does not disable the real-time clock's IRQ
  7245. SeeAlso: AH=06h,INT 70
  7246. --------B-1A08-------------------------------
  7247. INT 1A - TIME - SET RTC ACTIVATED POWER ON MODE (CONVERTIBLE)
  7248.     AH = 08h
  7249.     CH = hours in BCD
  7250.     CL = minutes in BCD
  7251.     DH = seconds in BCD
  7252. SeeAlso: AH=09h
  7253. --------B-1A09-------------------------------
  7254. INT 1A - TIME - READ RTC ALARM TIME AND STATUS (CONV,PS30)
  7255.     AH = 09h
  7256. Return: CH = hours in BCD
  7257.     CL = minutes in BCD
  7258.     DH = seconds in BCD
  7259.     DL = alarm status
  7260.         00h alarm not enabled
  7261.         01h alarm enabled but will not power up system
  7262.         02h alarm will power up system
  7263. SeeAlso: AH=08h
  7264. --------B-1A0A-------------------------------
  7265. INT 1A - TIME - READ SYSTEM-TIMER DAY COUNTER (XT2,PS)
  7266.     AH = 0Ah
  7267. Return: CF set on error
  7268.     CF clear if successful
  7269.         CX = count of days since Jan 1,1980
  7270. SeeAlso: AH=04h,AH=0Bh
  7271. --------B-1A0B-------------------------------
  7272. INT 1A - TIME - SET SYSTEM-TIMER DAY COUNTER (XT2,PS)
  7273.     AH = 0Bh
  7274.     CX = count of days since Jan 1,1980
  7275. Return: CF set on error
  7276.     CF clear if successful
  7277. SeeAlso: AH=05h,AH=0Ah
  7278. --------J-1A10-------------------------------
  7279. INT 1A - NEC PC-9800 series - PRINTER - INITIALIZE
  7280.     AH = 10h
  7281.     ???
  7282. Return: ???
  7283. SeeAlso: AH=11h,AH=12h,INT 17/AH=01h
  7284. --------J-1A11-------------------------------
  7285. INT 1A - NEC PC-9800 series - PRINTER - OUTPUT CHARACTER
  7286.     AH = 11h
  7287.     ???
  7288. Return: ???
  7289. SeeAlso: AH=10h,AH=12h,INT 17/AH=00h
  7290. --------J-1A12-------------------------------
  7291. INT 1A - NEC PC-9800 series - PRINTER - SENSE STATUS
  7292.     AH = 12h
  7293.     ???
  7294. Return: ???
  7295. SeeAlso: AH=10h,AH=11h,INT 17/AH=02h
  7296. --------A-1A3601-----------------------------
  7297. INT 1A - WORD PERFECT v5.0 Third Party Interface - INSTALLATION CHECK
  7298.     AX = 3601h
  7299. Return: DS:SI = routine to monitor keyboard input, immediately preceded by the
  7300.         ASCIZ string "WPCORP\0"
  7301. Notes:    WordPerfect 5.0 will call this interrupt at start up to determine if a
  7302.       third party product wants to interface with it.  The third party
  7303.       product must intercept this interrupt and return the address of a
  7304.       keyboard monitor routine.
  7305.     Before checking for keyboard input, and after every key entered by the
  7306.       user, Word Perfect will call the routine whose address was provided
  7307.       in DS:SI with the following parameters:
  7308.         Entry:    AX = key code or 0
  7309.             BX = WordPerfect state flag
  7310.         Exit:    AX = 0 or key code
  7311.             BX = 0 or segment address of buffer with key codes
  7312.     See the "WordPerfect 5.0 Developer's Toolkit" for further information.
  7313. SeeAlso: INT 16/AX=5500h
  7314. --------N-1A6108-----------------------------
  7315. INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDWITHREPLY" - SEND MSG AND GET REPLY
  7316.     AX = 6108h
  7317.     STACK:    WORD    conversation ID (0000h-0009h)
  7318.         DWORD    pointer to message buffer
  7319.         WORD    length of message
  7320.         DWORD    pointer to reply buffer
  7321.         WORD    length of reply buffer
  7322.         WORD    0000h (use default "Cparams" structure)
  7323. Return: AX = status (see #0458)
  7324.     STACK unchanged
  7325. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  7326.       which implements the Simple Network Application Protocol
  7327. SeeAlso: AX=6205h
  7328.  
  7329. (Table 0458)
  7330. Values for SNAP.EXE status:
  7331.  0000h    successful
  7332.  F830h    "SNAP_ABORTED"
  7333.  FC04h    "SNAP_SERVERDIED"
  7334.  FC05h    "SNAP_RESEND"
  7335.  FC06h    "SNAP_SELECTFAILED"
  7336.  FC07h    "SNAP_WRONGVERSION"
  7337.  FC08h    "SNAP_INVALIDACK"
  7338.  FC09h    "SNAP_TIMEOUT"
  7339.  FC0Ah    "SNAP_SERVERREJECT"
  7340.  FC0Bh    "SNAP_NOREPLYDUE"
  7341.  FC0Ch    "SNAP_NOAUTHENTICATE"/"SNAP_GUARDIAN_ERROR"
  7342.  FC0Dh    "SNAP_NOINIT"
  7343.  FC0Eh    "SNAP_SOCKETERROR"
  7344.  FC0Fh    "SNAP_BUFFERLIMIT"
  7345.  FC10h    "SNAP_INVALIDCID"
  7346.  FC11h    "SNAP_INVALIDOP"
  7347.  FC12h    "SNAP_XMITFAIL"
  7348.  FC13h    "SNAP_NOMORERETRIES"
  7349.  FC14h    "SNAP_BADPARMS"
  7350.  FC15h    "SNAP_NOMEMORY"
  7351.  FC16h    "SNAP_NOMORECONVS"
  7352.  FFFFh    failed (invalid function/parameter)
  7353. --------N-1A6205-----------------------------
  7354. INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDNOREPLY" - SEND MSG, DON'T AWAIT REPLY
  7355.     AX = 6205h
  7356.     STACK:    WORD    conversation ID (0000h-0009h)
  7357.         DWORD    pointer to message
  7358.         WORD    length of message
  7359.         WORD    0000h (use default "Cparms" structure)
  7360. Return: AX = status (see #0458)
  7361.     STACK unchanged
  7362. SeeAlso: AX=6108h
  7363. --------N-1A6308-----------------------------
  7364. INT 1A - SNAP.EXE 3.2+ - "SNAP_BEGINCONV" - BEGIN CONVERSATION
  7365.     AX = 6308h
  7366.     STACK:    WORD    offset of ASCIZ "guardian"
  7367.         WORD    offset of ASCIZ hostname
  7368.         WORD    offset of ASCIZ server name
  7369.         WORD    offset of ASCIZ userid
  7370.         WORD    offset of ASCIZ password
  7371.         WORD    offset of password length
  7372.         WORD    offset of password type
  7373.         WORD    offset of "Cparms" structure (see #0459)
  7374. Return: ???
  7375.     STACK unchanged
  7376. Note:    all stacked offsets are within the SNAP data segment (use AX=6A01h
  7377.       to allocate a buffer)
  7378. SeeAlso: AX=6405h,AX=7202h
  7379.  
  7380. Format of SNAP.EXE Cparms structure:
  7381. Offset    Size    Description    (Table 0459)
  7382.  00h    WORD    retry delay in seconds
  7383.  02h    WORD    timeout delay in seconds
  7384.  04h    WORD    maximum buffer size
  7385.  06h    WORD    encryption level
  7386. --------N-1A6405-----------------------------
  7387. INT 1A - SNAP.EXE 3.2+ - "SNAP_ENDCONV" - END CONVERSATION
  7388.     AX = 6405h
  7389.     STACK:    WORD    conversation ID (0000h-0009h)
  7390.         DWORD    pointer to message buffer
  7391.         WORD    length of message
  7392.         WORD    0000h (use default "Cparms" structure)
  7393. Return: AX = status (see #0458)
  7394.     STACK unchanged
  7395. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  7396.       which implements the Simple Network Application Protocol
  7397. SeeAlso: AX=6308h
  7398. --------N-1A6900-----------------------------
  7399. INT 1A - SNAP.EXE 3.2+ - "SNAP_DATASEG" - GET RESIDENT DATA SEGMENT
  7400.     AX = 6900h
  7401. Return: AX = value used for DS by resident code
  7402. SeeAlso: AX=6A01h,AX=6F01h
  7403. --------N-1A6A01-----------------------------
  7404. INT 1A - SNAP.EXE 3.2+ - "SNAP_ALLOC" - ALLOCATE BUFFER IN SNAP DATA SEGMENT
  7405.     AX = 6A01h
  7406.     STACK:    WORD    number of bytes to allocate
  7407. Return: AX = offset of allocated buffer or 0000h if out of memory
  7408.     STACK unchanged
  7409. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  7410.       which implements the Simple Network Application Protocol
  7411. SeeAlso: AX=6B01h
  7412. --------N-1A6B01-----------------------------
  7413. INT 1A - SNAP.EXE 3.2+ - "SNAP_FREE" - DEALLOCATE BUFFER IN SNAP DATA SEGMENT
  7414.     AX = 6B01h
  7415.     STACK:    WORD    offset within SNAP data segment of previously allocated
  7416.             buffer
  7417. Return: STACK unchanged
  7418. Note:    this call is a NOP if the specified offset is 0000h
  7419. SeeAlso: AX=6A01h
  7420. --------N-1A6C04-----------------------------
  7421. INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYTO" - COPY DATA TO RESIDENT SNAP PACKAGE
  7422.     AX = 6C04h
  7423.     STACK:    WORD    offset within SNAP data segment of dest (nonzero)
  7424.         WORD    segment of source buffer
  7425.         WORD    offset of source buffer
  7426.         WORD    number of bytes to copy
  7427. Return: AX = offset of byte after last one copied to destination
  7428.     STACK unchanged
  7429. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  7430.       which implements the Simple Network Application Protocol
  7431. SeeAlso: AX=6D04h
  7432. --------N-1A6D04-----------------------------
  7433. INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYFROM" - COPY DATA FROM RESIDENT SNAP PACKAGE
  7434.     AX = 6D04h
  7435.     STACK:    WORD    offset within SNAP data segment of source buffer
  7436.         WORD    segment of destination buffer
  7437.         WORD    offset of destination buffer
  7438.         WORD    number of bytes to copy
  7439. Return: AX = offset of byte after last one copied from source
  7440.     buffer filled
  7441.     STACK unchanged
  7442. SeeAlso: AX=6C04h
  7443. --------N-1A6E01-----------------------------
  7444. INT 1A - SNAP.EXE 3.2+ - "SNAP_SETDEBUG" - SET ???
  7445.     AX = 6E01h
  7446.     STACK:    WORD    new value for ???
  7447. Return: AX = old value of ???
  7448.     STACK unchanged
  7449. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  7450.       which implements the Simple Network Application Protocol
  7451. --------N-1A6F01-----------------------------
  7452. INT 1A - SNAP.EXE 3.2+ - "SNAP_CHKINSTALL" - INSTALLATION CHECK
  7453.     AX = 6F01h
  7454.     STACK: WORD 0000h
  7455. Return: AX = status
  7456.         0000h SNAP is resident
  7457.         other SNAP not present
  7458.     STACK unchanged
  7459. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  7460.       which implements the Simple Network Application Protocol, and is
  7461.       required by PCVENUS (a network shell).  The combination of SNAP and
  7462.       PCVENUS allows the use of the Andrew File System as one or more
  7463.       networked drives.
  7464. SeeAlso: AX=6900h,AX=7400h
  7465. --------N-1A7002-----------------------------
  7466. INT 1A - SNAP.EXE 3.2+ - "SNAP_SETANCHOR"
  7467.     AX = 7002h
  7468.     STACK:    WORD    anchor number (0000h-0009h)
  7469.         WORD    new value for the anchor
  7470. Return: AX = status
  7471.         0000h successful
  7472.         FFFFh failed (top word on stack not in range 00h-09h)
  7473.     STACK unchanged
  7474. SeeAlso: AX=7101h
  7475. --------N-1A7101-----------------------------
  7476. INT 1A - SNAP.EXE 3.2+ - "SNAP_GETANCHOR"
  7477.     AX = 7101h
  7478.     STACK:    WORD    anchor number (0000h-0009h)
  7479. Return: AX = anchor's value
  7480.     STACK unchanged
  7481. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  7482.       which implements the Simple Network Application Protocol
  7483. SeeAlso: AX=7002h
  7484. --------N-1A7202-----------------------------
  7485. INT 1A - SNAP.EXE 3.2+ - "SNAP_SETCONVPARMS" - SET CONVERSATION PARAMETERS
  7486.     AX = 7202h
  7487.     STACK:    WORD    conversation ID (0000h-0009h)
  7488.         WORD    offset within resident data segment of "Cparms"
  7489.               structure (see #0459)
  7490. Return: AX = status???
  7491.     STACK unchanged
  7492. SeeAlso: AX=6308h
  7493. --------N-1A7302-----------------------------
  7494. INT 1A - SNAP.EXE 3.2+ - "SNAP_CLIENTVERSION" - ???
  7495.     AX = 7302h
  7496.     STACK:    WORD    conversation ID (0000h-0009h)
  7497.         WORD    offset within resident data segment of ???
  7498. Return: AX = ???
  7499.     ???
  7500.     STACK unchanged
  7501. SeeAlso: AX=7400h
  7502. --------N-1A7400-----------------------------
  7503. INT 1A - SNAP.EXE 3.2+ - "SNAP_VERSION" - GET VERSION
  7504.     AX = 7400h
  7505. Return: AX = version (AH=major, AL=minor)
  7506. Note:    this call is only valid if SNAP is installed
  7507. SeeAlso: AX=7302h,INT 1A/AX=6F01h
  7508. --------N-1A75-------------------------------
  7509. INT 1A - SNAP.EXE 3.2+ - "SNAP_NOP" - ???
  7510.     AH = 75h
  7511.     AL = ???
  7512. Return: AX = ??? (0000h)
  7513. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  7514.       which implements the Simple Network Application Protocol
  7515. --------N-1A76-------------------------------
  7516. INT 1A - SNAP.EXE 3.2+ - "SNAP_802_5" - ???
  7517.     AH = 76h
  7518.     AL = ???
  7519. Return: AX = ???
  7520. --------N-1A77-------------------------------
  7521. INT 1A - SNAP.EXE 3.4 - ???
  7522.     AH = 77h
  7523.     AL = ??? (at least 01h)
  7524.     STACK:    WORD    ???
  7525.         ???
  7526. Return: ???
  7527.     STACK unchanged
  7528. --------N-1A7802-----------------------------
  7529. INT 1A - SNAP.EXE 3.4 - ???
  7530.     AX = 7802h
  7531.     STACK:    WORD    ???
  7532.         WORD    ???
  7533. Return: ???
  7534.     STACK unchanged
  7535. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  7536.       which implements the Simple Network Application Protocol
  7537. --------s-1A7F-------------------------------
  7538. INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
  7539.     AH = 7Fh
  7540.     ???
  7541. Return: ???
  7542. Note:    this function is not supported by the Tandy 1000SL/TL BIOS
  7543. SeeAlso: AH=80h,AH=83h,AH=85h
  7544. --------s-1A80-------------------------------
  7545. INT 1A - PCjr, Tandy 2500???, Tandy 1000SL/TL - SET UP SOUND MULTIPLEXOR
  7546.     AH = 80h
  7547.     AL = 00h source is 8253 channel 2
  7548.          01h source is cassette input
  7549.          02h source is I/O channel "Audio IN"
  7550.          03h source is sound generator chip
  7551. Note:    although documented in the 1000TL Technical Reference, the 1000TL
  7552.       BIOS has just an IRET for this call
  7553. SeeAlso: AH=7Fh,AH=83h
  7554. --------X-1A80-------------------------------
  7555. INT 1A - PCMCIA Socket Services v1.00 - GET NUMBER OF ADAPTERS
  7556.     AH = 80h
  7557. Return: CF clear if successful
  7558.         CX = 5353h ('SS') if Socket Services installed
  7559.         AL = number of adapters present (0-16)
  7560.         AH destroyed
  7561.     CF set on error
  7562.         AH = error code (see #0460)
  7563. SeeAlso: AH=83h"PCMCIA"
  7564.  
  7565. (Table 0460)
  7566. Values for PCMCIA error codes:
  7567.  01h    "BAD_ADAPTER" nonexistent adapter
  7568.  02h    "BAD_ATTRIBUTE" invalid attribute specified
  7569.  03h    "BAD_BASE" invalid system memory base address
  7570.  04h    "BAD_EDC" invalid EDC generator specified
  7571.  05h    "BAD_INDICATOR" invalid indicator specified
  7572.  06h    "BAD_IRQ" invalid IRQ channel specified
  7573.  07h    "BAD_OFFSET" invalid PCMCIA card offset specified
  7574.  08h    "BAD_PAGE" invalid page specified
  7575.  09h    "BAD_READ" unable to complete request
  7576.  0Ah    "BAD_SIZE" invalid window size specified
  7577.  0Bh    "BAD_SOCKET" nonexistent socket specified
  7578.  0Ch    "BAD_TECHNOLOGY" unsupported Card Technology for writes
  7579.  0Dh    "BAD_TYPE" unavailable window type specified
  7580.  0Eh    "BAD_VCC" invalid Vcc power level index specified
  7581.  0Fh    "BAD_VPP" invalid Vpp1 or Vpp2 power level index specified
  7582.  10h    "BAD_WAIT" invalid number of wait states specified
  7583.  11h    "BAD_WINDOW" nonexistent window specified
  7584.  12h    "BAD_WRITE" unable to complete request
  7585.  13h    "NO_ADAPTERS" no adapters installed, but Socket Services is present
  7586.  14h    "NO_CARD" no card in socket
  7587. --------X-1A81-------------------------------
  7588. INT 1A - PCMCIA Socket Services v1.00 - REGISTER STATUS CHANGE CALLBACK
  7589.     AH = 81h
  7590.     DS:DX -> callback routine (see #0461) or 0000h:0000h to disable
  7591. Return: CF clear if successful
  7592.         AH destroyed
  7593.     CF set on error
  7594.         AH = error code (see #0460)
  7595. Note:    the callback will be invoked on any socket changes whose notification
  7596.       has not been disabled with the status change enable mask; it may be
  7597.       invoked either while processing a hardware interrupt from the adapter
  7598.       or while processing the following Socket Services request
  7599. SeeAlso: AH=80h"PCMCIA",AH=82h"PCMCIA"
  7600.  
  7601. (Table 0461)
  7602. Values PCMCIA callback routine is invoked with:
  7603.     AL = adapter number
  7604.     BH = status change interrupt enable mask (see #0462)
  7605.     BL = socket number
  7606.     DH = current socket status (see #0463)
  7607.     DL = current card status (see #0464)
  7608. Return: all registers preserved
  7609. Notes:    the callback may be invoked during a hardware interrupt, and may not
  7610.       call on Socket Services
  7611.     the callback will be invoked once for each socket with a status change
  7612.  
  7613. Bitfields for PCMCIA status change interrupt enable mask:
  7614. Bit(s)    Description    (Table 0462)
  7615.  7    card detect change
  7616.  6    ready change
  7617.  5    battery warning change
  7618.  4    battery dead change
  7619.  3    insertion request
  7620.  2    ejection request
  7621.  1-0    reserved (0)
  7622.  
  7623. Bitfields for PCMCIA current socket status:
  7624. Bit(s)    Description    (Table 0463)
  7625.  7    card changed
  7626.  6    reserved (0)
  7627.  5    card insertion complete
  7628.  4    card ejection complete
  7629.  3    card insertion request pending
  7630.  2    card ejection request pending
  7631.  1    card locked
  7632.  0    reserved (0)
  7633.  
  7634. Bitfields for PCMCIA current card status:
  7635. Bit(s)    Description    (Table 0464)
  7636.  7    card detect
  7637.  6    ready
  7638.  5    battery voltage detect 2 (battery warning)
  7639.  4    battery voltage detect 1 (battery dead)
  7640.  3-1    reserved (0)
  7641.  0    write protected
  7642. --------s-1A8100-----------------------------
  7643. INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND - INSTALLATION CHECK
  7644.     AX = 8100h
  7645. Return: AL > 80h if supported
  7646.     AX = 00C4h if supported (1000SL/TL)
  7647.         CF set if sound chip is busy
  7648.         CF clear  if sound chip is free
  7649. Note:    the value of CF is not definitive; call this function until CF is
  7650.       clear on return, then call AH=84h"Tandy"
  7651. --------s-1A82-------------------------------
  7652. INT 1A - Tandy 2500???, Tandy 1000SL/TL - DIGITAL SOUND - RECORD SOUND
  7653.     AH = 82h
  7654.     ES:BX -> buffer for sound samples
  7655.     CX = length of buffer
  7656.     DX = transfer rate (1-4095, 1 is fastest)
  7657. Return: AH = 00h
  7658.     CF set if sound busy
  7659.     CF clear if sound chip free
  7660. Note:    the value in DX should be 1/10 the corresponding value for
  7661.       INT 1A/AH=83h on the 1000TL, 1/11.5 on the 1000SL.  Call
  7662.       INT 1A/AX=8100h and INT 1A/AH=84h before invoking this function.
  7663.     The BIOS issues an INT 15/AX=91FBh when the input is complete
  7664.     DMA across a 64K boundary is masked by the BIOS
  7665. --------X-1A82-------------------------------
  7666. INT 1A - PCMCIA Socket Services v1.00 - REGISTER CARD TECHNOLOGY CALLBACK
  7667.     AH = 82h
  7668.     DS:DX -> callback routine (see #0465) or 0000h:0000h
  7669. Return: CF clear if successful
  7670.         AH destroyed
  7671.     CF set on error
  7672.         AH = error code (see #0460)
  7673. Note:    the callback is invoked on a Write Multiple request with an unsupported
  7674.       card technology type
  7675. SeeAlso: AH=81h"PCMCIA",AH=94h
  7676.  
  7677. (Table 0465)
  7678. Values PCMCIA callback routine is invoked with:
  7679.     ES:AX -> Low-Level Socket Services Routines (see #0467)
  7680.     BH = socket attributes (see #0466)
  7681.     CX = number of bytes or words to write
  7682.     DS:SI -> data buffer to be written
  7683.     DX:DI -> 26-bit linear card address
  7684.     BP = card technology type
  7685. Return: CF clear if successful
  7686.     CF set on error
  7687.         AH = error code (07h,0Ch,12h,14h) (see #0460)
  7688.  
  7689. Bitfields for PCMCIA socket attributes:
  7690. Bit(s)    Description    (Table 0466)
  7691.  7-4    reserved (0)
  7692.  3    packed buffer
  7693.  2    even bytes only (only valid if 1 set)
  7694.  1    data width (clear = byte, set = word)
  7695.  0    memory type (clear = common, set = attribute)
  7696.  
  7697. Format of PCMCIA Low-Level Socket Services Routines:
  7698. Offset    Size    Description    (Table 0467)
  7699.  00h    WORD    offset of Write Many routine (see #0468)
  7700.  02h    WORD    offset of Write One routine (see #0469)
  7701.  04h    WORD    offset of Read One routine (see #0470)
  7702.  06h    WORD    offset of Increment Offset routine (see #0471)
  7703.  08h    WORD    offset of Set Offset routine (see #0472)
  7704.  0Ah    WORD    offset of Get Status routine (see #0473)
  7705.  
  7706. (Table 0468)
  7707. Call Write Many routine with:
  7708.     BH = socket attributes (see #0466)
  7709.     CX = number of bytes or words to write
  7710.     DS:SI -> data to be written
  7711. Return: CF clear if successful
  7712.     CF set on error
  7713.  
  7714. (Table 0469)
  7715. Call Write One routine with:
  7716.     AL/AX = data to be written
  7717.     BH = socket attributes (see #0466)
  7718. Return: CF clear if successful
  7719.     CF set on error
  7720.  
  7721. (Table 0470)
  7722. Call Read One routine with:
  7723.     BH = socket attributes (see #0466)
  7724. Return: CF clear if successful
  7725.         AL/AX = data read
  7726.     CF set on error
  7727.  
  7728. (Table 0471)
  7729. Call Increment Offset routine with:
  7730.     BH = socket attributes (see #0466)
  7731. Return: CF clear if successful
  7732.     CF set on error
  7733.  
  7734. (Table 0472)
  7735. Call Set Offset routine with:
  7736.     DX:DI = new offset address
  7737. Return: CF clear if successful
  7738.     CF set on error
  7739.  
  7740. (Table 0473)
  7741. Call Get Status routine with:
  7742.     nothing
  7743. Return: AL = current card status (see #0464)
  7744. --------s-1A83-------------------------------
  7745. INT 1A - Tandy 2500, Tandy 1000L series - START PLAYING DIGITAL SOUND
  7746.     AH = 83h
  7747.     AL = volume (0=silence, 7=highest)
  7748.     CX = number of bytes to play
  7749.     DX = time between sound samples (multiples of 273 nanoseconds)
  7750.         only bits 11-0 used
  7751.     ES:BX -> sound data (array of 8-bit unsigned PCM samples)
  7752. Return: AH = 00h
  7753.     CF set if sound is busy
  7754.     CF clear if sound chip is free
  7755. Notes:    this call returns immediately while the sound plays in the
  7756.       background; the sound chip is clocked at 3.57 MHz, with the low 12
  7757.       bits of DX specifying the clock divisor
  7758.     The BIOS appears to call INT 15/AX=91FBh when the sound device
  7759.       underflows to allow another INT 1A/AH=83h for seamless playing of
  7760.       long sounds.
  7761. SeeAlso: AH=84h"Tandy",INT 15/AH=91h
  7762. --------X-1A83-------------------------------
  7763. INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET SERVICES VERSION NUMBER
  7764.     AH = 83h
  7765.     AL = adapter number
  7766. Return: CF clear if successful
  7767.         AX = Socket Services version (BCD)
  7768.         BX = implementation version (BCD)
  7769.         CX = 5353h ("SS")
  7770.         DS:SI -> ASCIZ implementor description
  7771.     CF set on error
  7772.         AH = error code (01h) (see #0460)
  7773. Note:    the current version (from the Revision A.00 documentation) of Socket
  7774.       Services is 1.00 (AX=0100h)
  7775. SeeAlso: AH=80h"PCMCIA"
  7776. --------s-1A84-------------------------------
  7777. INT 1A - Tandy 2500, Tandy 1000L series - STOP PLAYING DIGITAL SOUND
  7778.     AH = 84h
  7779. Return: ???
  7780. Note:    the BIOS will call INT 15/AX=91FBh when the sound has stopped playing
  7781. SeeAlso: AH=83h"Tandy",AH=85h"Tandy"
  7782. --------X-1A84-------------------------------
  7783. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ADAPTER
  7784.     AH = 84h
  7785.     AL = adapter number
  7786. Return: CF clear if successful
  7787.         AH destroyed
  7788.         BH = number of windows
  7789.         BL = number of sockets (1-16)
  7790.         CX = number of EDCs
  7791.         DH = capabilities (see #0474)
  7792.         DL = status change interrupt used (only if DH bit 3 set)(see #0475)
  7793.     CF set on error
  7794.         AH = error code (01h) (see #0460)
  7795. SeeAlso: AH=80h"PCMCIA",AH=85h"PCMCIA",AH=87h
  7796.  
  7797. Bitfields for PCMCIA capabilities:
  7798. Bit(s)    Description    (Table 0474)
  7799.  7-6    reserved (0)
  7800.  5    status change interrupt is hardware shareable
  7801.  4    status change interrupt is software shareable
  7802.  3    status change interrupt
  7803.  2    data bus width is per-socket rather than per-window
  7804.  1    power management is per-adapter rather than per-socket
  7805.  0    indicators are per-adapter rather than per-socket
  7806.  
  7807. (Table 0475)
  7808. Values for PCMCIA status change interrupt usage:
  7809.  00h-0Fh IRQ level
  7810.  10h    NMI
  7811.  11h    I/O check
  7812.  12h    bus error
  7813.  13h    vendor specific
  7814.  14h-FFh reserved
  7815. --------s-1A85-------------------------------
  7816. INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
  7817.     AH = 85h
  7818.     ???
  7819. Return: ???
  7820. Note:    this function is not supported by the Tandy 1000SL/TL BIOS
  7821. SeeAlso: AH=7Fh,AH=83h"Tandy"
  7822. --------X-1A85-------------------------------
  7823. INT 1A - PCMCIA Socket Services v1.00 - GET ADAPTER
  7824.     AH = 85h
  7825.     AL = adapter number
  7826. Return: CF clear if successful
  7827.         AH destroyed
  7828.         DH = adapter attributes (see #0476)
  7829.     CF set on error
  7830.         AH = error code (01h) (see #0460)
  7831. SeeAlso: AH=84h"PCMCIA",AH=86h
  7832.  
  7833. Bitfields for PCMCIA adapter attributes:
  7834. Bit(s)    Description    (Table 0476)
  7835.  7-5    reserved (0)
  7836.  4    hardware share status change
  7837.  3    software share status change
  7838.  2    enable status change interrupts
  7839.  1    adapter preserves state information during reduced power consumption
  7840.  0    attempting to reduce power consumption
  7841. --------X-1A86-------------------------------
  7842. INT 1A - PCMCIA Socket Services v1.00 - SET ADAPTER
  7843.     AH = 86h
  7844.     AL = adapter number
  7845.     DH = new adapter attributes (see #0476)
  7846. Return: CF clear if successful
  7847.         AH destroyed
  7848.     CF set on error
  7849.         AH = error code (01h) (see #0460)
  7850. SeeAlso: AH=84h"PCMCIA",AH=85h"PCMCIA"
  7851. --------X-1A87-------------------------------
  7852. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE WINDOW
  7853.     AH = 87h
  7854.     AL = adapter number
  7855.     BH = window number
  7856. Return: CF clear if successful
  7857.         AH destroyed
  7858.         BL = capabilities (see #0477)
  7859.         CX = bitmap of assignable sockets
  7860.         DH = EISA A15-A12 address lines (in bits 7-4, bits 3-0 = 0)
  7861.         DL = supported access speeds (see #0478)
  7862.         DS:SI -> Memory Window Characteristics table (see #0479)
  7863.         DS:DI -> I/O Window Characteristics table (see #0480)
  7864.     CF set on error
  7865.         AH = error code (01h,11h) (see #0460)
  7866. SeeAlso: AH=84h"PCMCIA",AH=88h,AH=89h,AH=8Ch
  7867.  
  7868. Bitfields for PCMCIA window capabilities:
  7869. Bit(s)    Description    (Table 0477)
  7870.  7-5    reserved (0)
  7871.  4    separate enable for EISA comon space
  7872.  3    EISA I/O mappable
  7873.  2    I/O space
  7874.  1    attribute memory
  7875.  0    common memory
  7876.  
  7877. Bitfields for PCMCIA supported access speeds:
  7878. Bit(s)    Description    (Table 0478)
  7879.  7    reserved (0)
  7880.  6    600 ns
  7881.  5    300 ns
  7882.  4    250 ns
  7883.  3    200 ns
  7884.  2    150 ns
  7885.  1    100 ns
  7886.  0    WAIT line monitoring
  7887.  
  7888. Format of PCMCIA Memory Window Characteristics table:
  7889. Offset    Size    Description    (Table 0479)
  7890.  00h    WORD    window capabilities (see #0481)
  7891.  02h    WORD    minimum base address in 4K pages
  7892.  04h    WORD    maximum base address in 4K pages
  7893.  06h    WORD    minimum window size in 4K pages
  7894.  08h    WORD    maximum window size in 4K pages
  7895.  0Ah    WORD    window size granularity (4K units)
  7896.  0Ch    WORD    required base address alignment (4K units)
  7897.  0Eh    WORD    required card offset alignment (4K units)
  7898.  
  7899. Format of PCMCIA I/O Window Characteristics table:
  7900. Offset    Size    Description    (Table 0480)
  7901.  00h    WORD    window capabilities (see #0481)
  7902.  02h    WORD    minimum base address in bytes
  7903.  04h    WORD    maximum base address in bytes
  7904.  06h    WORD    minimum window size in bytes
  7905.  08h    WORD    maximum window size in bytes
  7906.  0Ah    WORD    window size granularity (bytes)
  7907.  
  7908. Bitfields for PCMCIA window capabilities:
  7909. Bit(s)    Description    (Table 0481)
  7910.  0    programmable base address
  7911.  1    programmable window size
  7912.  2    window disable/enable supported
  7913.  3    8-data bus
  7914.  4    16-data bus
  7915.  5    base address alignment on size boundary required
  7916.  6    power-of-two size granularity
  7917. ---memory windows---
  7918.  7    card offset must be aligned on size boundary
  7919.  8    paging hardware available
  7920.  9    paging hardware shared
  7921.  10    page disable/enable supported
  7922.  11-15    reserved (0)
  7923. ---I/O windows---
  7924.  7-15    reserved (0)
  7925. --------X-1A88-------------------------------
  7926. INT 1A - PCMCIA Socket Services v1.00 - GET WINDOW
  7927.     AH = 88h
  7928.     AL = adapter number
  7929.     BH = window number
  7930. Return: CF clear if successful
  7931.         AH destroyed
  7932.         BL = socket number (0-16) (0 = not assigned)
  7933.         CX = window size (bytes for I/O window, 4K units for memory window)
  7934.         DH = window attributes (see #0482)
  7935.         DL = access speed (only one bit set) (see #0478)
  7936.         SI = window base address (bytes if I/O, 4K units if memory)
  7937.         DI = card offset address (memory only, 4K units)
  7938.     CF set on error
  7939.         AH = error code (01h,11h) (see #0460)
  7940. SeeAlso: AH=87h,AH=89h,AH=8Ah
  7941.  
  7942. Bitfields for PCMCIA window attributes:
  7943. Bit(s)    Description    (Table 0482)
  7944.  0    memory-mapped rather than I/O-mapped
  7945.  1    attribute memory rather than common (memory-mapped)
  7946.     EISA mapped (I/O)
  7947.  2    enabled
  7948.  3    16-data path
  7949.  4    subdivided into pages (memory-mapped only)
  7950.  5    non-specific access slot enable (EISA-mapped only)
  7951.  6-7    reserved (0)
  7952. --------X-1A89-------------------------------
  7953. INT 1A - PCMCIA Socket Services v1.00 - SET WINDOW
  7954.     AH = 89h
  7955.     AL = adapter number
  7956.     BH = window number
  7957.     BL = socket number
  7958.     CX = window size (bytes if I/O window, 4K units if memory window)
  7959.     DH = window attributes (see #0482)
  7960.     DL = access speed (only one bit set) (see #0478)
  7961.     SI = window base address (bytes if I/O, 4K units if memory window)
  7962.     DI = card offset addrress (memory only, 4K units)
  7963. Return: CF clear if successful
  7964.         AH destroyed
  7965.     CF set on error
  7966.         AH = error code (01h,03h,07h,08h,0Ah,0Bh,0Dh,10h,11h) (see #0460)
  7967. SeeAlso: AH=87h,AH=88h,AH=8Bh
  7968. --------X-1A8A-------------------------------
  7969. INT 1A - PCMCIA Socket Services v1.00 - GET PAGE
  7970.     AH = 8Ah
  7971.     AL = adapter number
  7972.     BH = window number
  7973.     BL = page number
  7974. Return: CF clear if successful
  7975.         AH destroyed
  7976.         DX = page attributes (see #0483)
  7977.         DI = memory card offset (4K units)
  7978.     CF set on error
  7979.         AH = error code (01h,08h,11h) (see #0460)
  7980. Notes:    this function is only valid for memory-mapped windows
  7981.     the socket being operated on is implied by the previous AH=89h call
  7982. SeeAlso: AH=88h,AH=8Bh
  7983.  
  7984. Bitfields for PCMCIA page attributes:
  7985. Bit(s)    Description    (Table 0483)
  7986.  0    page enabled
  7987.  15-1    reserved (0)
  7988. --------X-1A8B-------------------------------
  7989. INT 1A - PCMCIA Socket Services v1.00 - SET PAGE
  7990.     AH = 8Bh
  7991.     AL = adapter number
  7992.     BH = window number
  7993.     BL = page number
  7994.     DX = page attributes (see #0483)
  7995.     DI = memory card offset (4K units)
  7996. Return: CF clear if successful
  7997.         AH destroyed
  7998.     CF set on error
  7999.         AH = error code (01h,02h,07h,08h,11h) (see #0460)
  8000. Notes:    this function is only valid for memory-mapped windows
  8001.     the socket being operated on is implied by the previous AH=89h call
  8002. SeeAlso: AH=89h,AH=8Ah
  8003. --------X-1A8C-------------------------------
  8004. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE SOCKET
  8005.     AH = 8Ch
  8006.     AL = adapter number
  8007.     BL = socket number (01h to maximum supported by adapter)
  8008. Return: CF clear if successful
  8009.         AH destroyed
  8010.         DH = capabilities (see #0484)
  8011.         DL = hardware indicators (see #0485)
  8012.         DS:SI -> Socket Characteristics table (see #0486)
  8013.         DS:DI -> Power Management table (see #0488)
  8014.     CF set on error
  8015.         AH = error code (01h,0Bh) (see #0460)
  8016. SeeAlso: AH=87h,AH=8Dh,AH=8Eh
  8017.  
  8018. Bitfields for PCMCIA socket capabilities:
  8019. Bit(s)    Description    (Table 0484)
  8020.  0    card change
  8021.  1    card lock
  8022.  2    insert card (motor control)
  8023.  3    eject card (motor control)
  8024.  4-7    reserved (0)
  8025.  
  8026. Bitfields for PCMCIA socket hardware indicators:
  8027. Bit(s)    Description    (Table 0485)
  8028.  0    busy status
  8029.  1    write-protected
  8030.  2    battery status
  8031.  3    card lock status
  8032.  4    XIP status (eXecute-In-Place)
  8033.  5-7    reserved (0)
  8034.  
  8035. Format of PCMCIA Socket Characteristics table:
  8036. Offset    Size    Description    (Table 0486)
  8037.  00h    WORD    supported card types (see #0487)
  8038.  02h    WORD    steerable IRQ levels (bit 0 = IRQ0 to bit 15 = IRQ15)
  8039.  04h    WORD    additional steerable IRQ levels
  8040.         bit 0: NMI
  8041.         bit 1: I/O check
  8042.         bit 2: bus error
  8043.         bit 3: vendor-unique
  8044.         bits 4-7 reserved (0)
  8045.  
  8046. Bitfields for supported card types:
  8047. Bit(s)    Description    (Table 0487)
  8048.  0    memory card
  8049.  1    I/O card
  8050.  2-7    reserved (0)
  8051.  
  8052. Format of PCMCIA Power Management table:
  8053. Offset    Size    Description    (Table 0488)
  8054.  00h    WORD    number of entries in table (0 if power management not avail)
  8055.  02h 2N BYTEs    power levels
  8056.         byte 0: voltage in 0.1V units
  8057.         byte 1: power supply
  8058.             bit 7: Vcc
  8059.             bit 6: Vpp1
  8060.             bit 5: Vpp2
  8061. --------X-1A8D-------------------------------
  8062. INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET
  8063.     AH = 8Dh
  8064.     AL = adapter number
  8065.     BL = socket number (01h to maximum supported by adapter)
  8066. Return: CF clear if successful
  8067.         AH destroyed
  8068.         BH = status change interrupt enable mask (see #0462)
  8069.         CH = Vcc level (lower nybble) (see #0488)
  8070.         CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble)
  8071.         DH = current socket status (see #0463)
  8072.         DL = indicators (see #0485)
  8073.         SI = card type (see #0489)
  8074.         DI = IRQ level steering (I/O only) (see #0490)
  8075.     CF set on error
  8076.         AH = error code (01h,0Bh) (see #0460)
  8077. SeeAlso: AH=8Ch,AH=8Eh
  8078.  
  8079. Bitfields for PCMCIA card type:
  8080. Bit(s)    Description    (Table 0489)
  8081.  0    memory
  8082.  1    I/O
  8083.  2-15    reserved (0)
  8084.  
  8085. Bitfields for PCMCIA I/O level steering:
  8086. Bit(s)    Description    (Table 0490)
  8087.  15    interrupt steering enabled
  8088.  14-5    reserved (0)
  8089.  4-0    IRQ level (0-15=IRQ,16=NMI,17=I/O check,18=bus error,19=vendor)
  8090. --------X-1A8E-------------------------------
  8091. INT 1A - PCMCIA Socket Services v1.00 - SET SOCKET
  8092.     AH = 8Eh
  8093.     AL = adapter number
  8094.     BL = socket number (01h to maximum supported by adapter)
  8095.     BH = status change interrupt enable mask (see #0462)
  8096.     CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble)
  8097.     DH = current socket status (see #0463)
  8098.     DL = indicators (see #0485)
  8099.     SI = card type (see #0489)
  8100.     DI = IRQ level steering (I/O only) (see #0490)
  8101. Return: CF clear if successful
  8102.         AH destroyed
  8103.     CF set on error
  8104.         AH = error code (01h,02h,05h,06h,0Bh,0Eh,0Fh) (see #0460)
  8105. SeeAlso: AH=8Ch,AH=8Dh
  8106. --------X-1A8F-------------------------------
  8107. INT 1A - PCMCIA Socket Services v1.00 - GET CARD
  8108.     AH = 8Fh
  8109.     AL = adapter number
  8110.     BL = socket number (01h to maximum supported by adapter)
  8111. Return: CF clear if successful
  8112.         AH destroyed
  8113.         DL = current card status (see #0464)
  8114.     CF set on error
  8115.         AH = error code (01h,0Bh) (see #0460)
  8116. SeeAlso: AH=8Dh,AH=90h
  8117. --------X-1A90-------------------------------
  8118. INT 1A - PCMCIA Socket Services v1.00 - RESET CARD
  8119.     AH = 90h
  8120.     AL = adapter number
  8121.     BL = socket number (01h to maximum supported by adapter)
  8122. Return: CF clear if successful
  8123.         AH destroyed
  8124.     CF set on error
  8125.         AH = error code (01h,0Bh,14h) (see #0460)
  8126. Note:    toggles RESET pin of the specified card, but does not wait after
  8127.       toggling the pin; it is the caller's responsibility to avoid
  8128.       accessing the card before it is ready again
  8129. --------X-1A91-------------------------------
  8130. INT 1A - PCMCIA Socket Services v1.00 - READ ONE
  8131.     AH = 91h
  8132.     AL = adapter number
  8133.     BL = socket number (01h to maximum supported by adapter)
  8134.     BH = attributes (see #0491)
  8135.     DX:SI = card address
  8136. Return: CF clear if successful
  8137.         AH destroyed
  8138.         CL/CX = value read
  8139.     CF set on error
  8140.         AH = error code (01h,07h,09h,0Bh,14h) (see #0460)
  8141.         CX may be destroyed
  8142. Note:    this function is only valid for I/O-mapped sockets
  8143. SeeAlso: AH=92h,AH=93h,INT 21/AX=440Dh"IOCTL"
  8144.  
  8145. Bitfields for PCMCIA attributes:
  8146. Bit(s)    Description    (Table 0491)
  8147.  2    even bytes only
  8148.  1    word rather than byte
  8149.  0    attribute memory instead of common memory
  8150. --------X-1A92-------------------------------
  8151. INT 1A - PCMCIA Socket Services v1.00 - WRITE ONE
  8152.     AH = 92h
  8153.     AL = adapter number
  8154.     BL = socket number (01h to maximum supported by adapter)
  8155.     BH = attributes (see #0491)
  8156.     CL/CX = value to write
  8157.     DX:SI = card address
  8158. Return: CF clear if successful
  8159.         AH destroyed
  8160.     CF set on error
  8161.         AH = error code (01h,07h,0Bh,12h,14h) (see #0460)
  8162. Note:    this function is only valid for I/O-mapped sockets; it also does not
  8163.       implement Card Technology handling--use AH=94h when writing to
  8164.       non-RAM technologies
  8165. SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"IOCTL"
  8166. --------X-1A93-------------------------------
  8167. INT 1A - PCMCIA Socket Services v1.00 - READ MULTIPLE
  8168.     AH = 93h
  8169.     AL = adapter number
  8170.     BL = socket number (01h to maximum supported by adapter)
  8171.     BH = attributes (see #0491)
  8172.     CX = number of bytes or words to read
  8173.     DX:SI = card address
  8174.     DS:DI -> data buffer to be filled
  8175. Return: CF clear if successful
  8176.         AH destroyed
  8177.     CF set on error
  8178.         AH = error code (01h,07h,09h,0Bh,14h) (see #0460)
  8179. Note:    this function is only available on I/O-mapped sockets
  8180. SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"IOCTL"
  8181. --------X-1A94-------------------------------
  8182. INT 1A - PCMCIA Socket Services v1.00 - WRITE MULTIPLE
  8183.     AH = 94h
  8184.     AL = adapter number
  8185.     BL = socket number (01h to maximum supported by adapter)
  8186.     BH = attributes (see #0491)
  8187.     CX = number of bytes or words to read
  8188.     DX:DI = card address
  8189.     DS:SI -> buffer containing data
  8190.     BP = Card Technology type (0000h = RAM)
  8191. Return: CF clear if successful
  8192.         AH destroyed
  8193.     CF set on error
  8194.         AH = error code (01h,07h,0Bh,0Ch,12h,14h) (see #0460)
  8195. Notes:    this function is only available on I/O-mapped sockets
  8196.     Socket Services calls the Card Technology callback (see #0465) for
  8197.       any card technology it does not directly support
  8198. SeeAlso: AH=82h"PCMCIA",AH=92h,AH=93h,INT 21/AX=440Dh"IOCTL"
  8199. --------X-1A95-------------------------------
  8200. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ERROR DETECTION CODE
  8201.     AH = 95h
  8202.     AL = adapter number
  8203.     BH = EDC generator number
  8204. Return: CF clear if successful
  8205.         AH destroyed
  8206.         CX = bitmap of assignable sockets
  8207.         DH = EDC capabilities (see #0492)
  8208.         DL = supported EDC types (see #0493)
  8209.     CF set on error
  8210.         AH = error code (01h,04h) (see #0460)
  8211. SeeAlso: AH=96h,AH=9Ch
  8212.  
  8213. Bitfields for EDC capabilities:
  8214. Bit(s)    Description    (Table 0492)
  8215.  0    unidirectional only generation
  8216.  1    bidirectional only generation
  8217.  2    register-based (I/O-mapped) support
  8218.  3    memory-mapped support
  8219.  4    pausable
  8220.  5-7    reserved (0)
  8221.  
  8222. Bitfields for supported EDC types:
  8223. Bit(s)    Description    (Table 0493)
  8224.  0    8-checksum
  8225.  1    16-CRC-SDLC
  8226.  2-7    reserved (0)
  8227. --------X-1A96-------------------------------
  8228. INT 1A - PCMCIA Socket Services v1.00 - GET ERROR DETECTION CODE
  8229.     AH = 96h
  8230.     AL = adapter number
  8231.     BH = EDC generator number
  8232. Return: CF clear if successful
  8233.         AH destroyed
  8234.         BL = socket number
  8235.         DH = EDC attributes (see #0494)
  8236.         DL = EDC type (see #0493) (only one bit set)
  8237.     CF set on error
  8238.         AH = error code (01h,04h) (see #0460)
  8239. SeeAlso: AH=95h,AH=97h,AH=9Ch
  8240.  
  8241. Bitfields for EDC attributes:
  8242. Bit(s)    Description    (Table 0494)
  8243.  0    unidirectional only
  8244.  1    (if 0 set) clear=read, set=write
  8245.  2-7    reserved (0)
  8246. --------X-1A97-------------------------------
  8247. INT 1A - PCMCIA Socket Services v1.00 - SET ERROR DETECTION CODE
  8248.     AH = 97h
  8249.     AL = adapter number
  8250.     BH = EDC generator
  8251.     BL = socket number
  8252.     DH = EDC attributes (see #0494)
  8253.     DL = EDC type (see #0493) (only one bit may be set)
  8254. Return: CF clear if successful
  8255.         AH destroyed
  8256.     CF set on error
  8257.         AH = error code (01h,02h,04h,0Bh) (see #0460)
  8258. SeeAlso: AH=96h,AH=9Ch
  8259. --------X-1A98-------------------------------
  8260. INT 1A - PCMCIA Socket Services v1.00 - START ERROR DETECTION CODE
  8261.     AH = 98h
  8262.     AL = adapter number
  8263.     BH = EDC generator
  8264. Return: CF clear if successful
  8265.         AH destroyed
  8266.     CF set on error
  8267.         AH = error code (01h,04h) (see #0460)
  8268. SeeAlso: AH=96h,AH=99h,AH=9Bh,AH=9Ch
  8269. --------X-1A99-------------------------------
  8270. INT 1A - PCMCIA Socket Services v1.00 - PAUSE ERROR DETECTION CODE
  8271.     AH = 99h
  8272.     AL = adapter number
  8273.     BH = EDC generator
  8274. Return: CF clear if successful
  8275.         AH destroyed
  8276.     CF set on error
  8277.         AH = error code (01h,04h) (see #0460)
  8278. SeeAlso: AH=9Ah
  8279. --------X-1A9A-------------------------------
  8280. INT 1A - PCMCIA Socket Services v1.00 - RESUME ERROR DETECTION CODE
  8281.     AH = 9Ah
  8282.     AL = adapter number
  8283.     BH = EDC generator
  8284. Return: CF clear if successful
  8285.         AH destroyed
  8286.     CF set on error
  8287.         AH = error code (01h,04h) (see #0460)
  8288. SeeAlso: AH=99h,AH=98h
  8289. --------X-1A9B-------------------------------
  8290. INT 1A - PCMCIA Socket Services v1.00 - STOP ERROR DETECTION CODE
  8291.     AH = 9Bh
  8292.     AL = adapter number
  8293.     BH = EDC generator
  8294. Return: CF clear if successful
  8295.         AH destroyed
  8296.     CF set on error
  8297.         AH = error code (see #0460)
  8298. SeeAlso: AH=98h,AH=99h,AH=9Ch
  8299. --------X-1A9C-------------------------------
  8300. INT 1A - PCMCIA Socket Services v1.00 - READ ERROR DETECTION CODE
  8301.     AH = 9Ch
  8302.     AL = adapter number
  8303.     BH = EDC generator
  8304. Return: CF clear if successful
  8305.         AH destroyed
  8306.         DL/DX = computed checksum or CRC
  8307.     CF set on error
  8308.         AH = error code (01h,04h) (see #0460)
  8309. SeeAlso: AH=95h,AH=96h,AH=98h,AH=99h,AH=9Bh
  8310. --------c-1AA0-------------------------------
  8311. INT 1A U - Disk Spool II v2.07+ - INSTALLATION CHECK
  8312.     AH = A0h
  8313. Return: AH = B0h if installed
  8314.         AL = pending INT 1A/AH=D0h subfunction if nonzero???
  8315.         ES = code segment
  8316.         ES:BX -> name of current spool file
  8317.         ES:SI -> current despool file
  8318.         CL = despooler state (00h disabled, 41h enabled)
  8319.         CH = spooler state (00h disabled, 41h enabled)
  8320.         DL = despooler activity
  8321.         00h currently active printing a file
  8322.         41h standing by
  8323.         DH = 00h ???
  8324.            = 41h ???
  8325.         DI = 0000h ???
  8326.          0001h ???
  8327. Program: Disk Spool II is a shareware disk-based print spooler by Budget
  8328.       Software Company
  8329. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8330.       as that is a licensed version of Disk Spool II
  8331. SeeAlso: AH=ABh,AH=C0h,AH=D0h,AH=E1h
  8332. --------c-1AAB-------------------------------
  8333. INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK
  8334.     AH = ABh
  8335. Return: AH = BAh if installed
  8336.         AL = pending INT 1A/AH=ADh subfunction if nonzero???
  8337.         ES = code segment
  8338.         ES:BX -> name of current spool file
  8339.         ES:SI -> current despool file
  8340.         CL = despooler state (00h disabled, 41h enabled)
  8341.         CH = spooler state (00h disabled, 41h enabled)
  8342.         DL = despooler activity
  8343.         00h currently active printing a file
  8344.         41h standing by
  8345.         DH = 00h ???
  8346.            = 41h ???
  8347.         DI = 0000h ???
  8348.          0001h ???
  8349. Program: Disk Spool II is a shareware disk-based print spooler by Budget
  8350.       Software Company
  8351. SeeAlso: AH=A0h,AH=ACh,AH=ADh,AH=E1h
  8352. --------c-1AAC-------------------------------
  8353. INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK
  8354.     AH = ACh
  8355. Return: (see AH=ABh)
  8356. Note:    this function is identical to AH=ABh
  8357. SeeAlso: AH=A0h,AH=ABh,AH=ADh
  8358. --------c-1AAD-------------------------------
  8359. INT 1A U - Disk Spool II v1.83 - FUNCTION CALLS
  8360.     AH = ADh
  8361.     AL = function code (see #0495)
  8362. Return: AH = 00h if successful
  8363. SeeAlso: AH=ABh
  8364.  
  8365. (Table 0495)
  8366. Values for Disk Spool function code:
  8367.  02h    enable spooler only
  8368.  03h    enable the despooler
  8369.  04h    disable the despooler
  8370.  08h    inhibit popup menu
  8371.  09h    enable popup menu
  8372.  0Ah    ???
  8373.  0Bh    disable the spooler
  8374.  0Ch    start despooler after last successfully printed document???
  8375.  0Dh    start despooler at the exact point where it last left off???
  8376.  0Eh    pop up the menu
  8377.  0Fh    ???
  8378.  11h    ???
  8379.  14h    ???
  8380.  15h    ???
  8381.  16h    ???
  8382.  17h    ???
  8383.  18h    ???
  8384.  19h    ???
  8385.  20h    clear file pointed to by the despooler???
  8386.  21h    ???
  8387.  22h    ???
  8388.  23h    ???
  8389.  30h    ???
  8390. --------X-1AAF-------------------------------
  8391. INT 1A - PCMCIA v2 - API
  8392.     AH = AFh
  8393.     details not yet available
  8394. --------d-1AB001CX4D52-----------------------
  8395. INT 1A - Microsoft Real-Time Compression Interface (MRCI) - ROM-BASED SERVER
  8396.     AX = B001h
  8397.     CX = 4D52h ("MR")
  8398.     DX = 4349h ("CI")
  8399. Return: CX = 4943h ("IC") if installed
  8400.     DX = 524Dh ("RM") if installed
  8401.         ES:DI -> MRCINFO structure (see #0496)
  8402. Note:    this call is functionally identical to INT 2F/AX=4A12h, which should
  8403.       be called first, as this call is used for the first, ROM-based
  8404.       MRCI server, while the other call is used for RAM-based servers
  8405.       which may be partially or entirely replacing a prior server
  8406. SeeAlso: INT 2F/AX=4A12h
  8407.  
  8408. Format of MRCINFO structure:
  8409. Offset    Size    Description    (Table 0496)
  8410.  00h  4 BYTEs    vendor signature
  8411.         "MSFT" Microsoft
  8412.  04h    WORD    server version (high=major)
  8413.  06h    WORD    MRCI specification version
  8414.  08h    DWORD    address of server entry point (see #0498)
  8415.  0Ch    WORD    bit flags: server capabilities (see #0497)
  8416.  0Eh    WORD    bit flags: hardware assisted capabilities (see #0497)
  8417.  10h    WORD    maximum block size supported by server (at least 8192 bytes)
  8418.  
  8419. Bitfields for MRCI capabilities:
  8420. Bit(s)    Description    (Table 0497)
  8421.  0    standard compress
  8422.  1    standard decompress
  8423.  2    update compress
  8424.  3    MaxCompress (not present in initial public release)
  8425.  4    reserved
  8426.  5    incremental decompress
  8427.  6    MRCI 2.0 standard compress
  8428.  7    MRCI 2.0 standard decompress
  8429.  8-14    reserved
  8430.  15    this structure is in ROM and can't be modified
  8431.     (server capabilities only)
  8432.  
  8433. (Table 0498)
  8434. Call MRCI entry point with:
  8435.     DS:SI -> MRCREQUEST structure (see #0499)
  8436.     CX = type of client (0000h application, 0001h file system)
  8437.     AX = operation
  8438.         0001h perform standard compression
  8439.         0002h perform standard decompression
  8440.         0004h perform update compression
  8441.         0008h perform MaxCompress
  8442.         0020h perform incremental decompression
  8443.         0040h perform MRCI 2.0 standard compression
  8444.         0080h perform MRCI 2.0 standard decompression
  8445.     AX = FFFFh clear flags
  8446.         BX = bitmask of flags to clear (set bits in BX are flags to clear)
  8447. Return: AX = status
  8448.         0000h successful
  8449.         0001h invalid function
  8450.         0002h server busy, try again
  8451.         0003h destination buffer too small
  8452.         0004h incompressible data
  8453.         0005h bad compressed data format
  8454.     BP destroyed (MS-DOS 6.2)
  8455. Note:    MRCI driver may chain to a previous driver
  8456.  
  8457. Format of MRCREQUEST structure:
  8458. Offset    Size    Description    (Table 0499)
  8459.  00h    DWORD    pointer to source buffer
  8460.  04h    WORD    size of source buffer (0000h = 64K)
  8461.  06h    WORD    (UpdateCompress only)
  8462.         (call) offset in source buffer of beginning of changed data
  8463.         (return) offset in destination buffer of beginning of changed
  8464.               compressed data
  8465.  08h    DWORD    pointer to destination buffer
  8466.         must contain original compressed data for UpdateCompress
  8467.  0Ch    WORD    size of destination buffer (0000h = 64K)
  8468.         any compression: size of buffer for compressed data
  8469.         standard decompression: number of bytes to be decompressed
  8470.         incremental decompression: number of byte to decompress now
  8471.         (return) actual size of resulting data
  8472.  0Eh    WORD    client compressed data storage allocation size
  8473.  10h    DWORD    incremental decompression state data
  8474.         set to 00000000h before first incremental decompression call
  8475. Notes:    the source and destination buffers may not overlap
  8476.     the source and destination buffer sizes should normally be the same
  8477.     application should not update the contents of the MRCREQUEST structure
  8478.       between incremental decompression calls
  8479. --------X-1AB101-----------------------------
  8480. INT 1A - Intel PCI BIOS v2.0c - INSTALLATION CHECK
  8481.     AX = B101h
  8482. Return: AH = 00h if installed
  8483.         CF clear
  8484.         EDX = 20494350h (' ICP')
  8485.         EDI = physical address of protected-mode entry point (see #0501)
  8486.         AL = PCI hardware characteristics (see #0500)
  8487.         BH = PCI interface level major version (BCD)
  8488.         BL = PCI interface level minor version (BCD)
  8489.         CL = number of last PCI bus in system
  8490.     EAX, EBX, ECX, and EDX may be modified
  8491.     all other flags (except IF) may be modified
  8492. Note:    this function may require up to 1024 byte of stack; it will not enable
  8493.       interrupts if they were disabled before making the call
  8494. SeeAlso: AX=B181h
  8495.  
  8496. Bitfields for PCI hardware characteristics:
  8497. Bit(s)    Description    (Table 0500)
  8498.  0    configuration space access mechanism 1 supported
  8499.  1    configuration space access mechanism 2 supported
  8500.  2-3    reserved
  8501.  4    Special Cycle generation mechanism 1 supported
  8502.  5    Special Cycle generation mechanism 2 supported
  8503.  6-7    reserved
  8504.  
  8505. (Table 0501)
  8506. Call protected-mode entry point with:
  8507.     registers as for real/V86-mode INT call
  8508.     CS = ring 0 descriptor with access to full address space
  8509. Return: as for real/V86-mode call
  8510. --------X-1AB102-----------------------------
  8511. INT 1A - Intel PCI BIOS v2.0c - FIND PCI DEVICE
  8512.     AX = B102h
  8513.     CX = device ID
  8514.     DX = vendor ID
  8515.     SI = device index (0-n)
  8516. Return: CF clear if successful
  8517.     CF set on error
  8518.     AH = status
  8519.         00h successful
  8520.         BL = bus number
  8521.         BH = device/function number (bits 7-3 device, bits 2-0 func)
  8522.         83h bad vendor ID
  8523.         86h device not found
  8524.     EAX, EBX, ECX, and EDX may be modified
  8525.     all other flags (except IF) may be modified
  8526. Notes:    this function may require up to 1024 byte of stack; it will not enable
  8527.       interrupts if they were disabled before making the call
  8528.     device ID FFFFh may be reserved as a wildcard in future implementations
  8529.     the meanings of BL and BH on return may be exchanged in future
  8530.       implementations
  8531.     all devices sharing a single vendor ID and device ID may be enumerated
  8532.       by incrementing SI from 0 until error 86h is returned
  8533. SeeAlso: AX=B182h
  8534. --------X-1AB103-----------------------------
  8535. INT 1A - Intel PCI BIOS v2.0c - FIND PCI CLASS CODE
  8536.     AX = B103h
  8537.     ECX = class code (bits 23-0)
  8538.     SI = device index (0-n)
  8539. Return: CF clear if successful
  8540.     CF set on error
  8541.     AH = status
  8542.         00h successful
  8543.         BL = bus number
  8544.         BH = device/function number (bits 7-3 device, bits 2-0 func)
  8545.         86h device not found
  8546.     EAX, EBX, ECX, and EDX may be modified
  8547.     all other flags (except IF) may be modified
  8548. Notes:    this function may require up to 1024 byte of stack; it will not enable
  8549.       interrupts if they were disabled before making the call
  8550.     the meanings of BL and BH on return may be exchanged in future
  8551.       implementations
  8552.     all devices sharing the same Class Code may be enumerated by
  8553.       incrementing SI from 0 until error 86h is returned
  8554. SeeAlso: AX=B183h
  8555. --------X-1AB106-----------------------------
  8556. INT 1A - Intel PCI BIOS v2.0c - PCI BUS-SPECIFIC OPERATIONS
  8557.     AX = B106h
  8558.     BL = bus number
  8559.     EDX = Special Cycle data
  8560. Return: CF clear if successful
  8561.     CF set on error
  8562.     AH = status
  8563.         00h successful
  8564.         81h unsupported function
  8565.     EAX, EBX, ECX, and EDX may be modified
  8566.     all other flags (except IF) may be modified
  8567. Note:    this function may require up to 1024 byte of stack; it will not enable
  8568.       interrupts if they were disabled before making the call
  8569. SeeAlso: AX=B186h
  8570. --------X-1AB108-----------------------------
  8571. INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION BYTE
  8572.     AX = B108h
  8573.     BL = bus number
  8574.     BH = device/function number (bits 7-3 device, bits 2-0 function)
  8575.     DI = register number (0000h-00FFh)
  8576. Return: CF clear if successful
  8577.         CL = byte read
  8578.     CF set on error
  8579.     AH = status
  8580.         00h successful
  8581.         87h bad register number
  8582.     EAX, EBX, ECX, and EDX may be modified
  8583.     all other flags (except IF) may be modified
  8584. Notes:    this function may require up to 1024 byte of stack; it will not enable
  8585.       interrupts if they were disabled before making the call
  8586.     the meanings of BL and BH on entry may be exchanged in future
  8587.       implementations
  8588. SeeAlso: AX=B188h
  8589. --------X-1AB109-----------------------------
  8590. INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION WORD
  8591.     AX = B109h
  8592.     BL = bus number
  8593.     BH = device/function number (bits 7-3 device, bits 2-0 function)
  8594.     DI = register number (0000h-00FFh)
  8595. Return: CF clear if successful
  8596.         CX = word read
  8597.     CF set on error
  8598.     AH = status
  8599.         00h successful
  8600.         87h bad register number
  8601.     EAX, EBX, ECX, and EDX may be modified
  8602.     all other flags (except IF) may be modified
  8603. Notes:    this function may require up to 1024 byte of stack; it will not enable
  8604.       interrupts if they were disabled before making the call
  8605.     the meanings of BL and BH on entry may be exchanged in future
  8606.       implementations
  8607. SeeAlso: AX=B189h
  8608. --------X-1AB10A-----------------------------
  8609. INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION DWORD
  8610.     AX = B10Ah
  8611.     BL = bus number
  8612.     BH = device/function number (bits 7-3 device, bits 2-0 function)
  8613.     DI = register number (0000h-00FFh)
  8614. Return: CF clear if successful
  8615.         ECX = dword read
  8616.     CF set on error
  8617.     AH = status
  8618.         00h successful
  8619.         87h bad register number
  8620.     EAX, EBX, ECX, and EDX may be modified
  8621.     all other flags (except IF) may be modified
  8622. Notes:    this function may require up to 1024 byte of stack; it will not enable
  8623.       interrupts if they were disabled before making the call
  8624.     the meanings of BL and BH on entry may be exchanged in future
  8625.       implementations
  8626. SeeAlso: AX=B18Ah
  8627. --------X-1AB10B-----------------------------
  8628. INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION BYTE
  8629.     AX = B10Bh
  8630.     BL = bus number
  8631.     BH = device/function number (bits 7-3 device, bits 2-0 function)
  8632.     DI = register number (0000h-00FFh)
  8633.     CL = byte to write
  8634. Return: CF clear if successful
  8635.     CF set on error
  8636.     AH = status
  8637.         00h successful
  8638.         87h bad register number
  8639.     EAX, EBX, ECX, and EDX may be modified
  8640.     all other flags (except IF) may be modified
  8641. Notes:    this function may require up to 1024 byte of stack; it will not enable
  8642.       interrupts if they were disabled before making the call
  8643.     the meanings of BL and BH on entry may be exchanged in future
  8644.       implementations
  8645. SeeAlso: AX=B18Bh
  8646. --------X-1AB10C-----------------------------
  8647. INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION WORD
  8648.     AX = B10Ch
  8649.     BL = bus number
  8650.     BH = device/function number (bits 7-3 device, bits 2-0 function)
  8651.     DI = register number (multiple of 2 less than 0100h)
  8652.     CX = word to write
  8653. Return: CF clear if successful
  8654.     CF set on error
  8655.     AH = status
  8656.         00h successful
  8657.         87h bad register number
  8658.     EAX, EBX, ECX, and EDX may be modified
  8659.     all other flags (except IF) may be modified
  8660. Notes:    this function may require up to 1024 byte of stack; it will not enable
  8661.       interrupts if they were disabled before making the call
  8662.     the meanings of BL and BH on entry may be exchanged in future
  8663.       implementations
  8664. SeeAlso: AX=B18Ch
  8665. --------X-1AB10D-----------------------------
  8666. INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION DWORD
  8667.     AX = B10Dh
  8668.     BL = bus number
  8669.     BH = device/function number (bits 7-3 device, bits 2-0 function)
  8670.     DI = register number (multiple of 4 less than 0100h)
  8671.     ECX = dword to write
  8672. Return: CF clear if successful
  8673.     CF set on error
  8674.     AH = status
  8675.         00h successful
  8676.         87h bad register number
  8677.     EAX, EBX, ECX, and EDX may be modified
  8678.     all other flags (except IF) may be modified
  8679. Notes:    this function may require up to 1024 byte of stack; it will not enable
  8680.       interrupts if they were disabled before making the call
  8681.     the meanings of BL and BH on entry may be exchanged in future
  8682.       implementations
  8683. SeeAlso: AX=B18Dh
  8684. --------X-1AB181-----------------------------
  8685. INT 1A - Intel PCI BIOS v2.0c - INSTALLATION CHECK (32-bit)
  8686.     AX = B181h
  8687. Return: as for AX=B101h
  8688. SeeAlso: AX=B101h
  8689. --------X-1AB182-----------------------------
  8690. INT 1A - Intel PCI BIOS v2.0c - FIND PCI DEVICE (32-bit)
  8691.     AX = B182h
  8692.     CX = device ID
  8693.     DX = vendor ID
  8694.     SI = device index (0-n)
  8695. Return: as for AX=B102h
  8696. SeeAlso: AX=B102h
  8697. --------X-1AB183-----------------------------
  8698. INT 1A - Intel PCI BIOS v2.0c - FIND PCI CLASS CODE (32-bit)
  8699.     AX = B183h
  8700.     ECX = class code (bits 23-0)
  8701.     SI = device index (0-n)
  8702. Return: as for AX=B103h
  8703. SeeAlso: AX=B103h
  8704. --------X-1AB186-----------------------------
  8705. INT 1A - Intel PCI BIOS v2.0c - PCI BUS-SPECIFIC OPERATIONS (32-bit)
  8706.     AX = B186h
  8707.     BL = bus number
  8708.     EDX = Special Cycle data
  8709. Return: as for AX=B106h
  8710. SeeAlso: AX=B106h
  8711. --------X-1AB188-----------------------------
  8712. INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION BYTE (32-bit)
  8713.     AX = B188h
  8714.     BL = bus number
  8715.     BH = device/function number (bits 7-3 device, bits 2-0 function)
  8716.     DI = register number (0000h-00FFh)
  8717. Return: as for AX=B108h
  8718. SeeAlso: AX=B108h
  8719. --------X-1AB189-----------------------------
  8720. INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION WORD (32-bit)
  8721.     AX = B189h
  8722.     BL = bus number
  8723.     BH = device/function number (bits 7-3 device, bits 2-0 function)
  8724.     DI = register number (0000h-00FFh)
  8725. Return: as for AX=B109h
  8726. SeeAlso: AX=B109h
  8727. --------X-1AB18A-----------------------------
  8728. INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION DWORD (32-bit)
  8729.     AX = B18Ah
  8730.     BL = bus number
  8731.     BH = device/function number (bits 7-3 device, bits 2-0 function)
  8732.     DI = register number (0000h-00FFh)
  8733. Return: as for AX=B10Ah
  8734. SeeAlso: AX=B10Ah
  8735. --------X-1AB18B-----------------------------
  8736. INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION BYTE (32-bit)
  8737.     AX = B18Bh
  8738.     BL = bus number
  8739.     BH = device/function number (bits 7-3 device, bits 2-0 function)
  8740.     DI = register number (0000h-00FFh)
  8741.     CL = byte to write
  8742. Return: as for AX=B10Bh
  8743. SeeAlso: AX=B10Bh
  8744. --------X-1AB18C-----------------------------
  8745. INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION WORD (32-bit)
  8746.     AX = B18Ch
  8747.     BL = bus number
  8748.     BH = device/function number (bits 7-3 device, bits 2-0 function)
  8749.     DI = register number (multiple of 2 less than 0100h)
  8750.     CX = word to write
  8751. Return: as for AX=B10Ch
  8752. SeeAlso: AX=B10Ch
  8753. --------X-1AB18D-----------------------------
  8754. INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION DWORD (32-bit)
  8755.     AX = B18Dh
  8756.     BL = bus number
  8757.     BH = device/function number (bits 7-3 device, bits 2-0 function)
  8758.     DI = register number (multiple of 4 less than 0100h)
  8759.     ECX = dword to write
  8760. Return: as for AX=B10Dh
  8761. SeeAlso: AX=B10Dh
  8762. --------X-1AB4-------------------------------
  8763. INT 1A - Intel Plug-and-Play BIOS Extensions - API
  8764.     AH = B4h
  8765.     AL = function (00h-07h)
  8766.     further details not yet available
  8767. --------c-1AC0-------------------------------
  8768. INT 1A U - Disk Spool II v2.07+ - ALTERNATE INSTALLATION CHECK
  8769.     AH = C0h
  8770. Return: (see AH=A0h)
  8771. Notes:    this call is identical to AH=A0h
  8772.     this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8773.       as that is a licensed version of Disk Spool II
  8774. SeeAlso: AH=A0h,AH=ABh,AH=D0h
  8775. ----------1AC4-------------------------------
  8776. INT 1A - Phoenix BIOS Extensions
  8777.     AH = C4h
  8778.     (details to follow when extensions become public)
  8779. --------U-1ACCCCBXCCCC-----------------------
  8780. INT 1A U - DATEFIX - INSTALLATION CHECK
  8781.     AX = CCCCh
  8782.     BX = CCCCh
  8783.     CX = 0000h
  8784. Return: CX = CCCCh if installed
  8785.         ES:BX -> original interrupt handler
  8786. Program: DATEFIX is a public-domain TSR to correct the date on AT&T 6300
  8787.       machines, where the realtime clock's calendar wraps after 1991
  8788. SeeAlso: AH=FEh,AH=FFh"AT&T"
  8789. --------c-1AD0-------------------------------
  8790. INT 1A U - Disk Spool II v2.07+ - FUNCTION CALLS
  8791.     AH = D0h
  8792.     AL = function code
  8793.         01h enable spooler and despooler
  8794.         02h enable spooler only
  8795.         03h enable despooler at beginning of file
  8796.         04h disable the despooler
  8797.         05h disable the despooler and spooler
  8798.         06h clear the spool file
  8799.         08h inhibit the popup menu
  8800.         09h enable the popup menu
  8801.         0Ah ??? (called by Disk Spool's INT 21 handler)
  8802.         0Bh disable the spooler
  8803.         0Ch start despooler after last successfully printed document
  8804.         0Dh start despooler at the exact point where it last left off
  8805.         0Eh pop up the menu
  8806.         0Fh ???
  8807.         11h start new spool file??? (called by Disk Spool's INT 21 handler
  8808.             when a program terminates)
  8809.         14h ???
  8810.         15h delete despool file and reset ???
  8811.         16h ??? (writes something to unknown file)
  8812.         17h ??? (writes something to despool file, then reads something
  8813.             else and ???)
  8814.         18h ??? (reads something from despool file, and then ???)
  8815.         19h ??? (creates/truncates spool file)
  8816.         20h clear file pointed to by the despooler
  8817.         21h ??? (writes something to unknown file)
  8818.         22h ??? (writes something to spool file if spooler/despooler using
  8819.             same file)
  8820.         23h ??? (opens/creates unknown file, then ???)
  8821.         30h ???
  8822.         31h ???
  8823.         32h beep
  8824.         33h append CRLF to spool file???
  8825.         34h ???
  8826.         35h ???
  8827.         36h ???
  8828.         37h append CRLF to spool file and start a new spool file???
  8829.         38h ???
  8830.         40h ??? (v4.05)
  8831.         41h ??? (v4.05)
  8832.         51h ??? (called by Disk Spool's INT 21 handler)
  8833.         52h ??? (called by Disk Spool's INT 21 handler)
  8834.         57h ???
  8835.         5Ah ??? (v4.05)
  8836.         5Bh ??? (v4.05)
  8837.         5Ch ??? (v4.05)
  8838. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8839.       as that is a licensed version of Disk Spool II
  8840. SeeAlso: AH=A0h,AH=ADh
  8841. --------c-1AE0-------------------------------
  8842. INT 1A - Disk Spool II v4.0x - ENABLE/DISABLE
  8843.     AH = E0h
  8844.     AL = subfunction
  8845.         01h enable spooler
  8846.         02h disable spooler
  8847.         03h enable despooler
  8848.         04h disable despooler
  8849.     CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  8850. Return: AH = status
  8851.         00h successful
  8852.         F0h printer port not managed by Disk Spool II
  8853.         FFH failed
  8854. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8855.       as that is a licensed version of Disk Spool II
  8856. SeeAlso: AH=A0h,AH=E1h,AX=E301h,AX=E401h
  8857. --------c-1AE1-------------------------------
  8858. INT 1A - Disk Spool II v4.0x - GET STATUS
  8859.     AH = E1h
  8860.     CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  8861. Return: AH = status
  8862.         00h successful
  8863.         CL = despooler state (00h disabled, 41h enabled)
  8864.         CH = spooler state (00h disabled, 41h enabled)
  8865.         DL = despooler activity (00h standing by, 41h printing)
  8866.         ES:BX -> ASCIZ name of current spool file (or next if AutoSpool
  8867.             or AutoDespool enabled)
  8868.         ES:SI -> ASCIZ name of current despool file
  8869.         ES:DI -> 3-byte file extension used by Disk Spool II
  8870.         F0h printer port not managed by Disk Spool II
  8871. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8872.       as that is a licensed version of Disk Spool II
  8873. SeeAlso: AH=A0h,AH=E0h,AH=E2h
  8874. --------c-1AE2-------------------------------
  8875. INT 1A - Disk Spool II v4.0x - GET SPOOL FILES
  8876.     AH = E2h
  8877.     AL = which
  8878.         01h first
  8879.         02h next (can only call after "first")
  8880.     CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  8881. Return: AH = status
  8882.         00h successful
  8883.         ES:BX -> ASCIZ filename
  8884.         F0h no (more) spool files
  8885.         FFh failed
  8886. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8887.       as that is a licensed version of Disk Spool II
  8888. SeeAlso: AH=E0h,AH=E1h
  8889. --------c-1AE301-----------------------------
  8890. INT 1A - Disk Spool II v4.0x - GET SPOOL FILE STATUS
  8891.     AX = E301h
  8892.     ES:BX -> ASCIZ filename (max 32 chars)
  8893. Return: AH = status
  8894.         00h successful
  8895.         ES:SI -> spool file status record (see #0502)
  8896.         F0h not a spool file
  8897.         FFh failed
  8898. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8899.       as that is a licensed version of Disk Spool II
  8900. SeeAlso: AH=E0h,AX=E302h,AX=E401h
  8901.  
  8902. Format of Disk Spool II spool file status record:
  8903. Offset    Size    Description    (Table 0502)
  8904.  00h    BYTE    hour of creation or last update
  8905.  01h    BYTE    minute of creation or last update
  8906.  02h    BYTE    year-1980 of creation or last update
  8907.  03h    BYTE    month of creation or last update
  8908.  04h    BYTE    day of creation or last update
  8909.  05h    BYTE    total number of copies to print
  8910.  06h    BYTE    number of copies already printed
  8911.  07h    BYTE    printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  8912.  08h    BYTE    save status (00h delete after printing, 01h save)
  8913.  09h    BYTE    file status
  8914.         01h done printing, but being saved
  8915.         02h on hold
  8916.         03h queued for printing
  8917.         04h being spooled
  8918.         05h being despooled (i.e. printed)
  8919.  0Ah 16 BYTEs    ASCIZ description
  8920.  1Ah  2 WORDs    file size in bytes (high,low)
  8921.  1Eh  2 WORDs    bytes left to print (high,low)
  8922. --------c-1AE302-----------------------------
  8923. INT 1A - Disk Spool II v4.0x - UPDATE SPOOL FILE
  8924.     AX = E302h
  8925.     ES:BX -> ASCIZ filename (max 32 chars)
  8926.     ES:SI -> spool file status record (see #0502)
  8927. Return: AH = status
  8928.         00h successful
  8929.         F0h not a spool file
  8930.         FFh failed
  8931. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8932.       as that is a licensed version of Disk Spool II
  8933. SeeAlso: AH=E0h,AX=E301h,AX=E401h
  8934. --------c-1AE401-----------------------------
  8935. INT 1A - Disk Spool II v4.0x - SPOOL EXISTING FILE
  8936.     AX = E401h
  8937.     ES:BX -> ASCIZ filename (max 32 chars)
  8938.     CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  8939. Return: AH = status
  8940.         00h successful
  8941.         FFh failed
  8942. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8943.       as that is a licensed version of Disk Spool II
  8944. SeeAlso: AH=E1h,AX=E302h,AX=E402h
  8945. --------c-1AE402-----------------------------
  8946. INT 1A U - Disk Spool II v4.0x - SPOOL EXISTING FILE???
  8947.     AX = E402h
  8948.     ES:BX -> ASCIZ filename (max 32 chars)
  8949.     CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  8950. Return: AH = status
  8951.         00h successful
  8952.         FFh failed
  8953. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8954.       as that is a licensed version of Disk Spool II
  8955. SeeAlso: AH=E1h,AX=E302h,AX=E401h
  8956. --------c-1AE5-------------------------------
  8957. INT 1A U - Emulaser ELSPL.COM - ???
  8958.     AH = E5h
  8959.     ???
  8960. Return: ???
  8961. Program: ELSPL.COM is a licensed version of Disk Spool II which is distributed
  8962.       as part of Vertisoft's Emulaser PostScript emulator
  8963. SeeAlso: AH=A0h,INT 17/AH=03h
  8964. --------c-1AEE-------------------------------
  8965. INT 1A U - Disk Spool II v4.05 - ???
  8966.     AH = EEh
  8967.     AL = printer port???
  8968.     ???
  8969. Return: ???
  8970. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8971.       as that is a licensed version of Disk Spool II
  8972. SeeAlso: AH=E1h
  8973. --------U-1AF7-------------------------------
  8974. INT 1A - RighTime v1.1 - TEMPORARILY DISABLE
  8975.     AH = F7h
  8976. Program: RighTime is a TSR by G.T. Becker which continuously adjusts the system
  8977.       time to correct for clock drift
  8978. Note:    any AH value from F0h-F7h or F9h-FEh will perform this function in
  8979.       version 1.1, but F7h is the function called by transient portion
  8980. SeeAlso: AH=F8h,AH=FFh"RighTime"
  8981. --------U-1AF8-------------------------------
  8982. INT 1A - RighTime v1.1 - ENABLE
  8983.     AH = F8h
  8984. Program: RighTime is a TSR by G.T. Becker which continuously adjusts the system
  8985.       time to correct for clock drift
  8986. Note:    RighTime is TeSseRact-compatible (see INT 2F/AX=5453h) and modifies its
  8987.       TeSseRact program identifier based on its current state: "RighTime"
  8988.       when enabled, "RighTim"F7h when disabled.
  8989. SeeAlso: AH=F7h,AH=FFh"RighTime"
  8990. --------b-1AFE-------------------------------
  8991. INT 1A - AT&T 6300 - READ TIME AND DATE
  8992.     AH = FEh
  8993. Return: BX = day count (0 = Jan 1, 1984)
  8994.     CH = hour
  8995.     CL = minute
  8996.     DH = second
  8997.     DL = hundredths
  8998. SeeAlso: AX=CCCCh/BX=CCCCh,AH=FFh"AT&T",INT 21/AH=2Ah,INT 21/AH=2Ch
  8999. --------b-1AFF-------------------------------
  9000. INT 1A - AT&T 6300 - SET TIME AND DATE
  9001.     AH = FFh
  9002.     BX = day count (0 = Jan 1, 1984)
  9003.     CH = hour
  9004.     CL = minute
  9005.     DH = second
  9006.     DL = hundredths
  9007. Return: ???
  9008. SeeAlso: AX=CCCCh/BX=CCCCh,AH=FEh,INT 21/AH=2Bh,INT 21/AH=2Dh
  9009. --------U-1AFF-------------------------------
  9010. INT 1A - RighTime v1.1 - PERMANENTLY DISABLE
  9011.     AH = FFh
  9012. Program: RighTime is a TSR by G.T. Becker which continuously adjusts the system
  9013.       time to correct for clock drift
  9014. Note:    upon being permanently disabled, RighTime closes the file handle
  9015.       referencing its executable (which is updated with time correction
  9016.       information every two minutes while RighTime is enabled).
  9017. --------s-1AFF00-----------------------------
  9018. INT 1A - SND - INSTALLATION CHECK???
  9019.     AX = FF00h
  9020. Return: AL = version??? (02h)
  9021.     AH = busy flag (00h if not in a SND call, 01h if SND currently active)
  9022. Note:    the SND API is also supported by IC (Internal Commands) v2.0, a
  9023.       shareware TSR by Geoff Friesen which extends COMMAND.COM's internal
  9024.       command set
  9025. SeeAlso: AX=FF01h,AX=FF02h,AX=FF04h,AX=FF05h
  9026. --------s-1AFF01-----------------------------
  9027. INT 1A - SND - PAUSE
  9028.     AX = FF01h
  9029.     DX = number of clock ticks to delay
  9030. Return: AH = status
  9031.         00h successful
  9032.         01h SND busy
  9033. Notes:    if successful, execution returns to the caller after the delay expires;
  9034.       if SND is busy, execution returns immediately
  9035.     the IC v2.0 implementation of this API makes no special allowance for
  9036.       time rollover at midnight, which can cause the delay to be over one
  9037.       hour if this function is called just before the BIOS time count
  9038.       rolls over and the delay extends into the next day
  9039. SeeAlso: AX=FF00h,INT 15/AH=86h,INT 62/AX=0096h,INT 7F/AH=E8h,INT 80/BX=0009h
  9040. SeeAlso: INT E0/CL=BDh
  9041. --------s-1AFF02-----------------------------
  9042. INT 1A - SND - START SOUND
  9043.     AX = FF02h
  9044.     DX = frequency in Hertz (14h-FFFFh)
  9045. Return: AH = status
  9046.         00h successful
  9047.         01h SND busy
  9048. SeeAlso: AX=FF00h,AX=FF01h,AX=FF03h
  9049. --------s-1AFF03-----------------------------
  9050. INT 1A - SND - STOP SOUND
  9051.     AX = FF03h
  9052. Return: AH = status
  9053.         00h successful
  9054.         01h busy
  9055. Note:    turns off any sound currently being emitted by the PC's speaker unless
  9056.       SND is currently busy processing an API call (this includes
  9057.       background music).  Use AX=FF05h to stop the sound even if an API
  9058.       call is in progress.
  9059. SeeAlso: AX=FF00h,AX=FF02h,AX=FF05h
  9060. --------s-1AFF04-----------------------------
  9061. INT 1A - SND - PLAY MUSIC STRING IN BACKGROUND
  9062.     AX = FF04h
  9063.     DS:DX -> ASCIZ music string
  9064. Return: AH = status
  9065.         00h successful (music begins playing in background)
  9066.         01h busy
  9067. Note:    the music string accepted by SND is not the same as that accepted by
  9068.       BASIC and other programs which process music strings
  9069. SeeAlso: AX=FF00h,AX=FF05h,INT 80/BX=0006h
  9070. --------s-1AFF05-----------------------------
  9071. INT 1A - SND - UNCONDITIONALLY STOP SOUND
  9072.     AX = FF05h
  9073. Return: AH = 00h (successful)
  9074. Note:    this function is the same as AX=FF03h, but will stop the sound even if
  9075.       SND is currently busy, such as playing background music
  9076. SeeAlso: AX=FF00h,AX=FF03h,INT 80/BX=0007h
  9077. --------B-1B---------------------------------
  9078. INT 1B C - KEYBOARD - CONTROL-BREAK HANDLER
  9079. Desc:    this interrupt is automatically called when INT 09 determines that
  9080.       Control-Break has been pressed
  9081. Note:    normally points to a short routine in DOS which sets the Ctrl-C flag,
  9082.       thus invoking INT 23h the next time DOS checks for Ctrl-C.
  9083. SeeAlso: INT 23
  9084. --------B-1C---------------------------------
  9085. INT 1C - TIME - SYSTEM TIMER TICK
  9086. Desc:    this interrupt is automatically called on each clock tick by the INT 08
  9087.       handler
  9088. Notes:    this is the preferred interrupt to chain when a program needs to be
  9089.       invoked regularly
  9090.     not available on NEC 9800-series PCs
  9091. SeeAlso: INT 08,INT E2"PC Cluster"
  9092. --------B-1D---------------------------------
  9093. INT 1D - SYSTEM DATA - VIDEO PARAMETER TABLES
  9094. Note:    the default parameter table (see #0503) is located at F000h:F0A4h for
  9095.       100% compatible BIOSes
  9096. SeeAlso: INT 10/AH=00h
  9097.  
  9098. Format of video parameters:
  9099. Offset    Size    Description    (Table 0503)
  9100.  00h 16 BYTEs    6845 register values for modes 00h and 01h
  9101.  10h 16 BYTEs    6845 register values for modes 02h and 03h
  9102.  20h 16 BYTEs    6845 register values for modes 04h and 05h
  9103.  30h 16 BYTEs    6845 register values for modes 06h and 07h
  9104.  40h    WORD    bytes in video buffer for modes 00h and 01h
  9105.  42h    WORD    bytes in video buffer for modes 02h and 03h
  9106.  44h    WORD    bytes in video buffer for modes 04h and 05h
  9107.  46h    WORD    bytes in video buffer for modes 06h and 07h
  9108.  48h  8 BYTEs    columns on screen for each of modes 00h through 07h
  9109.  50h  8 BYTEs    CRT controller mode bytes for each of modes 00h through 07h
  9110. --------B-1E---------------------------------
  9111. INT 1E - SYSTEM DATA - DISKETTE PARAMETERS
  9112. Note:    the default parameter table (see #0504) is located at F000h:EFC7h for
  9113.       100% compatible BIOSes
  9114. SeeAlso: INT 13/AH=0Fh,INT 41
  9115.  
  9116. Format of diskette parameter table:
  9117. Offset    Size    Description    (Table 0504)
  9118.  00h    BYTE    first specify byte
  9119.         bits 7-4: step rate
  9120.         bits 3-0: head unload time (0Fh = 240 ms)
  9121.  01h    BYTE    second specify byte
  9122.         bits 7-1: head load time (01h = 4 ms)
  9123.         bit    0: non-DMA mode (always 0)
  9124.  02h    BYTE    delay until motor turned off (in clock ticks)
  9125.  03h    BYTE    bytes per sector (00h = 128, 01h = 256, 02h = 512, 03h = 1024)
  9126.  04h    BYTE    sectors per track
  9127.  05h    BYTE    length of gap between sectors (2Ah for 5.25", 1Bh for 3.5")
  9128.  06h    BYTE    data length (ignored if bytes-per-sector field nonzero)
  9129.  07h    BYTE    gap length when formatting (50h for 5.25", 6Ch for 3.5")
  9130.  08h    BYTE    format filler byte (default F6h)
  9131.  09h    BYTE    head settle time in milliseconds
  9132.  0Ah    BYTE    motor start time in 1/8 seconds
  9133. --------B-1F---------------------------------
  9134. INT 1F - SYSTEM DATA - 8x8 GRAPHICS FONT
  9135. Desc:    this vector points at 1024 bytes of graphics data, 8 bytes for each
  9136.       character 80h-FFh
  9137. Note:    graphics data for characters 00h-7Fh stored at F000h:FA6Eh in 100%
  9138.       compatible BIOSes
  9139. SeeAlso: INT 10/AX=5000h,INT 43
  9140. --------b-1F12-------------------------------
  9141. INT 1F U - C&T "SuperState" BIOS - POWER OFF
  9142.     AH = 12h
  9143. Return: none
  9144. Note:    POWER OFF
  9145. --------b-1F17-------------------------------
  9146. INT 1F U - C&T "SuperState" BIOS - EXECUTE FAR PROC ROUTINE ON SuperState
  9147.     AH = 17h
  9148.     ES:DI -> far procedure
  9149. Return: all registers except AH,ES,DI
  9150. Note:    You can change the BIOS area (F000h:0000h - F000h:FFFFh) only through
  9151.       this function
  9152. --------b-1F19-------------------------------
  9153. INT 1F U - C&T "SuperState" BIOS - ENABLE AUTO WAKEUP AND SET TIME AND DATE
  9154.     AH = 19h
  9155.     AL = hour in BCD
  9156.     BH = minutes in BCD
  9157.     BL = seconds in BCD
  9158.     CH = year century in BCD (must be 19h)
  9159.     CL = year low in BCD
  9160.     DH = month in BCD
  9161.     DL = date in BCD
  9162. Return: CF clear
  9163. --------b-1F1C-------------------------------
  9164. INT 1F U - C&T "SuperState" BIOS - SET SUSPEND TIMEOUT
  9165.     AH = 1Ch
  9166.     BX = sec until suspend starts
  9167. Return: None       
  9168. --------b-1F1D-------------------------------
  9169. INT 1F U - C&T "SuperState" BIOS - SET SLEEP TIMEOUT
  9170.     AH = 1Dh
  9171.     BX = sec until sleep starts
  9172. Return: None       
  9173. --------J-1F90-------------------------------
  9174. INT 1F - NEC PC-9801 - COPY EXTENDED MEMORY
  9175.     AH = 90h
  9176.     ES:BX -> global descriptor table (see #0349 at INT 15/AH=87h)
  9177.     CX = number of bytes to copy
  9178.     SI = 0000h
  9179.     DI = 0000h
  9180. Return: CF clear if successful
  9181.     CF set on error
  9182.     ???
  9183. SeeAlso: INT 15/AH=87h
  9184. --------b-1FF5--BLFA-------------------------
  9185. INT 1F U - C&T "SuperState" BIOS - REQUEST PASSWORD INPUT
  9186.     AH = F5h
  9187.     BL = FAh
  9188. Return: none
  9189. Note:    this function will not return until the correct password is entered
  9190. SeeAlso: AH=F5h/BL=FDh,AX=F5h/BL=FEh
  9191. --------b-1FF5--BLFD-------------------------
  9192. INT 1F U - C&T "SuperState" BIOS - ENCRYPT PASSWORD
  9193.     AH = F5h
  9194.     BL = FDh
  9195.     CX:SI = input string
  9196.     DX:DI = encrypted string
  9197.     BH = length of input string
  9198. Return: CF set on error
  9199. SeeAlso: AH=F5h/BL=FAh,AX=F5h/BL=FEh
  9200. --------b-1FF5--BLFE-------------------------
  9201. INT 1F U - C&T "SuperState" BIOS - SET PASSWORD
  9202.     AH = F5h
  9203.     BL = FEh
  9204.     CX:SI -> input string
  9205.     BH = length of input string (if BH = 00h, clear password)
  9206. Return: CF set on error
  9207. Note:    the input string must be encrypted by INT 1Fh/AH=F5h/BL=FDh
  9208. SeeAlso: AH=F5h/BL=FDh,AX=F5h/BL=FFh
  9209. --------b-1FF5--BLFF-------------------------
  9210. INT 1F U - C&T "SuperState" BIOS - GET ENCRYPTED PASSWORD
  9211.     AH = F5h
  9212.     BL = FFh
  9213.     DX:DI = string buffer
  9214. Return: CF set on error
  9215.     CF clear if successful
  9216.         BH = length of input string (if BH = 00h, password is not valid)
  9217.         DX:DI -> encrypted password string
  9218. SeeAlso: AH=F5h/BL=FDh,AX=F5h/BL=FEh
  9219. --------b-1FFB-------------------------------
  9220. INT 1F U - C&T "SuperState" BIOS - GET/SET CPU SPEED
  9221.     AH = FBh
  9222.     BL = function 
  9223.         00h get CPU speed
  9224.         Return: AL = current CPU speed (00h = fast, 01h = slow)
  9225.         01h set CPU speed
  9226.         AL = new CPU speed (00h = fast, 01h = slow)
  9227. SeeAlso: AH=FCh/BL=00h
  9228. --------b-1FFC--BL00-------------------------
  9229. INT 1F U - C&T "SuperState" BIOS - GET ALARM STATUS
  9230.     AH = FCh
  9231.     BL = 00h
  9232. Return: AL = current alarm state (00h = disabled, 01h = enabled)
  9233. SeeAlso: AH=FCh/BL=01h,AH=FCh/BL=02h
  9234. --------b-1FFC--BL01-------------------------
  9235. INT 1F U - C&T "SuperState" BIOS - SET ALARM STATUS
  9236.     AH = FCh
  9237.     BL = 01h
  9238.     AL = new alarm state (00h = disabled, 01h = enabled)
  9239. SeeAlso: AH=FCh/BL=00h,AH=FCh/BL=03h
  9240. --------b-1FFC--BL02-------------------------
  9241. INT 1F U - C&T "SuperState" BIOS - GET ALARM TIME
  9242.     AH = FCh
  9243.     BL = 02h
  9244. Return: CH = hour by BCD
  9245.     CL = min by BCD
  9246.     DH = sec by BCD
  9247. SeeAlso: AH=FCh/BL=00h,AH=FCh/BL=03h,AH=FCh/BL=04h
  9248. --------b-1FFC--BL03-------------------------
  9249. INT 1F U - C&T "SuperState" BIOS - SET ALARM TIME
  9250.     AH = FCh
  9251.     BL = 03h
  9252.     CH = hour by BCD
  9253.     CL = min by BCD
  9254.     DH = sec by BCD
  9255. Return: CF set on error (incorrect time format or Alarm is not enable) 
  9256. SeeAlso: AH=FCh/BL=01h,AH=FCh/BL=02h,AH=FCh/BL=05h
  9257. --------b-1FFC--BL04-------------------------
  9258. INT 1F U - C&T "SuperState" BIOS - GET ALARM DATE
  9259.     AH = FCh
  9260.     BL = 04h
  9261. Return: CH = year century by BCD
  9262.     CL = year low by BCD
  9263.     DH = month by BCD
  9264.     DL = date by BCD
  9265. SeeAlso: AH=FCh/BL=02h,AH=FCh/BL=05h
  9266. --------b-1FFC--BL05-------------------------
  9267. INT 1F U - C&T "SuperState" BIOS - SET ALARM DATE
  9268.     AH = FCh
  9269.     BL = 05h
  9270.     CH = year century by BCD
  9271.     CL = year low by BCD
  9272.     DH = month by BCD
  9273.     DL = date by BCD
  9274. Return: CF set on error (incorrect date format or Alarm is not enable) 
  9275. SeeAlso: AH=FCh/BL=03h,AH=FCh/BL=04h
  9276. --------b-1FFD--BL00-------------------------
  9277. INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP STATUS
  9278.     AH = FDh
  9279.     BL = 00h
  9280. Return: AL = current wake-up state (00h = disabled, 01h = enabled)
  9281. SeeAlso: AH=FDh/BL=01h,AH=FDh/BL=02h
  9282. --------b-1FFD--BL01-------------------------
  9283. INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP STATUS
  9284.     AH = FDh
  9285.     BL = 01h
  9286.     AL = new wake-up state (00h = disabled, 01h = enabled)
  9287. SeeAlso: AH=FDh/BL=00h,AH=FDh/BL=03h
  9288. --------b-1FFD--BL02-------------------------
  9289. INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP TIME
  9290.     AH = FDh
  9291.     BL = 02h
  9292. Return: CH = hour by BCD
  9293.     CL = min by BCD
  9294.     DH = sec by BCD
  9295. SeeAlso: AH=FDh/BL=00h,AH=FDh/BL=03h
  9296. --------b-1FFD-------------------------------
  9297. INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP TIME
  9298.        AH = FDh
  9299.        BL = 3h
  9300.        CH = hour by BCD
  9301.        CL = min by BCD
  9302.        DH = sec by BCD
  9303. Return: CF set on error (incorrect Time format or Auto Wake up is not enable) 
  9304. SeeAlso: AH=FDh/BL=01h,AH=FDh/BL=02h
  9305. --------b-1FFD--BL04-------------------------
  9306. INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP DATE
  9307.     AH = FDh
  9308.     BL = 04h
  9309. Return: CH = year century in BCD
  9310.     CL = year low in BCD
  9311.     DH = month in BCD
  9312.     DL = date in BCD
  9313. SeeAlso: AH=FDh/BL=02h,AH=FDh/BL=05h
  9314. --------b-1FFD--BL05-------------------------
  9315. INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP DATE
  9316.     AH = FDh
  9317.     BL = 05h
  9318.     CH = year century in BCD
  9319.     CL = year low in BCD
  9320.     DH = month in BCD
  9321.     DL = date in BCD
  9322. Return: CF set on error (incorrect date format or Auto Wake up is not enable) 
  9323. SeeAlso: AH=FDh/BL=03h,AH=FDh/BL=04h
  9324. --------!---Section--------------------------
  9325.