home *** CD-ROM | disk | FTP | other *** search
/ Hacker Chronicles 2 (Alt) / The_Hacker_Chronicles_Volume_II-CD2.iso / misc / interrup.g < prev    next >
Encoding:
Text File  |  1995-01-03  |  305.0 KB  |  8,747 lines

  1. Interrupt List, part 7 of 8
  2. This compilation is Copyright (c) 1989,1990,1991,1992 Ralf Brown
  3. ----------50---------------------------------
  4. INT 50 - TIL Xpert AIM (X.25)
  5.     AH = function
  6. ----------50---------------------------------
  7. INT 50 - IRQ0 relocated by DESQview
  8. Notes:    this is the default location for older versions; DESQview v2.26+
  9.       searches for unused ranges of interrupts and uses the lowest
  10.       available range in its list for relocating these IRQs and the next
  11.       lowest for relocating IRQ8-IRQ15
  12.     a range of eight interrupts starting at a multiple of 8 is considered
  13.       available if all vectors are identical and it has not been excluded
  14.       with an /XB:nn commandline switch
  15.     the list of ranges for v2.26 is 50h,58h,68h,78h,F8h (if < two of these
  16.       are available, F8h and then 50h are used anyway)
  17.     the list of ranges for v2.31+ is 68h,78h,88h-B8h,F8h (if < two of these
  18.       are available, F8h and then F0h are used anyway)
  19. SeeAlso: INT 08"IRQ0",INT 51"DESQview",INT 54"DESQview",INT 58"DESQview"
  20. ----------50---------------------------------
  21. INT 50 - IRQ0 relocated by IBM 3278 emulation control program
  22. SeeAlso: INT 51"IBM 3278"
  23. ----------50---------------------------------
  24. INT 50 - IRQ0 relocated by OS/2 v1.x
  25. SeeAlso: INT 51"OS/2"
  26. ----------500000-----------------------------
  27. INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - OPEN TEXT WINDOW
  28.     AX = 0000h
  29.     ES:BX -> name string or ES:0000h if none
  30.     CH,CL = row,column of upper left corner
  31.     DH,DL = row,column of lower right corner
  32. Return: AX = window handle or
  33.         0000h if not installed
  34.         FFFFh on error
  35. SeeAlso: AX=0001h,AX=0002h"TEXT WINDOWS"
  36. ----------500001-----------------------------
  37. INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - CLOSE TEXT WINDOW
  38.     AX = 0001h
  39.     DI = window handle
  40. SeeAlso: AX=0000h
  41. ----------500002-----------------------------
  42. INT 50 - Vanderaart TEXT WINDOWS - PUT CHARACTER IN WINDOW
  43.     AX = 0002h
  44.     BL = character
  45.     BH = attribute
  46.     DL = column
  47.     DH = row
  48.     DI = window handle
  49. Return: AX = status
  50.         0000h if successful
  51.         FFFFh if outside window
  52. SeeAlso: AX=0000h
  53. ----------500002-----------------------------
  54. INT 50 - PC Thuis Organizer Shell - PLOT TEXT
  55.     AX = 0002h
  56.     ES:BX -> text string
  57.     DH,DL = row,column of upper left corner
  58.     DI = window handle
  59. Return: AX = status
  60.         0000h successful (text fits in window)
  61.         FFFFh error
  62. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  63.       published in the June/July 1990 issue of PC Thuis Power magazine
  64. ----------500003-----------------------------
  65. INT 50 - Vanderaart TEXT WINDOWS - OUTPUT LINE TO WINDOW
  66.     AX = 0003h
  67.     ES:BX -> text string
  68.     CX = string length (0000h if ASCIZ string)
  69.     DL = position (FFh centered, else flush left)
  70.     DH = starting row
  71.     DI = window handle
  72. Return: AX = status
  73.         0000h successful
  74.         FFFFh did not fit in window
  75. ----------500003-----------------------------
  76. INT 50 - PC Thuis Organizer Shell - WRITE FILE
  77.     AX = 0003h
  78.     ES:BX -> data to be written
  79.     CX = number of bytes to write
  80.     DS:SI -> filename
  81. Return: AX = status
  82.         0000h successful
  83.         FFFFh error
  84. SeeAlso: AX=0004h"Shell"
  85. ----------500004-----------------------------
  86. INT 50 - Vanderaart TEXT WINDOWS - GET KEY
  87.     AX = 0004h
  88.     CH = type
  89.         00h any key
  90.         01h 'J' or 'N' (Dutch for yes/no)
  91. Return: AX = key
  92. SeeAlso: INT 16/AH=00h
  93. ----------500004-----------------------------
  94. INT 50 - PC Thuis Organizer Shell - READ FILE
  95.     AX = 0004h
  96.     ES:BX -> buffer for data
  97.     CX = number of bytes to read or 0000h for entire file
  98.     DL = file type
  99.         01h setting shell
  100.         02h setting sterm
  101.         03h INT21 file
  102.     DS:SI -> filename
  103. Return: AX = status
  104.         0000h successful
  105.         FFFFh error
  106. Note:    file type numbers are maintained by John Vanderaart; if a new file type
  107.       is needed, a type number should be requested from him through the
  108.       magazine:
  109.           PC Thuis BV
  110.         Spaarne 55
  111.         2011 CE HAARLEM
  112.         The Netherlands
  113. SeeAlso: AX=0003h"Shell"
  114. ----------500005-----------------------------
  115. INT 50 -Vanderaart TEXT WINDOWS - CHANGE ATTRIBUTE
  116.     AX = 0005h
  117.     BL = new attribute
  118.     CH,CL = row,column of upper left corner
  119.     DH,DL = row,column of lower right corner
  120.     DI = window handle
  121. ----------500005-----------------------------
  122. INT 50 - PC Thuis Organizer Shell - PROMPT YES/NO
  123.     AX = 0005h
  124.     ES:BX -> prompt string (ES:0000h if no prompt)
  125. Return: AX = key pressed
  126.         0000h "J" (Dutch "Ja" = "Yes")
  127.         FFFFh "N" (Dutch "Nee" = "No")
  128. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  129.       published in the June/July 1990 issue of PC Thuis Power magazine
  130. ----------500006-----------------------------
  131. INT 50 - Vanderaart TEXT WINDOWS - EDIT LINE IN WINDOW
  132.     AX = 0006h
  133.     ES:BX -> text string
  134.     CH = type
  135.         00h everything
  136.         01h uppercase only
  137.         02h positive numbers
  138.         03h Dutch postal code ("9999 AA")
  139.         04h 'J' or 'N' (Dutch yes/no)
  140.         05h telephone or FAX number
  141.         06h positive or negative number
  142.         07h date (dd/mm/yy)
  143.         08h money
  144.         09h '1' through '8'
  145.         0Ah '1' through '4'
  146.         0Bh uppercase filenames
  147.     DH,DL = row,column of upper left corner
  148.     DI = window handle
  149. Return: AX = key which terminated entry
  150.         0000h Enter
  151.         0001h Esc
  152.         0002h Down arrow
  153.         0003h Up arrow
  154.         0004h F10
  155. ----------500006-----------------------------
  156. INT 50 - PC Thuis Organizer Shell - ALERT USER
  157.     AX = 0006h
  158.     ES:BX -> string
  159. ----------500007-----------------------------
  160. INT 50 - PC Thuis Organizer Shell - DO LINE
  161.     AX = 0007h
  162.     ES:BX -> text string
  163.     CX = string length in bytes (0000h if NUL-terminated)
  164.     DL = FFh to center string, else flush left
  165.     DH = upper left row
  166.     DI = window handle
  167. Return: AX = status
  168.         0000h successful
  169.         FFFFh error
  170. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  171.       published in the June/July 1990 issue of PC Thuis Power magazine
  172. ----------500008-----------------------------
  173. INT 50 - PC Thuis Organizer Shell - DO MENU
  174.     AX = 0008h
  175.     ES:BX -> menu structure
  176. Return: AL = index 1 or FFh if not selected
  177.     AH = index 2 or FFh if not selected
  178.     BL = index 3 or FFh if not selected
  179.     BH = index 4 or FFh if not selected
  180. SeeAlso: AX=000Ch
  181. ----------500009-----------------------------
  182. INT 50 - PC Thuis Organizer Shell - MESSAGE ON
  183.     AX = 0009h
  184.     ES:BX -> message string
  185. SeeAlso: AX=000Ah
  186. ----------50000A-----------------------------
  187. INT 50 - PC Thuis Organizer Shell - MESSAGE OFF
  188.     AX = 000Ah
  189. SeeAlso: AX=0009h
  190. ----------50000B-----------------------------
  191. INT 50 - PC Thuis Organizer Shell - CHANGE ATTRIBUTE
  192.     AX = 000Bh
  193.     BL = new attribute
  194.     CH,CL = row,column of upper left corner
  195.     DH,DL = row,column of lower right corner
  196.     DI = window handle
  197. ----------50000C-----------------------------
  198. INT 50 - PC Thuis Organizer Shell - DO REQUEST
  199.     AX = 000Ch
  200.     ES:BX -> request structure
  201. Return: AX = status
  202.         0000h confirmed
  203.         FFFFh denied
  204. SeeAlso: AX=0008h
  205. ----------50000D-----------------------------
  206. INT 50 - PC Thuis Organizer Shell - EDIT LINE
  207.     AX = 000Dh
  208.     ES:BX -> text string
  209.     CL = length
  210.     CH = type
  211.         bit 0: force uppercase
  212.         bit 1: integer
  213.         bit 2: no spaces allowed
  214.         bit 3: no cursor keys
  215.     DH,DL = row,column of upper left corner
  216.     DI = window handle
  217. Return: AX = result code
  218. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  219.       published in the June/July 1990 issue of PC Thuis Power magazine
  220. ----------50000E-----------------------------
  221. INT 50 - PC Thuis Organizer Shell - PLOT CHARACTER
  222.     AX = 000Eh
  223.     BL = character
  224.     BH = attribute
  225.     DH,DL = row,column at which to plot
  226.     DI = window handle
  227. Return: AX = status
  228.         0000h successful
  229.         FFFFh errror
  230. ----------50000F-----------------------------
  231. INT 50 - PC Thuis Organizer Shell - EMPTY WINDOW
  232.     AX = 000Fh
  233.     BL = character
  234.     BH = attribute
  235.     DI = window handle
  236. ----------500010-----------------------------
  237. INT 50 - PC Thuis Organizer Shell - TRACE MENU
  238.     AX = 0010h
  239.     ES:BX -> first menu structure
  240.     CL = hotkey to look up
  241. Return: AL = index 1 or FFh if not selected
  242.     AH = index 2 or FFh if not selected
  243.     BL = index 3 or FFh if not selected
  244.     BH = index 4 or FFh if not selected
  245. ----------500011-----------------------------
  246. INT 50 - PC Thuis Organizer Shell - MOVE MEMORY
  247.     AX = 0011h
  248.     DS:SI -> source
  249.     ES:DI -> destination
  250.     CX = number of bytes to move (0000h = until NUL string terminator???)
  251. SeeAlso: AX=0012h
  252. ----------500012-----------------------------
  253. INT 50 - PC Thuis Organizer Shell - COMPARE MEMORY
  254.     AX = 0012h
  255.     DS:SI -> source
  256.     ES:DI -> destination
  257.     CX = number of bytes to compare (0000h=until NUL string terminator???)
  258. Return: AX = status
  259.         0000h same
  260.         FFFFh different
  261. SeeAlso: AX=0011h
  262. ----------500013-----------------------------
  263. INT 50 - PC Thuis Organizer Shell - GET KEY
  264.     AX = 0013h
  265.     CH = type flags
  266.         bit 0: force uppercase
  267.         bit 1: integer
  268.         bit 2: no spaces
  269. Return: AX = keystroke
  270. ----------500014-----------------------------
  271. INT 50 - PC Thuis Organizer Shell - SCROLL WINDOW
  272.     AX = 0014h
  273.     BL = direction
  274.         06h up
  275.         07h down
  276.     BH = attribute
  277.     DI = window handle
  278. SeeAlso: INT 10/AH=06h,INT 10/AH=07h
  279. ----------500015-----------------------------
  280. INT 50 - PC Thuis Organizer Shell - GET MEMORY HANDLE
  281.     AX = 0015h
  282.     BL = handle size
  283.         00h 65536 bytes (64K)
  284.         01h 65535 bytes (64K-1)
  285.         02h 32768 bytes (32K)
  286.         03h 32767 bytes (32K-1)
  287. Return: AX = segment
  288. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  289.       published in the June/July 1990 issue of PC Thuis Power magazine
  290. SeeAlso: INT 21/AH=48h
  291. ----------51---------------------------------
  292. INT 51 - through 53 - IRQ1-IRQ3 relocated by DESQview
  293. Note:    this is the default location for older versions; see INT 50"DESQview"
  294.       for details of interrupt relocation
  295. SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
  296. ----------51---------------------------------
  297. INT 51 - through 53 - IRQ1-IRQ3 relocated by IBM 3278 emulation control program
  298. SeeAlso: INT 50"IBM 3278",INT 54"IBM 3278"
  299. ----------51---------------------------------
  300. INT 51 - through 53 - IRQ1-IRQ3 relocated by OS/2 v1.x
  301. SeeAlso: INT 50"OS/2",INT 54"OS/2"
  302. ----------53---------------------------------
  303. INT 53 - ??? - API
  304.     BX = function
  305.         0000h ???
  306.             AX = ???
  307.         Return: AX = ???
  308.         0004h ???
  309.         0009h ???
  310.         0015h
  311.             AX = ???
  312.         DX = ???
  313.         0017h
  314. Return: ???
  315. Notes:    the installation check consists of looking for the signature "WEBCO"
  316.       immediately prior to the interrupt handler
  317.     the above calls are made by Show Partner F/X v3.6 (see INT 10/AH=53h)
  318. ----------54---------------------------------
  319. INT 54 - through 57 - IRQ4-IRQ7 relocated by DESQview
  320. Note:    this is the default location for older versions; see INT 50"DESQview"
  321.       for details of interrupt relocation
  322. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  323. ----------54---------------------------------
  324. INT 54 - through 57 - IRQ4-IRQ7 relocated by IBM 3278 emulation control program
  325. SeeAlso: INT 51"IBM 3278"
  326. ----------54---------------------------------
  327. INT 54 - through 57 - IRQ4-IRQ7 relocated by OS/2 v1.x
  328. SeeAlso: INT 51"OS/2"
  329. ----------58---------------------------------
  330. INT 58 - IRQ8 relocated by DESQview 2.26+
  331. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  332. SeeAlso: INT 50"DESQview",INT 70
  333. ----------58---------------------------------
  334. INT 58 - IRQ0 relocated by DoubleDOS
  335. SeeAlso: INT 08
  336. ----------59---------------------------------
  337. INT 59 - IRQ9 relocated by DESQview 2.26+
  338. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  339. SeeAlso: INT 50"DESQview",INT 71
  340. ----------59---------------------------------
  341. INT 59 - IRQ1 relocated by DoubleDOS
  342. SeeAlso: INT 09
  343. ----------59---------------------------------
  344. INT 59 - GSS Computer Graphics Interface (GSS*CGI)
  345.     DS:DX -> block of 5 array pointers
  346. Return:    CF set on error
  347.         AX = error code
  348.     CF clear if successful
  349.         AX = return code
  350. Note:    INT 59 is the means by which GSS*CGI language bindings communicate with
  351.       GSS*CGI device drivers and the GSS*CGI device driver controller.
  352.     also used by the IBM Graphic Development Toolkit
  353. ----------5A---------------------------------
  354. INT 5A - IRQ10 relocated by DESQview 2.26+
  355. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  356. SeeAlso: INT 50"DESQview",INT 72
  357. ----------5A---------------------------------
  358. INT 5A - IRQ2 relocated by DoubleDOS
  359. SeeAlso: INT 0A
  360. ----------5A---------------------------------
  361. INT 5A - Cluster adapter BIOS entry address
  362.     ???
  363. ----------5B---------------------------------
  364. INT 5B - IRQ11 relocated by DESQview 2.26+
  365. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  366. SeeAlso: INT 50"DESQview",INT 73
  367. ----------5B---------------------------------
  368. INT 5B - IRQ3 relocated by DoubleDOS
  369. SeeAlso: INT 0B
  370. ----------5B---------------------------------
  371. INT 5B - Used by cluster adapter
  372. ----------5B---------------------------------
  373. INT 5B - AT&T Starlan Extended NetBIOS (variable length names)
  374.     ES:BX -> Network Control Block (see below)
  375. Return: AL = status (see INT 5C)
  376. SeeAlso: INT 5C
  377.  
  378. Format of Network Control Block
  379. Offset    Size    Description
  380.  00h    BYTE    ncb_command (see below)
  381.  01h    BYTE    ncb_retcode
  382.  02h    BYTE    ncb_lsn
  383.  03h    BYTE    ncb_num
  384.  04h    DWORD    -> ncb_buffer
  385.  08h    WORD    ncb_length
  386.  0Ah 16 BYTEs    ncb_callname
  387.  1Ah 16 BYTEs    ncb_name
  388.  2Ah    BYTE    ncb_rto
  389.  2Bh    BYTE    ncb_sto
  390.  2Ch    DWORD    -> ncb_post    /* int (far *ncb_post)(); */
  391.  30h    BYTE    ncb_lana_num
  392.  31h    BYTE    ncb_cmd_cplt
  393.  32h    DWORD    -> ncb_vname
  394.  36h    BYTE    ncb_vnamelen
  395.  37h  9 BYTEs    ncb_reserve
  396. Note: fields 00h-31h are the same as for a standard NetBIOS NCB (see INT 5C)
  397.  
  398. Values for ncb_command field same as for INT 5C, except
  399.     70h    send net Break
  400. ----------5B---------------------------------
  401. INT 5B - Microsoft Network Transport Layer Interface
  402. Note:    used by MS-NET for executing network commands
  403. SeeAlso: INT 5C"NetBIOS"
  404. ----------5B---------------------------------
  405. INT 5B - used by Alloy NTNX
  406. ----------5B---------------------------------
  407. INT 5B - ISOLAN Multi Protocol Software
  408.     ES:BX -> Transfer Control Block
  409. Return: AL - status
  410. Note:    this software interface allows multiple protocols/software packages
  411.       to access a BICC 411x network card
  412.  
  413. Format of Transfer Control Block:
  414. Offset    Type    Description
  415.  00h    BYTE    command code
  416.         B3h Status
  417.         F2h Activate
  418.         F3h Deactivate
  419.         F4h Send Data
  420.  01h    BYTE    command identity
  421.  02h    BYTE    virtual circuit ID
  422.  03h    WORD    buffer length
  423.  05h    DWORD    buffer pointer
  424.  09h    BYTE    expedited data flag
  425.  0Ah    BYTE    cancelable flag
  426.  0Bh 16 BYTEs    local network address
  427.  1Bh 16 BYTEs    remote network address
  428.  2Bh    DWORD    asynchronous notification routine
  429.  30h    DWORD    local network number
  430.  34h    DWORD    remote network number
  431.  38h    BYTE    call timeout
  432.  39h    BYTE    not used
  433.  3Ah  8 BYTEs    reserved
  434.  42h    BYTE    command code extension
  435.  43h    WORD    Blue Book MAC type
  436. ----------5C---------------------------------
  437. INT 5C - IRQ12 relocated by DESQview 2.26+
  438. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  439. SeeAlso: INT 50"DESQview",INT 74
  440. ----------5C---------------------------------
  441. INT 5C - IRQ4 relocated by DoubleDOS
  442. SeeAlso: INT 0C
  443. ----------5C---------------------------------
  444. INT 5C - NetBIOS INTERFACE
  445.     ES:BX -> network control block (NCB) (see below)
  446. Return: AL = status
  447.         00h successful
  448.         01h bad buffer size
  449.         03h invalid NETBIOS command
  450.         05h timeout
  451.         06h receive buffer too small
  452.         07h No-ACK command failed
  453.         08h bad session number
  454.         09h LAN card out of memory
  455.         0Ah session closed
  456.         0Bh command has been cancelled
  457.         0Dh name already exists
  458.         0Eh local name table full
  459.         0Fh name still in use, can't delete
  460.         11h local session table full
  461.         12h remote PC not listening
  462.         13h bad NCB_NUM field
  463.         14h no answer to CALL or no such remote
  464.         15h name not in local name table
  465.         16h duplicate name
  466.         17h bad delete
  467.         18h abnormal end
  468.         19h name error, multiple identical names in use
  469.         1Ah bad packet
  470.         21h network card busy
  471.         22h too many commands queued
  472.         23h bad LAN card number
  473.         24h command finished while cancelling
  474.         26h command can't be cancelled
  475.         30h name defined by another process (OS/2)
  476.         34h NetBIOS environment not defined, must issue reset (OS/2)
  477.         35h required operating system resources exhausted (OS/2)
  478.         36h maximum applications exceeded (OS/2)
  479.         37h no SAPs available for NetBIOS (OS/2)
  480.         38h requested resources not available (OS/2)
  481.         40h Lana System Error
  482.         41h Lana Remote Hot Carrier
  483.         42h Lana Local Hot Carrier
  484.         43h Lana No Carrier Detected
  485.         44h unusual network condition
  486.         45h-4Fh hardware error
  487.         50h adapter malfunction
  488.         FFh NetBIOS busy (command pending)
  489. Note:    Sytek PCnet card uses DMA 3.
  490. SeeAlso: INT 2A/AH=01h,INT 2A/AH=04h,INT 5B
  491.  
  492. Format of Network Control Block:
  493. Offset    Size    Description
  494.  00h    BYTE    command code (see below)
  495.  01h    BYTE    return code
  496.  02h    BYTE    local session number (LSN)
  497.  03h    BYTE    "ncb_num" datagram table entry from ADD NAME
  498.  04h    DWORD    -> I/O buffer
  499.  08h    WORD    length of data in buffer
  500.  0Ah 16 BYTEs    remote system to call
  501.  1Ah 16 BYTEs    network name of local machine
  502.  2Ah    BYTE    receive timeout in 1/2 seconds
  503.  2Bh    BYTE    send timeout in 1/2 seconds
  504.  2Ch    DWORD    -> FAR post handler    /* int (far *ncb_post)(); */
  505.  30h    BYTE    network adapter number on which to execute command
  506.         00h-03h IBM NetBIOS specs
  507.         F0h-FFh Eicon NABios interface (see also INT 7B"Eicon")
  508.  31h    BYTE    command completion code (see returned status above)
  509.  32h 14 BYTEs    reserved for network card
  510.  
  511. Values for command code field in NCB (or with 80h for non-waiting call):
  512.  10h start session with NCB_NAME name (call)
  513.  11h listen for call
  514.  12h end session with NCB_NAME name (hangup)
  515.  14h send data via NCB_LSN
  516.  15h receive data from a session
  517.  16h receive data from any session
  518.  17h send multiple data buffers
  519.  20h send unACKed message (datagram)
  520.  21h receive datagram
  521.  22h send broadcast datagram
  522.  23h receive broadcast datagram
  523.  30h add name to name table
  524.  31h delete name from name table
  525.  32h reset adapter card and tables
  526.  33h get adapter status (see structure "astatus" below)
  527.  34h status of all sessions for name (see structure "sstatus" below)
  528.  35h cancel
  529.  36h add group name to name table
  530.  48h send data and receive data (LAN Manager NETBEUI.DOS)
  531.  70h unlink from IBM remote program (no F0h function)
  532.  71h send data without ACK
  533.  72h send multiple buffers without ACK
  534.  72h UngermannBass Register (conflicts with above function)
  535.  73h UngermannBass SendNmc
  536.  74h UngermannBass Callniu
  537.  75h UngermannBass Calladdr
  538.  76h UngermannBass Listenaddr
  539.  77h UngermannBass SendPkt
  540.  78h find name
  541.  78h UngermannBass RcvPkt (conflicts with above function)
  542.  79h token-ring protocol trace
  543.  79h UngermannBass SendAttn (conflicts with above function)
  544.  7Ah UngermannBass RcvAttn
  545.  7Bh UngermannBass Listenniu
  546.  7Ch UngermannBass RcvRaw
  547.  7Dh UngermannBass SendNmc2
  548.  
  549. Format of structure "name":
  550. Offset    Size    Description
  551.  00h 16 BYTEs "nm_name" symbolic name
  552.  10h    BYTE  "nm_num" number associated with name
  553.  11h    BYTE  nm_status
  554.  
  555. Format of structure "astatus":
  556. Offset    Size    Description
  557.  00h  6 BYTEs as_id
  558.  06h    BYTE  as_jumpers
  559.  07h    BYTE  as_post
  560.  08h    BYTE  as_major
  561.  09h    BYTE  as_minor
  562.  0Ah    WORD  as_interval
  563.  0Ch    WORD  as_crcerr
  564.  0Eh    WORD  as_algerr
  565.  10h    WORD  as_colerr
  566.  12h    WORD  as_abterr
  567.  14h    DWORD as_tcount
  568.  18h    DWORD as_rcount
  569.  1Ch    WORD  as_retran
  570.  1Eh    WORD  as_xresrc
  571.  20h  8 BYTEs as_res0
  572.  28h    WORD  as_ncbfree
  573.  2Ah    WORD  as_ncbmax
  574.  2Ch    WORD  as_ncbx
  575.  2Eh  4 BYTEs as_res1
  576.  32h    WORD  as_sespend
  577.  34h    WORD  as_msp
  578.  36h    WORD  as_sesmax
  579.  38h    WORD  as_bufsize
  580.  3Ah    WORD  as_names
  581.  3Ch 16 name structures     as_name
  582.  
  583. Format of structure "sstatus":
  584. Offset    Size    Description
  585.  00h    BYTE    number of sessions being reported
  586.  01h    BYTE    number of sessions with this name
  587.  02h    BYTE    number of outstanding receive datagrams
  588.  03h    BYTE    number of outstanding ReceiveAnys
  589.  04h    var    session structures (see below)
  590.  
  591. Format of structure "session":
  592. Offset    Size    Description
  593.  00h    BYTE    local session number
  594.  01h    BYTE    state
  595.         01h listen pending
  596.         02h call pending
  597.         03h session established
  598.         04h hangup pending
  599.         05h hangup done
  600.         06h session aborted
  601.  02h 16 BYTEs    local name
  602.  12h 16 BYTEs    remote name
  603.  22h    BYTE    number of outstanding receives
  604.  23h    BYTE    number of outstanding sends/chainsends
  605. ----------5C---------------------------------
  606. INT 5C - TOPS INTERFACE
  607.     ES:BX -> Network Control Block
  608. Note:    TOPS card uses DMA 1, 3 or none.
  609. ----------5C---------------------------------
  610. INT 5C - ATALK.SYS - AppleTalk INTERFACE
  611.     DX:BX -> control block (see below)
  612. Return: none
  613. Notes:    this driver can use any interrupt from 5Ch to 70h
  614.     the signature 'AppleTalk' appears 16 bytes prior to the interrupt
  615.       handler; this serves as the installation check
  616.  
  617. Format of AppleTalk control block:
  618. Offset    Size    Description
  619.  00h    WORD    command code
  620.         01h "AT_INIT"        initialize the driver
  621.         02h "AT_KILL"
  622.         03h "AT_GETNETINFO" get current network info incl init status
  623.         04h "AT_GETCLOCKTICKS"
  624.         05h "AT_STARTTIMER"
  625.         06h "AT_RESETTIMER"
  626.         07h "AT_CANCELTIMER"
  627.         10h "LAP_INSTALL"
  628.         11h "LAP_REMOVE"
  629.         12h "LAP_WRITE"
  630.         13h "LAP_READ"
  631.         14h "LAP_CANCEL"
  632.         20h "DDP_OPENSOCKET"
  633.         21h "DDP_CLOSESOCKET"
  634.         22h "DDP_WRITE"
  635.         23h "DDP_READ"
  636.         24h "DDP_CANCEL"
  637.         30h "NBP_REGISTER"
  638.         31h "NBP_REMOVE"
  639.         32h "NBP_LOOKUP"
  640.         33h "NBP_CONFIRM"
  641.         34h "NBP_CANCEL"
  642.         35h "ZIP_GETZONELIST"
  643.         36h "ZIP_GETMYZONE"
  644.         37h "ZIP_TAKEDOWN"
  645.         38h "ZIP_BRINGUP"
  646.         40h "ATP_OPENSOCKET"
  647.         41h "ATP_CLOSESOCKET"
  648.         42h "ATP_SENDREQUEST"
  649.         43h "ATP_GETREQUEST"
  650.         44h "ATP_SENDRESPONSE"
  651.         45h "ATP_ADDRESPONSE"
  652.         46h "ATP_CANCELTRANS"
  653.         47h "ATP_CANCELRESPONSE"
  654.         48h "ATP_CANCELREQUEST"
  655.         50h "ASP_GETPARMS"
  656.         51h "ASP_CLOSESESSION"
  657.         52h "ASP_CANCEL"
  658.         53h "ASP_INIT"
  659.         54h "ASP_KILL"
  660.         55h "ASP_GETSESSION"
  661.         56h "ASP_GETREQUEST"
  662.         57h "ASP_CMDREPLY"
  663.         58h "ASP_WRTCONTINUE"
  664.         59h "ASP_WRTREPLY"
  665.         5Ah "ASP_CLOSEREPLY"
  666.         5Bh "ASP_NEWSTATUS"
  667.         5Ch "ASP_ATTENTION"
  668.         5Dh "ASP_GETSTATUS"
  669.         5Eh "ASP_OPENSESSION"
  670.         5Fh "ASP_COMMAND"
  671.         60h "ASP_WRITE"
  672.         61h "ASP_GETATTENTION"
  673.         70h "PAP_OPEN"
  674.         71h "PAP_CLOSE"
  675.         72h "PAP_READ"
  676.         73h "PAP_WRITE"
  677.         74h "PAP_STATUS"
  678.         75h "PAP_REGNAME"
  679.         76h "PAP_REMNAME"
  680.         77h "PAP_INIT"
  681.         78h "PAP_NEWSTATUS"
  682.         79h "PAP_GETNEXTJOB"
  683.         7Ah "PAP_KILL"
  684.         7Bh "PAP_CANCEL"
  685.         
  686.         or with the following flags
  687.         8000h start command then return
  688.         4000h wait for interrupt service to complete
  689.  02h    WORD    returned status
  690.         0000h success (already initialized if func 01h)
  691.  04h    DWORD    pointer to completion function
  692.  08h    WORD    network number
  693.  0Ah    BYTE    node ID
  694. ---if general func (01h,03h), control block continues:
  695.  0Bh    BYTE    "inf_abridge"
  696.  0Ch    WORD    "inf_config"
  697.  0Eh    DWORD    pointer to buffer
  698.  12h    WORD    buffer size
  699. ---if DDP function (20h-24h), control block continues:
  700.  0Bh    BYTE    "ddp_addr_socket"
  701.  0Ch    BYTE    "ddp_socket"
  702.  0Dh    BYTE    "ddp_type"
  703.  0Eh    DWORD    pointer to buffer
  704.  12h    WORD    buffer size
  705.  14h    BYTE    "ddp_chksum"
  706. ---if Name Binding Protocol (30h-34h), control block continues:
  707.  0Bh    BYTE    "nbp_addr_socket"
  708.  0Ch    WORD    "nbp_toget"
  709.  0Eh    DWORD    pointer to buffer
  710.  12h    WORD    buffer size
  711.  14h    BYTE    "nbp_interval"
  712.  15h    BYTE    "nbp_retry"
  713.  16h    DWORD    "nbp_entptr"
  714. ---if AppleTalk Transaction Protocol (42h), control block continues:
  715.  0Bh    BYTE    "atp_addr_socket"
  716.  0Ch    WORD    "atp_socket"
  717.  0Eh    DWORD    pointer to buffer
  718.  12h    WORD    buffer size
  719.  14h    BYTE    "atp_interval"
  720.  15h    BYTE    "atp_retry"
  721.  16h    BYTE    ATP flags
  722.         bit 5: exactly one transaction
  723.  17h    BYTE    "atp_seqbit"
  724.  18h    BYTE    transaction ID
  725.  19h  4 BYTEs    ATP user bytes
  726.  1Dh    BYTE    number of BDS buffers
  727.  1Eh    BYTE    number of BDS responses
  728.  1Fh    DWORD    pointer to BDS buffers (see below)
  729.  
  730. Format of Name Binding Protocol Name-to-Address binding entries for NBP_LOOKUP:
  731. Offset    Size    Description
  732.  00h    WORD    "tup_address_network"
  733.  02h    BYTE    "tup_address_notid"
  734.  03h    BYTE    "tup_address_socket"
  735.  04h    BYTE    "tup_enum"
  736.  05h 99 BYTEs    name
  737.  
  738. Format of BDS entries:
  739. Offset    Size    Description
  740.  00h    DWORD    pointer to buffer
  741.  04h    WORD    size of buffer
  742.  06h    WORD    BDS data size
  743.  08h  4 BYTEs    "bds_userbytes"
  744. ----------5C---------------------------------
  745. INT 5C - IBM 802.2 INTERFACE (LLC)
  746.     ES:BX -> CCB
  747. Return: none
  748.  
  749. Format of CCB:
  750. Offset    Size    Description
  751.  00h    BYTE    adapter
  752.  01h    BYTE    command code
  753.  02h    BYTE    return code
  754.  03h    BYTE    work
  755.  04h    DWORD    pointer to ???
  756.  08h    DWORD    pointer to completion function???
  757.  0Ch    DWORD    pointer to parameters???
  758. ----------5C---------------------------------
  759. INT 5C - $25 LAN - INSTALLATION CHECK
  760. Notes:    current versions only check whether the vector is 0000h:0000h or not
  761.     future versions are supposed to have the signature "NET" in the three
  762.       bytes preceding the INT 5C handler
  763. ----------5C04-------------------------------
  764. INT 5C - $25 LAN - CHECK IF CONNECTION ALIVE
  765.     AH = 04h
  766.     AL = COM port (0 = default)
  767.     CX = wait count in character times (should be at least 100)
  768. Return: ZF set if link alive
  769. ----------5D---------------------------------
  770. INT 5D - IRQ13 relocated by DESQview 2.26+
  771. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  772. SeeAlso: INT 50"DESQview",INT 75
  773. ----------5D---------------------------------
  774. INT 5D - IRQ5 relocated by DoubleDOS
  775. SeeAlso: INT 0D,INT 5C"DoubleDOS"
  776. ----------5E---------------------------------
  777. INT 5E - IRQ14 relocated by DESQview 2.26+
  778. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  779. SeeAlso: INT 50"DESQview",INT 76
  780. ----------5E---------------------------------
  781. INT 5E - IRQ6 relocated by DoubleDOS
  782. SeeAlso: INT 0E,INT 5D"DoubleDOS"
  783. ----------5F---------------------------------
  784. INT 5F - IRQ15 relocated by DESQview 2.26+
  785. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  786. SeeAlso: INT 50"DESQview",INT 77
  787. ----------5F---------------------------------
  788. INT 5F - IRQ7 relocated by DoubleDOS
  789. SeeAlso: INT 0F,INT 5E"DoubleDOS"
  790. ----------5F00-------------------------------
  791. INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET VIDEO MODE
  792.     AH = 00h
  793.     AL = video mode
  794.         07h text, system manager compliant
  795.         20h 240x128 mono graphics, system manager compliant
  796.         87h text, not system manager compliant
  797.         A0h 240x128 mono graphics, not system manager compliant
  798. Note:    the defaults after setting the mode to graphics are (0,0) logical
  799.       origin, full-screen clip region, (0,0) pen location, pen color 1,
  800.       pixel replacement FORCE, line type and fill mask all bits set
  801. SeeAlso: INT 0F"HP 95LX",INT 10/AH=00h,INT 15/AX=4DD4h
  802. ----------5F01-------------------------------
  803. INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET FILL MASK
  804.     AH = 01h
  805.     ES:DI -> 8-byte fill mask
  806. Note:    the fill mask represents an 8x8 pixel box and is repeated as necessary
  807.       when drawing filled rectangles; it is always aligned with the byte
  808.       boundaries of video memory, regardless of the actual boundaries of
  809.       the rectangle
  810. SeeAlso: AH=02h
  811. ----------5F02-------------------------------
  812. INT 5F - HP 95LX GRAPHICS PRIMITIVES - GET CURRENT GRAPHICS INFORMATION
  813.     AH = 02h
  814.     ES:DI -> graphics info record (see below)
  815. Return: DX:AX -> filled graphics info record (for return to high-level langs)
  816. Format of graphics info record:
  817. Offset    Size    Description
  818.  00h    BYTE    current video mode
  819.  01h    BYTE    default video mode
  820.  02h    WORD    display width in pixels
  821.  04h    WORD    display height in pixels
  822.  06h    WORD    current pen column
  823.  08h    WORD    current pen row
  824.  0Ah    WORD    current line type
  825.  0Ch    WORD    current replacement rule
  826.  0Eh    WORD    current pen color
  827.  10h    WORD    current leftmost column of clip region
  828.  12h    WORD    current rightmost column of clip region
  829.  14h    WORD    current topmost row of clip region
  830.  16h    WORD    current bottommost row of clip region
  831.  18h    WORD    current column of logical origin
  832.  1Ah    WORD    current row of logical origin
  833.  1Ch  8 BYTEs    current fill mask
  834. ----------5F03-------------------------------
  835. INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET LOGICAL ORIGIN
  836.     AH = 03h
  837.     CX = column
  838.     DX = row
  839. SeeAlso: AH=04h
  840. ----------5F04-------------------------------
  841. INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET CLIP REGION
  842.     AH = 04h
  843.     CX = left-most column
  844.     DX = top-most row
  845.     SI = right-most column
  846.     DI = bottom-most row
  847. SeeAlso: AH=03h
  848. ----------5F05-------------------------------
  849. INT 5F - HP 95LX GRAPHICS PRIMITIVES - DRAW RECTANGLE
  850.     AH = 05h
  851.     AL = fill type
  852.         00h outline, using current line type and color
  853.         01h solid, using current color
  854.         02h pattern, using current fill mask and color
  855.     DX,CX = row,column of other corner of rectangle
  856. Note:    the rectangle is drawn starting at the current pen position
  857. SeeAlso: AH=01h,AH=06h,AH=07h
  858. ----------5F06-------------------------------
  859. INT 5F - HP 95LX GRAPHICS PRIMITIVES - DRAW LINE
  860.     AH = 06h
  861.     DX,CX = row,column of end point
  862. Note:    the line is drawn starting at the current pen position
  863. SeeAlso: AH=05h,AH=07h
  864. ----------5F07-------------------------------
  865. INT 5F - HP 95LX GRAPHICS PRIMITIVES - PLOT POINT
  866.     AH = 07h
  867.     DX,CX = row,column of point
  868. Note:    also sets pen position to the specified point
  869. SeeAlso: AH=06h,AH=08h,AH=0Ch
  870. ----------5F08-------------------------------
  871. INT 5F - HP 95LX GRAPHICS PRIMITIVES - MOVE PEN
  872.     AH = 08h
  873.     DX,CX = row,column of new pen position
  874. SeeAlso: AH=07h,AH=09h
  875. ----------5F09-------------------------------
  876. INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET PEN COLOR
  877.     AH = 09h
  878.     AL = new color (00h = white, 01h = black)
  879. SeeAlso: AH=08h,AH=0Ah,AH=0Bh
  880. ----------5F0A-------------------------------
  881. INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET REPLACEMENT RULE
  882.     AH = 0Ah
  883.     AL = new replacement rule
  884.         00h force
  885.         01h AND
  886.         02h OR
  887.         03h XOR
  888. SeeAlso: AH=01h,AH=09h,AH=0Bh
  889. ----------5F0B-------------------------------
  890. INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET LINE TYPE
  891.     AH = 0Bh
  892.     CX = new line type
  893. Note:    the line type specifies 16 bits which are repeated over and over while
  894.       drawing the pixels of a line
  895. SeeAlso: AH=09h,AH=0Ah
  896. ----------5F0C-------------------------------
  897. INT 5F - HP 95LX GRAPHICS PRIMITIVES - GET PIXEL
  898.     AH = 0Ch
  899.     DX,CX = row,column of pixel to read
  900. Return: AX = pixel color
  901. SeeAlso: AH=07h
  902. ----------5F0D-------------------------------
  903. INT 5F - HP 95LX GRAPHICS PRIMITIVES - GET IMAGE
  904.     AH = 0Dh
  905.     DX,CX = row,column of first corner
  906.     BP,SI = row,column of second corner
  907.     ES:DI -> image buffer (see below)
  908. Note:    the specified corners are included in the saved image
  909. SeeAlso: AH=0Eh
  910.  
  911. Format of image buffer:
  912. Offset    Size    Description
  913.  00h    WORD    number of planes (always 01h on HP 95LX)
  914.  02h    WORD    number of bits/pixel (always 01h on HP 95LX)
  915.  04h    WORD    image width in pixels
  916.  06h    WORD    image height in pixels
  917.  08h  N BYTEs    image data
  918.         requires (WIDTH+7)/8 * HEIGHT bytes
  919. ----------5F0E-------------------------------
  920. INT 5F - HP 95LX GRAPHICS PRIMITIVES - PUT IMAGE
  921.     AH = 0Eh
  922.     AL = replacement rule
  923.         bit 2: invert image before applying rule
  924.         bits 1-0:  00 force
  925.                01 AND
  926.                10 OR
  927.                11 XOR
  928.     DX,CX = row,column of top left corner
  929.     ES:DI -> image buffer (see AH=0Dh)
  930. Note:    if the specified image does not fit completely on the screen, this call
  931.       does nothing
  932. SeeAlso: AH=0Dh
  933. ----------5F0F-------------------------------
  934. INT 5F - HP 95LX GRAPHICS PRIMITIVES - WRITE TEXT
  935.     AH = 0Fh
  936.     AL = rotate flag (if nonzero, rotate 90 degrees counter-clockwise)
  937.     DX,CX = row,column of first character's top left corner
  938.     ES:DI -> ASCIZ text
  939. ----------60---------------------------------
  940. INT 60 - reserved for user interrupt
  941. ----------60---------------------------------
  942. INT 60 - VIRUS - "Zero Bug" - INSTALLATION CHECK
  943.    The "Zero Bug" virus hooks this vector.  It considers itself installed if
  944.    offset 103h of the handler's segment contains the bytes "ZE"
  945. SeeAlso: INT 32,INT 61"SEMTEX"
  946. ----------60---------------------------------
  947. INT 60 - Adaptec and OMTI controllers - DRIVE 0 DATA
  948. SeeAlso: INT 61"Adaptec",INT 62"Adaptec",INT 63"Adaptec",INT 64"Adaptec"
  949. Notes:    this vector stores the first four bytes of the parameter table for
  950.       hard disk 0
  951.     these vectors are used by the following Adaptec controllers:
  952.         ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
  953.     these vectors are NOT used by the following Adaptec controllers:
  954.         ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
  955. ----------60---------------------------------
  956. INT 60 - Atari Portfolio - USER INTERFACE FUNCTIONS
  957.    supplies a number of subfunctions which perform such functions as drawing
  958.    boxes and menus, and provide input line editing
  959. SeeAlso: INT 61"Atari"
  960. ----------60---------------------------------
  961. INT 60 - PC-IPC API
  962.     STACK:    DWORD    pointer to parameter block (see below)
  963. Return: STACK:    unchanged
  964. Notes:    PC-IPC is a shareware TSR by Donnelly Software Engineering which allows
  965.       communication between independent programs
  966.     INT 60 is the default, any interrupt vector may be used by specifying
  967.       the vector on the commandline
  968.  
  969. Format of parameter block:
  970. Offset    Size    Description
  971.  00h    WORD    caller's ID
  972.  02h    WORD    to ID
  973.  04h    WORD    command code (see below)
  974.  06h    WORD    returned status
  975.         bit 0: unused
  976.         bit 1: IPC enabled
  977.         bit 2: IPC installed
  978.         bit 3: error
  979.         bit 4: message(s) available
  980.  08h    WORD    returned error code (see below)
  981.  0Ah    WORD    size of data
  982.  0Ch    DWORD    pointer to data buffer
  983.  
  984. Values of command code:
  985.  01h "IPC_CMND_INQUIRE"     inquire current status
  986.         set status field, writes WORD to data buffer containing free
  987.           message space in bytes, and sets the "size" field to the
  988.           number of messages waiting
  989.  02h "IPC_CMND_ENABLE"    reenable PC-IPC
  990.         ignored unless called with the same ID that disabled PC-IPC
  991.  03h "IPC_CMND_DISABLE" disable PC-IPC
  992.  04h "IPC_CMND_INSTALL" reset PC-IPC
  993.  06h "IPC_CMND_RDATA"    read data
  994.         returns first message in data buffer, sets "size" to message
  995.           length and "to ID" field to sender's ID
  996.         if no messages available, bit 4 of status is cleared and "size"
  997.           is set to zero
  998.  07h "IPC_CMND_SDATA"    send data
  999.  08h "IPC_CMND_REQID"    require user ID
  1000.         create a new recognized ID and return in "caller's ID" field
  1001.  09h "IPC_CMND_DELID"    cancel user ID
  1002.         delete caller's ID from pool of recognized IDs
  1003.  0Ah "IPC_CMND_RDATAW"    read data, wait if no messages available
  1004.  0Bh "IPC_CMND_VERS"    get PC-IPC version 
  1005.         string representing version returned in data buffer, "size"
  1006.           field set to length of string
  1007.  
  1008. Values for error code:
  1009.  00h    no error
  1010.  01h    invalid command or parameter
  1011.  02h    only process 0 can install/reset IPC
  1012.  03h    process can not install/reset IPC
  1013.  04h    IPC is not enabled
  1014.  05h    process can not disable IPC
  1015.  06h    invalid destination process ID
  1016.  07h    invalid sending process ID
  1017.  08h    invalid data destination
  1018.  09h    no more process IDs available
  1019.  0Ah    can not relinquish that process ID
  1020.  0Bh    message space is full
  1021.  0Ch    IPC is not installed
  1022. ----------60---------------------------------
  1023. INT 60 - Tangram Arbiter - API
  1024. Notes:    Arbiter may use any interrupt from 60h to 66h (parameterized)
  1025.     identified by string "@ARB_API" immediately following a short jump at
  1026.       the interrupt handler address
  1027.     Arbiter makes a PC disk look like a slow disk over an SNA link to an
  1028.       IBM mainframe
  1029. ----------60---------------------------------
  1030. INT 60 U - INTRSPY/CMDSPY API
  1031. Notes:    INTRSPY will hook the first available interrupt in the range 60h-67h.
  1032.     The installation check is to 
  1033.       a) determine that the handler is an IRET instruction
  1034.       b) the signature 0Dh "INTRSPY vN.NN" immediately precedes the handler
  1035.       If INTRSPY is installed, the DWORD immediately after the IRET stores
  1036.       its entry point.
  1037.     INTRSPY is a script-driven debugger included with the book
  1038.       _Undocumented_DOS_.
  1039.  
  1040. Call INTRSPY entry point with:
  1041.     AH = function
  1042.         00h ???
  1043.         01h set current directory (for use in reporting)
  1044.         ES:DI -> counted string containing directory name (max 79 char)
  1045.         02h set name of script file
  1046.         ES:DI -> counted string containing file name (max 79 chars)
  1047.         03h set script arguments
  1048.         ES:DI -> counted string containing arguments (max 79 chars)
  1049.         04h get directory set with function 01h
  1050.         ES:DI -> 80-byte buffer for directory name
  1051.         05h get name of script file
  1052.         ES:DI -> 80-byte buffer for script filename
  1053.         06h get script arguments
  1054.         ES:DI -> 80-byte buffer for script arguments
  1055.         07h get ???
  1056.         CL = 00h-15h specifies what to get
  1057.         ES:DI -> WORD to be set with desired value on return
  1058.         08h get ???
  1059.         ES:DI -> WORD to be set with returned value
  1060.         09h get ???
  1061.         ES:DI -> WORD to be set with returned value
  1062.         0Bh store code for interrupt handler???
  1063.         ES:DI -> data
  1064.         CX = number of bytes
  1065.         0Ch ???
  1066.         ES:DI -> ???
  1067.         0Dh get ???
  1068.         ES:DI -> BYTE to be set with returned value
  1069.         0Eh set ??? flag
  1070.         0Fh clear ??? flag
  1071.         10h ???
  1072.         Return: AL = 04h or 05h if failed
  1073.         11h ???
  1074.         Return: AL = 05h if failed
  1075.         12h get ???
  1076.         ES:DI -> buffer
  1077.         Return: CX = number of bytes returned in buffer
  1078.         13h ???
  1079. Return: AH = 00h
  1080.     AL = status
  1081.         00h successful
  1082.         01h invalid function
  1083.         02h ???
  1084.         03h ???
  1085.         04h ???
  1086.         05h ???
  1087. ----------60---------------------------------
  1088. INT 60 U - PC/370 v4.2 - ???
  1089.     ???
  1090. Return: ???
  1091. Notes:    PC/370 is an IBM 370 emulator by Donald S. Higgins
  1092.     this is the default interrupt, however the documentation includes
  1093.       instructions for patching the system for another interrupt
  1094. SeeAlso: INT 2F/AX=7F24h,INT DC"PC/370"
  1095. ----------60---------------------------------
  1096. INT 60 - JPI TopSPEED Modula-2 v1 - PROCEDURE ENTRY TRAP
  1097. SeeAlso: INT 61"JPI"
  1098. ----------60---------------------------------
  1099. INT 60 - FTP Packet Driver - PC/TCP Packet Driver Specification
  1100. Notes:    The handler for the interrupt will start with a 3-byte jump 
  1101.       instruction, followed by the ASCIZ string "PKT DRVR" (the
  1102.       terminating NUL is significant).
  1103.     To find the interrupt being used by the driver, an application should
  1104.       scan through interrupt vectors 60h to 80h (20h through FFh for
  1105.       v1.10+ of the specification) until it finds one with the "PKT DRVR"
  1106.       string.
  1107.     AH values of 80h to FFh have been reserved for user-defined additions.
  1108. ----------60----DI0100-----------------------
  1109. INT 60 u - HP 95LX System Manager - WAIT FOR EVENT
  1110.     DI = 0100h
  1111.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1112.         DWORD    pointer to event record (see below)
  1113. Return: event record filled
  1114.     STACK unchanged
  1115. Note:    this call will timeout after about 500ms
  1116. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0101h,INT 61"HP 95LX",INT 62"HP 95LX"
  1117.  
  1118. Format of event record:
  1119. Offset    Size    Description
  1120.  00h    WORD    event type
  1121.          00h no events
  1122.         01h keystroke available
  1123.         02h Ctrl-Break
  1124.         03h reactivation (always follows deactivation event)
  1125.         04h about to deactivate (sleep)
  1126.             next get-event call will not return until reactivated
  1127.         05h forced application termination
  1128.         06h 1-2-3 bridge service request (only given to  1-2-3)
  1129.         07h request to grow
  1130.         08h request to shrink
  1131.         09h application's alarm expired
  1132.         0Ah daily chance to set an alarm
  1133.         0Bh system date or time has been changed
  1134.  02h    WORD    ASCII code page 850 translation of keystroke
  1135.          or grow/shrink amount in paragraphs or 0000h if error
  1136.          or alarm expiration data
  1137.  04h    BYTE    scan code from BIOS
  1138.  05h    BYTE    shift key states at time keystroke is retrieved
  1139.  06h    WORD    LICS translation of keystroke
  1140.  08h    BYTE    function key number (1-2-3 only)
  1141.  09h    DWORD    pointer to 1-2-3 bridge record (see INT 60/DI=0104h)
  1142.          or pointer to time change structure (see below)
  1143. Note:    if the System Manager is waiting the conclusion of a bridge service
  1144.       or grow/shrink call and the event type field is set to FFFFh on
  1145.       entry, the SysMgr will resume
  1146.  
  1147. Format of time change structure:
  1148. Offset    Size    Description
  1149.  00h    WORD    old year
  1150.  02h    BYTE    old month
  1151.  03h    BYTE    old date
  1152.  04h    BYTE    old day
  1153.  05h    BYTE    old hour
  1154.  06h    BYTE    old minute
  1155.  07h    BYTE    old second
  1156.  08h    BYTE    old hundredth of a second
  1157.  09h  9 BYTEs    new time in same format as old time
  1158. ----------60----DI0101-----------------------
  1159. INT 60 u - HP 95LX System Manager - CHECK FOR EVENT
  1160.     DI = 0101h
  1161.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1162.         DWORD pointer to event record (INT 60/DI=0100h)
  1163. Return: event record filled
  1164.     STACK unchanged
  1165. Note:    this call returns immediately if no event is available
  1166. SeeAlso: INT 60/DI=0100h
  1167. ----------60----DI0102-----------------------
  1168. INT 60 u - HP 95LX System Manager - "SH_STATUS"
  1169.     DI = 0102h
  1170.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1171. Return: ???
  1172.     STACK unchanged
  1173. ----------60----DI0104-----------------------
  1174. INT 60 u - HP 95LX System Manager - LOTUS 1-2-3 BRIDGE SERVICES
  1175.     DI = 0104h
  1176.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1177.         DWORD pointer to bridge record (see below)
  1178. Return: ???
  1179.     STACK unchanged
  1180.  
  1181. Format of bridge record:
  1182. Offset    Size    Description
  1183.  00h    WORD    function code
  1184.          00h test
  1185.         01h get range
  1186.         02h "GETRANGE_ADDR"
  1187.         03h "SETRANGE_ADDR"
  1188.         04h "GETRANGE_DATA"
  1189.         05h "SETRANGE_DATA"
  1190.         06h recalculate
  1191.         07h get cursor
  1192.         08h set cursor
  1193.         09h redisplay
  1194.         0Ah cell type
  1195.         0Bh "CALCTYPE"
  1196.  02h    WORD    return code from 1-2-3
  1197.  04h 16 BYTEs    ASCII range name
  1198.  14h    WORD    start column of range
  1199.  16h    WORD    start row of range
  1200.  18h    WORD    end column of range
  1201.  1Ah    WORD    end row of range
  1202.  1Ch    WORD    order in which data is placed in buffer
  1203.  1Eh    WORD    buffer size
  1204.  20h    WORD    offset within bridge record's segment of buffer for cell data
  1205. ----------60----DI0105-----------------------
  1206. INT 60 u - HP 95LX System Manager - FLUSH KEYBOARD BUFFER
  1207.     DI = 0105h
  1208.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1209. Return: ???
  1210.     STACK unchanged
  1211. ----------60----DI0106-----------------------
  1212. INT 60 u - HP 95LX System Manager - YIELD CPU
  1213.     DI = 0106h
  1214.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1215.         DWORD pointer to ???
  1216. Return: ???
  1217.     STACK unchanged
  1218. SeeAlso: INT 15/AX=1000h,INT 2F/AX=1680h
  1219. ----------60----DI0107-----------------------
  1220. INT 60 u - HP 95LX System Manager - "NO_FINI" - REFUSE TERMINATION REQUEST
  1221.     DI = 0107h
  1222.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1223.         DWORD pointer to ???
  1224. Return: ???
  1225.     STACK unchanged
  1226. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  1227. ----------60----DI0200-----------------------
  1228. INT 60 u - HP 95LX System Manager - SETUP MENU
  1229.     DI = 0200h
  1230.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1231.         DWORD    pointer to menu data (see below)
  1232.         DWORD    pointer to ???
  1233.         WORD    number of items on menu???
  1234.         WORD    ???
  1235.         DWORD    pointer to ???
  1236.         WORD    ???
  1237.         DWORD    pointer to ???
  1238. Return: ???
  1239.     STACK unchanged
  1240. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0201h,INT 60/DI=0203h,INT 60/DI=0205h
  1241.  
  1242. Format of menu data:
  1243. Offset    Size    Description
  1244.  00h 80 BYTEs    first line of menu text
  1245.  50h 80 BYTEs    second line of menu text
  1246.  A0h 80 BYTEs    third line of menu text
  1247.  F0h    WORD    number of keywords
  1248.  F2h    WORD    index of currently highlighted keyword or FFFFh
  1249.  F4h    WORD    single prompt on top line if nonzero
  1250.  F6h 20 BYTEs    which line each of 20 keywords is located on
  1251. 10Ah 20 BYTEs    offset of each of 20 keywords within its line
  1252. 11Eh 20 BYTEs    length of each of 20 keywords
  1253. 132h 20 BYTEs    first letter of each of 20 keywords
  1254. 146h 20 WORDs    offsets of long prompts for each of 20 keywords
  1255. ----------60----DI0201-----------------------
  1256. INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY MENU
  1257.     DI = 0201h
  1258.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1259.         DWORD    pointer to menu data (see INT 60/DI=0200h)
  1260. Return: ???
  1261.     STACK unchanged
  1262. SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0206h
  1263. ----------60----DI0202-----------------------
  1264. INT 60 u - HP 95LX System Manager - "MENU_ON" - ENABLE PROCESSING OF MENU
  1265.     DI = 0202h
  1266.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1267.         DWORD    pointer to menu data (see INT 60/DI=0200h)
  1268. Return: ???
  1269.     STACK unchanged
  1270. SeeAlso: INT 60/DI=0200h,INT 60/DI=0201h,INT 60/DI=0203h
  1271. ----------60----DI0203-----------------------
  1272. INT 60 u - HP 95LX System Manager - REMOVE MENU
  1273.     DI = 0203h
  1274.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1275.         DWORD    pointer to menu data (see INT 60/DI=0200h)
  1276. Return: ???
  1277.     STACK unchanged
  1278. SeeAlso: INT 60/DI=0201h,INT 60/DI=0202h,INT 60/DI=0204h,INT 60/DI=0208h
  1279. ----------60----DI0204-----------------------
  1280. INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER HANDLE MENU KEYSTROKE
  1281.     DI = 0204h
  1282.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1283.         DWORD    pointer to menu data (see INT 60/DI=0200h)
  1284.         WORD    keystroke
  1285.         DWORD    pointer to WORD to receive selection number
  1286. Return: buffer for selection number filled with index of selected menu item or
  1287.       FFFFh if no final selection yet
  1288.     STACK unchanged
  1289. SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0207h
  1290. ----------60----DI0205-----------------------
  1291. INT 60 u - HP 95LX System Manager - INITIALIZE FILE SELECTION MENU
  1292.     DI = 0205h
  1293.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1294.         DWORD    pointer to file menu structure (see below)
  1295.         DWORD    pointer to edit record (see INT 60/DI=0400h)
  1296.         DWORD    pointer to wildcard filespec for initial file list
  1297.         WORD    row???
  1298.         WORD    column???
  1299. Return: ???
  1300.     STACK unchanged
  1301. SeeAlso: INT 60/DI=0200h,INT 60/DI=0206h,INT 60/DI=0208h
  1302.  
  1303. Format of file menu structure:
  1304. Offset    Size    Description
  1305.  00h    DWORD    pointer to ASCIZ base directory name
  1306.  04h    DWORD    pointer to ASCIZ file pattern (wildcard filespec)
  1307.  08h    DWORD    pointer to file list workspace, at least 1024 bytes (see below)
  1308.  0Ch    WORD    size of file list workspace in bytes
  1309.  0Eh    WORD    starting row (-3 is topmost, 0 is first non-"reserved" line)
  1310.  10h    WORD    starting column
  1311.  12h    WORD    number of lines
  1312.  14h    WORD    number of columns
  1313.  16h    WORD    number of files displayed on each line
  1314. ---the remaining fields are initialized by the System Manager---
  1315.  18h    WORD    0000h if first edit character, else multiline
  1316.  1Ah    WORD    number of files in file list
  1317.  1Ch    WORD    max files workspace has room for
  1318.  1Eh    WORD    file at top of list
  1319.  20h    WORD    index of file to highlight
  1320.  22h    WORD    index of file to unhighlight
  1321.  24h    WORD    current focus (01h FMENU, 02h EDIT)
  1322.  
  1323. Format of file list workspace entry:
  1324. Offset    Size    Description
  1325.  00h    BYTE    file attributes
  1326.  01h    WORD    file time (see INT 21/AX=5700h)
  1327.  03h    WORD    file date (see INT 21/AX=5700h)
  1328.  05h    DWORD    file size
  1329.  09h 13 BYTEs    ASCIZ filename
  1330. ----------60----DI0206-----------------------
  1331. INT 60 u - HP 95LX System Manager - DISPLAY/REDISPLAY FILE SELECTION MENU
  1332.     DI = 0206h
  1333.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1334.         DWORD    pointer to file menu structure (see INT 60/DI=0205h)
  1335.         DWORD    pointer to edit record (see INT 60/DI=0400h)
  1336. Return: ???
  1337.     STACK unchanged
  1338. SeeAlso: INT 60/DI=0205h
  1339. ----------60----DI0207-----------------------
  1340. INT 60 u - HP 95LX System Manager - LET SYSMGR PROCESS FILE SEL MENU KEYSTROKE
  1341.     DI = 0207h
  1342.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1343.         DWORD    pointer to file menu structure (see INT 60/DI=0205h)
  1344.         DWORD    pointer to edit record (see INT 60/DI=0400h)
  1345.         WORD    keystroke
  1346. Return: AX = status
  1347.         0000h keystroke processed, call INT 60/DI=0206h to refresh menu
  1348.         0001h redisplay application area before refreshing menu
  1349.         0002h user confirmed selection, filename is in edit record's buffer
  1350.         0003h user aborted menu
  1351.         FFFBh bad filename
  1352.         FFFCh bad directory
  1353.         FFFDh bad drive
  1354.         FFFEh unknown keystroke
  1355.         FFFFh keystroke known but invalid in current context
  1356.     STACK unchanged
  1357. SeeAlso: INT 60/DI=0205h,INT 60/DI=0208h
  1358. ----------60----DI0208-----------------------
  1359. INT 60 u - HP 95LX System Manager - REMOVE FILE SELECTION MENU
  1360.     DI = 0208h
  1361.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1362.         DWORD    pointer to file menu structure (see INT 60/DI=0205h)
  1363.         DWORD    pointer to edit record (see INT 60/DI=0400h)
  1364. Return: ???
  1365.     STACK unchanged
  1366. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0205h,INT 60/DI=0206h
  1367. ----------60----DI0300-----------------------
  1368. INT 60 u - HP 95LX System Manager - DISPLAY STRING
  1369.     DI = 0300h
  1370.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1371.         WORD    starting row (-3 is topmost, 0 is first user line)
  1372.         WORD    starting column
  1373.         DWORD    pointer to string
  1374.         WORD    length of string
  1375.         WORD    display style: 0000h normal, 0001h reverse video
  1376.         WORD    "OSTYLE"
  1377. Return: ???
  1378.     STACK unchanged
  1379. SeeAlso: INT 60/DI=0F03h,INT 60/DI=1005h
  1380. ----------60----DI0301-----------------------
  1381. INT 60 u - HP 95LX System Manager - CLEAR PORTION OF SCREEN
  1382.     DI = 0301h
  1383.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1384.         WORD    starting row (-3 is topmost, 0 is first user line)
  1385.         WORD    starting column
  1386.         WORD    number of rows
  1387.         WORD    number of columns
  1388. Return: ???
  1389.     STACK unchanged
  1390. SeeAlso: INT 60/DI=0302h,INT 60/DI=1005h
  1391. ----------60----DI0302-----------------------
  1392. INT 60 u - HP 95LX System Manager - SCROLL PORTION OF SCREEN
  1393.     DI = 0302h
  1394.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1395.         WORD    starting row???
  1396.         WORD    starting column???
  1397.         WORD    height of scroll region???
  1398.         WORD    width of scroll region???
  1399.         WORD    number of lines to scroll region???
  1400. Return: ???
  1401.     STACK unchanged
  1402. SeeAlso: INT 60/DI=0301h
  1403. ----------60----DI0303-----------------------
  1404. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_XCHG"
  1405.     DI = 0303h
  1406.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1407.         WORD    ???
  1408.         WORD    ???
  1409.         WORD    ???
  1410.         WORD    ???
  1411.         DWORD    pointer to ???
  1412. Return: ???
  1413.     STACK unchanged
  1414. ----------60----DI0304-----------------------
  1415. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRATTR"
  1416.     DI = 0304h
  1417.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1418.         DWORD    pointer to ???
  1419.         WORD    ???
  1420. Return: ???
  1421.     STACK unchanged
  1422. ----------60----DI0305-----------------------
  1423. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRRVRT"
  1424.     DI = 0305h
  1425.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1426.         WORD    ???
  1427.         WORD    ???
  1428.         DWORD    pointer to ???
  1429.         WORD    ???
  1430. Return: ???
  1431.     STACK unchanged
  1432. ----------60----DI0307-----------------------
  1433. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRINV"
  1434.     DI = 0307h
  1435.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1436.         WORD    ???
  1437.         WORD    ???
  1438.         WORD    ???
  1439. Return: ???
  1440.     STACK unchanged
  1441. ----------60----DI0308-----------------------
  1442. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_ROWS_COLS"
  1443.     DI = 0308h
  1444.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1445. Return: ???
  1446.     STACK unchanged
  1447. ----------60----DI0309-----------------------
  1448. INT 60 u - HP 95LX System Manager - SET SCREEN (VIDEO???) MODE
  1449.     DI = 0309h
  1450.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1451.         WORD    new mode
  1452. Return: ???
  1453.     STACK unchanged
  1454. ----------60----DI030A-----------------------
  1455. INT 60 u - HP 95LX System Manager - GET SCREEN (VIDEO???) MODE
  1456.     DI = 030Ah
  1457.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1458. Return: ???
  1459.     STACK unchanged
  1460. ----------60----DI030B-----------------------
  1461. INT 60 u - HP 95LX System Manager - SET CURSOR POSITION
  1462.     DI = 030Bh
  1463.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1464.         WORD    row (-3 is topmost, 0 is first non-reserved line)
  1465.         WORD    column
  1466. Return: ???
  1467.     STACK unchanged
  1468. Note:    cursor is hidden if the specified position is not on the physical
  1469.       display
  1470. SeeAlso: INT 10/AH=02h,INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  1471. ----------60----DI0400-----------------------
  1472. INT 60 u - HP 95LX System Manager - "EDIT_INIT"
  1473.     DI = 0400h
  1474.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1475.         DWORD    pointer to edit record (see below)
  1476.         DWORD    pointer to string to be edited
  1477.         WORD    initial length of string being edited
  1478.         WORD    maximum length of edited string
  1479.         WORD    row of edit field
  1480.         WORD    leftmost column of edit field
  1481. Return: ???
  1482.     STACK unchanged
  1483.  
  1484. Format of edit record:
  1485. Offset    Size    Description
  1486.  00h    WORD    current length of edit buffer
  1487.  02h    BYTE    flag for special processing on first character
  1488.  03h    BYTE    flags
  1489.          bit 0: tab handling
  1490.  04h    WORD    editing in prompt window?
  1491.  06h    DWORD    pointer to top line of prompt window message
  1492.  0Ah    WORD    length of top line of prompt
  1493.  0Ch    DWORD    pointer to second line of prompt window message
  1494.  10h    WORD    length of second line of prompt
  1495.  12h 80 BYTEs    workspace for editing
  1496.  62h  2 WORDs    line array needed for multi-line editing
  1497.  66h 36 BYTEs    multi-line edit record (see below)
  1498.  8Ah    WORD    displayable columns
  1499.  
  1500. Format of multi-line edit record:
  1501. Offset    Size    Description
  1502.  00h    DWORD    pointer to user-supplied edit buffer
  1503.  04h    WORD    length of edit buffer
  1504.  06h    WORD    current cursor position
  1505.  08h    WORD    starting row of edit area (-3 is topmost, 0 is first user line)
  1506.  0Ah    WORD    starting column of edit area
  1507.  0Ch    WORD    height of edit area
  1508.  0Eh    WORD    width of edit area
  1509.  10h    WORD    current top row (-3 is topmost, 0 is first user line)
  1510.  12h    WORD    number of rows displayable
  1511.  14h    BYTE    cursor column
  1512.  15h    BYTE    01h if buffer has been modified
  1513.  16h    BYTE    first displayable column (ticker fields only)
  1514.  17h    BYTE    01h if wordwrap enabled, FFh if ticker field
  1515.  18h    DWORD    pointer to array of line starts (at least one bigger than edit
  1516.            area is high)
  1517.  1Ch    BYTE    currently marking?
  1518.  1Dh    BYTE    flag
  1519.  1Eh    WORD    offset of mark start
  1520.  20h    WORD    offset of mark end (inclusive)
  1521.  22h    WORD    displayable columns
  1522. ----------60----DI0401-----------------------
  1523. INT 60 u - HP 95LX System Manager - EDIT ON TOP LINE
  1524.     DI = 0401h
  1525.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1526.         DWORD    pointer to edit record (see INT 60/DI=0400h)
  1527.         DWORD    pointer to string to edit
  1528.         WORD    initial length of string being edited
  1529.         WORD    maximum length of edited string
  1530.         DWORD    pointer to first line of prompt
  1531.         WORD    length of first line
  1532.         DWORD    pointer to second line of prompt
  1533.         WORD    length of second line
  1534. Return: ???
  1535.     STACK unchanged
  1536. ----------60----DI0402-----------------------
  1537. INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY EDIT FIELD
  1538.     DI = 0402h
  1539.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1540.         DWORD    pointer to edit record (see INT 60/DI=0400h)
  1541. Return: ???
  1542.     STACK unchanged
  1543. ----------60----DI0403-----------------------
  1544. INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER PROCESS EDITING KEYSTROK
  1545.     DI = 0403h
  1546.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1547.         DWORD    pointer to edit record (see INT 60/DI=0400h)
  1548.         WORD    keystroke
  1549.         DWORD    pointer to WORD buffer for result code
  1550. Return: result code buffer filled with 0001h if editing complete
  1551.     STACK unchanged
  1552. ----------60----DI0404-----------------------
  1553. INT 60 u - HP 95LX System Manager - "MDIT_INI"
  1554.     DI = 0404h
  1555.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1556.         DWORD    pointer to ???
  1557.         WORD    ???
  1558.         WORD    ???
  1559.         WORD    ???
  1560.         WORD    ???
  1561.         DWORD    pointer to ???
  1562.         WORD    ???
  1563.         WORD    ???
  1564.         WORD    ???
  1565.         DWORD    pointer to ???
  1566. Return: ???
  1567.     STACK unchanged
  1568. ----------60----DI0405-----------------------
  1569. INT 60 u - HP 95LX System Manager - "MDIT_DIS"
  1570.     DI = 0405h
  1571.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1572.         DWORD    pointer to ???
  1573. Return: ???
  1574.     STACK unchanged
  1575. ----------60----DI0406-----------------------
  1576. INT 60 u - HP 95LX System Manager - "MDIT_KEY"
  1577.     DI = 0406h
  1578.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1579.         DWORD    pointer to ???
  1580.         WORD    ???
  1581. Return: ???
  1582.     STACK unchanged
  1583. ----------60----DI0407-----------------------
  1584. INT 60 u - HP 95LX System Manager - "MDIT_FIL"
  1585.     DI = 0407h
  1586.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1587.         DWORD    pointer to ???
  1588.         DWORD    pointer to ???
  1589. Return: ???
  1590.     STACK unchanged
  1591. ----------60----DI0408-----------------------
  1592. INT 60 u - HP 95LX System Manager - "MDIT_MARK"
  1593.     DI = 0408h
  1594.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1595.         DWORD    pointer to ???
  1596. Return: ???
  1597.     STACK unchanged
  1598. ----------60----DI0409-----------------------
  1599. INT 60 u - HP 95LX System Manager - "MDIT_UNMARK"
  1600.     DI = 0409h
  1601.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1602.         DWORD    pointer to ???
  1603. Return: ???
  1604.     STACK unchanged
  1605. ----------60----DI040A-----------------------
  1606. INT 60 u - HP 95LX System Manager - "MDIT_CUTMARK"
  1607.     DI = 040Ah
  1608.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1609.         DWORD    pointer to ???
  1610. Return: ???
  1611.     STACK unchanged
  1612. ----------60----DI040B-----------------------
  1613. INT 60 u - HP 95LX System Manager - "MDIT_INS_STR"
  1614.     DI = 040Bh
  1615.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1616.         DWORD    pointer to ???
  1617.         DWORD    pointer to ???
  1618.         WORD    ???
  1619. Return: ???
  1620.     STACK unchanged
  1621. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  1622. ----------60----DI0500-----------------------
  1623. INT 60 u - HP 95LX System Manager - OPEN FILE
  1624.     DI = 0500h
  1625.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1626.         DWORD    pointer to file state record (see below)
  1627.         DWORD    pointer to filename
  1628.         WORD    length of filename
  1629.         WORD    ???
  1630.         WORD    suppress buffering if nonzero
  1631. Return: AX = status
  1632.     STACK unchanged
  1633. SeeAlso: INT 60/DI=0501h,INT 60/DI=0502h,INT 60/DI=0508h
  1634.  
  1635. Format of file state record:
  1636. Offset    Size    Description
  1637.  00h    WORD    DOS file handle
  1638.  02h    WORD    flags
  1639.          bit 0: buffer contents valid
  1640.         bit 1: buffer is dirty and must be written
  1641.         bit 2: unbuffered I/O
  1642.         bit 3: file is a character device
  1643.  04h    DWORD    current DOS physical file offset (FFFFFFFFh if unknown)
  1644.  08h    DWORD    DOS file offset of start of buffer
  1645.  0Ch    DWORD    effective file offset as seen by caller
  1646.  10h    WORD    number of bytes in file buffer
  1647. ---buffered I/O only---
  1648.  12h 512 BYTEs    file buffer
  1649. ----------60----DI0501-----------------------
  1650. INT 60 u - HP 95LX System Manager - OPEN FILE IN READ-ONLY MODE
  1651.     DI = 0501h
  1652.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1653.         DWORD    pointer to file state record (see INT 60/DI=0500h)
  1654.         DWORD    pointer to filename
  1655.         WORD    length of filename
  1656.         WORD    ???
  1657.         WORD    suppress buffering if nonzero
  1658. Return: AX = status
  1659.     STACK unchanged
  1660. SeeAlso: INT 60/DI=0500h
  1661. ----------60----DI0502-----------------------
  1662. INT 60 u - HP 95LX System Manager - CREATE NEW FILE
  1663.     DI = 0502h
  1664.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1665.         DWORD    pointer to file state record (see INT 60/DI=0500h)
  1666.         DWORD    pointer to filename
  1667.         WORD    length of filename
  1668.         WORD    ???
  1669.         WORD    suppress buffering if nonzero
  1670. Return: AX = status
  1671.     STACK unchanged
  1672. SeeAlso: INT 60/DI=0500h,INT 60/DI=0503h
  1673. ----------60----DI0503-----------------------
  1674. INT 60 u - HP 95LX System Manager - CREATE OR TRUNCATE FILE
  1675.     DI = 0503h
  1676.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1677.         DWORD    pointer to file state record (see INT 60/DI=0500h)
  1678.         DWORD    pointer to filename
  1679.         WORD    length of filename
  1680.         WORD    ???
  1681.         WORD    suppress buffering if nonzero
  1682. Return: AX = status
  1683.     STACK unchanged
  1684. SeeAlso: INT 60/DI=0502h
  1685. ----------60----DI0504-----------------------
  1686. INT 60 u - HP 95LX System Manager - READ FROM FILE
  1687.     DI = 0504h
  1688.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1689.         DWORD    pointer to file state record (see INT 60/DI=0500h)
  1690.         DWORD    pointer to data buffer
  1691.         WORD    number of bytes to read
  1692.         DWORD    pointer to WORD in which to return actual bytes read
  1693. Return: ???
  1694.     STACK unchanged
  1695. SeeAlso: INT 60/DI=0505h
  1696. ----------60----DI0505-----------------------
  1697. INT 60 - HP 95LX System Manager - WRITE TO FILE
  1698.     DI = 0505h
  1699.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1700.         DWORD    pointer to file state record (see INT 60/DI=0500h)
  1701.         DWORD    pointer to data
  1702.         WORD    length of data
  1703. Return: AX = status
  1704.     STACK unchanged
  1705. SeeAlso: INT 60/DI=0504h
  1706. ----------60----DI0506-----------------------
  1707. INT 60 u - HP 95LX System Manager - SET FILE POSITION
  1708.     DI = 0506h
  1709.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1710.         DWORD    pointer to file state record (see INT 60/DI=0500h)
  1711.         WORD    ???
  1712.         WORD    ???
  1713. Return: ???
  1714.     STACK unchanged
  1715. SeeAlso: INT 60/DI=0507h
  1716. ----------60----DI0507-----------------------
  1717. INT 60 u - HP 95LX System Manager - GET FILE POSITION
  1718.     DI = 0507h "M_TELL"
  1719.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1720.         DWORD    pointer to file state record (see INT 60/DI=0500h)
  1721.         DWORD    pointer to DWORD buffer for file position???
  1722. Return: ???
  1723.     STACK unchanged
  1724. SeeAlso: INT 60/DI=0506h
  1725. ----------60----DI0508-----------------------
  1726. INT 60 u - HP 95LX System Manager - CLOSE FILE
  1727.     DI = 0508h
  1728.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1729.         DWORD    pointer to file state record (see INT 60/DI=0500h)
  1730. Return: ???
  1731.     STACK unchanged
  1732. SeeAlso: INT 60/DI=0500h
  1733. ----------60----DI0509-----------------------
  1734. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETPAT"
  1735.     DI = 0509h
  1736.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1737.         DWORD    pointer to ???
  1738.         DWORD    pointer to ???
  1739.         WORD    ???
  1740.         WORD    ???
  1741. Return: ???
  1742.     STACK unchanged
  1743. ----------60----DI050A-----------------------
  1744. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_MATCH"
  1745.     DI = 050Ah
  1746.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1747.         DWORD    pointer to ???
  1748.         DWORD    pointer to ???
  1749. Return: ???
  1750.     STACK unchanged
  1751.  
  1752. Format of pattern match control block:
  1753. Offset    Size    Description
  1754.  00h 43 BYTEs    FindFirst data block (see INT 21/AH=4Eh)
  1755.  2Bh 80 BYTEs    full path name
  1756.  7Bh    BYTE    offset of last component of filename
  1757.  7Ch    BYTE    DOS function number (4Eh or 4Fh)
  1758. ----------60----DI050B-----------------------
  1759. INT 60 u - HP 95LX System Manager - IDENTIFY FILENAME REFERENT
  1760.     DI = 050Bh
  1761.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1762.         DWORD    pointer to ???
  1763.         WORD    ???
  1764.         WORD    ???
  1765.         DWORD    pointer to ???
  1766. Return: ???
  1767.     STACK unchanged
  1768.  
  1769. Values returned:
  1770.  0000h nonexistent
  1771.  0001h file
  1772.  0002h directory
  1773.  0003h character device
  1774. ----------60----DI050C-----------------------
  1775. INT 60 u - HP 95LX System Manager - DELETE FILE
  1776.     DI = 050Ch "M_DELETE"
  1777.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1778.         DWORD    pointer to ???
  1779.         WORD    ???
  1780.         WORD    ???
  1781. Return: ???
  1782.     STACK unchanged
  1783. ----------60----DI050D-----------------------
  1784. INT 60 u - HP 95LX System Manager - RENAME FILE
  1785.     DI = 050Dh
  1786.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1787.         DWORD    pointer to ???
  1788.         WORD    ???
  1789.         WORD    ???
  1790.         DWORD    pointer to ???
  1791.         WORD    ???
  1792.         WORD    ???
  1793. Return: ???
  1794.     STACK unchanged
  1795. ----------60----DI050E-----------------------
  1796. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETDIR"
  1797.     DI = 050Eh
  1798.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1799.         WORD    ???
  1800.         DWORD    pointer to ???
  1801.         DWORD    pointer to ???
  1802. Return: ???
  1803.     STACK unchanged
  1804. ----------60----DI050F-----------------------
  1805. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETDIR"
  1806.     DI = 050Fh
  1807.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1808.         DWORD    pointer to ???
  1809.         WORD    ???
  1810. Return: ???
  1811.     STACK unchanged
  1812. ----------60----DI0510-----------------------
  1813. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_VOLUME"
  1814.     DI = 0510h
  1815.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1816.         DWORD    pointer to ???
  1817.         DWORD    pointer to ???
  1818. Return: ???
  1819.     STACK unchanged
  1820. ----------60----DI0511-----------------------
  1821. INT 60 u - HP 95LX System Manager - MAKE A SUBDIRECTORY
  1822.     DI = 0511h
  1823.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1824.         DWORD    pointer to ???
  1825.         WORD    ???
  1826.         WORD    ???
  1827. Return: ???
  1828.     STACK unchanged
  1829. ----------60----DI0512-----------------------
  1830. INT 60 u - HP 95LX System Manager - REMOVE A SUBDIRECTORY
  1831.     DI = 0512h
  1832.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1833.         DWORD    pointer to ???
  1834.         WORD    ???
  1835.         WORD    ???
  1836. Return: ???
  1837.     STACK unchanged
  1838. ----------60----DI0513-----------------------
  1839. INT 60 u - HP 95LX System Manager - GET DEFAULT DRIVE
  1840.     DI = 0513h
  1841.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1842.         DWORD    pointer to ??? buffer for current drive
  1843. Return: ???
  1844.     STACK unchanged
  1845. ----------60----DI0514-----------------------
  1846. INT 60 u - HP 95LX System Manager - SET DEFAULT DRIVE
  1847.     DI = 0514h
  1848.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1849.         WORD    new drive
  1850. Return: ???
  1851.     STACK unchanged
  1852. ----------60----DI0515-----------------------
  1853. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_FDATE"
  1854.     DI = 0515h
  1855.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1856.         DWORD    pointer to ???
  1857.         DWORD    pointer to ???
  1858. Return: ???
  1859.     STACK unchanged
  1860. ----------60----DI0516-----------------------
  1861. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GET_SYSDIR"
  1862.     DI = 0516h
  1863.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1864.         DWORD    pointer to ???
  1865. Return: ???
  1866.     STACK unchanged
  1867. ----------60----DI0517-----------------------
  1868. INT 60 u - HP 95LX System Manager - GET FILE ATTRIBUTES
  1869.     DI = 0517h
  1870.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1871.         DWORD    pointer to ???
  1872.         WORD    ???
  1873.         WORD    ???
  1874.         DWORD    pointer to ??? buffer for file's attributes???
  1875. Return: ???
  1876.     STACK unchanged
  1877. ----------60----DI0518-----------------------
  1878. INT 60 u - HP 95LX System Manager - SET FILE ATTRIBUTES
  1879.     DI = 0518h
  1880.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1881.         DWORD    pointer to ???
  1882.         WORD    ???
  1883.         WORD    ???
  1884.         WORD    new attributes???
  1885. Return: ???
  1886.     STACK unchanged
  1887. ----------60----DI0519-----------------------
  1888. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COMMON_OPEN"
  1889.     DI = 0519h
  1890.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1891.         DWORD    pointer to ???
  1892.         DWORD    pointer to ???
  1893.         WORD    ???
  1894.         WORD    ???
  1895.         WORD    ???
  1896.         WORD    ???
  1897.         WORD    ???
  1898. Return: ???
  1899.     STACK unchanged
  1900. ----------60----DI051A-----------------------
  1901. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COPYDT"
  1902.     DI = 051Ah
  1903.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1904.         DWORD    pointer to ???
  1905.         DWORD    pointer to ???
  1906. Return: ???
  1907.     STACK unchanged
  1908. ----------60----DI051B-----------------------
  1909. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETFDT"
  1910.     DI = 051Bh
  1911.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1912.         DWORD    pointer to ???
  1913.         DWORD    pointer to ???
  1914. Return: ???
  1915.     STACK unchanged
  1916. ----------60----DI051C-----------------------
  1917. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_PUTFDT"
  1918.     DI = 051Ch
  1919.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1920.         DWORD    pointer to ???
  1921.         WORD    ???
  1922. Return: ???
  1923.     STACK unchanged
  1924. ----------60----DI0600-----------------------
  1925. INT 60 u - HP 95LX System Manager - PROCESS INITIALIZING
  1926.     DI = 0600h
  1927.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1928. Return: ???
  1929.     STACK unchanged
  1930. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0601h,INT 61"HP 95LX"
  1931. ----------60----DI0601-----------------------
  1932. INT 60 u - HP 95LX System Manager - PROCESS TERMINATION
  1933.     DI = 0601h
  1934.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1935. Return: never
  1936.     STACK unchanged
  1937. SeeAlso: INT 21/AH=4Ch,INT 60/DI=0600h
  1938. ----------60----DI0602-----------------------
  1939. INT 60 u - HP 95LX System Manager - "M_LOCK" - PREVENT TASK SWITCHES
  1940.     DI = 0602h
  1941.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1942. Return: ???
  1943.     STACK unchanged
  1944. SeeAlso: INT 15/AX=101Bh,INT 60/DI=0603h
  1945. ----------60----DI0603-----------------------
  1946. INT 60 u - HP 95LX System Manager - "M_UNLOCK" - ALLOW TASK SWITCHES
  1947.     DI = 0603h
  1948.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1949. Return: ???
  1950.     STACK unchanged
  1951. SeeAlso: INT 15/AX=101Ch,INT 60/DI=0602h
  1952. ----------60----DI0604-----------------------
  1953. INT 60 u - HP 95LX System Manager - "M_SPAWN"
  1954.     DI = 0604h
  1955.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1956.         DWORD    pointer to ???
  1957.         WORD    ???
  1958.         WORD    ???
  1959.         DWORD    pointer to ???
  1960. Return: ???
  1961.     STACK unchanged
  1962. ----------60----DI0605-----------------------
  1963. INT 60 u - HP 95LX System Manager - "M_APPCOUNT"
  1964.     DI = 0605h
  1965.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1966. Return: ???
  1967.     STACK unchanged
  1968. ----------60----DI0606-----------------------
  1969. INT 60 u - HP 95LX System Manager - "M_REBOOT"
  1970.     DI = 0606h
  1971.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1972. Return: ???
  1973.     STACK unchanged
  1974. ----------60----DI0607-----------------------
  1975. INT 60 u - HP 95LX System Manager - "M_SPAWNARG"
  1976.     DI = 0607h
  1977.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1978.         DWORD    pointer to ???
  1979.         WORD    ???
  1980.         DWORD    pointer to ???
  1981.         WORD    ???
  1982. Return: ???
  1983.     STACK unchanged
  1984. ----------60----DI0608-----------------------
  1985. INT 60 u - HP 95LX System Manager - "M_REG_APP_NAME"
  1986.     DI = 0608h
  1987.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1988.         DWORD    pointer to ???
  1989. Return: ???
  1990.     STACK unchanged
  1991. ----------60----DI0609-----------------------
  1992. INT 60 u - HP 95LX System Manager - "M_APP_NAME"
  1993.     DI = 0609h
  1994.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1995.         DWORD    pointer to ???
  1996. Return: DX:AX -> ???
  1997.     STACK unchanged
  1998. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  1999. ----------60----DI0700-----------------------
  2000. INT 60 u - HP 95LX System Manager - OPEN CLIPBOARD
  2001.     DI = 0700h
  2002.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2003. Return: ???
  2004.     STACK unchanged
  2005. SeeAlso: INT 60/DI=0701h,INT 60/DI=0702h
  2006.  
  2007. Values for error code:
  2008.  0000h    successful
  2009.  FFF8h transfer request out of bounds
  2010.  FFF9h no such representation
  2011.  FFFAh no representation open
  2012.  FFFBh a representation is already open
  2013.  FFFCh representation already exists
  2014.  FFFDh heap allocation failure
  2015.  FFFEh clipboard not open
  2016.  FFFFh clipboard access denied
  2017. ----------60----DI0701-----------------------
  2018. INT 60 u - HP 95LX System Manager - CLOSE CLIPBOARD
  2019.     DI = 0701h
  2020.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2021. Return: ???
  2022.     STACK unchanged
  2023. SeeAlso: INT 60/DI=0700h,INT 60/DI=0702h
  2024. ----------60----DI0702-----------------------
  2025. INT 60 u - HP 95LX System Manager - RESET CLIPBOARD
  2026.     DI = 0702h
  2027.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2028.         DWORD    pointer to ???
  2029. Return: ???
  2030.     STACK unchanged
  2031. SeeAlso: INT 60/DI=0700h
  2032. ----------60----DI0704-----------------------
  2033. INT 60 u - HP 95LX System Manager - "M_NEW_REP" - START A NEW REPRESENTATION???
  2034.     DI = 0704h
  2035.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2036.         DWORD    pointer to ???
  2037. Return: ???
  2038.     STACK unchanged
  2039. SeeAlso: INT 60/DI=0705h,INT 60/DI=0706h,INT 60/DI=0707h
  2040. ----------60----DI0705-----------------------
  2041. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_FINI_REP"
  2042.     DI = 0705h
  2043.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2044. Return: ???
  2045.     STACK unchanged
  2046. SeeAlso: INT 60/DI=0704h
  2047. ----------60----DI0706-----------------------
  2048. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_NAME"
  2049.     DI = 0706h
  2050.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2051.         WORD    ???
  2052.         DWORD    pointer to ???
  2053.         DWORD    pointer to ???
  2054. Return: ???
  2055.     STACK unchanged
  2056. SeeAlso: INT 60/DI=0704h,INT 60/DI=0707h
  2057. ----------60----DI0707-----------------------
  2058. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_INDEX"
  2059.     DI = 0707h
  2060.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2061.         DWORD    pointer to ???
  2062.         DWORD    pointer to ???
  2063.         DWORD    pointer to ???
  2064. Return: ???
  2065.     STACK unchanged
  2066. SeeAlso: INT 60/DI=0704h,INT 60/DI=0706h
  2067. ----------60----DI0708-----------------------
  2068. INT 60 u - HP 95LX System Manager - WRITE TO CLIPBOARD
  2069.     DI = 0708h
  2070.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2071.         DWORD    pointer to data to be written???
  2072.         WORD    length of data???
  2073. Return: ???
  2074.     STACK unchanged
  2075. SeeAlso: INT 60/DI=0709h
  2076. ----------60----DI0709-----------------------
  2077. INT 60 u - HP 95LX System Manager - READ FROM CLIPBOARD
  2078.     DI = 0709h
  2079.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2080.         WORD    ???
  2081.         WORD    ???
  2082.         DWORD    pointer to buffer for data???
  2083.         WORD    length of buffer???
  2084. Return: ???
  2085.     STACK unchanged
  2086. SeeAlso: INT 60/DI=0708h
  2087. ----------60----DI0800-----------------------
  2088. INT 60 u - HP 95LX System Manager - BEEP
  2089.     DI = 0800h
  2090.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2091. Return: ???
  2092.     STACK unchanged
  2093. SeeAlso: INT 60/DI=0801h,INT 60/DI=0802h,INT 60/DI=0803h
  2094. ----------60----DI0801-----------------------
  2095. INT 60 u - HP 95LX System Manager - SOUND SERVICE "M_THUD"
  2096.     DI = 0801h
  2097.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2098. Return: ???
  2099.     STACK unchanged
  2100. SeeAlso: INT 60/DI=0800h,INT 60/DI=0802h,INT 60/DI=0803h
  2101. ----------60----DI0802-----------------------
  2102. INT 60 u - HP 95LX System Manager - MAKE A SOUND PATTERN
  2103.     DI = 0802h
  2104.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2105.         WORD    pattern number (00h-06h)
  2106. Return: ???
  2107.     STACK unchanged
  2108. SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0803h
  2109. ----------60----DI0803-----------------------
  2110. INT 60 u - HP 95LX System Manager - TURN OFF SOUND
  2111.     DI = 0803h
  2112.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2113. Return: ???
  2114.     STACK unchanged
  2115. SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0802h
  2116. ----------60----DI0900-----------------------
  2117. INT 60 - HP 95LX System Manager - ALLOCATE REGULAR MEMORY BLOCK
  2118.     DI = 0900h
  2119.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2120.         WORD    size of block in bytes
  2121. Return: AX -> memory block
  2122.     STACK unchanged
  2123. Note:    System Manager-compliant applications are always small-model (64K code,
  2124.       64K data)
  2125. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0902h,INT 60/DI=0903h
  2126. ----------60----DI0902-----------------------
  2127. INT 60 u - HP 95LX System Manager - FREE REGULAR MEMORY BLOCK
  2128.     DI = 0902h
  2129.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2130.         WORD    offset of memory block???
  2131. Return: ???
  2132.     STACK unchanged
  2133. Note:    System Manager-compliant applications are always small-model (64K code,
  2134.       64K data)
  2135. SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h
  2136. ----------60----DI0903-----------------------
  2137. INT 60 u - HP 95LX System Manager - ALLOCATE LARGE MEMORY BLOCK
  2138.     DI = 0903h
  2139.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2140.         WORD    size of block in bytes???
  2141. Return: AX -> memory block???
  2142.     STACK unchanged
  2143. SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h
  2144. ----------60----DI0904-----------------------
  2145. INT 60 u - HP 95LX System Manager - FREE LARGE MEMORY BLOCK
  2146.     DI = 0904h
  2147.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2148.         WORD    segment of memory block???
  2149. Return: AX -> ???
  2150.     STACK unchanged
  2151. SeeAlso: INT 60/DI=0902h,INT 60/DI=0903h
  2152. ----------60----DI0B00-----------------------
  2153. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DTINFO"
  2154.     DI = 0B00h
  2155.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2156.         DWORD    pointer to ???
  2157. Return: ???
  2158.     STACK unchanged
  2159. ----------60----DI0B01-----------------------
  2160. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GETDTM"
  2161.     DI = 0B01h
  2162.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2163.         DWORD    pointer to ???
  2164. Return: ???
  2165.     STACK unchanged
  2166. ----------60----DI0B02-----------------------
  2167. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SETDTM"
  2168.     DI = 0B02h
  2169.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2170.         DWORD    pointer to ???
  2171. Return: ???
  2172.     STACK unchanged
  2173. ----------60----DI0B03-----------------------
  2174. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_XALARM"
  2175.     DI = 0B03h
  2176.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2177.         WORD    ???
  2178. Return: ???
  2179.     STACK unchanged
  2180. ----------60----DI0B04-----------------------
  2181. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_ALARM"
  2182.     DI = 0B04h
  2183.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2184.         DWORD    pointer to alarm record???
  2185.         WORD    ???
  2186. Return: ???
  2187.     STACK unchanged
  2188.  
  2189. Format of alarm record:
  2190. Offset    Size    Description
  2191.  00h    BYTE    hour
  2192.  01h    BYTE    minute
  2193.  02h    BYTE    second
  2194.  03h    BYTE    unused padding
  2195.  04h    WORD    rescheduling interval, in seconds
  2196.  06h    BYTE    are seconds significant?
  2197.  07h    BYTE    alarm sound
  2198.  08h 40 BYTEs    message displayed when alarm activates
  2199.  30h    BYTE    task ID of owner
  2200.  31h    BYTE    application's own use for sub-class
  2201.  32h  4 BYTEs    application's own use for private data
  2202. ----------60----DI0B05-----------------------
  2203. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_SW"
  2204.     DI = 0B05h
  2205.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2206.         DWORD    pointer to ???
  2207. Return: ???
  2208.     STACK unchanged
  2209. ----------60----DI0B06-----------------------
  2210. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SW"
  2211.     DI = 0B06h
  2212.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2213.         DWORD    pointer to ???
  2214.         DWORD    pointer to ???
  2215.         DWORD    pointer to ???
  2216. Return: ???
  2217.     STACK unchanged
  2218. ----------60----DI0B07-----------------------
  2219. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_SW"
  2220.     DI = 0B07h
  2221.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2222.         DWORD    pointer to ???
  2223. Return: ???
  2224.     STACK unchanged
  2225. ----------60----DI0B08-----------------------
  2226. INT 60 u - HP 95LX System Manager - "M_TELLTIME" - DISPLAY TIMESTAMP
  2227.     DI = 0B08h
  2228.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2229.         WORD    timestamp format
  2230.             bits 1-0:
  2231.                 00 date only
  2232.                 01 time only
  2233.                 10 date and time
  2234.                 11 day and date
  2235.             bit 4: supply am/pm
  2236.             bit 5: supply seconds
  2237.             bit 6: show year
  2238.             bit 7: four-digit year
  2239.         WORD    row (-3 is topmost, 0 is first non-reserved line)
  2240.         WORD    column
  2241. Return: ???
  2242.     STACK unchanged
  2243. ----------60----DI0B09-----------------------
  2244. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SETTINGS"
  2245.     DI = 0B09h
  2246.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2247.         DWORD    pointer to ???
  2248.         DWORD    pointer to ???
  2249. Return: ???
  2250.     STACK unchanged
  2251. SeeAlso: INT 60/DI=0B0Ah,INT 60/DI=0B0Fh
  2252.  
  2253. Format of system settings:
  2254. Offset    Size    Description
  2255.  00h    WORD    country code
  2256.  02h    WORD    speaker volume (00h-03h or FFh for off)
  2257.  04h    WORD    contrast level (00h-0Fh)
  2258.  06h    WORD    week start (00h Sunday, 01h Monday)
  2259.  08h    WORD    punctuation format
  2260.          code    decimal    arg    thousands
  2261.         00h    .    ,    ,
  2262.         01h    ,    .    .
  2263.         02h    .    ;    ;
  2264.         03h    ,    ;    .
  2265.         04h    .    ,    " "
  2266.         05h    ,    .    " "
  2267.         06h    .    ;    " "
  2268.         07h    ,    ;    " "
  2269.  0Ah    WORD    two-character language code (only 5355h = "US" byte-swapped)
  2270.  0Ch    WORD    current date format
  2271.          00h dd-mmm-yy
  2272.         01h dd-mmm
  2273.         02h mmm-yy
  2274.         03h mm/dd/yy
  2275.         04h dd/mm/yy
  2276.         05h dd.mm.yy
  2277.         06h yy-mm-dd
  2278.         07h mm/dd
  2279.         08h dd/mm
  2280.         09h dd.mm
  2281.         0Ah mm-dd
  2282.  0Eh    WORD    current time format
  2283.          00h HH:MM:SS am/pm
  2284.         01h HH:MM am/pm
  2285.         02h HH:MM:SS
  2286.         03h HH.MM.SS
  2287.         04h HH,MM,SS
  2288.         05h HHhMMmSSs
  2289.         06h HH:MM
  2290.         07h HH.MM
  2291.         08h HH,MM
  2292.         09h HHhMMm
  2293.  10h    WORD    collating sequence
  2294.          00h numbers first, 01h letters first, 02h ASCII
  2295.  12h 80 BYTEs    name of picture file
  2296.  62h 30 BYTEs    name
  2297.  80h 30 BYTEs    title
  2298.  9Eh 28 BYTEs    company name
  2299.  BAh    WORD    number of languages
  2300.  BCh  6 BYTEs    available languages
  2301.  C2h 66 BYTEs    language menu
  2302. 104h  2 BYTEs    ASCIZ date separator
  2303. 106h  2 BYTEs    ASCIZ time separator
  2304. 108h    BYTE    date order
  2305. 109h    BYTE    use 24 hour time?
  2306. 10Ah 16 BYTEs    currency string
  2307. 11Ah    WORD    currency string position (00h prefix, 01h suffix)
  2308. 11Ch    WORD    keyboard (see below)
  2309. 11Eh    WORD    printer baud rate
  2310.         00h 300, 01h 1200, 02h 2400, 03h 4800, 04h 9600, 05h 19200
  2311. 120h    WORD    printer driver code
  2312.         00h Epson FX80, 01h HP Laserjet, 02h IBM ProPrinter
  2313. 122h    WORD    printer interface (00h COM1, 01h COM2, 02h IR, 03h LPT1)
  2314. 124h    WORD    system manager interrupt (60h by default)
  2315. 126h    WORD    code page (01h CP850, 02h CP437)
  2316. 128h    WORD    active exit key
  2317. 12Ah    WORD    active menu key
  2318. 12Ch    WORD    active CHAR key toggle
  2319. 12Eh  6 BYTEs    alarm
  2320.  
  2321. Values for keyboard:
  2322.     0001h Belgium
  2323.     0002h French Canadian
  2324.     0004h Denmark
  2325.     0008h Finland
  2326.     0010h French
  2327.     0020h Finland
  2328.     0040h Italy
  2329.     0080h Netherlands
  2330.     0100h Norway
  2331.     0200h Portugal
  2332.     0400h Spain
  2333.     0800h Sweden
  2334.     1000h Swiss French
  2335.     2000h Swiss German
  2336.     4000h United Kingdom
  2337.     8000h USA
  2338. ----------60----DI0B0A-----------------------
  2339. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SET_SETTINGS"
  2340.     DI = 0B0Ah
  2341.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2342.         DWORD    pointer to ???
  2343.         DWORD    pointer to ???
  2344. Return: ???
  2345.     STACK unchanged
  2346. SeeAlso: INT 60/DI=0B09h
  2347. ----------60----DI0B0B-----------------------
  2348. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_TIMER"
  2349.     DI = 0B0Bh
  2350.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2351.         DWORD    pointer to ???
  2352. Return: ???
  2353.     STACK unchanged
  2354. SeeAlso: INT 60/DI=0B0Ch,INT 60/DI=0B0Dh
  2355. ----------60----DI0B0C-----------------------
  2356. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_TIMER"
  2357.     DI = 0B0Ch
  2358.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2359.         DWORD    pointer to ???
  2360. Return: ???
  2361.     STACK unchanged
  2362. SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Dh
  2363. ----------60----DI0B0D-----------------------
  2364. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_TIMER"
  2365.     DI = 0B0Dh
  2366.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2367.         DWORD    pointer to ???
  2368.         DWORD    pointer to ???
  2369.         DWORD    pointer to ???
  2370. Return: ???
  2371.     STACK unchanged
  2372. SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Ch
  2373. ----------60----DI0B0E-----------------------
  2374. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_TELL_ANYTIME"
  2375.     DI = 0B0Eh
  2376.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2377.         WORD    ???
  2378.         WORD    ???
  2379.         WORD    ???
  2380.         DWORD    pointer to ???
  2381.         DWORD    pointer to ???
  2382. Return: DX:AX -> ???
  2383.     STACK unchanged
  2384. ----------60----DI0B0F-----------------------
  2385. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVCE "M_GET_SETTINGS_ADDR"
  2386.     DI = 0B0Fh
  2387.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2388. Return: DX:AX -> system settings record (see INT 60/DI=0B09h)
  2389.     STACK unchanged
  2390. SeeAlso: INT 60/DI=0B09h
  2391. ----------60----DI0B10-----------------------
  2392. INT 60 u - HP 95LX System Manager - PARSE DATE SPECIFICATION
  2393.     DI = 0B10h
  2394.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2395.         WORD    ???
  2396.         DWORD    pointer to ???
  2397.         DWORD    pointer to ???
  2398. Return: ???
  2399.     STACK unchanged
  2400. ----------60----DI0B11-----------------------
  2401. INT 60 u - HP 95LX System Manager - PARSE TIME SPECIFICATION
  2402.     DI = 0B11h
  2403.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2404.         WORD    ???
  2405.         DWORD    pointer to ???
  2406.         DWORD    pointer to ???
  2407. Return: ???
  2408.     STACK unchanged
  2409. ----------60----DI0B12-----------------------
  2410. INT 60 u - HP 95LX System Manager - SET DATE PARSING RULE
  2411.     DI = 0B12h
  2412.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2413.         WORD    new parsing rule
  2414.             01h day-month-year
  2415.             02h month-day-year
  2416.             03h year-month-day
  2417.             04h "DMYO"
  2418.             05h "MDYO"
  2419.             OR with 08h to get any year
  2420. Return: ???
  2421.     STACK unchanged
  2422. SeeAlso: INT 60/DI=0B13h
  2423. ----------60----DI0B13-----------------------
  2424. INT 60 u - HP 95LX System Manager - SET TIME PARSING RULE
  2425.     DI = 0B13h
  2426.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2427.         WORD    new parsing rule
  2428.             01h HH:MM:SS (am/pm)
  2429.             02h HH:MM:SS (24hr)
  2430.             03h HHMM:SS (24hr)
  2431.             04h HH:MM:SS.hh (24hr)
  2432.             05h HH:MM (am/pm)
  2433.             06h HH:MM (24hr)
  2434.             07h HHMM (24hr)
  2435. Return: ???
  2436.     STACK unchanged
  2437. SeeAlso: INT 60/DI=0B12h
  2438. ----------60----DI0B14-----------------------
  2439. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_POST_TIME"
  2440.     DI = 0B14h
  2441.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2442. Return: ???
  2443.     STACK unchanged
  2444. ----------60----DI0B15-----------------------
  2445. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DAY_TRIGGER"
  2446.     DI = 0B15h
  2447.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2448.         WORD    ???
  2449. Return: ???
  2450.     STACK unchanged
  2451. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2452. ----------60----DI0C00-----------------------
  2453. INT 60 u - HP 95LX System Manager - OPEN PRINTER
  2454.     DI = 0C00h
  2455.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2456. Return: ???
  2457.     STACK unchanged
  2458. SeeAlso: INT 60/DI=0C01h,INT 60/DI=0C02h,INT 60/DI=0C03h
  2459. ----------60----DI0C01-----------------------
  2460. INT 60 u - HP 95LX System Manager - CLOSE PRINTER
  2461.     DI = 0C01h
  2462.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2463. Return: ???
  2464.     STACK unchanged
  2465. Note:    relinquishes control of printer
  2466. SeeAlso: INT 60/DI=0C00h
  2467. ----------60----DI0C02-----------------------
  2468. INT 60 u - HP 95LX System Manager - WRITE TO PRINTER
  2469.     DI = 0C02h
  2470.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2471.         DWORD    pointer to data to be written
  2472.         WORD    length of data
  2473. Return: ???
  2474.     STACK unchanged
  2475. SeeAlso: INT 60/DI=0C00h
  2476. ----------60----DI0C03-----------------------
  2477. INT 60 u - HP 95LX System Manager - INITIALIZE PRINTER
  2478.     DI = 0C03h
  2479.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2480. Return: ???
  2481.     STACK unchanged
  2482. SeeAlso: INT 60/DI=0C00h
  2483. ----------60----DI0C04-----------------------
  2484. INT 60 u - HP 95LX System Manager - "M_TRANS_PRINTER"
  2485.     DI = 0C04h
  2486.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2487.         WORD    ???
  2488.         DWORD    pointer to ???
  2489. Return: ???
  2490.     STACK unchanged
  2491. ----------60----DI0C05-----------------------
  2492. INT 60 u - HP 95LX System Manager - "M_FALL_PRINTER"
  2493.     DI = 0C05h
  2494.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2495.         WORD    ???
  2496.         DWORD    pointer to ???
  2497. Return: ???
  2498.     STACK unchanged
  2499. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2500. ----------60----DI0E00-----------------------
  2501. INT 60 u - HP 95LX System Manager - COMMUNICATIONS SERVICE "M_COMM_INIT"
  2502.     DI = 0E00h
  2503.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2504.         DWORD    pointer to ???
  2505. Return: ???
  2506.     STACK unchanged
  2507. SeeAlso: INT 60/DI=0E01h,INT 60/DI=0E02h
  2508.  
  2509. Values for error code:
  2510.  0000h    successful
  2511.  FFF1h "E_BUSY"
  2512.  FFF2h timeout
  2513.  FFF3h framing error
  2514.  FFF4h parity error
  2515.  FFF5h overrun error
  2516.  FFF6h "E_EMPTY"
  2517.  FFF7h "E_CONECT"
  2518.  FFF8h not open
  2519.  FFF9h out of memory
  2520.  FFFAh buffer overflow
  2521.  FFFBh "E_NOFIT"
  2522.  FFFCh unsupported
  2523.  FFFDh "E_IVOPR"
  2524.  FFFEh "E_IVCHN"
  2525.  FFFFh "E_REOPEN"
  2526. ----------60----DI0E01-----------------------
  2527. INT 60 u - HP 95LX System Manager - OPEN COMMUNICATIONS CHANNEL
  2528.     DI = 0E01h
  2529.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2530.         DWORD    pointer to WORD buffer for comm channel handle
  2531.         WORD    communications line number (01h-04h)
  2532. Return: ???
  2533.     STACK unchanged
  2534. SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E02h
  2535. ----------60----DI0E02-----------------------
  2536. INT 60 u - HP 95LX System Manager - CLOSE COMMUNICATIONS CHANNEL
  2537.     DI = 0E02h
  2538.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2539.         WORD    comm channel handle
  2540. Return: ???
  2541.     STACK unchanged
  2542. SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E01h
  2543. ----------60----DI0E03-----------------------
  2544. INT 60 u - HP 95LX System Manager - "M_COMM_GETMDM"
  2545.     DI = 0E03h
  2546.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2547.         WORD    ???
  2548. Return: ???
  2549.     STACK unchanged
  2550. ----------60----DI0E04-----------------------
  2551. INT 60 u - HP 95LX System Manager - "M_COMM_ANSWER"
  2552.     DI = 0E04h
  2553.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2554.         WORD    ???
  2555.         WORD    ???
  2556. Return: ???
  2557.     STACK unchanged
  2558. ----------60----DI0E05-----------------------
  2559. INT 60 u - HP 95LX System Manager - "M_COMM_DIAL"
  2560.     DI = 0E05h
  2561.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2562.         WORD    ???
  2563.         DWORD    pointer to ???
  2564. Return: ???
  2565.     STACK unchanged
  2566. ----------60----DI0E06-----------------------
  2567. INT 60 u - HP 95LX System Manager - RESET COMMUNICATIONS CHANNEL
  2568.     DI = 0E06h
  2569.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2570.         WORD    comm channel handle
  2571.         WORD    reset options
  2572.             bit 0: reset line
  2573.             bit 1: flush transmit buffer
  2574.             bit 2: flush receive buffer
  2575.             bit 3: reset modem
  2576.             bit 4: reset receiver's ^S state
  2577.             bit 5: reset transmitter's ^S state
  2578. Return: ???
  2579.     STACK unchanged
  2580. ----------60----DI0E07-----------------------
  2581. INT 60 u - HP 95LX System Manager - "M_COMM_HANGUP"
  2582.     DI = 0E07h
  2583.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2584.         WORD    ???
  2585. Return: ???
  2586.     STACK unchanged
  2587. ----------60----DI0E08-----------------------
  2588. INT 60 u - HP 95LX System Manager - SEND DATA OVER COMM CHANNEL
  2589.     DI = 0E08h
  2590.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2591.         WORD    comm channel handle
  2592.         DWORD    pointer to data to be sent
  2593.         WORD    option flags
  2594.             bit 0: send partial buffer
  2595.             bit 1: turn on receiver after sending
  2596.         DWORD    pointer to WORD containing length of data to be sent
  2597. Return: length WORD updated to contain number of bytes actually sent???
  2598.     STACK unchanged
  2599. SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh
  2600. ----------60----DI0E09-----------------------
  2601. INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL TRANSMIT QUEUE
  2602.     DI = 0E09h
  2603.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2604.         WORD    ???
  2605.         DWORD    pointer to ??? WORD
  2606.         DWORD    pointer to ??? WORD
  2607. Return: ???
  2608.     STACK unchanged
  2609. SeeAlso: INT 60/DI=0E0Ah
  2610. ----------60----DI0E0A-----------------------
  2611. INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL RECEIVE QUEUE
  2612.     DI = 0E0Ah
  2613.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2614.         WORD    comm channel handle
  2615.         DWORD    pointer to WORD to get receive buffer size
  2616.         DWORD    pointer to WORD to get free bytes in receive buffer
  2617. Return: ???
  2618.     STACK unchanged
  2619. SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh
  2620. ----------60----DI0E0B-----------------------
  2621. INT 60 u - HP 95LX System Manager - RECEIVE DATA FROM COMM CHANNEL
  2622.     DI = 0E0Bh
  2623.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2624.         WORD    comm channel handle
  2625.         DWORD    pointer to data buffer
  2626.         DWORD    pointer to WORD (input) length of data buffer
  2627.                     (output) number of bytes received
  2628. Return: ???
  2629.     STACK unchanged
  2630. SeeAlso: INT 60/DI=0E08h,INT 60/DI=0E0Ah
  2631. ----------60----DI0E0C-----------------------
  2632. INT 60 u - HP 95LX System Manager - "M_COMM_HAZCMD"
  2633.     DI = 0E0Ch
  2634.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2635.         WORD    ???
  2636.         DWORD    pointer to ???
  2637.         WORD    ???
  2638. Return: ???
  2639.     STACK unchanged
  2640. ----------60----DI0E0D-----------------------
  2641. INT 60 u - HP 95LX System Manager - "M_COMM_COMAND"
  2642.     DI = 0E0Dh
  2643.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2644.         WORD    ???
  2645.         DWORD    pointer to ???
  2646.         WORD    ???
  2647. Return: ???
  2648.     STACK unchanged
  2649. ----------60----DI0E0E-----------------------
  2650. INT 60 u - HP 95LX System Manager - "M_COMM_BREAK"
  2651.     DI = 0E0Eh
  2652.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2653.         WORD    ???
  2654.         WORD    ???
  2655. Return: ???
  2656.     STACK unchanged
  2657. ----------60----DI0E0F-----------------------
  2658. INT 60 u - HP 95LX System Manager - "M_COMM_FRCXON"
  2659.     DI = 0E0Fh
  2660.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2661.         WORD    ???
  2662. Return: ???
  2663.     STACK unchanged
  2664. ----------60----DI0E10-----------------------
  2665. INT 60 u - HP 95LX System Manager - "M_COMM_FRCXOF"
  2666.     DI = 0E10h
  2667.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2668.         WORD    ???
  2669. Return: ???
  2670.     STACK unchanged
  2671. ----------60----DI0E11-----------------------
  2672. INT 60 u - HP 95LX System Manager - "M_COMM_SETDTR"
  2673.     DI = 0E11h
  2674.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2675.         WORD    ???
  2676.         WORD    ???
  2677. Return: ???
  2678.     STACK unchanged
  2679. ----------60----DI0E12-----------------------
  2680. INT 60 u - HP 95LX System Manager - "M_COMM_XMITNG"
  2681.     DI = 0E12h
  2682.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2683.         WORD    ???
  2684. Return: ???
  2685.     STACK unchanged
  2686. ----------60----DI0E13-----------------------
  2687. INT 60 u - HP 95LX System Manager - "M_COMM_STATUS"
  2688.     DI = 0E13h
  2689.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2690.         WORD    ???
  2691. Return: ???
  2692.     STACK unchanged
  2693. ----------60----DI0E14-----------------------
  2694. INT 60 u - HP 95LX System Manager - SET COMMUNICATIONS SETTINGS
  2695.     DI = 0E14h
  2696.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2697.         WORD    comm channel handle
  2698.         DWORD    pointer to comm settings (see below)
  2699. Return: ???
  2700.     STACK unchanged
  2701. SeeAlso: INT 60/DI=0E15h
  2702.  
  2703. Format of comm settings:
  2704. Offset    Size    Description
  2705.  00h    BYTE    dial type ('T' tone, 'P' pulse)
  2706.  01h    WORD    baud rate divisor (115200/baud_rate)
  2707.  03h    BYTE    parity (00h none, 08h odd, 18h even, 28h mark, 38h space)
  2708.  04h    BYTE    stop bits (00h one, 04h two)
  2709.  05h    BYTE    data bits - 5
  2710.  06h    BYTE    software handshake
  2711.          01h none, 02h XOFF/XON, 04h XOFF/any, 08h ENQ/ACK
  2712.  07h    BYTE    infrared (01h off, 02h on)
  2713.  08h    BYTE    duplex (01h half, 02h full)
  2714.  09h    BYTE    echo (01h echo, 02h no echo)
  2715. ----------60----DI0E15-----------------------
  2716. INT 60 u - HP 95LX System Manager - GET COMMUNICATIONS SETTINGS
  2717.     DI = 0E15h
  2718.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2719.         WORD    ???
  2720.         DWORD    pointer to buffer for settings (see INT 60/DI=0E14h)
  2721. Return: ???
  2722.     STACK unchanged
  2723. SeeAlso: INT 60/DI=0E14h
  2724. ----------60----DI0E16-----------------------
  2725. INT 60 u - HP 95LX System Manager - "M_COMM_CNFGUR"
  2726.     DI = 0E16h
  2727.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2728.         WORD    ???
  2729.         WORD    ???
  2730.         WORD    ???
  2731.         WORD    ???
  2732.         WORD    ???
  2733. Return: ???
  2734.     STACK unchanged
  2735. ----------60----DI0E17-----------------------
  2736. INT 60 u - HP 95LX System Manager - "M_COMM_QRYERR"
  2737.     DI = 0E17h
  2738.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2739.         WORD    ???
  2740. Return: ???
  2741.     STACK unchanged
  2742. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2743. ----------60----DI0F00-----------------------
  2744. INT 60 u - HP 95LX System Manager - "M_ERRMSG"
  2745.     DI = 0F00h
  2746.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2747.         WORD    ???
  2748.         DWORD    pointer to ???
  2749.         WORD    ???
  2750.         DWORD    pointer to ???
  2751. Return: ???
  2752.     STACK unchanged
  2753. ----------60----DI0F01-----------------------
  2754. INT 60 u - HP 95LX System Manager - DRAW STANDARD TITLE BOX
  2755.     DI = 0F01h
  2756.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2757.         DWORD    pointer to ASCIZ title string
  2758. Return: ???
  2759.     STACK unchanged
  2760. ----------60----DI0F02-----------------------
  2761. INT 60 u - HP 95LX System Manager - "SHOWNAME"
  2762.     DI = 0F02h
  2763.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2764.         DWORD    pointer to ???
  2765. Return: ???
  2766.     STACK unchanged
  2767. ----------60----DI0F03-----------------------
  2768. INT 60 u - HP 95LX System Manager - DISPLAY TWO-LINE MESSAGE BOX
  2769.     DI = 0F03h
  2770.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2771.         DWORD    pointer to first line of message
  2772.         WORD    length of first line
  2773.         DWORD    pointer to second line of message
  2774.         WORD    length of second line
  2775. Return: ???
  2776.     STACK unchanged
  2777. SeeAlso: INT 60/DI=0300h,INT 60/DI=0F04h,INT 60/DI=0F09h
  2778. ----------60----DI0F04-----------------------
  2779. INT 60 u - HP 95LX System Manager - REMOVE MESSAGE BOX
  2780.     DI = 0F04h
  2781.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2782. Return: ???
  2783.     STACK unchanged
  2784. SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F09h
  2785. ----------60----DI0F05-----------------------
  2786. INT 60 u - HP 95LX System Manager - "M_COM_TIMER_ADDR"
  2787.     DI = 0F05h
  2788.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2789. Return: DX:AX -> ???
  2790.     STACK unchanged
  2791. ----------60----DI0F06-----------------------
  2792. INT 60 u - HP 95LX System Manager - "M_COM_TIMER_COUNT_ADDR"
  2793.     DI = 0F06h
  2794.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2795. Return: DX:AX -> ???
  2796.     STACK unchanged
  2797. ----------60----DI0F07-----------------------
  2798. INT 60 u - HP 95LX System Manager - "M_SYS_RSRC_ADDR"
  2799.     DI = 0F07h
  2800.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2801. Return: DX:AX -> ???
  2802.     STACK unchanged
  2803. ----------60----DI0F08-----------------------
  2804. INT 60 u - HP 95LX System Manager - "M_BIOS_OUTSTR"
  2805.     DI = 0F08h
  2806.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2807.         ???
  2808. Return: ???
  2809.     STACK unchanged
  2810. ----------60----DI0F09-----------------------
  2811. INT 60 u - HP 95LX System Manager - DISPLAY THREE-LINE MESSAGE BOX
  2812.     DI = 0F09h
  2813.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2814.         DWORD    pointer to first line of message
  2815.         WORD    length of first line
  2816.         DWORD    pointer to second line of message
  2817.         WORD    length of second line
  2818.         DWORD    pointer to third line of message
  2819.         WORD    length of third line
  2820. Return: ???
  2821.     STACK unchanged
  2822. SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F04h
  2823. ----------60----DI0F0A-----------------------
  2824. INT 60 u - HP 95LX System Manager - DISABLE MACROS
  2825.     DI = 0F0Ah
  2826.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2827. Return: ???
  2828.     STACK unchanged
  2829. SeeAlso: INT 60/DI=0F0Bh
  2830. ----------60----DI0F0B-----------------------
  2831. INT 60 u - HP 95LX System Manager - ENABLE MACROS
  2832.     DI = 0F0Bh
  2833.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2834. Return: ???
  2835.     STACK unchanged
  2836. SeeAlso: INT 60/DI=0F0Ah
  2837. ----------60----DI0F0C-----------------------
  2838. INT 60 u - HP 95LX System Manager - "M_DATE_TIME_SEPS"
  2839.     DI = 0F0Ch
  2840.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2841.         ???
  2842. Return: ???
  2843.     STACK unchanged
  2844. ----------60----DI0F0D-----------------------
  2845. INT 60 u - HP 95LX System Manager - "M_FORM_FT"
  2846.     DI = 0F0Dh
  2847.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2848.         DWORD    pointer to ???
  2849. Return: DX:AX -> ???
  2850.     STACK unchanged
  2851. ----------60----DI0F0E-----------------------
  2852. INT 60 u - HP 95LX System Manager - "M_RAM_IV_INFO"
  2853.     DI = 0F0Eh
  2854.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2855.         DWORD    pointer to ???
  2856. Return: DX:AX -> ???
  2857.     STACK unchanged
  2858. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2859. ----------60----DI1005-----------------------
  2860. INT 60 u - HP 95LX System Manager - "M_DIRTY_SYNC" - FORCE SCREEN UPDATE
  2861.     DI = 1005h
  2862.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2863. Return: ???
  2864.     STACK unchanged
  2865. SeeAlso: INT 10/AH=FFh,INT 60/DI=0300h,INT 60/DI=0301h
  2866. ----------60----DI1200-----------------------
  2867. INT 60 u - HP 95LX System Manager - RESOURCE SERVICE "MAP_RESOURCE_FILE"
  2868.     DI = 1200h
  2869.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2870.         DWORD    pointer to ???
  2871. Return: ???
  2872.     STACK unchanged
  2873. ----------60----DI1201-----------------------
  2874. INT 60 u - HP 95LX System Manager - "GET_RESOURCE_PTR"
  2875.     DI = 1201h
  2876.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2877.         WORD    ???
  2878. Return: DX:AX -> ???
  2879.     STACK unchanged
  2880. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2881. ----------60----DI1202-----------------------
  2882. INT 60 u - HP 95LX System Manager - "GET_RSRC_TAB_PTR"
  2883.     DI = 1202h
  2884.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2885. Return: DX:AX -> ???
  2886.     STACK unchanged
  2887. ----------60----DI1203-----------------------
  2888. INT 60 u - HP 95LX System Manager - "INIT_SYSGMR_RSRCS"
  2889.     DI = 1203h
  2890.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2891. Return: ???
  2892.     STACK unchanged
  2893. ----------60----DI1300-----------------------
  2894. INT 60 u - HP 95LX System Manager - INITIALIZE HELP SYSTEM
  2895.     DI = 1300h
  2896.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2897.         DWORD    pointer to ???
  2898.         DWORD    pointer to ???
  2899.         WORD    ???
  2900. Return: ???
  2901.     STACK unchanged
  2902. ----------60----DI1301-----------------------
  2903. INT 60 u - HP 95LX System Manager - DISPLAY HELP
  2904.     DI = 1301h
  2905.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2906.         DWORD    pointer to ???
  2907. Return: ???
  2908.     STACK unchanged
  2909. ----------60----DI1302-----------------------
  2910. INT 60 u - HP 95LX System Manager - "M_HELP_KEY"
  2911.     DI = 1302h
  2912.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2913.         DWORD    pointer to ???
  2914.         WORD    ???
  2915. Return: ???
  2916.     STACK unchanged
  2917. ----------60----DI1303-----------------------
  2918. INT 60 u - HP 95LX System Manager - "M_HELP_TERM"
  2919.     DI = 1303h
  2920.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2921.         DWORD    pointer to ???
  2922. Return: ???
  2923.     STACK unchanged
  2924. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2925. ----------60----DI1400-----------------------
  2926. INT 60 u - HP 95LX System Manager - "M_ColInit"
  2927.     DI = 1400h
  2928.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2929. Return: AX = ???
  2930.     STACK unchanged
  2931. ----------60----DI1401-----------------------
  2932. INT 60 u - HP 95LX System Manager - "M_ColCpStr"
  2933.     DI = 1401h
  2934.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2935.         DWORD    pointer to ???
  2936.         WORD    ???
  2937.         DWORD    pointer to ???
  2938.         WORD    ???
  2939. Return: ???
  2940.     STACK unchanged
  2941. ----------60----DI1402-----------------------
  2942. INT 60 u - HP 95LX System Manager - "M_ColLicsStr"
  2943.     DI = 1402h
  2944.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2945.         ???
  2946. Return: ???
  2947.     STACK unchanged
  2948. ----------60----DI1403-----------------------
  2949. INT 60 u - HP 95LX System Manager - "M_ColLicsChar"
  2950.     DI = 1403h
  2951.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2952.         ???
  2953. Return: ???
  2954.     STACK unchanged
  2955. ----------60----DI1404-----------------------
  2956. INT 60 u - HP 95LX System Manager - "M_ColToLower"
  2957.     DI = 1404h
  2958.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2959.         DWORD    pointer to ???
  2960.         WORD    ???
  2961. Return: ???
  2962.     STACK unchanged
  2963. ----------60----DI1405-----------------------
  2964. INT 60 u - HP 95LX System Manager - "M_ColCpSearch"
  2965.     DI = 1405h
  2966.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2967.         DWORD    pointer to ???
  2968.         WORD    ???
  2969.         DWORD    pointer to ???
  2970.         WORD    ???
  2971.         WORD    ???
  2972. Return: ???
  2973.     STACK unchanged
  2974. ----------60----DI1406-----------------------
  2975. INT 60 u - HP 95LX System Manager - "M_ColToUpper"
  2976.     DI = 1406h
  2977.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2978.         DWORD    pointer to ???
  2979.         WORD    ???
  2980. Return: ???
  2981.     STACK unchanged
  2982. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2983. ----------60----DI1500-----------------------
  2984. INT 60 u - HP 95LX System Manager - "GrDispInit"
  2985.     DI = 1500h
  2986.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2987.         ???
  2988. Return: ???
  2989.     STACK unchanged
  2990. ----------60----DI1501-----------------------
  2991. INT 60 u - HP 95LX System Manager - "GrDispClear"
  2992.     DI = 1501h
  2993.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2994.         ???
  2995. Return: ???
  2996.     STACK unchanged
  2997. ----------60----DI1502-----------------------
  2998. INT 60 u - HP 95LX System Manager - "GrDispDot"
  2999.     DI = 1502h
  3000.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3001.         ???
  3002. Return: ???
  3003.     STACK unchanged
  3004. ----------60----DI1503-----------------------
  3005. INT 60 u - HP 95LX System Manager - "GrDispDraw"
  3006.     DI = 1503h
  3007.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3008.         ???
  3009. Return: ???
  3010.     STACK unchanged
  3011. ----------60----DI1504-----------------------
  3012. INT 60 u - HP 95LX System Manager - "GrDispFill"
  3013.     DI = 1504h
  3014.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3015.         ???
  3016. Return: ???
  3017.     STACK unchanged
  3018. ----------60----DI1505-----------------------
  3019. INT 60 u - HP 95LX System Manager - "GrDispRead"
  3020.     DI = 1505h
  3021.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3022.         ???
  3023. Return: ???
  3024.     STACK unchanged
  3025. ----------60----DI1506-----------------------
  3026. INT 60 u - HP 95LX System Manager - "GrDispString"
  3027.     DI = 1506h
  3028.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3029.         ???
  3030. Return: ???
  3031.     STACK unchanged
  3032. ----------60----DI1507-----------------------
  3033. INT 60 u - HP 95LX System Manager - "GrDispPan"
  3034.     DI = 1507h
  3035.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3036.         ???
  3037. Return: ???
  3038.     STACK unchanged
  3039. ----------60----DI1508-----------------------
  3040. INT 60 u - HP 95LX System Manager - "GrDispZoom"
  3041.     DI = 1508h
  3042.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3043.         ???
  3044. Return: ???
  3045.     STACK unchanged
  3046. ----------60----DI1509-----------------------
  3047. INT 60 u - HP 95LX System Manager - "GrDispSave"
  3048.     DI = 1509h
  3049.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3050.         ???
  3051. Return: ???
  3052.     STACK unchanged
  3053. ----------60----DI150A-----------------------
  3054. INT 60 u - HP 95LX System Manager - "GrDispRestore"
  3055.     DI = 150Ah
  3056.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3057.         ???
  3058. Return: ???
  3059.     STACK unchanged
  3060. ----------60----DI150B-----------------------
  3061. INT 60 u - HP 95LX System Manager - "GrDispCorner"
  3062.     DI = 150Bh
  3063.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3064.         ???
  3065. Return: ???
  3066.     STACK unchanged
  3067. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  3068. ----------60----DI1604-----------------------
  3069. INT 60 u - HP 95LX System Manager - "CP_TO_LICS"
  3070.     DI = 1604h
  3071.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3072.         ???
  3073. Return: ???
  3074.     STACK unchanged
  3075. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  3076. ----------6000-------------------------------
  3077. INT 60 - SYS_PROF.EXE - PROFILER STATUS
  3078.     AH = 00h
  3079. Return: AX = 0000h    profiling is off
  3080.         otherwise profiling is on
  3081. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
  3082. SeeAlso: AH=01h"SYS_PROF",02h"SYS_PROF"
  3083. ----------6000-------------------------------
  3084. INT 60 - MDEBUG - GET STATUS
  3085.     AH = 00h
  3086.     DS:SI -> password or a null byte
  3087. Return: AX = return code
  3088.         FFFEh password is invalid
  3089.         FFFDh display mode is invalid
  3090.        else successful
  3091.         ES = value of the monitor register SE
  3092.         DI = value of the monitor register OF
  3093.         CH = monitor color
  3094.         CL = interpreter color
  3095.         BH = monitor start line
  3096.         BL = interpreter start line
  3097.         AH = makecode of the hotkey
  3098.         AL = ASCII code of the hotkey
  3099.         DL = status of special keys (only SHIFT, ALT, CTRL) for the
  3100.             hotkey (coded as for the keyboard flag at 0040h:0017h)
  3101.         DH = basic process number for the communication with drivers
  3102.             process number for the display driver, DH+1 = process
  3103.             number for the command driver(s)
  3104.     DS:SI -> MDEBUG identification table
  3105. Notes:    MDEBUG is a shareware memory-resident debugging tool by Bernd Schemmer,
  3106.       including a memory monitor, an interpreter, and a disassembler
  3107.     MDEBUG uses INT 60 by default, but may be directed to any of INT 60
  3108.       through INT 67; the interrupt handler is preceded by the signature
  3109.       "USERINT" and is not chained
  3110.     if DS:SI points at a null byte, MDEBUG will prompt for a password if
  3111.       passwords are active; enough stack space must be provided for an
  3112.       INT 10h call (which MDEBUG uses while prompting for the password)
  3113. SeeAlso: AH=02h"MDEBUG"
  3114.  
  3115. Format of MDEBUG identification table:
  3116. Offset    Size    Description
  3117.  -2    WORD    entry offset
  3118.  00h    WORD    CS of MDEBUG
  3119.  02h    DWORD    old INT 08h vector
  3120.  06h    DWORD    old INT 09h vector
  3121.  0Ah    DWORD    address INT 16h routine used by MDEBUG
  3122.  0Eh    BYTE    length of version string
  3123.  0Fh  N BYTEs    version string
  3124. ----------6001-------------------------------
  3125. INT 60 - MDEBUG - GET ADDRESS OF THE HELP REGISTERS
  3126.     AH = 01h
  3127.     DS:SI -> password or a null byte
  3128. Return: AX = return code
  3129.         FFFEh password is invalid
  3130.         FFFDh display mode is invalid
  3131.        else successful
  3132.         ES:DI point to the help registers of MDEBUG
  3133.            ES:DI-02h  -> R0 (WORD)
  3134.            ES:DI      -> R1 (WORD)
  3135.            ES:DI+02h  -> R2 (WORD)
  3136.            ES:DI+04h  -> R3 (WORD)
  3137.            ...
  3138.            ES:DI+0Eh  -> R8 (WORD)
  3139. ----------6001-------------------------------
  3140. INT 60 - SYS_PROF.EXE - TURN PROFILING OFF
  3141.     AH = 01h
  3142. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
  3143. SeeAlso: AH=00h"SYS_PROF",02h"SYS_PROF"
  3144. ----------6001FF-----------------------------
  3145. INT 60 - FTP Packet Driver - BASIC FUNC - GET DRIVER INFO
  3146.     AX = 01FFh
  3147.     BX = handle returned by function 02h
  3148. Return: CF set on error
  3149.         DH = error code (see below)
  3150.     CF clear if successful
  3151.         BX = version
  3152.         CH = network interface class (see below)
  3153.         DX = interface type (see below)
  3154.         CL = number
  3155.         DS:SI -> name
  3156.         AL = driver functions supported
  3157.         01h basic
  3158.         02h basic and extended
  3159.         05h basic and high-performance
  3160.         06h basic, high-performance, and extended
  3161.         FFh not installed
  3162. Note:    the handle in BX is optional for drivers written to v1.07 or later of
  3163.       the packet driver specification
  3164.  
  3165. Values for error code:
  3166.  01h "BAD_HANDLE"    invalid handle number 
  3167.  02h "NO_CLASS"        no interfaces of the specified class found
  3168.  03h "NO_TYPE"        no interfaces of the specified type found
  3169.  04h "NO_NUMBER"    no interfaces of the specified number found
  3170.  05h "BAD_TYPE"        bad packet type
  3171.  06h "NO_MULTICAST"    interface does not support multicast messages
  3172.  07h "CANT_TERMINATE"    this packet driver cannot terminate
  3173.  08h "BAD_MODE"        invalid receiver mode
  3174.  09h "NO_SPACE"        insufficient space
  3175.  0Ah "TYPE_INUSE"    type accessed but never released
  3176.  0Bh "BAD_COMMAND"    bad command
  3177.  0Ch "CANT_SEND"    packet could not be sent
  3178.  0Dh "CANT_SET"        hardware address could not be changed
  3179.  0Eh "BAD_ADDRESS"    hardware address has a bad length or format
  3180.  0Fh "CANT_RESET"    could not reset interface
  3181.  
  3182. Values for Network Interface classes/types:
  3183.     Class 01h  Ethernet/IEEE 802.3     
  3184.     01h 3COM 3C500/3C501
  3185.     02h 3COM 3C505
  3186.     03h MICOM-Interlan NI5010
  3187.     04h BICC Data Networks 4110
  3188.     05h BICC Data Networks 4117
  3189.     06h MICOM-Interlan NP600
  3190.     08h Ungermann-Bass PC-NIC
  3191.     09h Univation NC-516
  3192.     0Ah TRW PC-2000    
  3193.     0Bh MICOM-Interlan NI5210
  3194.     0Ch 3COM 3C503
  3195.     0Dh 3COM 3C523
  3196.     0Eh Western Digital WD8003
  3197.     0Fh Spider Systems S4
  3198.     10h Torus Frame Level
  3199.     11h 10Net Communications
  3200.     12h Gateway PC-bus
  3201.     13h Gateway AT-bus
  3202.     14h Gateway MCA-bus
  3203.     15h IMC PCnic
  3204.     16h IMC PCnic II
  3205.     17h IMC PCnic 8-bit
  3206.     18h Tigan Communications
  3207.     19h Micromatic Research
  3208.     1Ah Clarkson "Multiplexor"
  3209.     1Bh D-Link 8-bit
  3210.     1Ch D-Link 16-bit
  3211.     1Dh D-Link PS/2
  3212.     1Eh Research Machines 8
  3213.     1Fh Research Machines 16
  3214.     20h Research Machines MCA
  3215.     21h Radix Microsystems EXM1 16-bit
  3216.     22h Interlan Ni9210
  3217.     23h Interlan Ni6510
  3218.     24h Vestra LANMASTER 16-bit
  3219.     25h Vestra LANMASTER 8-bit
  3220.     26h Allied Telesis PC/XT/AT
  3221.     27h Allied Telesis NEC PC-98
  3222.     28h Allied Telesis Fujitsu FMR
  3223.     29h Ungermann-Bass NIC/PS2
  3224.     2Ah Tiara LANCard/E AT
  3225.     2Bh Tiara LANCard/E MC
  3226.     2Ch Tiara LANCard/E TP
  3227.     2Dh Spider Communications SpiderComm 8
  3228.     2Eh Spider Communications SpiderComm 16
  3229.     2Fh AT&T Starlan NAU
  3230.     30h AT&T Starlan-10 NAU
  3231.     31h AT&T Ethernet NAU
  3232.     32h Intel smart card
  3233.     33h Xircom Packet Adapter
  3234.     34h Aquila Ethernet
  3235.     35h Novell NE1000
  3236.     36h Novell NE2000
  3237.     37h SMC PC-510
  3238.     38h AT&T Fiber NAU
  3239.     39h NDIS to Packet Driver adapter
  3240.     3Ah Racal-InterLan ES3210
  3241.     3Bh General Systems ISDN simulated Ethernet
  3242.     3Ch Hewlett-Packard
  3243.     3Dh IMC EtherNic-8
  3244.     3Eh IMC EtherNic-16
  3245.     3Fh IMC EtherNic-MCA
  3246.     40h NetWorth EtherNext
  3247.     41h Dataco Scanet
  3248.     42h DEC DEPCA
  3249.     43h C-Net
  3250.     44h Gandalf LANLine
  3251.     45h Apricot built-in
  3252.     46h David Systems Ether-T
  3253.     47h ODI to Packet Driver adapter
  3254.     48h AMD Am21110-16
  3255.     49h Intel ICD Network controller family
  3256.     4Ah Intel ICD PCL2
  3257.     4Bh Intel ICD PCL2A
  3258.     4Ch AT&T LANPacer
  3259.     4Dh AT&T LANPacer+
  3260.     4Eh AT&T EVB
  3261.     4Fh AT&T StarStation
  3262.     50h SLIP simulated ethernet
  3263.     51h Racal-Interlan NIA310
  3264.     52h Racal-Interlan NISE
  3265.     53h Racal-Interlan NISE30
  3266.     54h Racal-Interlan NI6610
  3267.     55h Ethernet over IP/UDP
  3268.     Class 02h  ProNET-10
  3269.     01h Proteon p1300
  3270.     02h Proteon p1800
  3271.     Class 03h  IEEE 802.5/ProNet-4
  3272.     01h IBM Token-Ring Adapter
  3273.     02h Proteon p1340
  3274.     03h Proteon p1344
  3275.     04h Gateway PC-bus
  3276.     05h Gateway AT-bus
  3277.     06h Gateway MCA-bus
  3278.     39h NDIS to Packet Driver adapter
  3279.     47h ODI to Packet Driver adapter
  3280.     Class 04h  Omninet
  3281.     Class 05h  Appletalk
  3282.     01h ATALK.SYS adapter
  3283.     Class 06h  Serial Line
  3284.     01h Clarkson 8250-SLIP
  3285.     02h Clarkson "Multiplexor"
  3286.     Class 07h  StarLAN (subsumed by Ethernet class)
  3287.     Class 08h  ARCnet
  3288.     01h Datapoint RIM
  3289.     Class 09h  AX.25
  3290.     01h Ottawa PI card
  3291.     Class 0Ah  KISS
  3292.     Class 0Bh  IEEE 802.3 with 802.2 headers
  3293.     types same as for class 01h
  3294.     Class 0Ch  FDDI with 802.2 headers
  3295.     01h Western Digital
  3296.     02h Frontier Technology
  3297.     Class 0Dh  Internet X.25
  3298.     01h Western Digital
  3299.     02h Frontier Technology
  3300.     Class 0Eh  N.T. LANSTAR (encapsulating DIX Ethernet)
  3301.     01h NT LANSTAR/8
  3302.     02h NT LANSTAR/MC
  3303.     Class 0Fh  SLFP (MIT serial specification)
  3304.     01h MERIT
  3305.     Class 10h  PPP (Point-to-Point Protocol)
  3306.  
  3307. Note: class and type numbers are cleared through FTP Software
  3308. ----------6002-------------------------------
  3309. INT 60 - MDEBUG - SET STATUS
  3310.     AH = 02h
  3311.     DS:SI -> password or a null byte
  3312.     ES = new value for the register SE
  3313.     DI = new value for the register OF
  3314.     CH = new monitor color if nonzero
  3315.     CL = new interpreter color if nonzero
  3316.     BH = new monitor start line if nonzero
  3317.     BL = new interpreter start line if nonzero
  3318.     AL = new ASCII code for the hotkey ('A'..'Z', 'a'..'z') if nonzero
  3319.     DL = new status of the special keys (SHIFT, ALT, CTRL) for the hotkey
  3320.         if nonzero
  3321.     DH = if nonzero, new basic process number for communication with the
  3322.         drivers (DH = multiplex number for the display driver,
  3323.         DH+1 = multiplex number for the command driver or drivers)
  3324. Return: AX = return code
  3325.         FFFFh call not allowed
  3326.         FFFEh password is invalid
  3327.         FFFDh display mode is invalid
  3328.         0000h successful, status changed
  3329.        else AL = error code
  3330.             bit 0 invalid monitor start line
  3331.             1 invalid interpreter start line
  3332.             2 invalid hotkey
  3333.             3 invalid process number
  3334.               4-7 reserved
  3335. Note:    the values of the registers SE and OF are always changed, the other
  3336.       values are only changed if they are valid
  3337. SeeAlso: AH=00h"MDEBUG"
  3338. ----------6002-------------------------------
  3339. INT 60 - FTP Packet Driver - BASIC FUNC - ACCESS TYPE
  3340.     AH = 02h
  3341.     AL = interface class
  3342.     BX = interface type
  3343.     DL = interface number
  3344.     DS:SI -> type
  3345.     CX = length of type (0000h for all packets)
  3346.     ES:DI -> receiver
  3347. Return: CF set on error
  3348.         DH = error code (see AX=01FFh)
  3349.     CF clear if successful
  3350.         AX = handle        
  3351. SeeAlso: AH=03h"FTP"
  3352.  
  3353. Receiver is called with:
  3354.     AX = subfunction
  3355.         00h get packet buffer
  3356.         DX = lookahead length (v1.10+)
  3357.         DS:SI -> lookahead buffer if DX nonzero (v1.10+)
  3358.         DI = error flags (class dependent) (v1.10+)
  3359.         Return: ES:DI -> packet buffer
  3360.                 0000h:0000h means throw away packet
  3361.             CX = size of buffer (v1.10+), may be smaller than
  3362.                 incoming data
  3363.         01h copy completed
  3364.         DS:SI -> buffer
  3365.         CX = bytes actually copied (v1.10+)
  3366.     BX = handle
  3367.     CX = buffer length
  3368. when a packet is received
  3369. ----------6002-------------------------------
  3370. INT 60 - SYS_PROF.EXE - TURN PROFILING ON
  3371.     AH = 02h
  3372. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
  3373. SeeAlso: AH=00h"SYS_PROF",01h"SYS_PROF"
  3374. ----------6003-------------------------------
  3375. INT 60 - MDEBUG - POP UP
  3376.     AH = 03h
  3377.     DS:SI -> password or a null byte
  3378.     ES -> new value for the register SE
  3379.     DI -> new value for the register OF
  3380. Return: AX = return code
  3381.         FFFFh call not allowed
  3382.         FFFEh password is invalid
  3383.         FFFDh display mode is invalid
  3384.        else successful
  3385. SeeAlso: AH=04h"MDEBUG"
  3386. ----------6003-------------------------------
  3387. INT 60 - FTP Packet Driver - BASIC FUNC - RELEASE TYPE
  3388.     AH = 03h
  3389.     BX = handle
  3390. Return: CF set on error
  3391.        DH = error code (see AX=01FFh)
  3392.     CF clear if successful    
  3393. SeeAlso: AH=02h"FTP"
  3394. ----------6003-------------------------------
  3395. INT 60 - SYS_PROF.EXE - GET ADDRESS OF PROFILING TABLE
  3396.     AH = 03h
  3397. Return: ES:BX -> profiling table
  3398. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
  3399. SeeAlso: AH=04h"SYS_PROF"
  3400. ----------6004-------------------------------
  3401. INT 60 - FTP Packet Driver - BASIC FUNC - SEND PACKET
  3402.     AH = 04h
  3403.     DS:SI -> buffer
  3404.     CX = length
  3405. Return: CF set on error
  3406.         DH = error code (see AX=01FFh)
  3407.     CF clear if successful
  3408. Note:    the buffer may be modified immediately upon return from this call
  3409. SeeAlso: AH=0Bh
  3410. ----------6004-------------------------------
  3411. INT 60 - MDEBUG - POP UP
  3412.     AH = 04h
  3413.     DS:SI -> password or a null byte
  3414. Return: AX = return code
  3415.         FFFFh call not allowed
  3416.         FFFEh password is invalid
  3417.         FFFDh display mode is invalid
  3418.        else successful
  3419. SeeAlso: AH=03h"MDEBUG",AH=07h"MDEBUG"
  3420. ----------6004-------------------------------
  3421. INT 60 - SYS_PROF.EXE - CLEAR PROFILING TABLE
  3422.     AH = 04h
  3423. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
  3424. SeeAlso: AH=03h"SYS_PROF"
  3425. ----------6005-------------------------------
  3426. INT 60 - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE
  3427.     AH = 05h
  3428.     BX = handle (optional for v1.10+)
  3429. Return: CF set on error
  3430.        DH = error code (see AX=01FFh)
  3431.     CF clear if successful
  3432. ----------6005-------------------------------
  3433. INT 60 - MDEBUG - GET AND SET MDEBUG FLAGS
  3434.     AH = 05h
  3435.     DS:SI -> password or a null byte
  3436.     BL = new value for the semaphor of MDEBUG
  3437.          00h  enable popup of MDEBUG
  3438.          else disable popup of MDEBUG
  3439. Return: AX = return code
  3440.         FFFEh password is invalid
  3441.         FFFDh display mode is invalid
  3442.        else successful
  3443.         BL = old value of the semapor of MDEBUG
  3444.         BH = old value of the INT 08h semaphor
  3445.             (this semaphor is always reset after this function)
  3446. ----------6006-------------------------------
  3447. INT 60 - FTP Packet Driver - BASIC FUNC - GET ADDRESS
  3448.     AH = 06h
  3449.     BX = handle (optional for v1.10+)
  3450.     ES:DI -> buffer
  3451.     CX = length
  3452. Return: CF set on error
  3453.         DH = error code (see AX=01FFh)
  3454.     CF clear if successful
  3455.         CX = length    
  3456. Note:    copies the local net address associated with the handle into the buffer
  3457. ----------6006-------------------------------
  3458. INT 60 - MDEBUG - GET PASSWORD STATUS
  3459.     AH = 06h
  3460. Return: AL = status
  3461.         00h password inactive
  3462.         01h password active
  3463. ----------6007-------------------------------
  3464. INT 60 - FTP Packet Driver - BASIC FUNC - RESET INTERFACE
  3465.     AH = 07h
  3466.     BX = handle (optional for v1.10+)
  3467. Return: CF set on error
  3468.         DH = error code (see AX=01FFh)
  3469.     CF clear if successful
  3470. ----------6007-------------------------------
  3471. INT 60 - MDEBUG v1.70+ - GET ACTIVE PART OF MDEBUG
  3472.     AH = 07h
  3473. Return: AL = active part for the next popup session of MDEBUG:
  3474.         bit 0: the next popup session will start in the interpreter rather
  3475.                  than in the monitor
  3476.         bit 1: the next popup session will sart in the online-help
  3477. SeeAlso: AH=03h"MDEBUG",AH=04h"MDEBUG"
  3478. ----------6008-------------------------------
  3479. INT 60 - MDEBUG - UNUSED
  3480.     AH = 08h-FFh
  3481. Return: AX = FFFCh
  3482. ----------600A-------------------------------
  3483. INT 60 - FTP Packet Driver 1.09+ - HIGH-PERF FUNC - GET PARAMETERS
  3484.     AH = 0Ah
  3485. Return: CF set on error
  3486.         DH = error code (0Bh) (see AX=01FFh)
  3487.     CF clear if successful
  3488.         ES:DI -> parameter table (see below)
  3489.  
  3490. Format of parameter table:
  3491. Offset    Size    Description
  3492.  00h    BYTE    major revision of packet driver spec driver conforms to
  3493.  01h    BYTE    minor revision of packet driver spec
  3494.  02h    BYTE    length of this structure in bytes
  3495.  03h    BYTE    length of a MAC-layer address
  3496.  04h    WORD    maximum transfer unit, including MAC headers
  3497.  06h    WORD    buffer size for multicast addr
  3498.  08h    WORD    number of receive buffers (one less than back-to-back MTU rcvs)
  3499.  0Ah    WORD    number of transmit buffers
  3500.  0Ch    WORD    interrupt number to hook for post-EOI processing, 00h=none
  3501. ----------600B-------------------------------
  3502. INT 60 - FTP Packet Driver 1.09 - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
  3503.     AH = 0Bh
  3504.     DS:SI -> buffer
  3505.     CX = length of buffer
  3506.     ES:DI -> FAR function to call when buffer becomes available
  3507. Return: CF set on error
  3508.         DH = error code (0Bh,0Ch) (see AX=01FFh)
  3509.     CF clear if successful
  3510. Notes:    unlike function 04h, the buffer is not available for modification as
  3511.       soon as the call returns; the buffer may be queued by the driver and
  3512.       not processed until later
  3513.     this function has been dropped from v1.10+ of the specification and
  3514.       replaced by function 0Ch
  3515. SeeAlso: AH=04h"Packet Driver",AH=0Ch"Packet Driver"
  3516.  
  3517. Completion function called with:
  3518.     AX = result
  3519.         00h copy OK
  3520.         nonzero error
  3521.     ES:DI -> buffer passed to INT 60/AH=0Bh call
  3522. ----------600C-------------------------------
  3523. INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
  3524.     AH = 0Ch
  3525.     ES:DI -> pointer to IOCB
  3526. Return: CF set on error
  3527.         DH = error code (see AX=01FFh)
  3528.     CF clear if successful
  3529. SeeAlso: AH=04h"Packet Driver",AH=0Bh"Packet Driver"
  3530.  
  3531. Format of IOCB:
  3532. Offset    Size    Description
  3533.  00h    DWORD    pointer to buffer
  3534.  04h    WORD    length of buffer
  3535.  06h    BYTE    flags
  3536.         bit 0: packet driver is finished with IOCB
  3537.         bit 1: application requests upcall when driver completes
  3538.  07h    DWORD    function address for upcall
  3539.  0Bh  4 BYTEs    future gather write
  3540.  0Fh    BYTE    ???
  3541.  10h  8 BYTEs    private driver workspace
  3542.  
  3543. Completion function called with:
  3544.     ES:DI -> IOCB passed to INT 60/AH=0Ch
  3545. ----------600C-------------------------------
  3546. INT 60 - Banyan VINES, 3com - GET STATION ADDRESS
  3547.     AH = 0Ch
  3548. Return: AL = status
  3549.         00h successful
  3550.         ES:SI -> 6-byte station address
  3551.         02h semaphore service is unavailable
  3552. ----------600D-------------------------------
  3553. INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - DROP PACKET FROM QUEUE
  3554.     AH = 0Dh
  3555.     ES:DI -> IOCB
  3556. Return: CF set on error
  3557.         DH = error code (see AX=01FFh)
  3558.     CF clear if successful
  3559. SeeAlso: AH=0Ch"Packet Driver"
  3560. ----------6011-------------------------------
  3561. INT 60 - 3com, 10-NET, Banyan VINES - LOCK AND WAIT
  3562.     AH = 11h
  3563.     AL = drive number or 0
  3564.     DX = number of seconds to wait
  3565.     ES:SI = Ethernet address or 0
  3566.     DS:BX -> 31-byte ASCIZ semaphore name
  3567. Return: AL = status
  3568.         00h successful
  3569.         01h timeout
  3570.         02h server not responding
  3571.         03h invalid semaphore name
  3572.         04h semaphore list is full
  3573.         05h invalid drive ID
  3574.         06h invalid Ethernet address
  3575.         07h not logged in
  3576.         08h write to network failed
  3577.         09h semaphore already logged for this CPU
  3578. SeeAlso: AH=12h,AH=13h
  3579. ----------6012-------------------------------
  3580. INT 60 - 3com, 10-NET, Banyan VINES - LOCK
  3581.     AH = 12h
  3582.     AL = drive number or 00h
  3583.     ES:SI = Ethernet address or 0000h:0000h
  3584.     DS:BX -> 31-byte ASCIZ semaphore name
  3585. Return: AL = status (see also AH=11h)
  3586.         01h semaphore currently locked by another PC
  3587. Note:    unlike function 11h, this function returns immediately
  3588. SeeAlso: AH=11h,AH=13h
  3589. ----------6013-------------------------------
  3590. INT 60 - 3com, 10-NET, Banyan VINES - UNLOCK
  3591.     AH = 13h
  3592.     AL = drive number or 00h
  3593.     ES:SI = Ethernet address or 0000h:0000h
  3594.     DS:BX -> 31-byte ASCIZ semaphore name
  3595. Return: AL = status (see also AH=11h)
  3596.         1 semaphore not locked
  3597. SeeAlso: AH=11h,AH=12h
  3598. ----------6014-------------------------------
  3599. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET RECEIVE MODE
  3600.     AH = 14h
  3601.     BX = handle (optional for v1.10+)
  3602.     CX = mode
  3603.         01h turn off receiver
  3604.         02h receive only packets sent to this interface
  3605.         03h mode 2 plus broadcast packets
  3606.         04h mode 3 plus limited multicast packets
  3607.         05h mode 3 plus all multicast packets
  3608.         06h all packets
  3609.         07h raw mode for serial line only (v1.10+)
  3610. Return: CF set on error
  3611.        DH = error code (01h,08h) (see AX=01FFh)
  3612.     CF clear if successful
  3613. SeeAlso: AH=15h
  3614. ----------6015-------------------------------
  3615. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET RECEIVE MODE
  3616.     AH = 15h
  3617.     BX = handle (optional for v1.10+)
  3618. Return: CF set on error
  3619.         DH = error code (01h) (see AX=01FFh)
  3620.     CF clear if successful
  3621.         AX = mode    
  3622. SeeAlso: AH=14h
  3623. ----------6016-------------------------------
  3624. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET MULTICAST LIST
  3625.     AH = 16h
  3626.     ES:DI -> multicast list
  3627.     CX = length of list in bytes
  3628. Return: CF set on error
  3629.         DH = error code (06h,09h,0Eh) (see AX=01FFh)
  3630.     CF clear if successful
  3631. SeeAlso: AH=17h
  3632. ----------6017-------------------------------
  3633. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET MULTICAST LIST
  3634.     AH = 17h
  3635. Return: CF set on error
  3636.         DH = error code (06h,09h) (see AX=01FFh)
  3637.     CF clear if successful
  3638.         ES:DI -> multicast addresses (do not modify)
  3639.         CX = bytes of multicast addresses currently in use
  3640. SeeAlso: AH=16h
  3641. ----------6018-------------------------------
  3642. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET STATISTICS
  3643.     AH = 18h
  3644.     BX = handle (optional for v1.10+)
  3645. Return: CF set on error
  3646.         DH = error code (01h) (see AX=01FFh)
  3647.     CF clear if successful
  3648.         DS:SI -> statistics (see below)
  3649.  
  3650. Format of statistics:
  3651. Offset    Size    Description
  3652.  00h    DWORD    packets in
  3653.  04h    DWORD    packets out
  3654.  08h    DWORD    bytes in
  3655.  0Ch    DWORD    bytes out
  3656.  10h    DWORD    errors in
  3657.  14h    DWORD    errors out
  3658.  18h    DWORD    packets dropped
  3659. ----------6019-------------------------------
  3660. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET NETWORK ADDRESS
  3661.     AH = 19h
  3662.     ES:DI -> address
  3663.     CX = length of address
  3664. Return: CF set on error
  3665.         DH = error code (0Dh,0Eh) (see AX=01FFh)
  3666.     CF clear if successful
  3667.         CX = length
  3668. ----------601A-------------------------------
  3669. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - SEND RAW BYTES
  3670.     AH = 1Ah
  3671.     DS:SI -> buffer
  3672.     CX = length of buffer
  3673. Return: CF set on error
  3674.         DH = error code (see AX=01FFh)
  3675.     CF clear if successful
  3676. SeeAlso: AH=1Ch
  3677. ----------601B-------------------------------
  3678. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FLUSH RAW BYTES RECEIVED
  3679.     AH = 1Bh
  3680. Return: CF set on error
  3681.         DH = error code (see AX=01FFh)
  3682.     CF clear if successful
  3683. SeeAlso: AH=1Ch
  3684. ----------601C-------------------------------
  3685. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FETCH RAW BYTES RECEIVED
  3686.     AH = 1Ch
  3687.     DS:SI -> buffer
  3688.     CX = length of buffer
  3689.     DX = timeout in clock ticks
  3690. Return: CF set on error
  3691.         DH = error code (see AX=01FFh)
  3692.     CF clear if successful
  3693.         CX = number of bytes transferred to buffer
  3694. SeeAlso: AH=1Ah,AH=1Bh
  3695. ----------60AD-------------------------------
  3696. INT 60 - AccessDOS - API
  3697.     AH = ADh
  3698.     AL = function
  3699.         E1h ???
  3700.         Return: AX = ???
  3701.         E2h get configuration
  3702.         Return: BX:AX -> configuration data
  3703. Notes:    AccessDOS is a public domain TSR developed at The Trace Research and
  3704.       Development Center which provides extensions for keyboard, mouse,
  3705.       and sound access by the visually, hearing, or motor-control
  3706.       impaired.
  3707.     INT 60 is the default vector; AccessDOS will use the first 0000h:0000h
  3708.       vector in the range 60h through 66h.
  3709. ----------61---------------------------------
  3710. INT 61 - reserved for user interrupt
  3711. ----------61---------------------------------
  3712. INT 61 - Atari Portfolio - EXTENDED BIOS
  3713.    provides subfunctions such as turning off the machine, accessing internal
  3714.    variables, and mapping memory cards
  3715. SeeAlso: INT 60"Atari"
  3716. ----------61---------------------------------
  3717. INT 61 - HP 95LX System Manager - LOAD DS
  3718. SeeAlso: INT 0F"HP 95LX",INT 60"HP 95LX"
  3719. ----------61---------------------------------
  3720. INT 61 - JPI TopSPEED Modula-2 v1 - PROCEDURE EXIT TRAP
  3721. SeeAlso: INT 61"JPI"
  3722. ----------61---------------------------------
  3723. INT 61 - Adaptec and OMTI controllers - DRIVE 0 DATA
  3724. Note:    this vector stores the second four bytes of the parameter table for
  3725.       hard disk 0
  3726. SeeAlso: INT 60"Adaptec",INT 62"Adaptec",INT 63"Adaptec"
  3727. ----------61---------------------------------
  3728. INT 61 - Sangoma CCIP (CCPOP 3270 resident module) INTERFACE
  3729.     BX:DX -> control block
  3730. SeeAlso: INT 67"Sangoma"
  3731. ----------61---------------------------------
  3732. INT 61 - VIRUS - "SEMTEX"/"Screen Trasher" - INT 21h SUBSTITUTE
  3733. Note:    the virus copies the original INT 21h vector into INT 61h
  3734. SeeAlso: INT 21h,INT 60"VIRUS",INT 6B"VIRUS"
  3735. ----------61---------------------------------
  3736. INT 61 - FTP Software PC/TCP - TCP/IP TSR System Call interface
  3737.     AH = system call number (see also entries below)
  3738.         01h "pkt_alloc"
  3739.         02h "pkt_free"
  3740. Return: CF clear if successful
  3741.     CF set on error
  3742.         AL = basic error (see below)
  3743.         AH = suberror number
  3744. Notes:    the installation check consists of testing for the signature "TCPTSR"
  3745.       three bytes beyond the start of the interrupt handler
  3746.     INT 61 is the default; PC/TCP v2.05 may be configured to use any
  3747.       interrupt from 20h through E0h
  3748. BUG:    the SLIP kernel for v2.05 bounds-checks the wrong register, so values
  3749.       greater than 54h in AH may crash the system.    Other kernels may have
  3750.       this bug as well.
  3751. SeeAlso: INT 61/AH=00h"PC/TCP",INT 61/AH=2Ah,INT 61/AH=54h
  3752.  
  3753. Values for error code:
  3754.  00h "NET_NOERR" successful
  3755.  01h "NET_ERR_INUSE" protocol or socket already in use
  3756.  02h "NET_DOS_ERR" MSDOS error (returned as suberror code in AH)
  3757.  03h "NET_ERR_NOMEM" out of memory
  3758.  04h "NET_ERR_NOTNETCONN" not a network descriptor
  3759.  05h "NET_ERR_ILLEGALOP" invalid operation on given kind of network descriptor
  3760.  06h "NET_ERR_BADPKT" illegal or corrupted packet
  3761.  07h "NET_ERR_NOHOST" no host bound to specified connection
  3762.  08h "NET_ERR_CANTOPEN" unable to open file
  3763.  09h "NET_ERR_NET_UNREACHABLE" network is unreachable
  3764.  0Ah "NET_ERR_HOST_UNREACHABLE" host is unreachable
  3765.  0Bh "NET_ERR_PROT_UNREACHABLE" protocol is unreachable
  3766.  0Ch "NET_ERR_PORT_UNREACHABLE" port is unreachable
  3767.  0Dh "NET_ERR_TIMEOUT" operation timed out
  3768.  0Eh "NET_ERR_HOSTUNKNOWN" unable to resolve host name
  3769.  0Fh "NET_ERR_NOSERVERS" no name servers configured
  3770.  10h "NET_ERR_SERVER_ERR" bad reply from name server
  3771.  11h "NET_ERR_BADFORMAT" bad format for IP address or field in IP address struc
  3772.              is zero
  3773.  12h "NET_ERR_BADARG" invalid argument
  3774.  13h "NET_ERR_EOF" foreign host closed its end of connection
  3775.  14h "NET_ERR_RESET" connection has been reset
  3776.  15h "NET_ERR_WOULDBLOCK" recv() call was done on a non-blocking connection
  3777.              with no data available
  3778.  16h "NET_ERR_UNBOUND" insufficient resources to do operation
  3779.  17h "NET_ERR_NODESC" could not allocate network descriptor
  3780.  18h "NET_ERR_BADSYSCALL" invalid/unsupported kernel call
  3781.  19h "NET_ERR_CANTBROADCAST" unable to broadcast
  3782.  1Ah "NET_ERR_NOTESTAB" operation illegal because connection not established
  3783.  1Bh kernel busy, try again later
  3784. ----------6100-------------------------------
  3785. INT 61 U - PC/TCP kernel v2.05 - GET DEBUG INFORMATION
  3786.     AH = 00h
  3787.     DS:SI -> 216-byte buffer for network debugging information (see below)
  3788. Return: CF clear
  3789.     AX = 0000h
  3790.     buffer filled
  3791. SeeAlso: INT 61"PC/TCP",INT 61/AH=2Ah"PC/TCP"
  3792.  
  3793. Format of network debugging information:
  3794. Offset    Size    Description
  3795.  00h    DWORD    number of interrupts
  3796.  04h    DWORD    receive buffer low-water mark
  3797.  08h    DWORD    transmit buffer low-water mark
  3798.  0Ch    DWORD    number of packets received
  3799.  10h    DWORD    number of packets transmitted
  3800.  14h    DWORD    total receive errors
  3801.  18h    DWORD    total transmit errors
  3802.  1Ch  4 BYTEs    ???
  3803.  20h    DWORD    receive resets
  3804.  24h    DWORD    transmit resets
  3805.  28h    DWORD    number of "runts" received
  3806.  2Ch    DWORD    number of alignment errors on received packets
  3807.  30h    DWORD    number of CRC errors on received packets
  3808.  34h    DWORD    number of parity errors on received packets
  3809.  38h    DWORD    number of receive overflow errors
  3810.  3Ch    DWORD    number of oversized packets received
  3811.  40h    DWORD    number of packets lost due to lack of buffers
  3812.  44h    DWORD    receive timeouts
  3813.  48h 32 BYTEs    ???
  3814.  68h    DWORD    number of transmit collisions
  3815.  6Ch    DWORD    number of transmit timeouts
  3816.  70h    DWORD    number of transmit underflows
  3817.  74h    DWORD    number of lost "crs" on transmit
  3818.  78h    DWORD    number of times heartbeat failed on transmit
  3819.  7Ch 24 BYTEs    ???
  3820.  94h    WORD    free packet buffers
  3821.  96h    WORD    total packet buffers
  3822.  98h    WORD    minimum number of packet buffers free since kernel started
  3823.  9Ah 24 BYTEs    ???
  3824.  B2h    DWORD    pointer to TCP connection list???
  3825.  B6h    DWORD    pointer to IP routing table???
  3826.  BAh 30 BYTEs    ???
  3827. ----------610000-----------------------------
  3828. INT 61 - OPTIMA 1024 VGA-Sync - ZOOM DISPLAY
  3829.     AX = 0000h
  3830.     BX = zoom factor (0-7)
  3831. Notes:    zooms the display based on the given zoom factor
  3832.     INT 61h is the default interrupt; the actual interrupt number can be
  3833.       obtained by calling INT 16/AH=FFh
  3834. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0001h"OPTIMA",INT 61/AX=0002h"OPTIMA"
  3835. SeeAlso: INT 61/AX=0005h"OPTIMA"
  3836. ----------610001-----------------------------
  3837. INT 61 - Banyan VINES - "Sosock" - OPEN COMMUNICATIONS SOCKET
  3838.     AX = 0001h
  3839.     DS:DX -> communications control block (function 0001h)
  3840. Return: AX = status
  3841.         0000h  successful
  3842.         0001h  service not installed
  3843.         0002h  invalid service ID
  3844.         0098h  resource already in use
  3845.         009Eh  address family does not exist
  3846.         009Fh  socket type does not exist
  3847.         00A0h  protocol does not exist
  3848.         00A1h  no more sockets available
  3849.         00A2h  no more buffer space available
  3850. Note:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  3851.       interrupt handler is identified by the string "BANV" in the four
  3852.       bytes immediately preceding the interrupt handler
  3853.  
  3854. Format of control block:
  3855. Offset    Size    Description
  3856.  00h    WORD    0001h
  3857.  02h    WORD    pointer to argument block
  3858.  04h    WORD    error return code
  3859.  06h  4 BYTEs    reserved
  3860.  
  3861. Format of argument block:
  3862. Offset    Size    Description
  3863.  00h    WORD    pointer to 2-byte buffer for socket identifier
  3864.  02h    WORD    address family
  3865.         0003h Banyan
  3866.  04h    WORD    socket type
  3867.         in address family 0003h
  3868.             0001h IPC socket
  3869.             0002h SPP socket
  3870.  06h    WORD    protocol number
  3871.         FFFFh default
  3872.  08h    WORD    pointer to 16-byte buffer for socket address
  3873.  0Ah    WORD    local port number
  3874.         0000h if service should assign transient port number
  3875.         0001h to 01FFh well-known port number (assigned by Banyan)
  3876.  
  3877. Format of IPC port:
  3878. Offset    Size    Description
  3879.  00h    WORD    address family (always 0003h for Banyan ports)
  3880.  04h  4 BYTEs    network number (server's serial number)
  3881.  06h    WORD    subnet number  (0001h = server, 8000h-FFFEh = PC)
  3882.  08h    WORD    port ID (0001h-01FFh for "well-known" ports)
  3883.  0Ah    BYTE    hop count
  3884.  0Bh  5 BYTEs    filler
  3885. ----------610001-----------------------------
  3886. INT 61 - Banyan VINES - "Sosend" - INITIATE OUTPUT EVENT
  3887.     AX = 0001h
  3888.     DS:DX -> communications control block (function 0002h)
  3889. Return: AX = status
  3890.         0000h  successful
  3891.         0001h  service not installed
  3892.         0002h  invalid service ID
  3893.         0003h-000Ah reserved for BANV interface errors
  3894.         0097h  invalid socket identifier
  3895.         009Bh  destination node unreachable
  3896.         009Ch  message overflow
  3897.         009Dh  destination socket nonexistent
  3898.         00A2h  no more buffer space
  3899.         00A3h  timeout
  3900.         00B1h  resource disconnect
  3901. Note:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  3902.       interrupt handler is identified by the string "BANV" in the four
  3903.       bytes immediately preceding the interrupt handler
  3904.  
  3905. Format of control block:
  3906. Offset    Size    Description
  3907.  00h    WORD    0002h
  3908.  02h    WORD    pointer to argument block (see below)
  3909.  04h    WORD    error return code
  3910.         0000h successful
  3911.         0097h invalid socket ID
  3912.         00A2h no more buffer space
  3913.         00A3h timeout event
  3914.         00A5h resource not available
  3915.         00A6h internal communication failure
  3916.         00B1h resource disconnect
  3917.  06h  4 BYTEs    reserved
  3918.  
  3919. Format of argument block:
  3920. Offset    Size    Description
  3921.  00h    WORD    routine metric
  3922.  02h    WORD    error return code
  3923.  04h    WORD    socket identifier
  3924.  06h    WORD    pointer to send buffer
  3925.  08h    WORD    length of send buffer
  3926.  0Ah    WORD    flags
  3927.         bit 0: async request
  3928.             1: reliable message
  3929.             3: end of user message received
  3930.             4: vectored request (if set, send buffer contains buffer
  3931.             descriptors)
  3932.             5: connection-specific receive
  3933.             6: change to connection-specific receive mode
  3934.  0Ch 16 BYTEs    socket address (see below)
  3935.  1Ch    WORD    timeout value in multiples of 200ms
  3936.  1Eh    WORD    connection identifier
  3937.  20h    WORD    type of request
  3938.         0001h send message
  3939.         0002h establish a virtual connection
  3940.         0003h terminate a virtual connection
  3941.  
  3942. Format of buffer descriptor:
  3943. Offset    Size    Description
  3944.  00h    WORD    data segment
  3945.  02h    WORD    buffer pointer
  3946.  04h    WORD    buffer length
  3947.  06h    WORD    character count
  3948.  
  3949. Format of socket address for unreliable datagrams:
  3950. Offset    Size    Description
  3951.  00h    WORD    0003h      address family
  3952.  02h    DWORD    FFFFFFFFh network number
  3953.  06h    WORD    FFFFh      subnet number
  3954.  08h    WORD          local port number
  3955.  0Ah    BYTE    00h-0Fh      hop count
  3956.  0Bh  5 BYTEs    0000h      filler
  3957. ----------610001-----------------------------
  3958. INT 61 - Banyan VINES - "Sorec" - RECEIVE INPUT EVENT NOTIFICATION
  3959.     AX = 0001h
  3960.     DS:DX -> communications control block (function 0003h)
  3961. Return: AX = status
  3962.         0000h  successful
  3963.         0001h  service not installed
  3964.         0002h  invalid service ID
  3965.         0003h-000Ah reserved for BANV interface errors
  3966.         0097h  invalid socket identifier
  3967.         00A2h  no more buffer space
  3968.         00A3h  timeout
  3969. Note:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  3970.       interrupt handler is identified by the string "BANV" in the four
  3971.       bytes immediately preceding the interrupt handler
  3972.  
  3973. Format of control block:
  3974. Offset    Size    Description
  3975.  00h    WORD    0003h
  3976.  02h    WORD    pointer to argument block (see below)
  3977.  04h    WORD    error return code
  3978.         0000h successful
  3979.         0097h invalid socket ID
  3980.         00A2h no more buffer space
  3981.         00A3h timeout event
  3982.         00A5h resource not available
  3983.         00A6h internal communication failure
  3984.         00B1h resource disconnect
  3985.  06h  4 BYTEs    reserved
  3986.  
  3987. Format of argument block:
  3988. Offset    Size    Description
  3989.  00h    WORD    character count
  3990.  02h    WORD    error return code
  3991.  04h    WORD    socket identifier
  3992.  06h    WORD    pointer to receive buffer
  3993.  08h    WORD    length of receive buffer
  3994.  0Ah    WORD    flags
  3995.         bit 0: async request
  3996.             2: flush receive buffer on overflow
  3997.             3: end of user message received
  3998.             4: vectored request (if set, receive buffer contains buffer
  3999.             descriptors)
  4000.             5: connection-specific receive
  4001.             6: change to connection-specific receive mode
  4002.  0Ch 16 BYTEs    socket address
  4003.  1Ch    WORD    timeout value in multiples of 200ms
  4004.  1Eh    WORD    connection identifier
  4005.  20h    WORD    type of response
  4006.         0001h message received
  4007.         0002h virtual connection established
  4008.         0003h virtual connection terminated
  4009.  
  4010. Format of buffer descriptor:
  4011. Offset    Size    Description
  4012.  00h    WORD    data segment
  4013.  02h    WORD    buffer pointer
  4014.  04h    WORD    buffer length
  4015.  06h    WORD    character count
  4016. ----------610001-----------------------------
  4017. INT 61 - Banyan VINES - "Soclose" - CLOSE A SOCKET
  4018.     AX = 0001h
  4019.     DS:DX -> communications control block (function 0004h)
  4020. Return: AX = status
  4021.         0000h  successful
  4022.         0001h  service not installed
  4023.         0002h  invalid service ID
  4024.         0003h-000Ah reserved for BANV interface errors
  4025.         0097h  invalid socket identifier
  4026. Note:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  4027.       interrupt handler is identified by the string "BANV" in the four
  4028.       bytes immediately preceding the interrupt handler
  4029.  
  4030. Format of control block:
  4031. Offset    Size    Description
  4032.  00h    WORD    0004h
  4033.  02h    WORD    pointer to argument block (see below)
  4034.  04h    WORD    error return code
  4035.  06h  4 BYTEs    reserved
  4036.  
  4037. Format of argument block:
  4038. Offset    Size    Description
  4039.  00h    WORD    socket identifier
  4040. ----------610001-----------------------------
  4041. INT 61 - Banyan VINES - "Sowait" - WAIT FOR ASYNCHRONOUS EVENT COMPLETION
  4042.     AX = 0001h
  4043.     DS:DX -> communications control block (function 0005h)
  4044. Return: AX = status
  4045.         0000h  successful
  4046.         0001h  service not installed
  4047.         0002h  invalid service ID
  4048.         0003h-000Ah reserved for BANV interface errors
  4049.         00A2h  no more buffer space available
  4050.         00A3h  timeout event
  4051. Notes:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  4052.       interrupt handler is identified by the string "BANV" in the four
  4053.       bytes immediately preceding the interrupt handler
  4054.     returns results for all asynchronous operations invoked from the
  4055.       data segment used for this call
  4056.  
  4057. Format of control block:
  4058. Offset    Size    Description
  4059.  00h    WORD    0005h
  4060.  02h    WORD    pointer to argument block (see below)
  4061.  04h    WORD    error return code
  4062.  06h  4 BYTEs    reserved
  4063.  
  4064. Format of argument block:
  4065. Offset    Size    Description
  4066.  00h    WORD    pointer to WORD event pointer
  4067.  02h    WORD    timeout in multiples of 200ms, FFFFh = infinite
  4068. ----------610001-----------------------------
  4069. INT 61 - Banyan VINES - "Sosession" - REGISTER APPLICATION WITH COMM SERVICE
  4070.     AX = 0001h
  4071.     DS:DX -> communications control block (function 0008h)
  4072. Return: AX = status
  4073.         0000h  successful
  4074.         00A2h  no more buffer space available
  4075. Note:    BANYAN can use any interrupt from 60h through 66h (default 61h).  The
  4076.       Banyan interrupt handler is identified by the string "BANV" in the
  4077.       four bytes immediately preceding the interrupt handler
  4078.  
  4079. Format of control block:
  4080. Offset    Size    Description
  4081.  00h    WORD    0008h
  4082.  02h    WORD    process type
  4083.         0001h transient process
  4084.         0002h resident process
  4085.  04h    WORD    error return code
  4086.  06h  4 BYTEs    reserved
  4087. ----------610001-----------------------------
  4088. INT 61 - Banyan VINES - "Soint" - SET USER COMPLETION FUNCTION
  4089.     AX = 0001h
  4090.     DS:DX -> communications control block (function 000Bh)
  4091. Return: AX = status
  4092.         0000h  successful
  4093.         0001h  service not installed
  4094.         0002h  invalid service ID
  4095.         0003h-000Ah reserved for BANV interface errors
  4096.         00A2h  no more buffer space available
  4097. Notes:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  4098.       interrupt handler is identified by the string "BANV" in the four
  4099.       bytes immediately preceding the interrupt handler
  4100.     FAR user function is invoked with SS,DS, and ES set to segment of
  4101.       control block, and with the stack containing
  4102.         DWORD    return address
  4103.         WORD    argument pointer (sosend or sorec argument block)
  4104.         WORD    error return code
  4105.             0000h argument pointer is valid
  4106.             00A3h timeout
  4107.  
  4108. Format of control block:
  4109. Offset    Size    Description
  4110.  00h    WORD    000Bh
  4111.  02h    WORD    pointer to argument block (see below)
  4112.  04h    WORD    error return code
  4113.  06h  2 BYTEs    reserved
  4114.  08h    WORD    user CS register
  4115.  
  4116. Format of argument block:
  4117. Offset    Size    Description
  4118.  00h    WORD    pointer to user interrupt function    
  4119.  02h    WORD    pointer to user stack
  4120.  04h    WORD    initial timeout value in multiples of 200ms, FFFFh = infinite
  4121. ----------610001-----------------------------
  4122. INT 61 - OPTIMA 1024 VGA-Sync - CENTER ZOOM WINDOW
  4123.     AX = 0001h
  4124.     BX = X coordinate to center
  4125.     CX = Y coordinate to center
  4126. Notes:    Positions the zoom window such that the specified window-relative
  4127.       coordinates appear as close as possible to the center of the
  4128.       display.  Useful for scrolling and panning.
  4129.     INT 61h is the default interrupt; the actual interrupt number can be
  4130.       obtained by calling INT 16/AH=FFh
  4131. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0002h"OPTIMA"
  4132. SeeAlso: INT 61/AX=0005h"OPTIMA"
  4133. ----------610002-----------------------------
  4134. INT 61 - Banyan VINES - 3270 INTERFACE
  4135.     AX = 0002h
  4136.     BH = function
  4137.         00h "pi2reset"  reset 3270/SNA or 3270/BSC driver
  4138.         02h "pi2bsc" (3270/BSC only)
  4139.         03h    "pi2get"    get information stored in 3270 resident driver
  4140.         04h "pi2put"    store information in 3270 resident driver
  4141.         05h "pi2gcur"   get current screen position
  4142.         07h "pi2sdat"   send data keystroke
  4143.         08h "pi2scom"   send command keystroke
  4144.         0Ah "pi2field"  get field info for arbitrary screen positions
  4145.         0Fh "pi2stat"   get logical unit/device status
  4146.         12h "pi2nlus"   determine logical unit/device assignment
  4147.         13h "pi2gate"   specifies comm port address to gateway service
  4148.         14h "pi2attach" attach a logical unit/device
  4149.         15h "pi2sdev"   save logical unit/device info in resident driver
  4150.                 (not supported in >3.0)
  4151.         16h "pi2gdev"   get device information (not supported in >3.0)
  4152.         17h "pi2luinfo" get info about specific logical unit/device
  4153.         18h "pi2gerr"   get finer error detail
  4154.         19h "pi2dhold"  (3270/SNA only)  holds a 3270 device
  4155.         1Ah "pi2shut"   release memory-resident module
  4156.         1Ch "pi2sprof"  save profile info in res driver (not supp in >3.0)
  4157.         1Dh "pi2gprof"  get prevsly stored profile info (not supp in >3.0)
  4158.     DS:CX -> argument block (except BH=00h,1Ah)
  4159. Return: AX = status
  4160.         0000h successful
  4161.         000Bh invalid parameter or data does not fit data area
  4162.         000Ch another code path currently active in resident driver
  4163.         000Dh operation currently not allowed
  4164.         0032h encountered connection disconnect error
  4165.         0033h encountered "sosend" completion error
  4166.         0034h encountered "sosend" communication error
  4167.         0035h attach request refused.  extended error info via "pi2gerr":
  4168.             01h resource unavailable
  4169.             02h invalid type
  4170.             03h version mismatch
  4171.             04h invalid logical unit number
  4172.             05h error during ARL processing
  4173.             06h no access for user
  4174.         0071h encountered "sosock" error
  4175.         0072h encountered unrecognizable error
  4176.         0073h encountered "sowait" error (extended info via "pi2gerr")
  4177.         0074h encountered invalid type-of-request on "sowait"
  4178.         0075h encountered "sorec" error (extended info via "pi2gerr")
  4179.         0076h encountered "sorec" completion error (ext info via "pi2gerr")
  4180.         0077h encountered connection request
  4181.         0078h encountered unrecognizable data
  4182.         0079h encountered unknown connection ID (ext info via "pi2gerr")
  4183. Notes:    Either 3270/SNA or 3270/BSC interface may use AX=0002h, depending on
  4184.       which is loaded first.  The other interface will use AX=000Ah
  4185.     Status codes greater than 63h indicate an inconsistency in the 3270/SNA
  4186.       or 3270/BSC resident driver, which must be reloaded by the user
  4187.  
  4188. Format of argument block for BH=03h,04h:
  4189. Offset    Size    Description
  4190.  00h    WORD    size of data area (max 256)
  4191.  02h  N BYTEs    data area
  4192.  
  4193. Format of argument block for BH=05h:
  4194. Offset    Size    Description
  4195.  00h    WORD    logical unit/device number
  4196.  02h    WORD    pointer to WORD buffer for cursor index
  4197.  04h    WORD    pointer to BYTE buffer for current field attribute
  4198.  
  4199. Format of argument block for BH=07h:
  4200. Offset    Size    Description
  4201.  00h    WORD    logical unit/device number
  4202.  02h    WORD    ASCII data byte
  4203.  04h    WORD    pointer to WORD count of characters which will need updating
  4204.  
  4205. Format of argument block for BH=08h:
  4206. Offset    Size    Description
  4207.  00h    WORD    logical unit/device number
  4208.  02h    WORD    keystroke
  4209.         0000h Enter
  4210.         0001h Clear
  4211.         0002h PA1
  4212.         0003h PA2
  4213.         0004h PA3
  4214.         0005h PF1
  4215.         ...
  4216.         001Ch PF24
  4217.         001Dh CSELECT (cursor select)
  4218.         001Eh Insert
  4219.         001Fh Delete
  4220.         0020h EOField
  4221.         0021h EINPUT (erase input)
  4222.         0022h Reset
  4223.         0023h Attention
  4224.         0024h SysReq
  4225.         0025h Duplicate
  4226.         0026h Fieldmark
  4227.         0027h Home
  4228.         0028h NextLine
  4229.         0029h Tab
  4230.         002Ah BackTab
  4231.         002Bh cursor up
  4232.         002Ch cursor down
  4233.         002Dh cursor right
  4234.         002Eh cursor left
  4235.         002Fh double cursor right
  4236.         0030h double cursor left
  4237.         0031h PRINT
  4238.         0032h CANCEL
  4239.         0033h Backspace
  4240.  
  4241. Format of argument block for BH=0Ah:
  4242. Offset    Size    Description
  4243.  00h    WORD    logical unit/device number
  4244.  02h    WORD    screen index
  4245.  04h    WORD    pointer to WORD buffer for field length
  4246.  06h    WORD    pointer to WORD buffer for offset in screen of field start
  4247.  
  4248. Format of argument block for BH=0Fh:
  4249. Offset    Size    Description
  4250.  00h    WORD    logical unit/device number
  4251.  02h    WORD    clear mask (clear these bits of status after returning status)
  4252.  04h    WORD    pointer to WORD buffer for status
  4253.         bit 10: status modified
  4254.         bit  9: buffer modified
  4255.         bit  8: set cursor
  4256.         bit  5: sound alarm
  4257.         bits 0,1: size of print line for printer logical units
  4258.             00 unformatted line
  4259.             01 40-character line
  4260.             10 64-character line
  4261.             11 80-character line
  4262.  
  4263. Format of argument block for BH=12h:
  4264. Offset    Size    Description
  4265.  00h    WORD    pointer to WORD buffer for number of logical units or devices
  4266.  02h    WORD    pointer to WORD buffer for version number
  4267.  04h    WORD    pointer to 64-byte buffer for logical unit/device list
  4268.  
  4269. Format of argument block for BH=13h:
  4270. Offset    Size    Description
  4271.  00h 16 BYTEs    communications port address (see AX=0001h#"Sosock")
  4272.  
  4273. Format of argument block for BH=14h:
  4274. Offset    Size    Description
  4275.  00h    WORD    logical unit/device number 
  4276.         0000h attach any free device of the specified type
  4277.  02h    WORD    logical unit/device type
  4278.         (3270/SNA) 01h, 02h, or 03h
  4279.         (3270/BSC) 02h display
  4280.         (3270/BSC) 03h printer
  4281.  04h    WORD    pointer to WORD buffer for attached logical unit/device number
  4282.  
  4283. Format of argument block for BH=16h:
  4284. Offset    Size    Description
  4285.  00h    WORD    pointer to 18-byte buffer for device block (see below)
  4286.         first WORD must be set to desired logical unit/device number
  4287.  
  4288. Format of argument block for BH=17h:
  4289. Offset    Size    Description
  4290.  00h    WORD    logical unit/device number
  4291.  02h    WORD    pointer to information block in caller's DS (see below)
  4292.  
  4293. Format of argument block for BH=18h:
  4294. Offset    Size    Description
  4295.  00h    WORD    pointer to WORD buffer for major error code
  4296.  02h    WORD    pointer to WORD buffer for minor error code
  4297.  
  4298. Format of argument block for BH=19h:
  4299. Offset    Size    Description
  4300.  00h    WORD    logical unit/device number
  4301.  
  4302. Format of argument block for BH=1Ch,1Dh:
  4303. Offset    Size    Description
  4304.  00h    WORD    pointer to profile block in caller's DS (see below)
  4305.  
  4306. Format of device block, argument block for BH=15h:
  4307. Offset    Size    Description
  4308.  00h    WORD    logical unit/device number
  4309.  02h    WORD    logical unit/device type
  4310.  04h    WORD    display model number
  4311.  06h    WORD    numeric checking
  4312.  08h    WORD    status line
  4313.  0Ah    BYTE    unprotected normal field attribute
  4314.  0Bh    BYTE    unprotected intensified field attribute
  4315.  0Ch    BYTE    protected normal field attribute
  4316.  0Dh    BYTE    protected intensified field attribute
  4317.  0Eh    WORD    reserved
  4318.  10h    WORD    printer port number
  4319.  
  4320. Format of information block:
  4321. Offset    Size    Description
  4322.  00h    WORD    device model number
  4323.  02h    DWORD    screen buffer pointer
  4324.  06h    DWORD    status line pointer (see below)
  4325.  0Ah    DWORD    reserved
  4326.  
  4327. Format of status line:
  4328. Offset    Size    Description
  4329.  00h    BYTE    comm line status
  4330.         00h inactive
  4331.         01h active
  4332.  01h    BYTE    activation level
  4333.         01h physical unit activated
  4334.         02h logical unit also activated
  4335.         03h session is bound
  4336.  02h    BYTE    data traffic state
  4337.         00h inactive
  4338.         01h active
  4339.  03h    BYTE    screen ownership
  4340.         00h SLU->PLU sessoin owns screen
  4341.         01h SLU->SSCP session owns screen
  4342.  04h    BYTE    keyboard status
  4343.         00h UNLOCK - ready to accept data
  4344.         01h TIME - aid was struck
  4345.         02h SYSTEM - received response no restore
  4346.         03h FUNCTION - unavailable keyboard function
  4347.         04h INPUT - not currently used
  4348.         05h ENDFIELD - field filled in insert mode
  4349.         06h PROTECTED - attempt to enter in protected field
  4350.         07h NUMERIC - attempt to enter in numeric field
  4351.         08h PROGRAM - error in outbound data stream
  4352.  05h    BYTE    insert mode
  4353.         01h if in insert mode
  4354.  06h    BYTE    numeric
  4355.         01h if current screen buffer is numeric only
  4356.  07h    BYTE    printer status
  4357.         00h printer not assigned
  4358.         01h printer is inactive
  4359.         02h printer error
  4360.         03h currently printing
  4361.         04h printer is busy
  4362.         05h printer is very busy
  4363.  08h    BYTE    printer assignment
  4364.  09h    BYTE    maximum size of network name
  4365.  0Ah  N BYTEs    ASCIZ network name
  4366.     BYTE    maximum size of message window
  4367.       M BYTEs    null-terminated message window
  4368.     BYTE    code set
  4369.         00h EBCDIC
  4370.         01h ASCII
  4371.       M BYTEs    extended attributes
  4372.         01h extended attributes are in effect (stored at screen+1920)
  4373.             each extended attribute specifies
  4374.             bits 0,1: 00=normal, 01=blink, 10=reverse, 11=underscor
  4375.             bits 2-4: 000=default,001=blue,010=red,011=pink,
  4376.                   100=green,101=turquoise,110=yellow,111=white
  4377.     BYTE    extended color
  4378.         01h other than base color is in effect
  4379.  
  4380. Format of profile block:
  4381. Offset    Size    Description
  4382.  00h 64 BYTEs    gateway service name
  4383.  40h 16 BYTEs    gateway comm port address
  4384.  50h    WORD    primary logical unit number
  4385.  52h    WORD    secondary logical unit type
  4386.  54h    WORD    secondary logical unit number
  4387.  56h    WORD    printer assignment
  4388.  58h 50 BYTEs    keyboard definitions filename
  4389. ----------610002-----------------------------
  4390. INT 61 - OPTIMA 1024 VGA-Sync - END ZOOM
  4391.     AX = 0002h
  4392. Note:    switches off zoom and returns window to its original state
  4393.     INT 61h is the default interrupt; the actual interrupt number can be
  4394.       obtained by calling INT 16/AH=FFh
  4395. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA"
  4396. ----------610003-----------------------------
  4397. INT 61 - Banyan VINES - ASYNCHRONOUS TERMINAL EMULATION
  4398.     AX = 0003h
  4399.     DS:BX -> argument block with function number (see below)
  4400. Return: AX = status
  4401.         0000h successful
  4402.         000Bh invalid session ID
  4403.         000Ch session not active
  4404.         000Dh invalid request type
  4405.         000Eh invalid parameters
  4406.         000Fh out of heap space
  4407.         0010h timeout on send
  4408.         0011h Banyan communications error
  4409.         0012h session not waiting for host
  4410.         0013h session is active
  4411.         0014h duplicate suspend session request
  4412.         0015h no session suspended
  4413.         0016h ring data buffer full
  4414.         0017h printer error encountered
  4415.         0018h Banyan communications error
  4416.         0019h unable to make connection
  4417.         001Ah no ring buffer specified at startup
  4418.         001Bh service is down
  4419.         001Ch invalid service name
  4420.         001Dh service is closed
  4421.         001Eh invalid connection name
  4422.         001Fh max session limit reached for service
  4423.         0020h access rights list for connection/dialout does not include
  4424.             this user
  4425.         0021h service not responding
  4426.         0022h missing telephone number
  4427.  
  4428. Format of argument block:
  4429. Offset    Size    Description
  4430.  00h    BYTE    session ID (00h)
  4431.  01h    BYTE    asynchronous interface request number
  4432.         00h initialize user buffer pointer information area
  4433.         01h send to host
  4434.         02h "control monitor"
  4435.         03h "flow control data": freeze/unfreeze display, ring buffer
  4436.         04h end active session
  4437.         05h set session parameter
  4438.         06h get session parameter
  4439.         07h set tab settings
  4440.         08h get tab settings
  4441.         09h refresh emulation screen
  4442.         0Ah suspend session temporarily
  4443.         0Bh restore previously suspended session
  4444.         0Ch set state of scroll lock checking
  4445.         0Dh exit emulation
  4446.         0Eh interrupt on character from host
  4447.         0Fh start a session
  4448.         10h start/stop printing of data received from host
  4449.         11h get file transfer parameters
  4450.         12h get connection information
  4451.         13h start/stop tracing data traffic in session
  4452.         14h interrupt on message from host
  4453.         15h reset error
  4454. ---request=00h---
  4455.  02h    WORD    pointer to info area in caller's current DS
  4456.         Offset    Size    Description
  4457.          00h    WORD    flags
  4458.                 0000h don't read interface's data buffer
  4459.                 0001h read data buffer
  4460.          02h    DWORD    pointer to ring buffer
  4461.          06h    WORD    length of ring buffer
  4462.          08h    WORD    ring buffer offset to last byte read by caller
  4463.          0Ah    DWORD    pointer to WORD containing offset of last byte
  4464.                   in ring buffer filled
  4465.          0Eh    DWORD    pointer to screen buffer
  4466.          12h    DWORD    pointer to field containing cursor position
  4467.          16h    DWORD    pointer to terminal status area (see below)
  4468. ---request=01h---
  4469.  02h    BYTE    type
  4470.         00h ASCII byte
  4471.         01h ASCII string
  4472.         02h terminal function code
  4473.         03h up arrow
  4474.         04h down arrow
  4475.         05h left arrow
  4476.         06h right arrow
  4477.         07h break
  4478.  03h  N BYTEs    type-specific info
  4479.         Offset    Size    Description
  4480.         ---ASCII byte---
  4481.          03h    BYTE    byte to send to host
  4482.         ---ASCII string---
  4483.          03h    WORD    length of string
  4484.          05h    WORD    pointer to string
  4485.         ---terminal function code (VT52/VT100)---
  4486.          03h    BYTE    function code
  4487.                 00h keypad 0
  4488.                 01h keypad 1
  4489.                 ...
  4490.                 09h keypad 9
  4491.                 0Ah keypad -
  4492.                 0Bh keypad ,
  4493.                 0Ch keypad .
  4494.                 0Dh keypad ENTER
  4495.                 0Eh PF1
  4496.                 0Fh PF2
  4497.                 10h PF3
  4498.                 11h PF4
  4499.         ---terminal function code (IBM3101)---
  4500.          03h    BYTE    function code
  4501.                 00h PF1
  4502.                 ...
  4503.                 07h PF8
  4504.                 08h Home
  4505. ---request=02h---
  4506.  02h    BYTE    display flag
  4507.         00h don't display data received from host
  4508.         01h display data
  4509. ---request=03h---
  4510.  02h    BYTE    flow control flag
  4511.         00h allow characters to be put into display or ring buffer
  4512.         01h don't place any more characters into display or ring buffer
  4513. ---request=05h,06h---
  4514.  02h    BYTE    parameter number
  4515.         00h line speed (00h=any, 01h=50, 02h=110, 03h=134.5, 04h=150,
  4516.             05h=300,06h=600,07h=1200,08h=2400,09h=4800, 0Ah=9600)
  4517.         01h parity (00h=none, 01h=odd, 02h=even)
  4518.         02h duplex (00h=full, 01h=half)
  4519.         03h character size (00h=7 bits, 01h=8 bits)
  4520.         04h stop bits (00h=1, 01h=2)
  4521.         05h XON/XOFF flow control (00h=no, 01h=yes)
  4522.         07h intercharacter delay in tenths of a second
  4523.         08h interline delay in tenths of a second
  4524.         09h auto linefeed (00h=no, 01h=yes)
  4525.         0Ah filter control characters (00h=no, 01h=yes)
  4526.         0Bh terminal type (00h=VT100,01h=glassTTY,02h=VT52,03h=IBM3101)
  4527.         0Ch auto wrap (00h=no, 01h=yes)
  4528.         0Dh cursor shape (00h=underscore, 01h=block)
  4529.         0Eh character set (00h=UK, 01h=US ASCII)
  4530.         0Fh printer port (00h=LPT1, 01h=LPT2, 02h=LPT3)
  4531.  03h    BYTE    parameter value (returned for 06h)
  4532. ---request=07h,08h---
  4533.  02h    WORD    pointer to 80-byte buffer in caller's current DS
  4534.           each byte = 00h if no tab, 01h if tab at that position
  4535. ---request=0Ah---
  4536.  02h    WORD    size of session information to be saved
  4537.  04h    WORD    pointer to buffer in caller's DS
  4538. ---request=0Bh---
  4539.  02h    WORD    size of buffer into which session info is restored
  4540.  04h    WORD    pointer to buffer in caller's DS
  4541. ---request=0Ch---
  4542.  02h    BYTE    check_scroll_lock flag
  4543.         00h off
  4544.         01h on (display of host data stopped while ScrollLock on)
  4545. ---request=0Eh,14h---
  4546.  02h    DWORD    pointer to routine to be called (0000h:0000h = don't call)
  4547.  06h    DWORD    stack pointer to use when call is made
  4548. ---request=0Fh---
  4549.  02h    WORD    pointer to information area in caller's current DS
  4550.         Offset    Size    Description
  4551.          00h    WORD    length of service name
  4552.          02h    WORD    pointer to service name in caller's DS
  4553.          04h    BYTE    type of connection
  4554.                 (00h=connection name, 01h=dialout)
  4555.          05h    WORD    length of connection name/telephone number
  4556.          07h    WORD    pointer to connection name/telephone number
  4557. ---request=10h---
  4558.  02h    WORD    print capture flag (00h=off, 01h=on)
  4559. ---request=11h---
  4560.  02h    WORD    pointer to info area in caller's current DS
  4561.         Offset    Size    Description
  4562.          00h    BYTE    protocol flag (00h none, 01h Kermit)
  4563.          01h    BYTE    direction flag (00h send, 01h receive)
  4564.          02h    BYTE    length of null-terminated PC filename
  4565.          03h    DWORD    pointer to null-terminated PC filename
  4566.          07h    BYTE    length of null-terminated host filename
  4567.          08h    DWORD    pointer to null-terminated host filename
  4568. ---request=12h---
  4569.  02h    WORD    pointer to info area in caller's current DS (see below)
  4570.         Offset    Size    Description
  4571.          00h    WORD    length of service name (returned)
  4572.          02h    WORD    pointer to 64-byte buffer for service name
  4573.          04h    BYTE    type of connection
  4574.                 00h connection name
  4575.                 01h dialout
  4576.          05h    WORD    length of connection name/telephone number
  4577.          07h    WORD    pointer to 64-byte buffer for name/telno
  4578.          09h    BYTE    server line number being used (returned)
  4579. ---request=13h---
  4580.  02h    BYTE    trace flag (00h=off, 01h=on)
  4581.  
  4582. Format of terminal status area:
  4583. Offset    Size    Description
  4584.  00h    BYTE    status of session: 4Eh=oNline, 46h=oFfline, 57h=Waiting
  4585.  01h    BYTE    terminal type (00h=VT100, 01h=TTY, 02h=VT52, 03h=IBM3101)
  4586.  02h    BYTE    current keypad mode (VT100,VT52 only)
  4587.         4Eh ("N") numeric mode
  4588.         41h ("A") application mode
  4589.  03h  4 BYTEs    current state of LEDs (VT100 only)
  4590.         00h off
  4591.         01h on
  4592.  07h    WORD    line error count
  4593.  09h    WORD    primary error code
  4594.         0000h no error
  4595.         0001h unable to make connection
  4596.         0002h communications error, restart session
  4597.         0003h async terminal emulation service unavailable
  4598.         0004h lost carrier
  4599.         0005h all matching lines busy
  4600.         0006h no lines defined for connection name
  4601.         0007h no dial lines available on server
  4602.         0008h no matching dial lines available
  4603.         0009h out of heap space
  4604.         000Ah service error encountered
  4605.         000Bh timed out waiting to connect
  4606.         000Ch communications error
  4607.         000Dh communications error
  4608.         000Eh host wants file transferred to/from PC
  4609.         000Fh host software changed session parameter
  4610.         0010h host software changed tap settings
  4611.         0011h host software changed LED indicator
  4612.         0012h host software changed display background (secondary error
  4613.             code 00h for white on black, 01h for black on white)
  4614.         0013h host software changed display option (secondary error
  4615.             code 00h for off, 01h for on)
  4616.         0014h communications error
  4617.         0015h communications error
  4618.         0016h unable to make connection
  4619.         0017h unable to make connection
  4620.  0Bh    WORD    secondary error code
  4621. ----------610003-----------------------------
  4622. INT 61 - OPTIMA 1024 VGA-Sync - REPORT ZOOM FACTOR
  4623.     AX = 0003h
  4624. Return: AX = zoom factor
  4625. Note:    returns the current zoom factor
  4626.     INT 61h is the default interrupt; the actual interrupt number can be
  4627.       obtained by calling INT 16/AH=FFh
  4628. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0005h"OPTIMA"
  4629. ----------610004-----------------------------
  4630. INT 61 - Banyan VINES - GET SERVER SERIAL NUMBER
  4631.     AX = 0004h
  4632.     DS:DX -> request block (function 0008h)
  4633. Return: AX = status
  4634.         0000h server ID returned in request block
  4635.         000Fh invalid drive
  4636.         0015h drive not ready
  4637.  
  4638. Format of request block:
  4639. Offset    Size    Description
  4640.  00h    WORD    0008h
  4641.  02h    WORD    drive number (0=default, 1=A, ...)
  4642.  04h  6 BYTEs    buffer for server ID
  4643. ----------610004-----------------------------
  4644. INT 61 - OPTIMA 1024 VGA-Sync - ENTER SPECIFY MODE
  4645.     AX = 0004h
  4646. Note:    Specify Mode is enabled by hot key (seeAlso below), and allows
  4647.     panning and zooming via the numeric keypad.
  4648.     INT 61h is the default interrupt; the actual interrupt number can be
  4649.       obtained by calling INT 16/AH=FFh
  4650.     The Zoom interrupt no. can be obtained with function INT 16h,AH=0FFh
  4651. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0007h"OPTIMA"
  4652. ----------610005-----------------------------
  4653. INT 61 - Banyan VINES - PRINTER CONTROL
  4654.     AX = 0005h
  4655.     DS:DX -> request block
  4656. Return: AX = status
  4657.         0000h successful
  4658.         0001h network software not installed or incompatible
  4659. SeeAlso: INT 2F/AX=D702h
  4660.  
  4661. Format of request block:
  4662. Offset    Size    Description
  4663.  00h    WORD    function
  4664.         0201h "endspool" all data for a print job has been sent
  4665.         0205h "getactive" get currently active printer port
  4666.  02h    WORD    number of active port (1-3)
  4667.  04h    WORD    ??? (0 for func 0201h, 3 for func 0205h)
  4668.  06h    WORD    0000h
  4669. ----------610005-----------------------------
  4670. INT 61 - OPTIMA 1024 VGA-Sync - QUERY ZOOM WINDOW
  4671.     AX = 0005h
  4672.     BX:CX -> buffer for window parameters (see below)
  4673. Note:    INT 61h is the default interrupt; the actual interrupt number can be
  4674.       obtained by calling INT 16/AH=FFh
  4675. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0003h"OPTIMA"
  4676. SeeAlso: INT 61/AX=0006h"OPTIMA"
  4677.  
  4678. Format of window parameters:
  4679. Offset    Size    Description
  4680.  00h    WORD    X start of zoom window
  4681.  02h    WORD    Y start of zoom window
  4682.  04h    WORD    X end of zoom window
  4683.  06h    WORD    Y end of zoom window
  4684.  08h    WORD    current zoom factor
  4685.  0Ah    WORD    zoom offset start X
  4686.  0Ch    WORD    zoom offset start Y
  4687. ----------610006-----------------------------
  4688. INT 61 - OPTIMA 1024 VGA-Sync - SET ZOOM WINDOW
  4689.     AX = 0006h
  4690.     BX:CX -> zoom window description (see below)
  4691. Notes:    width of zoom window must be a multiple of the pixel replication
  4692.       factor
  4693.     INT 61h is the default interrupt; the actual interrupt number can be
  4694.       obtained by calling INT 16/AH=FFh
  4695. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0001h"OPTIMA"
  4696. SeeAlso: INT 61/AX=0005h"OPTIMA",INT 61/AX=0008h"OPTIMA"
  4697.  
  4698. Format of zoom window description:
  4699. Offset    Size    Description
  4700.  00h    WORD    X start of zoom window
  4701.  02h    WORD    Y start of zoom window
  4702.  04h    WORD    X end of zoom window
  4703.  06h    WORD    Y end of zoom window
  4704. ----------610007-----------------------------
  4705. INT 61 - OPTIMA 1024 VGA-Sync - QUERY APPLICATION KEY
  4706.     AX = 0007h
  4707. Return: AX = 0000h/0001h
  4708. Notes:    In specify mode, the END key has been reserved for applications.
  4709.     Returns the current toggle state of that key. E.g. in the
  4710.       OPTIMA AutoCAD driver, 0 means, AutoCAD calls subfunction 0001h
  4711.       every time the cross cursor moves.
  4712.     INT 61h is the default interrupt; the actual interrupt number can be
  4713.       obtained by calling INT 16/AH=FFh
  4714. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0001h"OPTIMA"
  4715. SeeAlso: INT 61/AX=0004h"OPTIMA",INT 7A"AutoCAD"
  4716. ----------610007BX0002-----------------------
  4717. INT 61 - Banyan VINES - GET PORTS FOR A SERVICE
  4718.     AX = 0007h
  4719.     BX = 0002h
  4720.     DS:DX -> StreetTalk service name
  4721.     DS:DI -> port record block (see below)
  4722. Return: AX = status
  4723.         0000h successful
  4724.         0001h PC network software not installed or incompatible
  4725.         03E9h incorrect name syntax
  4726.         03EAh organization name too long
  4727.         03EBh group name too long
  4728.         03ECh item name too long
  4729.         03EDh StreetTalk name too long
  4730.         03F3h organization not found
  4731.         03F4h group not found
  4732.         03F5h StreetTalk name not found
  4733.         03F8h not a StreetTalk name
  4734.         040Dh appropriate StreetTalk name unavailable
  4735.  
  4736. Format of port record block:
  4737. Offset    Size    Description
  4738.  00h    WORD    number of 17-byte elements
  4739.  02h 17 BYTEs    element (byte 00h = input port type, bytes 01h-10h = port)
  4740.         (see AX=0001h#"Sosock" for port format)
  4741. ----------610007BX0004-----------------------
  4742. INT 61 - Banyan VINES - SET PORTS FOR A SERVICE
  4743.     AX = 0007h
  4744.     BX = 0004h
  4745.     DS:DX -> StreetTalk name of service
  4746.     DS:DI -> port record block (see below)
  4747. Return: AX = status
  4748.         0000h successful
  4749.         0001h PC network software not installed or incompatible
  4750.         03E9h incorrect name syntax
  4751.         03EAh organization name too long
  4752.         03EBh group name too long
  4753.         03ECh item name too long
  4754.         03EDh StreetTalk name too long
  4755.         03F3h organization not found
  4756.         03F4h group not found
  4757.         03F5h StreetTalk name not found
  4758.         03F8h not a StreetTalk name
  4759.         0409h modify access denied
  4760.         040Dh appropriate StreetTalk name unavailable
  4761.  
  4762. Format of port record block:
  4763. Offset    Size    Description
  4764.  00h    WORD    number of 17-byte elements
  4765.  02h 17 BYTEs    element: byte 00h = input port type, 01h-10h = port
  4766.         (see AX=0001h#"Sosock" for port format)
  4767. ----------610007BX0005-----------------------
  4768. INT 61 - Banyan VINES - GET USER NAME
  4769.     AX = 0007h
  4770.     BX = 0005h
  4771.     DS:DX -> 64-byte buffer for user's StreetTalk name
  4772. Return: AX = status
  4773.         0000h successful
  4774.         0001h network software not installed or incompatible
  4775. Note:    if no user logged in, first byte of returned name will be 00h
  4776. ----------610007BX0006-----------------------
  4777. INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING
  4778.     AX = 0007h
  4779.     BX = 0006h
  4780.     SI = error code (>100)
  4781.     DS:DX -> 80-byte buffer for error text
  4782. Return: AX = status
  4783.         0000h successful
  4784.         0001h network software not installed or incompatible        
  4785. ----------610007BX0007-----------------------
  4786. INT 61 - Banyan VINES - VERIFY EXISTENCE OF NAME AND RETURN CANONICAL FORM
  4787.     AX = 0007h
  4788.     BX = 0007h
  4789.     DS:DX -> NiceName block (see below)
  4790. Return: AX = status
  4791.         0000h successful
  4792.         0001h PC network software not installed or incompatible
  4793.         03E9h incorrect name syntax
  4794.         03EAh organization name too long
  4795.         03EBh group name too long
  4796.         03ECh item name too long
  4797.         03EDh StreetTalk name too long
  4798.         03F3h organization not found
  4799.         03F4h group not found
  4800.         03F5h StreetTalk name not found
  4801.         03F8h not a StreetTalk name
  4802.         040Dh appropriate StreetTalk name unavailable
  4803. SeeAlso: AX=0007h/BX=0008h
  4804.  
  4805. Format of NiceName block:
  4806. Offset    Size    Description
  4807.  00h    WORD    type of name
  4808.         0064h organization
  4809.         00C8h group
  4810.         012Ch item
  4811.  02h    WORD    pointer to ASCIZ input name
  4812.  04h    WORD    pointer to 64-byte buffer for output name
  4813. ----------610007BX0008-----------------------
  4814. INT 61 - Banyan VINES - ENUMERATE StreetTalk NAMES
  4815.     AX = 0007h
  4816.     BX = 0008h
  4817.     DS:DX -> enumerate block (see below)
  4818. Return: AX = status
  4819.         0000h successful
  4820.         0411h all matching names have been returned
  4821.         0412h some groups unavailable, all available matches returned
  4822. Note:    each program using this call should continue until a nonzero status
  4823.       is returned; otherwise, some resources will not be freed for several
  4824.       hours
  4825. SeeAlso: AX=0007h/BX=0007h
  4826.  
  4827. Format of enumerate block:
  4828. Offset    Size    Description
  4829.  00h    WORD    return code
  4830.  02h    WORD    pointer to pattern string
  4831.  04h    WORD    enumerate type
  4832.         0064h organization
  4833.         00C8h group
  4834.         012Ch item
  4835.  06h    WORD    enumerate class
  4836.         0000h unspecified (return all matching items)
  4837.         0001h user names
  4838.         0002h service names
  4839.         0003h list names
  4840.         0004h nicknames
  4841.  08h    WORD    pointer to category criteria block (see below) or 0
  4842.  0Ah    WORD    pointer to array of 64-byte returned names
  4843.  0Ch    WORD    number of names returned
  4844.  0Eh  6 BYTEs    reserved for subsequent enumerated calls (set to zeros on first
  4845.           call)
  4846.  
  4847. Format of category criteria block:
  4848. Offset    Size    Description
  4849.  00h    WORD    exclude flag
  4850.         0000h return only items with the specified categories
  4851.         0001h return all items except those with the given categories
  4852.  02h    WORD    number of categories
  4853.  04h    WORD    category 1 value
  4854.  06h    WORD    category 2 value
  4855.         ...
  4856.  
  4857. Values for common service categories:
  4858.  0002h file service
  4859.  0003h print service
  4860.  0004h mail service
  4861.  0005h StreetTalk
  4862.  0006h time service
  4863.  0008h semaphore service
  4864.  0009h 3270/SNA service
  4865.  000Ah asynchronous terminal emulation service
  4866.  000Ch NETBIOS service
  4867.  000Dh PC-based service
  4868. ----------610008-----------------------------
  4869. INT 61 - OPTIMA 1024 VGA-Sync - SET ZOOM OFFSET
  4870.     AX = 0008h
  4871.     BX = X start of zoom offset
  4872.     CX = Y start of zoom offset
  4873. Notes:    specifies the first byte of video memory to appear in the zoom window
  4874.     INT 61h is the default interrupt; the actual interrupt number can be
  4875.       obtained by calling INT 16/AH=FFh
  4876. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0006h"OPTIMA"
  4877. ----------610008BX0002-----------------------
  4878. INT 61 - Banyan VINES - POST MESSAGE ON LOCAL DISPLAY
  4879.     AX = 0008h
  4880.     BX = 0002h
  4881.     CX = flags
  4882.         bit 0: message will remain on screen until user presses ^X
  4883.         bit 1: ring bell after displaying message
  4884.         bit 2: blink
  4885.     DS:DX -> ASCIZ string to display (only first 80 chars used)
  4886. Return: AX = status
  4887.         0000h successful
  4888.         000Bh message display function currently busy
  4889.         000Ch message queue full
  4890. Note:    queues up to three messages to be displayed on the bottom line
  4891. ----------610008BX0003-----------------------
  4892. INT 61 - Banyan VINES - INTERCEPT VINES 25th-LINE MESSAGES AT LOCAL PC
  4893.     AX = 0008h
  4894.     BX = 0003h
  4895.     DS:DX -> request block
  4896. Return: AX = status
  4897.         0000h successful
  4898.         0001h network software not installed or incompatible
  4899. Notes:    message handler should not call BIOS or DOS functions, and should
  4900.       either call next handler or simply return
  4901.     to stop intercepting messages, set prev and next request blocks to
  4902.       point at each other
  4903.  
  4904. Format of request block:
  4905. Offset    Size    Description
  4906.  00h    DWORD    pointer to user-written message handler
  4907.  04h    DWORD    pointer to next request block (filled in by VINES)
  4908.  08h    DWORD    pointer to previous request block (filled in by VINES)
  4909.  0Ch    DWORD    pointer to message storage area (filled by VINES) (see below)
  4910.  
  4911. Format of message storage area:
  4912. Offset    Size    Description
  4913.  00h 16 BYTEs    IPC port of message sender (see AX=0001h#"Sosock")
  4914.  10h    BYTE    message flags
  4915.  11h    WORD    reserved
  4916.  13h    BYTE    length of message
  4917.  14h 80 BYTEs    message text
  4918. ----------61000A-----------------------------
  4919. INT 61 - Banyan VINES - SECONDARY 3270 INTERFACE
  4920.     AX = 000Ah
  4921. Notes:    either 3270/SNA or 3270/BSC interface will use AX=000Ah, depending on
  4922.       which is loaded second.  The first interface loaded will use AX=0002h
  4923. SeeAlso: INT 61/AX=0002h
  4924. ----------6101-------------------------------
  4925. INT 61 - Banyan VINES - CHECK SERVICE
  4926.     AH = 01h
  4927.     AL = service ID
  4928.         01h communications
  4929.         02h primary 3270 emulation
  4930.         03h async terminal emulation
  4931.         04h file deflection
  4932.         07h StreetTalk
  4933.         08h environment
  4934.         0Ah secondary 3270 emulation
  4935.         0Bh semaphore service
  4936.         0Ch 3270 emulation active status
  4937.         0Dh 3270 keyboard interrupt simulator
  4938. Return: AX = status
  4939.         0000h installed
  4940.         0001h not installed
  4941.         0002h invalid ID
  4942. ----------6102-------------------------------
  4943. INT 61 - Banyan VINES - GET REVISION NUMBER
  4944.     AH = 02h
  4945.     DS:DX -> 2-byte buffer for result
  4946. Return: AX = 0000h installed
  4947.         DS:DX buffer contains revision number as
  4948.         10000d * major_ver + 100d * minor_ver + patch_revision
  4949. ----------6105-------------------------------
  4950. INT 61 u - PC/TCP kernel v2.05 - "get_addr" - ???
  4951.     AH = 05h
  4952.     BX = connection handle???
  4953. Return: CF clear if successful
  4954.         DX:AX = ???
  4955.     CF set on error
  4956.         AX = error code (see INT 61"PC/TCP")
  4957. Notes:    the installation check consists of testing for the signature "TCPTSR"
  4958.       three bytes beyond the start of the interrupt handler
  4959.     INT 61 is the default; PC/TCP v2.05 may be configured to use any
  4960.       interrupt from 20h through E0h
  4961. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=06h
  4962. ----------6106-------------------------------
  4963. INT 61 u - PC/TCP kernel v2.05 - "net_info" - GET INTERFACE STATISTICS
  4964.     AH = 06h
  4965.     BX = connection handle???
  4966.     DS:SI -> 38-byte buffer (see below)
  4967. Return: CF clear if successful
  4968.         buffer filled
  4969.     CF set on error
  4970.         AX = error code (see INT 61"PC/TCP")
  4971. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=05h
  4972.  
  4973. Format of buffer:
  4974. Offset    Size    Description
  4975.  00h    WORD    ???
  4976.  02h    WORD    ???
  4977.  04h    WORD    ???
  4978.  06h    DWORD    IP address of interface (big-endian)
  4979.  0Ah    DWORD    subnet mask
  4980.  0Eh    WORD    ??? (apparently always 0001h)
  4981.  10h    DWORD    total packets received
  4982.  14h    DWORD    total packets sent
  4983.  18h    DWORD    receive errors
  4984.  1Ch    DWORD    send errors
  4985.  20h    WORD    ??? (apparently always 0006h)
  4986.  22h    DWORD    pointer to ???
  4987. ----------6107-------------------------------
  4988. INT 61 u - PC/TCP kernel v2.05 - "net_globalize" - ???
  4989.     AH = 07h
  4990.     BX = connection handle???
  4991. Return: CF clear if successful
  4992.         AX = ???
  4993.     CF set on error
  4994.         AX = error code (see INT 61"PC/TCP")
  4995. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  4996. ----------6108-------------------------------
  4997. INT 61 u - PC/TCP kernel v2.05 - "net_release" - ???
  4998.     AH = 08h
  4999.     BX = connection handle???
  5000. Return: CF clear if successful
  5001.     CF set on error
  5002.         AX = error code (see INT 61"PC/TCP")
  5003. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5004. ----------6109-------------------------------
  5005. INT 61 u - PC/TCP kernel v2.05 - "net_releaseall" - ??? ALL
  5006.     AH = 09h
  5007. Return: CF clear
  5008. Notes:    performs function 08h on every connection handle???
  5009.     the installation check consists of testing for the signature "TCPTSR"
  5010.       three bytes beyond the start of the interrupt handler
  5011.     INT 61 is the default; PC/TCP v2.05 may be configured to use any
  5012.       interrupt from 20h through E0h
  5013. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5014. ----------610A-------------------------------
  5015. INT 61 - PC/TCP kernel v2.05 - "net_send" - ???
  5016.     AH = 0Ah
  5017.     ???
  5018. Return: ???
  5019. ----------610B-------------------------------
  5020. INT 61 - PC/TCP kernel v2.05 - "net_sendto" - ???
  5021.     AH = 0Bh
  5022.     ???
  5023. Return: ???
  5024. ----------610C-------------------------------
  5025. INT 61 u - PC/TCP kernel v2.05 - "net_stat" - GET CONNECTION STATISTICS
  5026.     AH = 0Ch
  5027.     BX = connection handle???
  5028.         FFFCh for kernel ICMP statistics
  5029.         FFFDh for kernel UDP statistics
  5030.         FFFEh for kernel IP statistics
  5031.         FFFFh for kernel TCP statistics
  5032.     DS:DX -> 64-byte buffer
  5033. Return: CF clear if successful
  5034.         buffer filled
  5035.     CF set on error
  5036.         AX = error code (see INT 61"PC/TCP")
  5037. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5038.  
  5039. Format of handle statistics:
  5040. Offset    Size    Description
  5041.  00h  4 BYTEs    unused
  5042.  04h    DWORD    ???
  5043.  08h  8 BYTEs    unused
  5044.  10h    DWORD    ???
  5045.  14h    DWORD    ???
  5046.  18h 12 BYTEs    unused
  5047.  24h    DWORD    ???
  5048.  28h 24 BYTEs    unused
  5049.  
  5050. Format of kernel TCP statistics:
  5051. Offset    Size    Description
  5052.  00h 16 BYTEs    unused
  5053.  10h    DWORD    bytes sent
  5054.  14h    DWORD    bytes received
  5055.  18h  8 BYTEs    unused
  5056.  20h    DWORD    packets sent
  5057.  24h    DWORD    packets received
  5058.  28h    DWORD    bad checksums
  5059.  2Ch    DWORD    protocol errors
  5060.  30h    DWORD    timeouts
  5061.  34h    DWORD    resets
  5062.  38h    DWORD    duplicate packets
  5063.  3Ch    DWORD    retransmits
  5064.  
  5065. Format of kernel IP statistics:
  5066. Offset    Size    Description
  5067.  00h  8 BYTEs    unused
  5068.  08h    DWORD    ??? errors
  5069.  0Ch    DWORD    ??? errors
  5070.  10h    DWORD    ???
  5071.  14h    DWORD    ??? errors
  5072.  18h    DWORD    security errors
  5073.  1Ch    DWORD    ??? errors
  5074.  20h    DWORD    packets sent
  5075.  24h    DWORD    packets received
  5076.  28h    DWORD    bad checksums
  5077.  2Ch    DWORD    protocol errors
  5078.  30h    DWORD    timeouts
  5079.  34h    DWORD    errors
  5080.  38h    DWORD    fragments
  5081.  3Ch
  5082.  
  5083. Format of kernel UDP statistics:
  5084. Offset    Size    Description
  5085.  00h 32 BYTEs    unused
  5086.  20h    DWORD    packets sent
  5087.  24h    DWORD    packets received
  5088.  28h    DWORD    bad checksums
  5089.  2Ch    DWORD    port not listening errors
  5090.  30h  4 BYTEs    unused
  5091.  34h    DWORD    truncated receives
  5092.  38h  8 BYTEs    unused
  5093.  
  5094. Format of kernel ICMP statistics:
  5095. Offset    Size    Description
  5096.  00h    DWORD    "TimeEx" sent
  5097.  04h    DWORD    "TimeEx" received
  5098.  08h    DWORD    "ParamProb" sent
  5099.  0Ch    DWORD    "ParamProb" received
  5100.  10h    DWORD    redirects received
  5101.  14h    DWORD    source quenches received
  5102.  18h    DWORD    ???
  5103.  1Ch    DWORD    ???
  5104.  20h    DWORD    packets sent
  5105.  24h    DWORD    packets received
  5106.  28h    DWORD    bad packets received
  5107.  2Ch    DWORD    "DestUn" received
  5108.  30h    DWORD    packet send errors
  5109.  34h    DWORD    "DestUn" sent
  5110.  38h    DWORD    ???
  5111.  3Ch    DWORD    ???
  5112. ----------610D-------------------------------
  5113. INT 61 u - PC/TCP kernel v2.05 - "is_netnd" - CHECK IF CONNECTION HANDLE VALID
  5114.     AH = 0Dh
  5115.     BX = connection handle
  5116. Return: CF clear if valid
  5117.     CF set on error
  5118.         AX = error code (see INT 61"PC/TCP")
  5119. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5120. ----------610E-------------------------------
  5121. INT 61 u - PC/TCP kernel v2.05 - "net_select" - ???
  5122.     AH = 0Eh
  5123.     BX = ???
  5124.     DS:DX -> ???
  5125.     ES:DI -> ???
  5126. Return: CF clear
  5127.     ???
  5128. Notes:    the installation check consists of testing for the signature "TCPTSR"
  5129.       three bytes beyond the start of the interrupt handler
  5130.     INT 61 is the default; PC/TCP v2.05 may be configured to use any
  5131.       interrupt from 20h through E0h
  5132. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5133. ----------610F-------------------------------
  5134. INT 61 u - PC/TCP kernel v2.05 - "get_netversion" - GET SOFTWARE VERSION
  5135.     AH = 0Fh
  5136. Return: CF clear
  5137.         AX = version (AH = major, AL = minor)
  5138.         BX = patch level
  5139. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5140. ----------6110-------------------------------
  5141. INT 61 u - PC/TCP kernel v2.05 - "net_shutdown" - UNINSTALL
  5142.     AH = 10h
  5143. Return: CF clear if successful
  5144.     CF set on error???
  5145. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5146. ----------6111-------------------------------
  5147. INT 61 u - PC/TCP kernel v2.05 - "disable_async" - ???
  5148.     AH = 11h
  5149. Return: CF clear
  5150.     AX = ???
  5151. Note:    clears location whose value is returned in AX and decrements another if
  5152.       it is not already zero
  5153. SeeAlso: INT 61"PC/TCP",INT 61/AH=12h
  5154. ----------6112-------------------------------
  5155. INT 61 u - PC/TCP kernel v2.05 - "enable_async" - ???
  5156.     AH = 12h
  5157. Return: CF clear
  5158.     AX = ???
  5159. Note:    sets location whose value is returned in AX to 0001h and performs other
  5160.       actions if another location is nonzero; these two locations are the
  5161.       same ones used by AH=11h
  5162. SeeAlso: INT 61"PC/TCP",INT 61/AH=11h
  5163. ----------6113-------------------------------
  5164. INT 61 u - PC/TCP kernel v2.05 - "net_connect" - ???
  5165.     AH = 13h
  5166.     BX = connection handle??? or FFFFh
  5167.     DX = protocol
  5168.         0000h ??? (returns error 0016h)
  5169.         0001h ???
  5170.         0002h ???
  5171.         0003h ???
  5172.         0004h ???
  5173.         0005h ???
  5174.     DS:SI -> result buffer???
  5175. Return: CF clear if successful
  5176.         AX = connection handle???
  5177.     CF set on error
  5178.         AX = error code (see INT 61"PC/TCP")
  5179. Note:    invokes AH=22h if BX=FFFFh on entry; also invokes AH=19h in various
  5180.       cases
  5181. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=23h
  5182. ----------6114-------------------------------
  5183. INT 61 u - PC/TCP kernel v2.05 - "net_recv" - NO LONGER SUPPORTED
  5184.     AH = 14h
  5185.     BX = connection handle???
  5186. Return: CF set
  5187.         AX = 0018h (see INT 61"PC/TCP")
  5188. Note:    displays error message "Illegal system call!  Please upgrade your
  5189.       PCserver software" to standard output
  5190. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5191. ----------6115-------------------------------
  5192. INT 61 - PC/TCP kernel v2.05 - "net_recvfrom" - ???
  5193.     AH = 15h
  5194.     ???
  5195. Return: ???
  5196. ----------6116-------------------------------
  5197. INT 61 u - PC/TCP kernel v2.05 - "net_peer" - GET ADDRESS OF REMOTE PEER???
  5198.     AH = 16h
  5199.     BX = connection handle???
  5200.     DS:DX -> 9-byte buffer for ???
  5201. Return: CF clear if successful
  5202.         ???
  5203.     CF set on error
  5204.         AX = error code (see INT 61"PC/TCP")
  5205. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5206. ----------6117-------------------------------
  5207. INT 61 u - PC/TCP kernel v2.05 - "net_reconfig" - ???
  5208.     AH = 17h
  5209. Return: CF clear if successful
  5210.     CF set on error
  5211.         AX = error code (see INT 61"PC/TCP")
  5212. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5213. ----------6118-------------------------------
  5214. INT 61 u - PC/TCP kernel v2.05 - "net_eof" - ???
  5215.     AH = 18h
  5216.     BX = connection handle???
  5217. Return: CF clear if successful
  5218.     CF set on error
  5219.         AX = error code (see INT 61"PC/TCP")
  5220. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5221. ----------6119-------------------------------
  5222. INT 61 u - PC/TCP kernel v2.05 - "net_abort" - ???
  5223.     AH = 19h
  5224.     BX = connection handle???
  5225. Return: CF clear if successful
  5226.     CF set on error
  5227.         AX = error code (see INT 61"PC/TCP")
  5228. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5229. ----------611A-------------------------------
  5230. INT 61 u - PC/TCP kernel v2.05 - "net_write" - ???
  5231.     AH = 1Ah
  5232.     BX = connection handle???
  5233.     CX = ???
  5234.     DX = ???
  5235.     DS:SI -> ???
  5236. Return: CF clear if successful
  5237.         AX = ???
  5238.         DX = ???
  5239.     CF set on error
  5240.         AX = error code (see INT 61"PC/TCP")
  5241. Notes:    the installation check consists of testing for the signature "TCPTSR"
  5242.       three bytes beyond the start of the interrupt handler
  5243.     INT 61 is the default; PC/TCP v2.05 may be configured to use any
  5244.       interrupt from 20h through E0h
  5245. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch
  5246. ----------611B-------------------------------
  5247. INT 61 u - PC/TCP kernel v2.05 - "net_read" - ???
  5248.     AH = 1Bh
  5249.     BX = connection handle???
  5250.     CX = ???
  5251.     DX = ???
  5252.     DS:SI -> ???
  5253.     ES:DI -> ???
  5254. Return: CF clear if successful
  5255.         CX = ???
  5256.         DX = ???
  5257.     CF set on error
  5258.         AX = error code (see INT 61"PC/TCP")
  5259. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh
  5260. ----------611C-------------------------------
  5261. INT 61 u - PC/TCP kernel v2.05 - "net_readfrom" - ???
  5262.     AH = 1Ch
  5263.     BX = connection handle???
  5264.     CX = ???
  5265.     DX = ???
  5266.     DS:SI -> ???
  5267.     ES:DI -> ???
  5268. Return: CF clear if successful
  5269.         AX = ???
  5270.         DX = ???
  5271.     CF set on error
  5272.         AX = error code (see INT 61"PC/TCP")
  5273. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh
  5274. ----------611D-------------------------------
  5275. INT 61 u - PC/TCP kernel v2.05 - "net_writeto" - ???
  5276.     AH = 1Dh
  5277.     BX = connection handle???
  5278.     CX = ???
  5279.     DX = ???
  5280.     DS:SI -> ???
  5281.     ES:DI -> 9-byte buffer containing ???
  5282. Return: CF clear if successful
  5283.         CX = ???
  5284.         DX = ???
  5285.     CF set on error
  5286.         AX = error code (see INT 61"PC/TCP")
  5287. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch
  5288. ----------611E-------------------------------
  5289. INT 61 u - PC/TCP kernel v2.05 - "net_flush" - ???
  5290.     AH = 1Eh
  5291.     BX = connection handle
  5292. Return: CF clear if successful
  5293.     CF set on error
  5294.         AX = error code (see INT 61"PC/TCP")
  5295. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5296. ----------611F-------------------------------
  5297. INT 61 u - PC/TCP kernel v2.05 - "net_asynch" - ???
  5298.     AH = 1Fh
  5299.     BX = connection handle???
  5300.     CX = ???
  5301.     DS:SI -> ???
  5302.     ES:DI -> ???
  5303. Return: CF clear if successful
  5304.         DS:DX -> ???
  5305.     CF set on error
  5306.         AX = error code (see INT 61"PC/TCP")
  5307. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5308. ----------6120-------------------------------
  5309. INT 61 u - PC/TCP kernel v2.05 - "set_option" - ???
  5310.     AH = 20h
  5311.     BX = connection handle???
  5312.     CX = ???
  5313.     DS:DX -> ???
  5314.     SI = ???
  5315.     DI = ???
  5316. Return: CF clear if successful
  5317.     CF set on error
  5318.         AX = error code (see INT 61"PC/TCP")
  5319. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=21h
  5320. ----------6121-------------------------------
  5321. INT 61 u - PC/TCP kernel v2.05 - "get_option" - ???
  5322.     AH = 21h
  5323.     BX = connection handle???
  5324.     CX = ???
  5325.     DS:DX -> ???
  5326.     SI = ???
  5327.     DI = ???
  5328. Return: CF clear if successful
  5329.         DS:DX -> ???
  5330.     CF set on error
  5331.         AX = error code (see INT 61"PC/TCP")
  5332. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=20h
  5333. ----------6122-------------------------------
  5334. INT 61 u - PC/TCP kernel v2.05 - "net_getdesc" - ???
  5335.     AH = 22h
  5336.     BX = connection handle???
  5337. Return: CF clear if successful
  5338.         AX = ???
  5339.     CF set on error
  5340.         AX = error code (see INT 61"PC/TCP")
  5341. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5342. ----------6123-------------------------------
  5343. INT 61 u - PC/TCP kernel v2.05 - "net_listen" - ???
  5344.     AH = 23h
  5345.     BX = connection handle??? or FFFFh
  5346.     DX = subfunction???
  5347.     DS:SI -> ???
  5348. Return: CF clear if successful
  5349.         AX = ???
  5350.     CF set on error
  5351.         AX = error code (see INT 61"PC/TCP")
  5352. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=13h
  5353. ----------6124-------------------------------
  5354. INT 61 u - PC/TCP kernel v2.05 - "net_abortall" - ???
  5355.     AH = 24h
  5356. Return: ???
  5357. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5358. ----------6125-------------------------------
  5359. INT 61 u - PC/TCP kernel v2.05 - "ad_res_name" - ???
  5360.     AH = 25h
  5361.     BX = ???
  5362.     CX = ???
  5363.     DX = ???
  5364.     DS:SI -> ???
  5365. Return: CF clear if successful
  5366.     CF set on error
  5367.         AX = error code (see INT 61"PC/TCP")
  5368. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5369. ----------6126-------------------------------
  5370. INT 61 u - PC/TCP kernel v2.05 - "ad_htable" - ???
  5371.     AH = 26h
  5372.     BX = ???
  5373.     CX = ???
  5374.     DX = ???
  5375.     DS:SI -> ???
  5376. Return: CF clear if successful
  5377.     CF set on error
  5378.         AX = error code (see INT 61"PC/TCP")
  5379. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5380. ----------6127-------------------------------
  5381. INT 61 u - PC/TCP kernel v2.05 - "ad_domain" - ???
  5382.     AH = 27h
  5383.     BX = ???
  5384.     CX = ???
  5385.     DX = ???
  5386.     DS:SI -> ???
  5387. Return: CF clear if successful
  5388.     CF set on error
  5389.         AX = error code (see INT 61"PC/TCP")
  5390. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5391. ----------6128-------------------------------
  5392. INT 61 u - PC/TCP kernel v2.05 - "net_swap" - ???
  5393.     AH = 28h
  5394.     BX = connection handle???
  5395.     CX = ???
  5396. Return: CF clear if successful
  5397.         ???
  5398.     CF set on error
  5399.         AX = error code (see INT 61"PC/TCP")
  5400. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5401. ----------6129-------------------------------
  5402. INT 61 u - PC/TCP kernel v2.05 - "net_getglobdesc" - OPEN CONNECTION???
  5403.     AH = 29h
  5404. Return: CF clear if successful
  5405.         AX = connection handle???
  5406.     CF set on error
  5407.         AX = error code (see INT 61"PC/TCP")
  5408. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5409. ----------612A-------------------------------
  5410. INT 61 U - PC/TCP kernel v2.05 - GET CONFIGURATION INFORMATION
  5411.     AH = 2Ah
  5412.     DS:SI -> 26-byte buffer for configuration information (see below)
  5413. Return: CF clear
  5414.     AX = 0000h
  5415.     buffer filled
  5416. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5417.  
  5418. Format of configuration information:
  5419. Offset    Size    Description
  5420.  00h    BYTE    maximum TCP connections available
  5421.  01h    BYTE    maximum UDP connections available
  5422.  02h    BYTE    maximum IP connections available
  5423.  03h    BYTE    ???
  5424.  04h    BYTE    number of TCP connections currently in use
  5425.  05h    BYTE    number of UDP connections currently in use
  5426.  06h    BYTE    number of IP connections currently in use
  5427.  07h    BYTE    ???
  5428.  08h    WORD    number of local network descriptors active
  5429.  0Ah    WORD    number of global network descriptors active
  5430.  0Ch    BYTE    ???
  5431.  0Dh    BYTE    ???
  5432.  0Eh    WORD    ???
  5433.  10h    WORD    ???
  5434.  12h    DWORD    ???
  5435.  16h    DWORD    IP broadcast address
  5436. ----------612B-------------------------------
  5437. INT 61 U - PC/TCP kernel v2.05 - ???
  5438.     AH = 2Bh
  5439.     BX = connection handle???
  5440.     CX = ???
  5441.     DX = ???
  5442.     DS:SI -> ???
  5443.     ES:DI -> ???
  5444. Return: CF clear if successful
  5445.     CF set on error
  5446.         AX = error code (see INT 61"PC/TCP")
  5447. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5448. ----------6130-------------------------------
  5449. INT 61 u - PC/TCP kernel v2.05 - "icmp_ping" ???
  5450.     AH = 30h
  5451.     BX = ???
  5452.     CX = ???
  5453.     DX = ???
  5454. Return: CF clear if successful
  5455.     CF set on error
  5456.         AX = error code (see INT 61"PC/TCP")
  5457. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5458. ----------61---------------------------------
  5459. INT 61 u - PC/TCP kernel v2.05 - NOP for SLIP kernel
  5460.     AH = function
  5461.         31h "net_add_route"
  5462.         32h "net_del_route"
  5463.         33h "net_dump_routes"
  5464. ----------6134-------------------------------
  5465. INT 61 u - PC/TCP kernel v2.1 - "icmp_destun" - ???
  5466.     AH = 34h
  5467.     ???
  5468. Return: ???
  5469. ----------6150-------------------------------
  5470. INT 61 u - PC/TCP kernel v2.05 - "nm_prs_addr" - ???
  5471.     AH = 50h
  5472.     DS:DX -> 127-byte buffer containing ???
  5473. Return: CF clear if successful
  5474.         DX:AX -> ???
  5475.     CF set on error
  5476.         AX = error code (see INT 61"PC/TCP")
  5477. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5478. ----------6151-------------------------------
  5479. INT 61 u - PC/TCP kernel v2.05 - "nm_htable" - ???
  5480.     AH = 51h
  5481.     CX = size of destination buffer
  5482.     DS:DX -> 127-byte buffer containing ???
  5483.     ES:DI -> destination buffer or 0000h:0000h
  5484. Return: CF clear if successful
  5485.         DX:AX -> ???
  5486.     CF set on error
  5487.         AX = error code (see INT 61"PC/TCP")
  5488. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5489. ----------6152-------------------------------
  5490. INT 61 u - PC/TCP kernel v2.05 - "nm_domain" - ???
  5491.     AH = 52h
  5492.     CX = size of destination buffer
  5493.     DS:DX -> 127-byte buffer containing ???
  5494.     ES:DI -> destination buffer or 0000h:0000h
  5495. Return: CF clear if successful
  5496.         DX:AX -> ???
  5497.     CF set on error
  5498.         AX = error code (see INT 61"PC/TCP")
  5499. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5500. ----------6153-------------------------------
  5501. INT 61 u - PC/TCP kernel v2.05 - "nm_ien116" - ???
  5502.     AH = 53h
  5503.     DS:DX -> 127-byte buffer containing ???
  5504. Return: CF clear if successful
  5505.         DX:AX -> ???
  5506.     CF set on error
  5507.         AX = error code (see INT 61"PC/TCP")
  5508. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5509. ----------6154-------------------------------
  5510. INT 61 u - PC/TCP kernel v2.05 - "nm_res_name" - RESOLVE HOST NAME
  5511.     AH = 54h
  5512.     CX = size of destination buffer
  5513.     DS:DX -> 127-byte buffer containing host name???
  5514.     ES:DI -> destination buffer or 0000h:0000h
  5515. Return: CF clear if successful
  5516.         DX:AX -> ???
  5517.     CF set on error
  5518.         AX = error code (see INT 61"PC/TCP")
  5519. BUG:    the SLIP kernel for v2.05 bounds-checks the wrong register, so values
  5520.       greater than 54h in AH may crash the system.    Other kernels may have
  5521.       this bug as well.
  5522. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5523. ----------62---------------------------------
  5524. INT 62 - reserved for user interrupt
  5525. ----------62---------------------------------
  5526. INT 62 - Adaptec and OMTI controllers - DRIVE 0 DATA
  5527. Notes:    this vector stores the third four bytes of the parameter table for
  5528.       hard disk 0
  5529. SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 63"Adaptec"
  5530. ----------62---------------------------------
  5531. INT 62 - HP 95LX - USED BY CALCULATOR
  5532. SeeAlso: INT 60"HP 95LX"
  5533. ----------62---------------------------------
  5534. INT 62 - MS SQL Server/Sybase DBLIBRARY interface - ???
  5535.     AH = function (00h to 07h)
  5536.     CX = FFFEh
  5537.     DX = FFFFh
  5538.     ???
  5539. Return: ???
  5540. Note:    the installation check consists of testing for the string "DBLIBRARY"
  5541.       2 bytes past the interrupt handler
  5542. SeeAlso: AH=08h"SQL"
  5543. ----------620000-----------------------------
  5544. INT 62 u - FGDRIVER v1.10 - "FG_GETMODE" - GET CURRENT VIDEO MODE NUMBER
  5545.     AX = 0000h
  5546.     ES:BX -> ???
  5547. Return: AX = current video mode number
  5548. Notes:    FGDRIVER is the external video driver for the shareware
  5549.       Fastgraph/Light by Ted Gruber Software
  5550.     the installation check consists of testing for the signature "FG" ten
  5551.       bytes beyond the start of the interrupt handler
  5552. SeeAlso: AX=0001h,AX=0006h
  5553. ----------620001-----------------------------
  5554. INT 62 u - FGDRIVER v1.10 - "FG_SETMODE" - SELECT VIDEO MODE AND INITIALIZE
  5555.     AX = 0001h
  5556.     BX = new video mode or FFFFh for current mode
  5557.     ES:DX -> ???
  5558. Notes:    video modes are the same as the BIOS video modes except for
  5559.         0Bh Hercules graphics 720x348
  5560.         0Ch Hercules graphics 320x200
  5561.         15h VGA graphics 320x400x256
  5562.         16h VGA graphics 320x240x256
  5563.         17h VGA graphics 320x480x256
  5564.     this call resets the active video page to page 0000h, the clipping
  5565.       region to the entire screen, text rows to 25, etc.
  5566. SeeAlso: AX=0000h,AX=0002h,INT 10/AH=00h
  5567. ----------620002-----------------------------
  5568. INT 62 u - FGDRIVER v1.10 - "FG_TESTMODE" - CHECK IF VIDEO MODE AVAILABLE
  5569.     AX = 0002h
  5570.     BX = desired video mode (00h-17h)
  5571.     CX = required number of video pages (ignore memory size if <= 0)
  5572. Return: AX = status
  5573.         0000h mode not available with requested number of pages
  5574.         0001h mode is available
  5575. SeeAlso: AX=0001h,AX=0003h,AX=0004h,AX=0005h
  5576. ----------620003-----------------------------
  5577. INT 62 u - FGDRIVER v1.10 - "FG_BESTMODE" - GET BEST VIDEO MODE GIVEN RESOLUTN
  5578.     AX = 0003h
  5579.     BX = horizontal resolution
  5580.     CX = vertical resolution
  5581.     DX = number of video pages required (both physical and virtual)
  5582. Return: AX = proposed video mode number or FFFFh if no matching video mode
  5583. SeeAlso: AX=0002h,AX=0004h
  5584. ----------620004-----------------------------
  5585. INT 62 u - FGDRIVER v1.10 - "FG_AUTOMODE" - GET VIDEO MODE WITH MOST FEATURES
  5586.     AX = 0004h
  5587. Return: AX = proposed video mode number
  5588. Note:    FGDRIVER is the external video driver for the shareware
  5589.       Fastgraph/Light by Ted Gruber Software
  5590. SeeAlso: AX=0002h,AX=0003h,AX=0005h
  5591. ----------620005-----------------------------
  5592. INT 62 u - FGDRIVER v1.10 - "FG_EGACHECK" - GET INFO ABOUT ACTIVE EGA DISPLAY
  5593.     AX = 0005h
  5594. Return: AX = number of 64K banks of video memory, or 0000h if no EGA or EGA
  5595.         without an Enhanced Color Display
  5596. SeeAlso: AX=0002h,AX=0003h
  5597. ----------620006-----------------------------
  5598. INT 62 u - FGDRIVER v1.10 - "FG_RESET" - ERASE SCREEN AND RESTORE SCREEN ATTR
  5599.     AX = 0006h
  5600. Notes:    this call is ignored in graphics modes
  5601.     the screen attributes are only restored if ANSI.SYS is loaded
  5602. SeeAlso: AX=0000h
  5603. ----------620007-----------------------------
  5604. INT 62 u - FGDRIVER v1.10 - "FG_CURSOR" - SPECIFY WHETHER TEXT CURSR IS VISIBLE
  5605.     AX = 0007h
  5606.     BX = new state (0000h invisible, 0001h visible)
  5607. Note:    this call is ignored in text modes
  5608. ----------620008-----------------------------
  5609. INT 62 - FGDRIVER v1.10 - UNUSED
  5610.     AX = 0008h to 0009h
  5611. Return: AX = 0000h
  5612. ----------62000A-----------------------------
  5613. INT 62 u - FGDRIVER v1.10 - "FG_GETMAXX" - GET MAXIMUM COLUMN IN SCREEN SPACE
  5614.     AX = 000Ah
  5615. Return: AX = maximum X coordinate in screen space
  5616.         (or character space if in text mode)
  5617. SeeAlso: AX=000Bh,AX=0045h
  5618. ----------62000B-----------------------------
  5619. INT 62 u - FGDRIVER v1.10 - "FG_GETMAXY" - GET MAXIMUM ROW IN SCREEN SPACE
  5620.     AX = 000Bh
  5621. Return: AX = maximum Y coordinate in screen space
  5622.         (or character space if in text mode)
  5623. SeeAlso: AX=000Ah,AX=0045h
  5624. ----------62000C-----------------------------
  5625. INT 62 u - FGDRIVER v1.10 - "FG_XALPHA" - CONVERT SCREEN COLUMN TO CHAR COLUMN
  5626.     AX = 000Ch
  5627.     BX = screen space column
  5628. Return: AX = character space column containing specified coordinate
  5629. SeeAlso: AX=000Dh,AX=000Eh
  5630. ----------62000D-----------------------------
  5631. INT 62 u - FGDRIVER v1.10 - "FG_YALPHA" - CONVERT SCREEN ROW TO CHARACTER ROW
  5632.     AX = 000Dh
  5633.     BX = screen space row
  5634. Return: AX = character space row containing specified coordinate
  5635. SeeAlso: AX=000Ch,AX=000Fh
  5636. ----------62000E-----------------------------
  5637. INT 62 u - FGDRIVER v1.10 - "FG_XCONVERT" - CONVERT CHAR COLUMN TO SCREEN COL
  5638.     AX = 000Eh
  5639.     BX = character space column
  5640. Return: AX = screen space column of leftmost pixel in specified character col
  5641. SeeAlso: AX=000Ch,AX=000Fh
  5642. ----------62000F-----------------------------
  5643. INT 62 u - FGDRIVER v1.10 - "FG_YCONVERT" - CONVERT CHARACTER ROW TO SCREEN ROW
  5644.     AX = 000Fh
  5645.     BX = character space row
  5646. Return: AX = screen space row of topmost pixel in specified character row
  5647. SeeAlso: AX=000Dh,AX=000Eh
  5648. ----------620010-----------------------------
  5649. INT 62 u - FGDRIVER v1.10 - "FG_GETLINES" - GET TEXT ROWS FOR CURR VIDEO MODE
  5650.     AX = 0010h
  5651. Return: AX = number of text rows on screen in current video mode
  5652. SeeAlso: AX=0011h
  5653. ----------620011-----------------------------
  5654. INT 62 u - FGDRIVER v1.10 - "FG_SETLINES" - SET TEXT ROWS ON SCREEN
  5655.     AX = 0011h
  5656.     BX = new screen size (25, 43, 50)
  5657. SeeAlso: AX=0010h
  5658. ----------620012-----------------------------
  5659. INT 62 - FGDRIVER v1.10 - UNUSED
  5660.     AX = 0012h to 0013h
  5661. Return: AX = 0000h
  5662. ----------620014-----------------------------
  5663. INT 62 u - FGDRIVER v1.10 - "FG_DEFCOLOR" - ASSIGN COLOR VALUE TO COLOR INDEX
  5664.     AX = 0014h
  5665.     BX = color index (0000h-00FFh)
  5666.     CX = new color value (0 to maximum color value for current video mode)
  5667. Note:    this call is ignored in text modes and 256-color graphics modes
  5668. SeeAlso: AX=0015h,AX=0016h,AX=001Dh
  5669. ----------620015-----------------------------
  5670. INT 62 u - FGDRIVER v1.10 - "FG_GETCOLOR" - GET CURRENT TEXT ATTRIBUTE
  5671.     AX = 0015h
  5672. Return: AX = current text attribute or color index (graphics modes)
  5673. Note:    FGDRIVER is the external video driver for the shareware
  5674.       Fastgraph/Light by Ted Gruber Software
  5675. SeeAlso: AX=0019h,AX=001Ah
  5676. ----------620016-----------------------------
  5677. INT 62 u - FGDRIVER v1.10 - "FG_GETINDEX" - GET COLOR VALUE FOR COLOR INDEX
  5678.     AX = 0016h
  5679.     BX = color index (0000h to 00FFh)
  5680. Return: AX = color value for specified color index
  5681. Note:    this call returns the value passed to it in text and 256-color
  5682.       graphics modes
  5683. SeeAlso: AX=0014h,AX=001Ch
  5684. ----------620017-----------------------------
  5685. INT 62 u - FGDRIVER v1.10 - "FG_PALETTE" - SET PALETTE / SET VIDEO DAC REGISTER
  5686.     AX = 0017h
  5687. ---CGA 4-color graphics---
  5688.     BX = CGA paletee number
  5689.     CX = background color
  5690. ---CGA 2-color graphics---
  5691.     BX ignored
  5692.     CX = foreground color
  5693. ---16-color graphics---
  5694.     BX = palette register number
  5695.     CX = palette value
  5696. ---256-color graphics---
  5697.     BX = DAC register number
  5698.     CX =  DAC value
  5699. Notes:    ignored in text modes and Hercules graphics modes
  5700.     few EGA/VGA adapters correctly set the foreground color in CGA mode 6
  5701. SeeAlso: AX=0018h,AX=001Dh
  5702. ----------620018-----------------------------
  5703. INT 62 u - FGDRIVER v1.10 - "FG_PALETTES" - SET ALL PALETTE REGISTERS
  5704.     AX = 0018h
  5705.     ES:BX -> array of 16 WORDs containing values for palette registers
  5706.         (or first 16 DAC registers in 256-color modes)
  5707. Note:    ignored in text modes, CGA and Hercules graphics modes
  5708. SeeAlso: AX=0017h
  5709. ----------620019-----------------------------
  5710. INT 62 u - FGDRIVER v1.10 - "FG_SETATTR" - SET TEXT-MODE CHARACTER ATTRIBUTE
  5711.     AX = 0019h
  5712.     BX = foreground
  5713.     CX = background
  5714.     DX = blink (0000h nonblinking, 0001h blink)
  5715. Note:    this call is ignored in graphics modes
  5716. SeeAlso: AX=0015h,AX=001Ah,AX=0037h
  5717. ----------62001A-----------------------------
  5718. INT 62 u - FGDRIVER v1.10 - "FG_SETCOLOR" - SET CURRENT COLOR
  5719.     AX = 001Ah
  5720.     BX = new color index (or text attribute in text modes)
  5721. SeeAlso: AX=0015h,AX=0019h
  5722. ----------62001B-----------------------------
  5723. INT 62 u - FGDRIVER v1.10 - "FG_SETRGB" - SET VIDEO DAC REGISTER CONTENTS
  5724.     AX = 001Bh
  5725.     BX = palette or DAC register number
  5726.     CX = red color component
  5727.     DX = green component
  5728.     SI = blue component
  5729. Notes:    the register number may be negative for Tandy, PCjr, and 200-line
  5730.       EGA graphics modes to specify an intense color
  5731.     this call has no effect in text, CGA graphics, and Hercules graphics
  5732.       modes
  5733. SeeAlso: AX=001Ch,AX=00A5h
  5734. ----------62001C-----------------------------
  5735. INT 62 u - FGDRIVER v1.10 - "FG_GETRGB" - GET VIDEO DAC REGISTER CONTENTS
  5736.     AX = 001Ch
  5737.     ES:BX -> variable pointer record (see below)
  5738.     CX = DAC register number
  5739. Return: variables updated
  5740. Note:    this call is ignored in text modes and CGA/EGA video modes (since
  5741.       they do not use DAC registers)
  5742. SeeAlso: AX=001Bh,AX=001Dh,AX=00A4h
  5743.  
  5744. Format of variable pointer record:
  5745. Offset    Size    Description
  5746.  00h    WORD    segment of WORD buffer for red component of DAC register
  5747.  02h    WORD    offset of WORD buffer for red component
  5748.  04h    WORD    segment of WORD buffer for green component of DAC register
  5749.  06h    WORD    offset of WORD buffer for green component
  5750.  08h    WORD    segment of WORD buffer for blue component of DAC register
  5751.  0Ah    WORD    offset of WORD buffer for blue component
  5752. ----------62001D-----------------------------
  5753. INT 62 u - FGDRIVER v1.10 - "FG_MAPRGB" - MAP COLOR COMPONENTS INTO PALETTE VAL
  5754.     AX = 001Dh
  5755.     BX = red component
  5756.     CX = green component
  5757.     DX = blue component
  5758. Return: AX = mode-specific palette value corresponding to specified components
  5759. Note:    only meaningful in 16-color graphics modes
  5760. SeeAlso: AX=0015h,AX=0017h
  5761. ----------62001E-----------------------------
  5762. INT 62 u - FGDRIVER v1.10 - "FG_ERASE" - CLEAR THE ACTIVE VIDEO PAGE
  5763.     AX = 001Eh
  5764. Note:    sets each pixel to 0 in graphics modes, each character cell to a blank
  5765.       with a gray foreground attribute in text modes
  5766. ----------62001F-----------------------------
  5767. INT 62 u - FGDRIVER v1.10 - "FG_POINT" - DISPLAY A PIXEL
  5768.     AX = 001Fh
  5769.     BX = column
  5770.     CX = row
  5771. Note:    this call is ignored in text modes
  5772. SeeAlso: AX=0020h
  5773. ----------620020-----------------------------
  5774. INT 62 u - FGDRIVER v1.10 - "FG_GETPIXEL" - GET COLOR OF SPECIFIED PIXEL
  5775.     AX = 0020h
  5776.     BX = column in screen space
  5777.     CX = row in screen space
  5778. Return: AX = color value of pixel (0 to num_colors-1)
  5779.         0000h in text modes
  5780. SeeAlso: AX=001Fh
  5781. ----------620021-----------------------------
  5782. INT 62 u - FGDRIVER v1.10 - "FG_GETXPOS" - GET GRAPHICS CURSOR COLUMN
  5783.     AX = 0021h
  5784. Return: AX = screen space X coordinate of graphics cursor position
  5785. SeeAlso: AX=0022h,AX=0023h,AX=0024h
  5786. ----------620022-----------------------------
  5787. INT 62 u - FGDRIVER v1.10 - "FG_GETXPOS" - GET GRAPHICS CURSOR ROW
  5788.     AX = 0022h
  5789. Return: AX = screen space Y coordinate of graphics cursor position
  5790. SeeAlso: AX=0021h,AX=0023h,AX=0024h
  5791. ----------620023-----------------------------
  5792. INT 62 u - FGDRIVER v1.10 - "FG_MOVE" - SET GRAPHICS CURSOR POSITION
  5793.     AX = 0023h
  5794.     BX = new column
  5795.     CX = new row
  5796. Note:    this call is ignored in text modes
  5797. SeeAlso: AX=0021h,AX=0022h,AX=0024h
  5798. ----------620024-----------------------------
  5799. INT 62 u - FGDRIVER v1.10 - "FG_MOVEREL" - ADJUST GRAPHICS CURSOR POSITION
  5800.     AX = 0024h
  5801.     BX = column offset
  5802.     CX = row offset
  5803. Note:    this call is ignored in text modes
  5804. SeeAlso: AX=0021h,AX=0022h,AX=0023h
  5805. ----------620025-----------------------------
  5806. INT 62 u - FGDRIVER v1.10 - "FG_DRAW" - DRAW SOLID LINE TO ABSOLUTE POSITION
  5807.     AX = 0025h
  5808.     BX = endpoint column
  5809.     CX = endpoint row
  5810. Notes:    this call is ignored in text modes
  5811.     the starting point is the current graphics cursor position; the cursor
  5812.       position is updated
  5813. SeeAlso: AX=0026h,AX=0027h
  5814. ----------620026-----------------------------
  5815. INT 62 u - FGDRIVER v1.10 - "FG_DRAWREL" - DRAW SOLID LINE TO RELATIVE POSITION
  5816.     AX = 0026h
  5817.     BX = endpoint column offset
  5818.     CX = endpoint row offset
  5819. Notes:    this call is ignored in text modes
  5820.     the starting point is the current graphics cursor position; the cursor
  5821.       position is updated
  5822. SeeAlso: AX=0025h,AX=0028h
  5823. ----------620027-----------------------------
  5824. INT 62 u - FGDRIVER v1.10 - "FG_DASH" - DRAW DASHED LINE TO ABSOLUTE POSITION
  5825.     AX = 0027h
  5826.     BX = endpoint column
  5827.     CX = endpoint row
  5828.     DX = dash pattern (set bits cause drawn pixels)
  5829. Notes:    this call is ignored in text modes
  5830.     the starting point is the current graphics cursor position; the cursor
  5831.       position is updated
  5832. SeeAlso: AX=0025h,AX=0028h
  5833. ----------620028-----------------------------
  5834. INT 62 u - FGDRIVER v1.10 - "FG_DASHREL" - DRAW DASHED LINE TO RELATVE POSITION
  5835.     AX = 0028h
  5836.     BX = endpoint column offset
  5837.     CX = endpoint row offset
  5838.     DX = dash pattern (set bits cause drawn pixels)
  5839. Notes:    this call is ignored in text modes
  5840.     the starting point is the current graphics cursor position; the cursor
  5841.       position is updated
  5842. SeeAlso: AX=0026h,AX=0027h
  5843. ----------620029-----------------------------
  5844. INT 62 u - FGDRIVER v1.10 - "FG_SETCLIP" - SET CLIPPING REGION
  5845.     AX = 0029h
  5846.     BX = left edge of clipping region
  5847.     CX = right edge of clipping region
  5848.     DX = top edge of clipping region
  5849.     SI = bottom edge of clipping region
  5850. SeeAlso: AX=004Ah,AX=004Ch,AX=0052h,AX=0054h
  5851. ----------62002A-----------------------------
  5852. INT 62 u - FGDRIVER v1.10 - "FG_RECT" - DRAW UNFILLED RECTANGLE IN SCREEN SPACE
  5853.     AX = 002Ah
  5854.     BX = left edge column
  5855.     CX = right edge column
  5856.     DX = top edge row
  5857.     SI = bottom edge row
  5858. SeeAlso: AX=002Bh,AX=002Ch,AX=002Eh,AX=00A2h
  5859. ----------62002B-----------------------------
  5860. INT 62 u - FGDRIVER v1.10 - "FG_CLPRECT" - DRAW FILLED RECTANGLE IN SCREEN SPCE
  5861.     AX = 002Bh
  5862.     BX = screen space column of left edge
  5863.     CX = screen space column of right edge
  5864.     DX = screen space row of top edge
  5865.     SI = screen space row of bottom edge
  5866. Note:    this call is ignored in text modes
  5867. SeeAlso: AX=002Ah,AX=002Ch,AX=00A2h
  5868. ----------62002C-----------------------------
  5869. INT 62 u - FGDRIVER v1.10 - "FG_DRECT" - DRAW DITHERED RECTANGLE IN SCRN SPACE
  5870.     AX = 002Ch
  5871.     BX = screen space column of left edge
  5872.     CX = screen space column of right edge
  5873.     DX = screen space row of top edge
  5874.     SI = screen space row of bottom edge
  5875.     ES:DI -> dithering matrix (video-mode dependent)
  5876. Note:    this call is ignored in text modes
  5877. SeeAlso: AX=002Bh,AX=00A2h
  5878. ----------62002D-----------------------------
  5879. INT 62 u - FGDRIVER v1.10 - "FG_ELLIPSE" - DRAW UNFILLED ELLIPSE IN SCRN SPACE
  5880.     AX = 002Dh
  5881.     BX = horizontal semi-axis length in screen space units
  5882.     CX = vertical semi-axis length in screen space units
  5883. Notes:    this call is ignored in text modes
  5884.     the ellipse is centered at the current graphics cursor position
  5885. SeeAlso: AX=002Ah,AX=002Eh,AX=00A2h
  5886. ----------62002E-----------------------------
  5887. INT 62 u - FGDRIVER v1.10 - "FG_POLYGON" - DRAW AN UNFILLED POLYGON
  5888.     AX = 002Eh
  5889.     CX = number of vertices in polygon
  5890.     ES:BX -> variable pointer record (see below)
  5891. SeeAlso: AX=002Dh,AX=0030h,AX=00A2h
  5892.  
  5893. Format of variable pointer record:
  5894. Offset    Size    Description
  5895.  00h    WORD    segment of WORD array containing vertex columns
  5896.  02h    WORD    offset of WORD array containing vertex columns
  5897.  04h    WORD    segment of WORD array containing vertex rows
  5898.  06h    WORD    offset of WORD array containing vertex rows
  5899. ----------62002F-----------------------------
  5900. INT 62 u - FGDRIVER v1.10 - "FG_PAINT" - FLOOD CLOSED REGION WITH COLOR
  5901.     AX = 002Fh
  5902.     BX = column
  5903.     CX = row
  5904. Notes:    fills an arbitrary closed region around the specified point with the
  5905.       current color; the screen edges are not considered region boundaries
  5906.     ignored in text modes
  5907. ----------620030-----------------------------
  5908. INT 62 u - FGDRIVER v1.10 - "FG_CIRCLE" - DRAW UNFILLED CIRCLE
  5909.     AX = 0030h
  5910.     BX = radius in horizontal screen space units (> 0)
  5911. Notes:    the circle is drawn in screen space, centered at the current graphics
  5912.       cursor position
  5913.     this call is ignored in text modes
  5914. SeeAlso: AX=00A2h
  5915. ----------620031-----------------------------
  5916. INT 62 - FGDRIVER v1.10 - UNUSED
  5917.     AX = 0031h
  5918. Return: AX = 0000h
  5919. ----------620032-----------------------------
  5920. INT 62 u - FGDRIVER v1.10 - "FG_TEXT" - DISPLAY STRING OF CHARACTERS
  5921.     AX = 0032h
  5922.     CX = length of string
  5923.     ES:BX -> string
  5924. Notes:    the string is displayed staring at the text cursor position using the
  5925.       current text attribute (text modes) or color index (graphics modes)
  5926.     the text cursor position is updated after this call
  5927. SeeAlso: AX=001Ah,AX=0033h,AX=0035h,AX=0036h
  5928. ----------620033-----------------------------
  5929. INT 62 u - FGDRIVER v1.10 - "FG_LOCATE" - SET TEXT-MODE CURSOR POSITION
  5930.     AX = 0033h
  5931.     BX = row
  5932.     CX = column
  5933. Note:    there are only eight text cursors shared by successive groups of
  5934.       eight video pages (pages 0, 8, 16, ... share one cursor, 1, 9, ...
  5935.       share the second, etc)
  5936. SeeAlso: AX=0034h
  5937. ----------620034-----------------------------
  5938. INT 62 u - FGDRIVER v1.10 - "FG_WHERE" - GET CURRENT CURSOR POSITION
  5939.     AX = 0034h
  5940.     ES:BX -> variable pointers (see below)
  5941. Return: indicated variables filled with cursor row and column for active
  5942.       display
  5943. Note:    FGDRIVER is the external video driver for the shareware
  5944.       Fastgraph/Light by Ted Gruber Software
  5945. SeeAlso: AX=0033h
  5946.  
  5947. Format of variable pointers:
  5948. Offset    Size    Description
  5949.  00h    WORD    segment of WORD buffer for cursor row
  5950.  02h    WORD    offset of WORD buffer for cursor row
  5951.  04h    WORD    segment WORD buffer for cursor column
  5952.  06h    WORD    offset WORD buffer for cursor column
  5953. ----------620035-----------------------------
  5954. INT 62 u - FGDRIVER v1.10 - "FG_CHGATTR" - APPLY CURRENT TEXT ATTRIB TO CHARS
  5955.     AX = 0035h
  5956.     BX = number of characters to recolor
  5957. Notes:    this call is ignored in graphics modes
  5958.     starting at the current text cursor position, the specified number of
  5959.       characters have their attributes to the current text attribute
  5960. SeeAlso: AX=0036h
  5961. ----------620036-----------------------------
  5962. INT 62 u - FGDRIVER v1.10 - "FG_CHGTEXT" - DISPLAY STRING AT CURSOR POSITION
  5963.     AX = 0036h
  5964.     CX = length of string
  5965.     ES:BX -> string to be displayed
  5966. Return: text cursor updated
  5967. Note:    this call is ignored in graphics modes
  5968. SeeAlso: AX=0032h,AX=0035h
  5969. ----------620037-----------------------------
  5970. INT 62 u - FGDRIVER v1.10 - "FG_GETATTR" - GET CHARACTER ATTRIB FOR POSITION
  5971.     AX = 0037h
  5972.     BX = row
  5973.     CX = column
  5974. Return: AX = character attribute at specified location on active video page
  5975. Note:    this call is ignored in graphics modes
  5976. SeeAlso: AX=0019h,AX=0038h
  5977. ----------620038-----------------------------
  5978. INT 62 u - FGDRIVER v1.10 - "FG_GETCHAR" - GET CHARACTER FOR SCREEN POSITION
  5979.     AX = 0038h
  5980.     BX = row
  5981.     CX = column
  5982. Return: AX = character at specified location on active video page
  5983. Note:    this call is ignored in graphics modes
  5984. SeeAlso: AX=0037h
  5985. ----------620039-----------------------------
  5986. INT 62 - FGDRIVER v1.10 - UNUSED
  5987.     AX = 0039h to 003Bh
  5988. Return: AX = 0000h
  5989. ----------62003C-----------------------------
  5990. INT 62 u - FGDRIVER v1.10 - "FG_GETPAGE" - GET ACTIVE VIDEO PAGE NUMBER
  5991.     AX = 003Ch
  5992. Return: AX = active video page (0000h-003Fh)
  5993. SeeAlso: AX=003Dh,AX=003Eh,AX=0040h
  5994. ----------62003D-----------------------------
  5995. INT 62 u - FGDRIVER v1.10 - "FG_SETPAGE" - SET ACTIVE VIDEO PAGE
  5996.     AX = 003Dh
  5997.     BX = new video page (0000h to 003Fh)
  5998. Note:    the specified page must be a physical or virtual page
  5999. SeeAlso: AX=0001h,AX=003Ch,AX=003Fh,AX=0041h
  6000. ----------62003E-----------------------------
  6001. INT 62 u - FGDRIVER v1.10 - "FG_GETVPAGE" - GET VISIBLE VIDEO PAGE NUMBER
  6002.     AX = 003Eh
  6003. Return: AX = visible video page (0000h-003Fh)
  6004. SeeAlso: AX=003Ch,AX=003Fh,AX=0040h
  6005. ----------62003F-----------------------------
  6006. INT 62 u - FGDRIVER v1.10 - "FG_SETVPAGE" - SET VISIBLE VIDEO PAGE
  6007.     AX = 003Fh
  6008.     BX = new video page (0000h to 003Fh)
  6009. Note:    the specified page must be a physical or virtual page
  6010. SeeAlso: AX=0001h,AX=003Dh,AX=003Eh,AX=0041h
  6011. ----------620040-----------------------------
  6012. INT 62 u - FGDRIVER v1.10 - "FG_GETHPAGE" - GET CURRENT HIDDEN VIDEO PAGE NUM
  6013.     AX = 0040h
  6014. Return: AX = current hidden video page number (0000h-003Fh)
  6015. SeeAlso: AX=003Ch,AX=003Eh,AX=0041h
  6016. ----------620041-----------------------------
  6017. INT 62 u - FGDRIVER v1.10 - "FG_SETHPAGE" - SET HIDDEN VIDEO PAGE
  6018.     AX = 0041h
  6019.     BX = new hidden page (0000h to 003Fh)
  6020. Note:    specified page must be a physical page or a virtual page
  6021. SeeAlso: AX=003Dh,AX=003Fh,AX=0040h
  6022. ----------620042-----------------------------
  6023. INT 62 u - FGDRIVER v1.10 - "FG_ALLOCATE" - CREATE VIRTUAL VIDEO PAGE
  6024.     AX = 0042h
  6025.     BX = page number (0000h-003Fh)
  6026. Return: AX = status
  6027.         0000h successful
  6028.         0001h specified page is a physical or logical page
  6029.         0007h virtual page created, but memory control blocks corrupted
  6030.         0008h not enough memory
  6031. Notes:    FGDRIVER is the external video driver for the shareware
  6032.       Fastgraph/Light by Ted Gruber Software
  6033.     the amount of memory required by the virtual video page depends on the
  6034.       current video mode
  6035. SeeAlso: AX=0043h,AX=009Dh,AX=009Fh
  6036. ----------620043-----------------------------
  6037. INT 62 u - FGDRIVER v1.10 - "FG_FREEPAGE" - FREE VIRTUAL OR LOGICAL VIDEO PAGE
  6038.     AX = 0043h
  6039.     BX = page number (0000h-003Fh)
  6040. Return: AX = status
  6041.         0000h successful
  6042.         0001h specified page is a physical page
  6043.         0007h virtual page released, but memory control blocks corrupted
  6044.         0009h attempt to free a page which was never created
  6045. SeeAlso: AX=0042h,AX=009Dh,AX=009Eh,AX=009Fh
  6046. ----------620044-----------------------------
  6047. INT 62 u - FGDRIVER v1.10 - "FG_GETADDR" - GET SEGMENT OF ACTIVE VIDEO PAGE
  6048.     AX = 0044h
  6049. Return: AX = segment of active video page
  6050. ----------620045-----------------------------
  6051. INT 62 u - FGDRIVER v1.10 - "FG_RESIZE" - SET GRAPHICS MODE VIDEO PAGE SIZE
  6052.     AX = 0045h
  6053.     BX = new page width in pixels
  6054.     CX = new page height in pixels
  6055. Notes:    the visible page must be set to 0000h before making this call
  6056.     mouse, joysticks, expanded memory, and extended memory must be
  6057.       reinitialized after this call
  6058. SeeAlso: AX=000Ah,AX=000Bh,AX=0075h,AX=007Ah,AX=00A0h,AX=00A1h
  6059. ----------620046-----------------------------
  6060. INT 62 u - FGDRIVER v1.10 - "FG_GETMAP" - STORE IMAGE AS MODE-INDEPENDNT BITMAP
  6061.     AX = 0046h
  6062.     ES:BX -> buffer for video mode-independent bitmap
  6063.     CX = width of bitmap in bytes
  6064.     DX = height of bitmap in pixel rows
  6065. Return: each bit in bitmap is set if corresponding pixel is of the current
  6066.       color, cleared otherwise
  6067. Note:    this call is ignored in text modes
  6068. SeeAlso: AX=0047h,AX=0048h
  6069. ----------620047-----------------------------
  6070. INT 62 u - FGDRIVER v1.10 - "FG_DRAWMAP" - DISPLAY MODE-INDEPENDENT BIT MAP
  6071.     AX = 0047h
  6072.     ES:BX -> bitmap (each set bit is pixel drawn in current color)
  6073.     CX = width of bitmap in bytes
  6074.     DX = height of bitmap in pixel rows
  6075. SeeAlso: AX=0046h,AX=004Ah,AX=004Dh,AX=0052h
  6076. ----------620048-----------------------------
  6077. INT 62 u - FGDRIVER v1.10 - "FG_GETIMAGE" - STORE IMAGE AS BITMAP
  6078.     AX = 0048h
  6079.     ES:BX -> buffer for video mode-specific bitmap
  6080.     CX = width of bitmap in bytes
  6081.     DX = height of bitmap in pixel rows
  6082. SeeAlso: AX=0046h,AX=0049h,AX=0062h
  6083. ----------620049-----------------------------
  6084. INT 62 u - FGDRIVER v1.10 - "FG_DRWIMAGE" - DISPLAY BITMAPPED IMAGE
  6085.     AX = 0049h
  6086.     ES:BX -> video mode-specific bitmap
  6087.     CX = width of bitmap in bytes
  6088.     DX = height of bitmap in pixel rows
  6089. Note:    the image will be drawn with its lower left corner at the current
  6090.       cursor position (either text or graphics)    
  6091. SeeAlso: AX=0048h,AX=004Ah,AX=0062h
  6092. ----------62004A-----------------------------
  6093. INT 62 u - FGDRIVER v1.10 - "FG_CLPIMAGE" - DISPLAY CLIPPED IMAGE (BITMAP)
  6094.     AX = 004Ah
  6095.     ES:BX -> mode-specific bitmap
  6096.     CX = width of bit map in bytes
  6097.     DX = height of bit map in pixel rows
  6098. Notes:    this call is ignored in text modes
  6099.     the image is drawn with its lower left corner at the current graphics
  6100.       cursor position
  6101.     the current clipping region is used, extended to a byte boundary
  6102. SeeAlso: AX=0029h,AX=0047h,AX=0049h,AX=004Ch,AX=0052h
  6103. ----------62004B-----------------------------
  6104. INT 62 u - FGDRIVER v1.10 - "FG_REVIMAGE" - DISPLAY REVERSED IMAGE (BITMAP)
  6105.     AX = 004Bh
  6106.     ES:BX -> mode-specific bitmap
  6107.     CX = width of bitmap in bytes
  6108.     DX = height of bitmap in pixel rows
  6109. Notes:    this call is ignored in text modes
  6110.     the image is drawn with its lower left corner at the current graphics
  6111.       cursor position
  6112. SeeAlso: AX=004Ah,AX=004Ch
  6113. ----------62004C-----------------------------
  6114. INT 62 u - FGDRIVER v1.10 - "FG_FLPIMAGE" - DISPLAY INV CLIPPED IMAGE (BITMAP)
  6115.     AX = 004Ch
  6116.     ES:BX -> mode-specific bitmap
  6117.     CX = width of bit map in bytes
  6118.     DX = height of bit map in pixel rows
  6119. Notes:    this call is ignored in text modes
  6120.     the image is drawn with its lower left corner at the current graphics
  6121.       cursor position
  6122.     the current clipping region is used, extended to a byte boundary
  6123. SeeAlso: AX=0029h,AX=004Ah
  6124. ----------62004D-----------------------------
  6125. INT 62 u - FGDRIVER v1.10 - "FG_DISPLAY" - DISPLAY IMAGE (STD PIXEL RUN FORMAT)
  6126.     AX = 004Dh
  6127.     ES:BX -> pixel run map (pairs of bytes: color index, count)
  6128.     CX = number of pixel runs to display
  6129.     DX = width of image in pixels (> 0)
  6130. Notes:    this call is ignored in text modes
  6131.     the image is displayed with its lower left corner at the current
  6132.       graphics cursor position
  6133. SeeAlso: AX=0047h,AX=004Eh,AX=004Fh,AX=0050h,AX=0060h
  6134. ----------62004E-----------------------------
  6135. INT 62 u - FGDRIVER v1.10 - "FG_DISPLAY" - DISPLAY IMAGE (PACKED PIXEL RUN FMT)
  6136.     AX = 004Eh
  6137.     ES:BX -> pixel run map (trios of bytes: colors, count1, count2; colors
  6138.         contains the color for the first run in its high nybble and the
  6139.         color for the second run in its low nybble)
  6140.     CX = number of pixel runs to display
  6141.     DX = width of image in pixels (> 0)
  6142. Notes:    this call is ignored in text modes
  6143.     the image is displayed with its lower left corner at the current
  6144.       graphics cursor position
  6145. SeeAlso: AX=004Dh,AX=004Fh,AX=0050h,AX=0060h
  6146. ----------62004F-----------------------------
  6147. INT 62 u - FGDRIVER v1.10 - "FG_DISPFILE" - DISPLAY STORED IMAGE
  6148.     AX = 004Fh
  6149.     ES:BX -> ASCIZ filename
  6150.     CX = image width in pixels (> 0)
  6151.     DX = image format
  6152.         0000h Fastgraph standard pixel run format
  6153.         0001h packed pixel run format
  6154. Notes:    this call is ignored in text modes
  6155.     the image is displayed with its lower left corner at the current
  6156.       graphics cursor position
  6157. SeeAlso: AX=004Dh,AX=004Eh,AX=0050h,AX=0060h
  6158. ----------620050-----------------------------
  6159. INT 62 u - FGDRIVER v1.10 - "FG_PATTERN" - SPECIFY DISPLAY PATTERN FOR COLOR
  6160.     AX = 0050h
  6161.     BX = index of pattern to define
  6162.     CX = number of predefined display pattern
  6163. Notes:    when displaying a pixel run map, Fastgraph uses the pattern associated
  6164.       with each color index rather than displaying the actual color
  6165.     this call has no effect in text and 256-color graphics modes
  6166. SeeAlso: AX=004Dh,AX=004Eh,AX=004Fh
  6167. ----------620051-----------------------------
  6168. INT 62 u - FGDRIVER v1.10 - "FG_DRAWMASK" - DISPLAY IMAGE (MASKING MAP)
  6169.     AX = 0051h
  6170.     ES:BX -> array containing image stores as a masking map (see below)
  6171.     CX = number of pixel runs in masking map
  6172.     DX = width of masking map in pixels
  6173. Notes:    this call is ignored in text modes and in native EGA and VGA graphics
  6174.       modes
  6175.     the image is drawn with its lower left corner at the current graphics
  6176.       cursor position
  6177. SeeAlso: AX=0052h
  6178.  
  6179. Format of masking map:
  6180. Offset    Size    Description
  6181.  00h    BYTE    length of first "protect" run (pixels remain unchanged)
  6182.  01h    BYTE    length of first "zero" run (pixels set to background color)
  6183.  02h    BYTE    length of second "protect" run
  6184.  03h    BYTE    length of second "zero" run
  6185.      ...
  6186. ----------620052-----------------------------
  6187. INT 62 u - FGDRIVER v1.10 - "FG_CLIPMASK" - DISPLAY CLIPPED IMAGE (MASKING MAP)
  6188.     AX = 0052h
  6189.     ES:BX -> array containing image stored as a masking map (see AX=0051h)
  6190.     CX = number of pixel runs in masking map
  6191.     DX = width of masking map in pixels
  6192. Notes:    this call is ignored in text modes and in native EGA and VGA graphics
  6193.       modes
  6194.     the image is drawn with its lower left corner at the current graphics
  6195.       cursor position
  6196. SeeAlso: AX=0029h,AX=004Ah,AX=0051h,AX=0053h,AX=0054h
  6197. ----------620053-----------------------------
  6198. INT 62 u - FGDRIVER v1.10 - "FG_REVMASK" - DISPLAY REVERSED IMAGE (MASKING MAP)
  6199.     AX = 0053h
  6200.     ES:BX -> array containing image stored as a masking map (see AX=0051h)
  6201.     CX = number of pixel runs in masking map
  6202.     DX = width of masking map in pixels
  6203. Notes:    this call is ignored in text modes and in native EGA and VGA graphics
  6204.       modes
  6205.     the image is drawn with its lower left corner at the current graphics
  6206.       cursor position
  6207. SeeAlso: AX=0052h,AX=0054h
  6208. ----------620054-----------------------------
  6209. INT 62 u - FGDRIVER v1.10 - "FG_FLIPMASK" - DISPLAY INV CLIPPED IMAGE (MASKMAP)
  6210.     AX = 0054h
  6211.     ES:BX -> array containing image stored as a masking map (see AX=0051h)
  6212.     CX = number of pixel runs in masking map
  6213.     DX = width of masking map in pixels
  6214. Notes:    this call is ignored in text modes and in native EGA and VGA graphics
  6215.       modes
  6216.     the image is drawn with its lower left corner at the current graphics
  6217.       cursor position
  6218. SeeAlso: AX=0029h,AX=0052h,AX=0053h
  6219. ----------620055-----------------------------
  6220. INT 62 - FGDRIVER v1.10 - UNUSED
  6221.     AX = 0055h to 0059h
  6222. Return: AX = 0000h
  6223. ----------62005A-----------------------------
  6224. INT 62 u - FGDRIVER v1.10 - "FG_SAVE" - COPY REGION FROM VISIBLE TO HIDDEN PAGE
  6225.     AX = 005Ah
  6226.     BX = left edge column
  6227.     CX = right edge column
  6228.     DX = top edge row
  6229.     SI = bottom edge row
  6230. Note:    left and right edges are adjusted to byte boundaries if necessary
  6231. SeeAlso: AX=005Bh
  6232. ----------62005B-----------------------------
  6233. INT 62 u - FGDRIVER v1.10 - "FG_RESTORE" - COPY REGION FROM HIDDEN TO VIS PAGE
  6234.     AX = 005Bh
  6235.     BX = left edge column
  6236.     CX = right edge column
  6237.     DX = top edge row
  6238.     SI = bottom edge row
  6239. Note:    left and right edges are adjusted to byte boundaries if necessary
  6240. SeeAlso: AX=005Ah,AX=0064h
  6241. ----------62005C-----------------------------
  6242. INT 62 u - FGDRIVER v1.10 - "FG_TRANSFER" - COPY REGION
  6243.     AX = 005Ch
  6244.     CX = source video page
  6245.     DX = destination video page
  6246.     ES:BX -> copy record (see below)
  6247. Note:    source and destination regions must not overlap if on the same page
  6248. SeeAlso: AX=005Dh,AX=005Fh
  6249.  
  6250. Format of copy record:
  6251. Offset    Size    Description
  6252.  00h    WORD    left edge column of source region
  6253.  02h    WORD    right edge column of source region
  6254.  04h    WORD    top edge row of source region
  6255.  06h    WORD    bottom edge row of source region
  6256.  08h    WORD    left edge of destination
  6257.  0Ah    WORD    bottom edge of destination
  6258. ----------62005D-----------------------------
  6259. INT 62 u - FGDRIVER v1.10 - "FG_TCXFER" - COPY REGION EXCLUDING TRANSPARENT
  6260.     AX = 005Dh
  6261.     CX = source video page
  6262.     DX = destination video page
  6263.     ES:BX -> copy record (see AX=005Ch)
  6264. Notes:    pixels which are in any of the colors defined as transparent with
  6265.       AX=005Eh are left unchanged in the destination region
  6266.     source and destination regions must not overlap if on the same page
  6267.     this call is ignored in text modes
  6268. SeeAlso: AX=005Ch,AX=005Eh
  6269. ----------62005E-----------------------------
  6270. INT 62 u - FGDRIVER v1.10 - "FG_TCMASK" - SET TRANSPARENT COLORS
  6271.     AX = 005Eh
  6272.     BX = colors to consider transparent (bit 0 = color 0, etc)
  6273. Notes:    this call is ignored in text modes
  6274.     the specified colors are considered transparent by AX=005Dh
  6275. SeeAlso: AX=005Dh
  6276. ----------62005F-----------------------------
  6277. INT 62 u - FGDRIVER v1.10 - "FG_COPYPAGE" - TRANSFER VIDEO PAGE CONTENTS
  6278.     AX = 005Fh
  6279.     BX = source page number (0000h-003Fh)
  6280.     CX = destination page number (0000h-003Fh)
  6281. Note:    if both source and destination pages are logical pages, they must both
  6282.       be located in the same type (conventional, EMS, XMS) of memory
  6283. SeeAlso: AX=005Ch,AX=009Dh,AX=009Eh,AX=009Fh
  6284. ----------620060-----------------------------
  6285. INT 62 u - FGDRIVER v1.10 - "FG_DISPPCX" - DISPLAY PCX FILE
  6286.     AX = 0060h
  6287.     ES:BX -> ASCIZ filename
  6288.     CX = flags
  6289.         bit 0: use current palette rather than PCX file's palette
  6290.         bits 1-15: reserved (0)
  6291. Return: AX = status
  6292.         0000h success
  6293.         0001h file not found
  6294.         0002h file is not a valid PCX file
  6295. Notes:    this call is ignored in text modes and Hercules low-resolution graphics
  6296.     the image is displayed with its upper left corner at the current
  6297.       graphics cursor position
  6298. SeeAlso: AX=004Dh,AX=004Eh,AX=004Fh,AX=0061h
  6299. ----------620061-----------------------------
  6300. INT 62 u - FGDRIVER v1.10 - "FG_MAKEPCX" - CREATE PCX FILE FROM SCREEN WINDOW
  6301.     AX = 0061h
  6302.     BX = left edge in screen space units
  6303.     CX = right edge in screen space units
  6304.     DX = top edge in screen space units
  6305.     SI = bottom edge in screen space units
  6306.     ES:DI -> ASCIZ filename of PCX file to create
  6307. Return: AX = status
  6308.         0000h successful
  6309.         0001h file not created
  6310. Notes:    the PCX file is created from the specified region of the active video
  6311.       page; the left and right edges are adjusted to a byte boundary if
  6312.       necessary
  6313.     if the specified file already exists, it is overwritten
  6314.     this call is ignored in text and Hercules low-resolution graphics modes
  6315. SeeAlso: AX=0060h
  6316. ----------620062-----------------------------
  6317. INT 62 u - FGDRIVER v1.10 - "FG_IMAGESIZ" - DETERMINE IMAGE STORAGE REQUIREMENT
  6318.     AX = 0062h
  6319.     BX = image width in pixels
  6320.     CX = image height in pixels
  6321. Return: DX:AX = size in bytes of mode-specific bitmap for current video mode
  6322. SeeAlso: AX=0048h
  6323. ----------620063-----------------------------
  6324. INT 62 - FGDRIVER v1.10 - UNUSED
  6325.     AX = 0063h
  6326. Return: AX = 0000h
  6327. ----------620064-----------------------------
  6328. INT 62 u - FGDRIVER v1.10 - "FG_FADEIN" - FADE IN HIDDEN PAGE
  6329.     AX = 0064h
  6330.     BX = delay (0000h = fastest possible fade-in)
  6331. Notes:    the current hidden page is copied to the current visible page in small
  6332.       random sections to produce a fade-in effect
  6333.     this call is ignored in text modes
  6334. SeeAlso: AX=005Bh,AX=0065h
  6335. ----------620065-----------------------------
  6336. INT 62 u - FGDRIVER v1.10 - "FG_FADEOUT" - FADE OUT TO CURRENT COLOR
  6337.     AX = 0065h
  6338.     BX = delay (0000h = fastest possible fade-out)
  6339. Notes:    this call is ignored in text modes
  6340.     the current visible page is filled with pixels of the current color in
  6341.       small random sections to give a fade-out effect
  6342. SeeAlso: AX=0064h
  6343. ----------620066-----------------------------
  6344. INT 62 u - FGDRIVER v1.10 - "FG_PAN" - SET SCREEN ORIGIN
  6345.     AX = 0066h
  6346.     BX = new column for screen origin
  6347.     CX = new row for screen origin
  6348. SeeAlso: AX=0067h
  6349. ----------620067-----------------------------
  6350. INT 62 u - FGDRIVER v1.10 - "FG_SCROLL" - VERTICALLY SCROLL SCREEN REGION
  6351.     AX = 0067h
  6352.     BX = left edge column
  6353.     CX = right edge column
  6354.     DX = top edge row
  6355.     SI = bottom edge row
  6356.     DI = number of pixels by which to scroll (positive scrolls up,
  6357.         negative scrolls down)
  6358.     ES = type of scroll
  6359.         0000h circular (rows scrolled off are copied to vacated rows)
  6360.         else vacated rows are filled with the current color
  6361. Notes:    in graphics modes, the left and right edges are adjusted to byte
  6362.       boundaries if necessary
  6363.     circular scrolling uses part of the hidden page as a workspace
  6364. SeeAlso: AX=0066h
  6365. ----------620068-----------------------------
  6366. INT 62 - FGDRIVER v1.10 - UNUSED
  6367.     AX = 0068h to 006Ch
  6368. Return: AX = 0000h
  6369. ----------62006D-----------------------------
  6370. INT 62 u - FGDRIVER v1.10 - "FG_WAITKEY" - FLUSH KEYBOARD BUFFER AND AWAIT KEY
  6371.     AX = 006Dh
  6372. Return: after next key pressed
  6373. SeeAlso: AX=006Eh,AX=006Fh,AX=0096h
  6374. ----------62006E-----------------------------
  6375. INT 62 u - FGDRIVER v1.10 - "FG_GETKEY" - GET NEXT KEYSTROKE
  6376.     AX = 006Eh
  6377.     ES:BX -> variable pointer record (see below)
  6378. Return: (after next keystroke if no typeahead) variables updated
  6379. SeeAlso: AX=006Dh,AX=006Fh,AX=0070h
  6380.  
  6381. Format of variable pointer record:
  6382. Offset    Size    Description
  6383.  00h    WORD    segment of BYTE buffer for ASCII keycode
  6384.  02h    WORD    offset of BYTE buffer for ASCII keycode
  6385.  04h    WORD    segment of BYTE buffer for extended keycode
  6386.  06h    WORD    offset of BYTE buffer for extended keycode
  6387. ----------62006F-----------------------------
  6388. INT 62 u - FGDRIVER v1.10 - "FG_INTKEY" - GET KEYSTROKE, NO WAIT
  6389.     AX = 006Fh
  6390.     ES:BX -> variable pointer record (see below)
  6391. Return: variables updated
  6392. Note:    if the keyboard buffer is empty, both the ASCII and extended keycodes
  6393.       are set to 00h
  6394. SeeAlso: AX=006Dh,AX=006Eh,AX=0070h,AX=0079h
  6395.  
  6396. Format of variable pointer record:
  6397. Offset    Size    Description
  6398.  00h    WORD    segment of BYTE buffer for ASCII keycode
  6399.  02h    WORD    offset of BYTE buffer for ASCII keycode
  6400.  04h    WORD    segment of BYTE buffer for extended keycode
  6401.  06h    WORD    offset of BYTE buffer for extended keycode
  6402. ----------620070-----------------------------
  6403. INT 62 u - FGDRIVER v1.10 - "FG_CAPSLOCK" - GET STATE OF CAPSLOCK KEY
  6404.     AX = 0070h
  6405. Return: AX = CapsLock state (0000h off, 0001h on)
  6406. SeeAlso: AX=006Eh,AX=006Fh,AX=0071h,AX=0072h,AX=0074h
  6407. ----------620071-----------------------------
  6408. INT 62 u - FGDRIVER v1.10 - "FG_SETCAPS" - SET STATE OF CAPSLOCK KEY
  6409.     AX = 0071h
  6410.     BX = new state (0000h off, 0001h on)
  6411. SeeAlso: AX=0070h,AX=0073h
  6412. ----------620072-----------------------------
  6413. INT 62 u - FGDRIVER v1.10 - "FG_NUMLOCK" - GET STATE OF NUMLOCK KEY
  6414.     AX = 0072h
  6415. Return: AX = NumLock state (0000h off, 0001h on)
  6416. SeeAlso: AX=0070h,AX=0074h
  6417. ----------620073-----------------------------
  6418. INT 62 u - FGDRIVER v1.10 - "FG_SETNUM" - SET STATE OF NUMLOCK KEY
  6419.     AX = 0073h
  6420.     BX = new state (0000h off, 0001h on)
  6421. SeeAlso: AX=0071h,AX=0072h
  6422. ----------620074-----------------------------
  6423. INT 62 u - FGDRIVER v1.10 - "FG_SCRLOCK" - GET STATE OF SCROLL LOCK KEY
  6424.     AX = 0074h
  6425. Return: AX = ScrollLock state (0000h off, 0001h on)
  6426. SeeAlso: AX=0070h,AX=0072h
  6427. ----------620075-----------------------------
  6428. INT 62 u - FGDRIVER v1.10 - "FG_INITJOY" - INITIALIZE JOYSTICK USE
  6429.     AX = 0075h
  6430.     BX = joystick number (0001h or 0002h)
  6431. Return: AX = status
  6432.         0000h successful
  6433.         FFFFh joystick not connected or no game port
  6434. Note:    Fastgraph assumes that the requested joystick is centered at the time
  6435.       this function is called
  6436. SeeAlso: AX=0076h,AX=0077h,AX=0078h,AX=0079h
  6437. ----------620076-----------------------------
  6438. INT 62 u - FGDRIVER v1.10 - "FG_GETXJOY" - GET HORIZONTAL POSITION OF JOYSTICK
  6439.     AX = 0076h
  6440.     BX = joystick number (0001h or 0002h)
  6441. Return: AX = horizontal position of joystick
  6442.         FFFFh if joystick uninitialized or not present
  6443. Notes:    the actual coordinates are processor- and joystick-dependent
  6444.     you must call AX=0075h before this function
  6445. SeeAlso: AX=0075h,AX=0077h,AX=0078h
  6446. ----------620077-----------------------------
  6447. INT 62 u - FGDRIVER v1.10 - "FG_GETYJOY" - GET VERTICAL POSITION OF JOYSTICK
  6448.     AX = 0077h
  6449.     BX = joystick number (0001h or 0002h)
  6450. Return: AX = vertical position of joystick
  6451.         FFFFh if joystick uninitialized or not present
  6452. Notes:    the actual coordinates are processor- and joystick-dependent
  6453.     you must call AX=0075h before this function
  6454. SeeAlso: AX=0075h,AX=0076h,AX=0078h
  6455. ----------620078-----------------------------
  6456. INT 62 u - FGDRIVER v1.10 - "FG_BUTTON" - GET JOYSTICK BUTTON STATE
  6457.     AX = 0078h
  6458.     BX = joystick number (0001h or 0002h)
  6459. Return: AX = button states
  6460.         bit 0: top button pressed
  6461.         bit 1: bottom button pressed
  6462. SeeAlso: AX=0075h,AX=0076h,AX=0077h,AX=0079h
  6463. ----------620079-----------------------------
  6464. INT 62 u - FGDRIVER v1.10 - "FG_INTJOY" - GET KEYCODES CORRESP TO JOYSTICK POS
  6465.     AX = 0079h
  6466.     CX = joystick number (0001h or 0002h)
  6467.     ES:BX -> variable pointer record (see below)
  6468. Notes:    if the indicated joystick has not been initialized with AX=0075h, both
  6469.       the button code and joystick position will be set to 00h
  6470.     if either button is pressed, a button code of 0Dh is returned;
  6471.       otherwise, a button code of 00h is returned
  6472. SeeAlso: AX=006Fh,AX=0075h,AX=0078h
  6473.  
  6474. Format of variable pointer record:
  6475. Offset    Size    Description
  6476.  00h    WORD    segment of BYTE buffer for button code
  6477.  02h    WORD    offset of BYTE buffer for button code
  6478.  04h    WORD    segment of BYTE buffer for joystick position
  6479.  06h    WORD    offset of BYTE buffer for joystick position
  6480. ----------62007A-----------------------------
  6481. INT 62 u - FGDRIVER v1.10 - "FG_MOUSEINI" - INITIALIZE MOUSE SUPPORT
  6482.     AX = 007Ah
  6483. Return: AX = status
  6484.         0002h two-button mouse
  6485.         0003h three-button mouse
  6486.         FFFFh initialization failed
  6487. Note:    after this call, the mouse cursor is invisible
  6488. SeeAlso: AX=007Bh,AX=007Ch,AX=007Eh,AX=0080h,INT 33/AX=0000h
  6489. ----------62007B-----------------------------
  6490. INT 62 u - FGDRIVER v1.10 - "FG_MOUSEVIS" - SET MOUSE CURSOR VISIBILITY
  6491.     AX = 007Bh
  6492.     BX = new state (0000h invisible, 0001h visible)
  6493. SeeAlso: AX=007Ah,AX=007Eh,INT 33/AX=0001h,INT 33/AX=0002h
  6494. ----------62007C-----------------------------
  6495. INT 62 u - FGDRIVER v1.10 - "FG_MOUSEBUT" - GET MOUSE BUTTON PRESS/RELEASE CNTS
  6496.     AX = 007Ch
  6497.     CX = mouse button (1 = left press, 2 = right press, 3 = middle press,
  6498.               -1=left release, -2=right release, -3=middle release)
  6499.     ES:BX -> variable pointer record (see below)
  6500. Return: variables updated
  6501. Note:    returns the count of presses or releases since the last call to this
  6502.       function; if the count is zero, row and col will also be zero
  6503. SeeAlso: AX=007Ah,INT 33/AX=0005h,INT 33/AX=0006h
  6504.  
  6505. Format of variable pointer record:
  6506. Offset    Size    Description
  6507.  00h    WORD    segment of WORD buffer for press/release count
  6508.  02h    WORD    offset of WORD buffer for press/release count
  6509.  04h    WORD    segment of WORD buffer for screen space col of last press/rls
  6510.  06h    WORD    offset of WORD buffer for screen space col of last press/rels
  6511.  08h    WORD    segment of WORD buffer for screen space row of last press/rls
  6512.  0Ah    WORD    offset of WORD buffer for screen space row of last press/rls
  6513. ----------62007D-----------------------------
  6514. INT 62 u - FGDRIVER v1.10 - "FG_MOUSEPOS" - GET CURRENT MOUSE POSITION
  6515.     AX = 007Dh
  6516.     ES:BX -> variable pointer record (see below)
  6517. SeeAlso: AX=007Ah,AX=0081h
  6518.  
  6519. Format of variable pointer record:
  6520. Offset    Size    Description
  6521.  00h    WORD    segment of WORD buffer for mouse column
  6522.  02h    WORD    offset of WORD buffer for mouse column
  6523.  04h    WORD    segment of WORD buffer for mouse row
  6524.  06h    WORD    offset of WORD buffer for mouse row
  6525.  08h    WORD    segment of WORD buffer for button status
  6526.  0Ah    WORD    offset of WORD buffer for button status
  6527. Note:    button status: bit 0 = left button, bit 1 = right, bit 2 = middle
  6528. ----------62007E-----------------------------
  6529. INT 62 u - FGDRIVER v1.10 - "FG_MOUSECUR" - SPECIFY TEXT-MODE MOUSE CURSOR
  6530.     AX = 007Eh
  6531.     BX = screen mask
  6532.     CX = cursor mask
  6533. Note:    this call is ignored in graphics modes
  6534. SeeAlso: AX=007Ah,AX=007Fh,INT 33/AX=000Ah
  6535. ----------62007F-----------------------------
  6536. INT 62 u - FGDRIVER v1.10 - "FG_MOUSEPTR" - SPECIFY GRAPH-MODE MOUSE CURSOR
  6537.     AX = 007Fh
  6538.     ES:BX -> masks (16-byte screen mask followed by 16-byte cursor mask)
  6539.     CX = X offset of hot spot from upper left corner
  6540.     DX = Y offset of hot spot from upper left corner
  6541. Note:    this call is ignored in text modes
  6542. SeeAlso: AX=007Ah,AX=007Eh,INT 33/AX=0009h
  6543. ----------620080-----------------------------
  6544. INT 62 u - FGDRIVER v1.10 - "FG_MOUSELIM" - SPECIFY MOUSE CURSOR LIMITS
  6545.     AX = 0080h
  6546.     BX = left-most position allowed for mouse cursor
  6547.     CX = right-most position allowed
  6548.     DX = top-most position allowed
  6549.     SI = bottom-most position allowed
  6550. SeeAlso: AX=007Ah,AX=0081h,INT 33/AX=0007h,INT 33/AX=0008h
  6551. ----------620081-----------------------------
  6552. INT 62 u - FGDRIVER v1.10 - "FG_MOUSEMOV" - SET MOUSE CURSOR POSITION
  6553.     AX = 0081h
  6554.     BX = new column
  6555.     CX = new row
  6556. Note:    will not move the mouse cursor outside the bounding box specified with
  6557.       AX=0080h
  6558. SeeAlso: AX=007Ah,AX=007Dh,AX=0080h,INT 33/AX=0004h
  6559. ----------620082-----------------------------
  6560. INT 62 u - FGDRIVER v1.10 - "FG_MOUSESPD" - SET MOUSE CURSOR SPEED
  6561.     AX = 0082h
  6562.     BX = horizontal mickeys per eight pixels of movement (default 16)
  6563.     CX = vertical mickeys per eight pixels of movement (default 16)
  6564. SeeAlso: INT 33/AX=000Fh,INT 33/AX=001Ah
  6565. ----------620083-----------------------------
  6566. INT 62 - FGDRIVER v1.10 - UNUSED
  6567.     AX = 0083h to 0087h
  6568. Return: AX = 0000h
  6569. ----------620088-----------------------------
  6570. INT 62 u - FGDRIVER v1.10 - "FG_SOUND" - MAKE SOUND FOR SPECIFIED DURATION
  6571.     AX = 0088h
  6572.     BX = frequency in Hertz (18-32767)
  6573.     CX = duration in clock ticks (0000h or negative for continuous sound)
  6574. Note:    ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
  6575.       progress
  6576. SeeAlso: AX=0089h,AX=008Ah,AX=008Eh,AX=0090h
  6577. ----------620089-----------------------------
  6578. INT 62 u - FGDRIVER v1.10 - "FG_SOUNDS" - PLAY SOUNDS IN BACKGROUND
  6579.     AX = 0089h
  6580.     CX = number of times to cycle through sound list
  6581.     ES:BX -> sounds array (see below)
  6582. Note:    ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
  6583.       progress
  6584. SeeAlso: AX=0088h,AX=008Eh,AX=008Fh
  6585.  
  6586. Format of sounds array element:
  6587. Offset    Size    Description
  6588.  00h    WORD    frequency of sound in Hertz (0000h ends array)
  6589.  02h    WORD    duration of sound in clock ticks
  6590. ----------62008A-----------------------------
  6591. INT 62 u - FGDRIVER v1.10 - "FG_VOICE" - START SOUND
  6592.     AX = 008Ah
  6593.     BX = channel on TI sound chip
  6594.         1-3 = channels 1-3, 4 = channel 4 with periodic noise,
  6595.         5 = channel 4 with white noise
  6596.     CX = frequency in Hz (18-32767 for channels 1-3; 0=512 Hz, 1=1024 Hz, 
  6597.         2=2048 Hz for channels 4 and 5)
  6598.     DX = volume
  6599.     SI = duration in clock ticks (continuous if <= 0)
  6600. Notes:    FGDRIVER is the external video driver for the shareware
  6601.       Fastgraph/Light by Ted Gruber Software
  6602.     only available on PCjr and Tandy 1000
  6603. SeeAlso: AX=0088h,AX=008Bh,AX=008Ch
  6604. ----------62008B-----------------------------
  6605. INT 62 u - FGDRIVER v1.10 - "FG_VOICES" - PLAY SOUNDS IN BACKGROUND
  6606.     AX = 008Bh
  6607.     ES:BX -> tone array (see below)
  6608.     CX = number of times to repeat tone array
  6609. Notes:    FGDRIVER is the external video driver for the shareware
  6610.       Fastgraph/Light by Ted Gruber Software
  6611.     only available on PCjr and Tandy 1000
  6612. SeeAlso: AX=008Ah,AX=008Dh,AX=008Eh,AX=008Fh,AX=0091h
  6613.  
  6614. Format of tone array element:
  6615. Offset    Size    Description
  6616.  00h    WORD    channel number (0000h terminates array)
  6617.  02h    WORD    frequency
  6618.  04h    WORD    volume
  6619.  06h    WORD    duration in 1/72.8 seconds
  6620. ----------62008C-----------------------------
  6621. INT 62 u - FGDRIVER v1.10 - "FG_MUSIC" - PLAY SERIES OF NOTES
  6622.     AX = 008Ch
  6623.     ES:BX -> '$'-terminated music string in BASIC PLAY format
  6624. Return: after music completed
  6625. Note:    ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
  6626.       progress
  6627. SeeAlso: AX=008Ah,AX=008Dh
  6628. ----------62008D-----------------------------
  6629. INT 62 u - FGDRIVER v1.10 - "FG_MUSICB" - PLAY SERIES OF NOTES IN BACKGROUND
  6630.     AX = 008Dh
  6631.     CX = number of repetitions (negative = continuous play)
  6632.     ES:BX -> '$'-terminated music string in BASIC PLAY format
  6633. Note:    ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
  6634.       progress
  6635. SeeAlso: AX=008Bh,AX=008Ch,AX=008Eh,AX=008Fh,AX=0091h
  6636. ----------62008E-----------------------------
  6637. INT 62 u - FGDRIVER v1.10 - "FG_HUSH" - STOP ASYNCHRONOUS SOUND IMMEDIATELY
  6638.     AX = 008Eh
  6639. Note:    immediately stops any sounds started with "FG_MUSICB", "FG_SOUNDS",
  6640.       or AX=008Bh; ignored if no asynchronous sound is playing
  6641. SeeAlso: AX=0088h,AX=008Bh,AX=008Fh,AX=0090h,AX=0091h
  6642. ----------62008F-----------------------------
  6643. INT 62 u - FGDRIVER v1.10 - "FG_HUSHNEXT" - STOP ASYNCHRONOUS SOUND
  6644.     AX = 008Fh
  6645. Note:    stops any sounds started with "FG_MUSICB", "FG_SOUNDS", or AX=008Bh
  6646.       after the current repetition completes; ignored unless asynchronous
  6647.       sound is continuous
  6648. SeeAlso: AX=008Bh,AX=008Eh,AX=0090h
  6649. ----------620090-----------------------------
  6650. INT 62 u - FGDRIVER v1.10 - "FG_QUIET" - STOP CONTINUOUS SYNCHRONOUS SOUND
  6651.     AX = 0090h
  6652. Note:    this call has no effect if there is no continuous sound playing
  6653. SeeAlso: AX=008Eh,AX=008Fh,AX=0091h
  6654. ----------620091-----------------------------
  6655. INT 62 u - FGDRIVER v1.10 - "FG_PLAYING" - DETERMINE WHETHER ASYNC SOUND ACTIVE
  6656.     AX = 0091h
  6657. Return: AX = sound state (0 = no asynchronous sound, 1 = async sound playing)
  6658. SeeAlso: AX=008Bh,AX=008Dh,AX=0090h
  6659. ----------620092-----------------------------
  6660. INT 62 u - FGDRIVER v1.10 - "FG_RESUME" - RESTART ASYNCHRONOUS SOUND
  6661.     AX = 0092h
  6662. SeeAlso: AX=008Eh,AX=008Fh,AX=0090h
  6663. ----------620093-----------------------------
  6664. INT 62 u - FGDRIVER v1.10 - "FG_SUSPEND" - TEMPORARILY STOP ASYNCHRONOUS SOUND
  6665.     AX = 0093h
  6666. Notes:    this call has no effect if there is no asynchronous sound in progress
  6667.     the program must not exit while sound is suspended
  6668. SeeAlso: AX=0092h
  6669. ----------620094-----------------------------
  6670. INT 62 - FGDRIVER v1.10 - UNUSED
  6671.     AX = 0094h to 0095h
  6672. Return: AX = 0000h
  6673. ----------620096-----------------------------
  6674. INT 62 u - FGDRIVER v1.10 - "FG_WAITFOR" - DELAY FOR SPECIFIED DURATION
  6675.     AX = 0096h
  6676.     BX = duration in clock ticks
  6677. Return: after delay elapses
  6678. SeeAlso: AX=006Dh,AX=0097h
  6679. ----------620097-----------------------------
  6680. INT 62 u - FGDRIVER v1.10 - "FG_STALL" - PAUSE FOR SPECIFIED DURATION
  6681.     AX = 0097h
  6682.     BX = duration in processor-dependent delay units (see AX=0098h)
  6683. Return: after delay elapses
  6684. SeeAlso: AX=0096h,AX=0098h
  6685. ----------620098-----------------------------
  6686. INT 62 u - FGDRIVER v1.10 - "FG_MEASURE" - GET DELAY UNITS PER CLOCK TICK
  6687.     AX = 0098h
  6688. Return: AX = delay units per clock tick (processor-dependent)
  6689. Note:    delay units are used by "FG_STALL" (AX=0097h)
  6690. SeeAlso: AX=0097h
  6691. ----------620099-----------------------------
  6692. INT 62 u - FGDRIVER v1.10 - "FG_GETCLOCK" - GET CLOCK TICKS SINCE MIDNIGHT
  6693.     AX = 0099h
  6694. Return: DX:AX = number of clock ticks since midnight
  6695. Note:    FGDRIVER is the external video driver for the shareware
  6696.       Fastgraph/Light by Ted Gruber Software
  6697. ----------62009A-----------------------------
  6698. INT 62 - FGDRIVER v1.10 - UNUSED
  6699.     AX = 009Ah
  6700. Return: AX = 0000h
  6701. ----------62009B-----------------------------
  6702. INT 62 u - FGDRIVER v1.10 - "FG_MEMAVAIL" - QUERY AMOUNT OF FREE MEMORY
  6703.     AX = 009Bh
  6704. Return: DX:AX = number of bytes of conventional memory available
  6705. SeeAlso: AX=009Dh
  6706. ----------62009C-----------------------------
  6707. INT 62 u - FGDRIVER v1.10 - "FG_SETFUNC" - SET LOGICAL OPERATION FOR VIDEO OPS
  6708.     AX = 009Ch
  6709.     BX = operation
  6710.         0000h replacement
  6711.         0001h AND
  6712.         0002h OR
  6713.         0003h XOR
  6714. Note:    only available in native EGA/VGA graphics mode (0Dh to 12h)
  6715. ----------62009D-----------------------------
  6716. INT 62 u - FGDRIVER v1.10 - "FG_ALLOCCMS" - CREATE LOGICAL VIDEO PAGE (CONVMEM)
  6717.     AX = 009Dh
  6718.     BX = page number (0001h-003Fh)
  6719. Return: AX = status
  6720.         0000h successful
  6721.         FFFCh insufficient memory
  6722.         FFFDh page already created, or exists as physical or virtual page
  6723.         FFFEh invalid page number
  6724. Note:    the only operation which is allowed on logical pages is AX=005Fh
  6725. SeeAlso: AX=0043h,AX=005Fh,AX=009Bh,AX=009Eh,AX=009Fh
  6726. ----------62009E-----------------------------
  6727. INT 62 u - FGDRIVER v1.10 - "FG_ALLOCEMS" - CREATE LOGICAL VIDEO PAGE (EMS)
  6728.     AX = 009Eh
  6729.     BX = page number (0001h-003Fh)
  6730. Return: AX = status
  6731.         0000h successful
  6732.         FFFCh insufficient memory
  6733.         FFFDh page already created, or exists as physical or virtual page
  6734.         FFFEh invalid page number
  6735.         FFFFh memory manager not initialized
  6736. Notes:    must first call AX=00A0h
  6737.     the only operation which is allowed on logical pages is AX=005Fh
  6738. SeeAlso: AX=0043h,AX=005Fh,AX=009Dh,AX=009Fh,AX=00A0h
  6739. ----------62009F-----------------------------
  6740. INT 62 u - FGDRIVER v1.10 - "FG_ALLOCXMS" - CREATE LOGICAL VIDEO PAGE (XMS)
  6741.     AX = 009Fh
  6742.     BX = page number (0001h-003Fh)
  6743. Return: AX = status (see AX=009Eh)
  6744. Notes:    must first call AX=00A1h
  6745.     the only operation which is allowed on logical pages is AX=005Fh
  6746. SeeAlso: AX=0043h,AX=005Fh,AX=009Dh,AX=009Eh,AX=00A1h
  6747. ----------6200A0-----------------------------
  6748. INT 62 u - FGDRIVER v1.10 - "FG_INITEMS" - INITIALIZE EXPANDED MEMORY USE
  6749.     AX = 00A0h
  6750. Return: AX = status
  6751.         0000h successful
  6752.         FFFFh expanded memory manager inaccessible or not installed
  6753. SeeAlso: AX=009Eh,AX=00A1h
  6754. ----------6200A1-----------------------------
  6755. INT 62 u - FGDRIVER v1.10 - "FG_INITXMS" - INITIALIZE EXTENDED MEMORY USE
  6756.     AX = 00A1h
  6757. Return: AX = status
  6758.         0000h successful
  6759.         FFFFh extended memory manager inaccessible or not installed
  6760. SeeAlso: AX=009Fh,AX=00A0h
  6761. ----------6200A2-----------------------------
  6762. INT 62 u - FGDRIVER v1.10 - "FG_BOX" - DRAW UNFILLED RECTANGLE
  6763.     AX = 00A2h
  6764.     BX = left column
  6765.     CX = right column
  6766.     DX = top row
  6767.     SI = bottom row
  6768. Notes:    FGDRIVER is the external video driver for the shareware
  6769.       Fastgraph/Light by Ted Gruber Software
  6770.     the rectangle is drawn in screen space, respecting the clipping region,
  6771.       width edges of the width specified with AX=00A3h (default = 1 is set
  6772.       by "FG_SETMODE")
  6773.     this function has no effect in text modes
  6774. SeeAlso: AX=002Bh,AX=002Ch,AX=002Eh,AX=0030h,AX=00A3h
  6775. ----------6200A3-----------------------------
  6776. INT 62 u - FGDRIVER v1.10 - "FG_BOXDEPTH" - SET RECTANGLE BORDER WIDTH
  6777.     AX = 00A3h
  6778.     BX = width of left and right edges in pixels (> 0)
  6779.     CX = width of top and bottom edges in pixels (> 0)
  6780. SeeAlso: AX=00A2h
  6781. ----------6200A4-----------------------------
  6782. INT 62 u - FGDRIVER v1.10 - "FG_GETDACS" - GET VIDEO DAC CONTENTS
  6783.     AX = 00A4h
  6784.     CX = number of DAC registers to return (0001h to 0100h)
  6785.     DX = starting DAC register number (0000h to 00FFh)
  6786.     ES:BX -> buffer for DAC red/green/blue triples
  6787. Note:    the register number wraps back to zero after FFh
  6788. SeeAlso: AX=001Ch,AX=00A5h
  6789. ----------6200A5-----------------------------
  6790. INT 62 u - FGDRIVER v1.10 - "FG_SETDACS" - SET VIDEO DAC CONTENTS
  6791.     AX = 00A5h
  6792.     CX = number of DAC registers to set (0001h to 0100h)
  6793.     DX = starting DAC register number (0000h to 00FFh)
  6794.     ES:BX -> buffer containing DAC red/green/blue triples
  6795. Notes:    the register number wraps back to zero after FFh
  6796.     this call has no effect in text modes or graphics modes below 11h
  6797. SeeAlso: AX=001Bh,AX=00A4h
  6798. ----------6201-------------------------------
  6799. INT 62 - Cswitch - GIVE UP REST OF TIME-SLICE
  6800.     AH = 01h
  6801. Note:    Cswitch is a set of multitasking functions by Herb Rose
  6802. SeeAlso: AH=05h,AH=06h,INT 15/AX=1000h
  6803. ----------6202-------------------------------
  6804. INT 62 - Cswitch - WAIT FOR SEMAPHORE
  6805.     AH = 02h
  6806.     DX = semaphore number (0-63)
  6807. Return: AX = FFFFh bad semaphore number
  6808.          else  success
  6809. SeeAlso: AH=03h,AH=04h
  6810. ----------6203-------------------------------
  6811. INT 62 - Cswitch - CHECK SEMAPHORE
  6812.     AH = 03h
  6813.     DX = semaphore number (0-63)
  6814. Return: AX = FFFFh not owned
  6815.          else  owned
  6816. SeeAlso: AH=02h,AH=04h
  6817. ----------6204-------------------------------
  6818. INT 62 - Cswitch - TRIGGER SEMAPHORE
  6819.     AH = 04h
  6820.     DX = semaphore number (0-63)
  6821. Return: AX = FFFFh bad semaphore number
  6822.          else  success
  6823. SeeAlso: AH=02h,AH=03h
  6824. ----------6205-------------------------------
  6825. INT 62 - Cswitch - SLEEP
  6826.     AH = 05h
  6827.     BX = seconds to sleep
  6828. SeeAlso: AH=01h,AH=06h,AH=08h"Cswitch"
  6829. ----------6206-------------------------------
  6830. INT 62 - Cswitch - SUSPEND
  6831.     AH = 06h
  6832. SeeAlso: AH=05h,AH=08h"Cswitch"
  6833. ----------6207-------------------------------
  6834. INT 62 - Cswitch - SPAWN
  6835.     AH = 07h
  6836.     ES:BX -> function address to start executing at
  6837.     CX = priority (1-10)
  6838. Return: AX = FFFDh  no free memory control blocks
  6839.        = FFFEh  no free task control blocks
  6840.        = FFFFh  not enough memory to create new task stack
  6841.        = >0        the tcb number of the new task, indicating no error
  6842. SeeAlso: AH=0Fh,AH=10h
  6843. ----------6208-------------------------------
  6844. INT 62 - Cswitch - WAKE UP TASK
  6845.     AH = 08h
  6846.     BX = tcb identifier
  6847. SeeAlso: AH=05h,AH=06h
  6848. ----------6208--CXFFFE-----------------------
  6849. INT 62 - MS SQL Server/Sybase DBLIBRARY interface - UNINSTALL/GET PSP ADDR
  6850.     AH = 08h
  6851.     CX = FFFEh
  6852.     DX = FFFFh
  6853. Return: AX = PSP address of resident DBLIBRARY
  6854. Note:    this call does not free the memory allocated to the TSR; the calling
  6855.       code must do the deallocation.
  6856. SeeAlso: INT 62"DBLIBRARY"
  6857. ----------6209-------------------------------
  6858. INT 62 - Cswitch - SET PRIORITY
  6859.     AH = 09h
  6860.     BX = new base priority (1-10)
  6861. Note:    the lower the priority is numerically, the more often the task will run
  6862. ----------620A-------------------------------
  6863. INT 62 - Cswitch - TEST MESSAGE QUEUE
  6864.     AH = 0Ah
  6865.     DX = queue number (0-63)
  6866. Return: AX = FFFFh bad queue number
  6867.        = 0000h nothing on queue
  6868.          else  number of bytes in first message in queue
  6869. SeeAlso: AH=0Bh,AH=0Ch
  6870. ----------620B-------------------------------
  6871. INT 62 - Cswitch - SEND MESSAGE
  6872.     AH = 0Bh
  6873.     CX = number of bytes to write
  6874.     DS:SI -> buffer
  6875.     DX = queue number (0-63)
  6876. Return: AX = FFFEh triggered by something arriving, redo the call
  6877.        = FFFFh bad queue number
  6878.        = 0000h no message was on queue
  6879.          else  number of bytes in message
  6880. SeeAlso: AH=0Ah,AH=0Ch
  6881. ----------620C-------------------------------
  6882. INT 62 - Cswitch - READ MESSAGE
  6883.     AH = 0Ch
  6884.     CX = number of bytes to read
  6885.     DS:SI -> buffer
  6886.     DX = queue number (0-63)
  6887. Return: AX = FFFFh bad queue number
  6888.          else  number of bytes transferred
  6889. SeeAlso: AH=0Ah,AH=0Bh
  6890. ----------620D-------------------------------
  6891. INT 62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT
  6892.     AH = 0Dh
  6893. SeeAlso: AH=0Eh
  6894. ----------620E-------------------------------
  6895. INT 62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT
  6896.     AH = 0Eh
  6897. SeeAlso: AH=0Dh
  6898. ----------620F-------------------------------
  6899. INT 62 - Cswitch - LOAD AND RUN PROGRAM FROM DISK
  6900.     AH = 0Fh
  6901.     ES:BX -> command line
  6902.     CX = priority (1-10)
  6903.     DX = background flag
  6904.        = != 0000h  allows loading to EMS
  6905. Return: AX = 0000h task loader queue is full
  6906.        = 0001h  no error
  6907. SeeAlso: AH=07h,AH=10h,AH=13h
  6908. ----------6210-------------------------------
  6909. INT 62 - Cswitch - TERMINATE SPAWNED PROGRAM
  6910.     AH = 10h
  6911. SeeAlso: AH=07h,AH=0Fh
  6912. ----------6211-------------------------------
  6913. INT 62 - Cswitch - GET TCB INFORMATION
  6914.     AH = 11h
  6915.     ES:BX -> a pointer which will be set to the tcb address
  6916. Return: AX = tcb indentifier
  6917. SeeAlso: AH=12h
  6918. ----------6212-------------------------------
  6919. INT 62 - Cswitch - GET TCB ADDRESS
  6920.     AH = 12h
  6921.     ES:BX -> a pointer which will be set to the tcb table address
  6922. Return: AX = tcb indentifier
  6923. SeeAlso: AH=11h
  6924. ----------6213-------------------------------
  6925. INT 62 - Cswitch - CHECK STATUS OF PREVIOUS LOAD_TASK
  6926.     AH = 13h
  6927. Return: AX = FFFCh no Memory Control Blocks available
  6928.        = FFFDh no TCBs available
  6929.        = FFFEh insufficient memory
  6930.        = FFFFh cannot open file
  6931.        = 0000h load in progress (not done yet)
  6932.          else  tcb indentifier
  6933. SeeAlso: AH=0Fh
  6934. ----------6247-------------------------------
  6935. INT 62 - PC Tools 7 COMMUTE - ???
  6936.     AH = 47h
  6937.     AL = subfunction (00h-31h)
  6938.     ???
  6939.     CF set
  6940. Return: ???
  6941. ----------6248-------------------------------
  6942. INT 62 - PC Tools 7 COMMUTE - ???
  6943.     AH = 48h
  6944.     AL = ???
  6945.     ???
  6946.     CF set
  6947. Return: ???
  6948. ----------6249-------------------------------
  6949. INT 62 - PC Tools 7 COMMUTE - ???
  6950.     AH = 49h
  6951.     ???
  6952.     CF set
  6953. Return: ???
  6954. Note:    may be the same as AH=4Ch
  6955. ----------624A-------------------------------
  6956. INT 62 - PC Tools 7 COMMUTE - ???
  6957.     AH = 4Ah
  6958.     AL = subfunction (00h-46h)
  6959.     ???
  6960.     CF set
  6961. Return: ???
  6962. ----------624B--BX1234-----------------------
  6963. INT 62 - PC Tools 7 COMMUTE - ???
  6964.     AH = 4Bh
  6965.     BX = 1234h
  6966.     CX = 1234h
  6967.     ES = ???
  6968.     CF set
  6969. Return: ???
  6970. ----------624C-------------------------------
  6971. INT 62 - PC Tools 7 COMMUTE - ???
  6972.     AH = 4Ch
  6973.     BL = subfunction
  6974.         00h ???
  6975.         02h ???
  6976. Return: CF clear if successful
  6977.     CF set on error
  6978. ----------626262-----------------------------
  6979. INT 62 - PC Tools 7 COMMUTE - INSTALLATION CHECK
  6980.     AX = 6262h
  6981.     CF set
  6982. Return: AX = 0000h
  6983.     BX = segment of resident code's PSP
  6984. ----------63---------------------------------
  6985. INT 63 - reserved for user interrupt
  6986. ----------63---------------------------------
  6987. INT 63 - Adaptec and OMTI controllers - DRIVE 0 DATA
  6988. Notes:    this vector stores the last four bytes of the parameter table for
  6989.       hard disk 0
  6990. SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 62"Adaptec",INT 64"Adaptec"
  6991. ----------63---------------------------------
  6992. INT 63 - Oracle SQL Protected Mode Executive - ???
  6993. ----------63---------------------------------
  6994. INT 63 - 4+Power FLOPPY CONTROLLER - ORIGINAL INT 13/40
  6995.    the "4+Power" quad floppy controller BIOS hooks INT 13 (or INT 40 if INT 13
  6996.    has been moved there) and places the old value here
  6997. ----------63---------------------------------
  6998. INT 63 - Kofax KF9X00 image manipulation card interface
  6999. ----------63---------------------------------
  7000. INT 63 - DESQview/X - SOCKET API
  7001. Notes:    parameters are passed by patching!! data field immediately following
  7002.       the entry point, as detailed below; the preferred method for calling
  7003.       the socket API is via INT 15/AX=DE2Eh
  7004.     the installation check consists of testing for the string "dvxunix"
  7005.       (yes, lowercase) at offset 9 from the interrupt handler start
  7006. SeeAlso: INT 15/AX=DE2Eh,INT BE"DESQview"
  7007.  
  7008. Format of interrupt handler entry:
  7009. Offset    Size    Description
  7010.  00h  3 BYTEs    near jump or short jump + NOP to actual interrupt handler
  7011.  03h    WORD    offset from following pointer for initial top of local stack
  7012.  05h    DWORD    pointer to argument/stack block (see INT 15/AX=DE2Eh)
  7013.  09h  7 BYTEs    signature "dvxunix"
  7014. ----------64---------------------------------
  7015. INT 64 - reserved for user interrupt
  7016. ----------64---------------------------------
  7017. INT 64 - Adaptec controllers - DRIVE 1 DATA
  7018. Notes:    this vector stores the first four bytes of the parameter table for
  7019.       hard disk 1
  7020.     these vectors are used by the following Adaptec controllers:
  7021.         ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
  7022.     these vectors are NOT used by the following Adaptec controllers:
  7023.         ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
  7024. SeeAlso: INT 60"Adaptec",INT 65"Adaptec",INT 66"Adaptec",INT 67"Adaptec"
  7025. ----------64---------------------------------
  7026. INT 64 - Oracle SQL Protected Mode Executive - ???
  7027. ----------64---------------------------------
  7028. INT 64 - Novell NetWare to v2.0a - LOW-LEVEL API
  7029. Note:    equivalent to INT 7A for NetWare versions through 2.0a only; later
  7030.       versions do not use this interrupt for IPX/SPX access, instead
  7031.       getting an entry point from INT 2F/AX=7A00h
  7032. SeeAlso: INT 2F/AX=7A00h,INT 7A"Novell"
  7033. ----------64---------------------------------
  7034. INT 64 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
  7035. SeeAlso: INT 65"DG10",INT 66"DG10"
  7036. ----------64---------------------------------
  7037. INT 64 - Extended Batch Language v3.14+
  7038.     AH = function
  7039.         00h to 5Fh chained to previous handler
  7040.         60h to 6Ch reserved, return immediately
  7041.         80h to FFh chained to previous handler
  7042.         6Dh (v4.01+) insert tone in queue
  7043.         AL = ???
  7044.         CX = frequency in Hertz
  7045.         DL = duration in clock ticks
  7046.         Return: AL = 00h if note stored
  7047.                = 01h if no room to store
  7048.         6Eh clear ??? counter/flag
  7049.         6Fh return counter/flag that AH=6Eh clears
  7050.         70h ???
  7051.         AL = ???
  7052.         71h ???
  7053.         AL = ???
  7054.         72h ???
  7055.         73h insert byte at end of keyboard buffer
  7056.         AL = byte to insert
  7057.         Return: AL = 00h if byte inserted
  7058.                = 01h if no room to store
  7059.         74h insert byte at front of keyboard buffer
  7060.         AL = byte to insert
  7061.         Return: AL = 00h if byte inserted
  7062.                = 01h if no room to store
  7063.         75h ???
  7064.         76h get keyboard "stack" status
  7065.         AL = 'K' if kbd read will read physical keyboard
  7066.              'S' if it will read EBL internal keyboard buffer
  7067.         AH = ???
  7068.         77h clear internal keyboard buffer
  7069.         78h ???
  7070.         AL = ???
  7071.         79h ???
  7072.         7Ah ???
  7073.         AL = ???
  7074.         7Bh ???
  7075.         AL = ???
  7076.         7Ch ???
  7077.         AL = ???
  7078.         7Dh ???
  7079.         AL = ???
  7080.         7Eh clear buffer for ???
  7081.         7Fh installation check
  7082.         Return: CX = version in BCD
  7083.             DI = segment of ???
  7084.             BX = segment of next program's PSP???
  7085. Notes:    Extended Batch Language is a batch-file enhancer by Seaware
  7086.     the chaining does not check whether the interrupt had been hooked
  7087.       before, so if you try to chain when the previous vector was 
  7088.       0000h:0000h, you'll be in trouble
  7089.     functions 72h and 7Ah-7Dh appear to be interfaces to the optional
  7090.       floating-point and extended function packages
  7091. ----------64---------------------------------
  7092. INT 64 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
  7093. Note:    This vector is overwritten by Pdisk to install custom harddrive types.
  7094.       It can either destroy 4 vectors and take no memory or TSR and take
  7095.       up some memory.
  7096. SeeAlso: INT 65"Pdisk"
  7097. ----------65---------------------------------
  7098. INT 65 - reserved for user interrupt
  7099. ----------65---------------------------------
  7100. INT 65 - Adaptec controllers - DRIVE 1 DATA
  7101. Note:    this vector stores the second four bytes of the parameter table for
  7102.       hard disk 1
  7103. SeeAlso: INT 64"Adaptec",INT 66"Adaptec",INT 67"Adaptec"
  7104. ----------65---------------------------------
  7105. INT 65 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
  7106. SeeAlso: INT 64"DG10",INT 66"DG10"
  7107. ----------65---------------------------------
  7108. INT 65 - FTP Software NDIS-Packet Driver adapter - POST PROCESSING INTERRUPT
  7109. ----------65---------------------------------
  7110. INT 65 - SD.COM v6.2
  7111.    The unregistered version of SD62.COM uses the low byte of this vector to
  7112.    count the number of invocations, displaying a registration reminder each
  7113.    time after the 20th use.
  7114. ----------65---------------------------------
  7115. INT 65 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
  7116. SeeAlso: INT 64"Pdisk",INT 66"Pdisk"
  7117. ----------65---------------------------------
  7118. INT 65 - Ad Lib SOUND.COM - INTERFACE
  7119.     SI = function number (see also entries below)
  7120.         0000h Init
  7121.         0002h RelTimeStart
  7122.         0003h SetState
  7123.         0004h GetState
  7124.         0005h Flush
  7125.         0006h SetMode
  7126.         0007h GetMode
  7127.         0008h SetRelVolume
  7128.         0009h SetTempo
  7129.         000Ah SetTranspose
  7130.         000Bh GetTranspose
  7131.         000Ch SetActVoice
  7132.         000Dh GetActVoice
  7133.         000Eh PlayNoteDel
  7134.         000Fh PlayNote
  7135.         0010h SetTimbre
  7136.         0011h SetPitch
  7137.         0012h SetTickBeat
  7138.         0013h NoteOn
  7139.         0014h NoteOff
  7140.         0015h Timbre
  7141.         0016h SetPitchBend
  7142.         0017h WaveForm
  7143.     ES:BX -> arguments
  7144. Note:    the installation check consists of checking for the signature block
  7145.       immediately preceding the interrupt handler (see below)
  7146.  
  7147. Format of signature block:
  7148. Offset    Size    Description
  7149.  00h    WORD    version number
  7150.  02h 19 BYTEs    "SOUND-DRIVER-AD-LIB"
  7151.  15h    BYTE    01h
  7152.  16h    BYTE    01h
  7153.  17h    BYTE    00h
  7154. ----------65----SI0000-----------------------
  7155. INT 65 - Ad Lib SOUND.COM - INITIALIZE (RESET)
  7156.     SI = 0000h
  7157. ----------65----SI0003-----------------------
  7158. INT 65 - Ad Lib SOUND.COM - SET STATE
  7159.     SI = 0003h
  7160.     ES:BX -> WORD state = 0000h disabled 
  7161.                 = 0001h enabled
  7162. SeeAlso: SI=0004h
  7163. ----------65----SI0004-----------------------
  7164. INT 65 - Ad Lib SOUND.COM - GET STATE
  7165.     SI = 0004h
  7166. Return: AX = 0000h all done playing sounds
  7167.        = else  still playing sounds
  7168. SeeAlso: SI=0003h
  7169. ----------65----SI0006-----------------------
  7170. INT 65 - Ad Lib SOUND.COM - SET MODE
  7171.     SI = 0006h
  7172.     ES:BX -> WORD mode = 0000h melodic
  7173.                = 0001h percussive
  7174. SeeAlso: SI=0007h
  7175. ----------65----SI0007-----------------------
  7176. INT 65 - Ad Lib SOUND.COM - GET MODE
  7177.     SI = 0007h
  7178. Return: AX = 0000h melodic
  7179.        = 0001h percussive
  7180. SeeAlso: SI=0006h
  7181. ----------65----SI000C-----------------------
  7182. INT 65 - Ad Lib SOUND.COM - SET ACTIVE VOICE
  7183.     SI = 000Ch
  7184.     ES:BX -> WORD voice = 0000h to 0008h
  7185. SeeAlso: SI=000Dh
  7186. ----------65----SI000D-----------------------
  7187. INT 65 - Ad Lib SOUND.COM - GET ACTIVE VOICE
  7188.     SI = 000Dh
  7189. Return: AX = voice (0000h to 0008h)
  7190. SeeAlso: SI=000Ch
  7191. ----------66---------------------------------
  7192. INT 66 - reserved for user interrupt
  7193. ----------66---------------------------------
  7194. INT 66 - Adaptec controllers - DRIVE 1 DATA
  7195. Note:    this vector stores the third four bytes of the parameter table for
  7196.       hard disk 1
  7197. SeeAlso: INT 64"Adaptec",INT 65"Adaptec",INT 67"Adaptec"
  7198. ----------66---------------------------------
  7199. INT 66 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
  7200. SeeAlso: INT 64"DG10"
  7201. ----------66---------------------------------
  7202. INT 66 - Nanosoft, Inc. TurboNET - NETWORK PROCESSING ???
  7203. Notes:    hooked but not used (IRET) by both redirector and server; called from
  7204.       server's INT 28 handler
  7205.     TurboNET is a NetBIOS-based file redirector and server
  7206. SeeAlso: INT 2F/AX=8100h
  7207. ----------66---------------------------------
  7208. INT 66 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
  7209. SeeAlso: INT 64"Pdisk",INT 67"Pdisk"
  7210. ----------66---------------------------------
  7211. INT 66 - Microsoft Windows VITD.386 Virtual Interval Timer
  7212. Note:    This Windows 3.x Virtual Device Driver implements a virtual timer
  7213.       which will expire and call INT 66.  This timer can be used to
  7214.       calculate elapsed execution time etc.
  7215. ----------6601-------------------------------
  7216. INT 66 - BitFax Scheduler - SET MODE???
  7217.     AH = 01h
  7218. SeeAlso: AH=02h
  7219. ----------6602-------------------------------
  7220. INT 66 - BitFax Scheduler - SET MODE???
  7221.     AH = 02h
  7222. SeeAlso: AH=01h
  7223. ----------6603-------------------------------
  7224. INT 66 - BitFax Scheduler - SCHEDULE FAX TRANSMISSIONS
  7225.     AH = 03h
  7226.     ???
  7227. Return: ???
  7228. SeeAlso: AH=05h
  7229. ----------6604-------------------------------
  7230. INT 66 - BitFax Scheduler - GET STATUS???
  7231.     AH = 04h
  7232. Return: AX = ??? (0000h or 0001h)
  7233.     DX = BitSched version???  (for versions >= 3.00)
  7234.         9796h (ver. 3.00)
  7235.         97E6h (ver. 3.02)
  7236.         92D0h (ver. 3.04.06)
  7237.         9510h (ver. 3.06.02)
  7238. SeeAlso: AH=06h,AX=3345h,INT 2F/AX=8000h"FaxBIOS"
  7239. ----------6605-------------------------------
  7240. INT 66 - BitFax Scheduler - CONVERT FILE AND SEND FAX
  7241.     AH = 05h
  7242.     BX:CX -> command block (see below)
  7243.     ???
  7244. Return: ???
  7245. SeeAlso: AH=03h
  7246.  
  7247. Format of command block:
  7248. Offset    Size    Description
  7249.  00h 18 BYTEs    configuration bytes???
  7250.  12h    BYTEs    ASCIZ temporary file name to place converted fax
  7251.  52h    BYTEs    ASCIZ directory containing BitFax executables
  7252.  92h    BYTEs    ASCIZ telephone number
  7253.  C2h    BYTE    00h don't send cover page
  7254.         01h send cover page
  7255.  C3h 15 BYTEs    configuration bytes???
  7256.  E2h    BYTEs    ASCIZ path of BITFAX.TRA file (containing additional
  7257.         configuration information???)
  7258. 122h    BYTEs    configuration bytes???
  7259. 12Ch    BYTE    00h don't send cover page
  7260.         01h send cover page
  7261. 12Dh  7 BYTEs    configuration bytes???
  7262. 134h    BYTEs    ASCIZ path of file to send
  7263. 174h    BYTEs    more configuration bytes???
  7264.     ???
  7265. ----------6606-------------------------------
  7266. INT 66 - BitFax Scheduler - SET MODE???
  7267.     AH = 06h
  7268. Return: DX = BitSched version??? (same as AH=04h)
  7269. SeeAlso: AH=04h
  7270. ----------660688-----------------------------
  7271. INT 66 - John W. Ratcliff (The IBM Digitized Sound Package)
  7272.     AX = 0688h
  7273.     ???
  7274. Return: ???
  7275. SeeAlso: AX=0689h
  7276. ----------660689-----------------------------
  7277. INT 66 - John W. Ratcliff (The IBM Digitized Sound Package)
  7278.     AX = 0689h
  7279.     ???
  7280. Return: ???
  7281. SeeAlso: AX=0688h
  7282. ----------663345-----------------------------
  7283. INT 66 - BitFax Scheduler - REMOVE TSR FROM MEMORY
  7284.     AX = 3345h
  7285. Return: AX = FFFFh error removing TSR
  7286. Note:    the installation check consists of checking for the signature
  7287.       "BitFax Scheduler" beginning two bytes past the interrupt handler
  7288. SeeAlso: AH=04h,INT 2F/AH=2Ah,INT 2F/AX=CB00h
  7289. ----------66FFFBBXFFFB-----------------------
  7290. INT 66 - MicroHelp Stay-Res Plus - ???
  7291.     AX = FFFBh
  7292.     BX = FFFBh
  7293.     ???
  7294. Return: ???
  7295. SeeAlso: AX=FFFEh,INT 2D"AMIS"
  7296. ----------66FFFEBXFFFE-----------------------
  7297. INT 66 - MicroHelp Stay-Res/Stay-Res Plus - UNINSTALL
  7298.     AX = FFFEh
  7299.     BX = FFFEh
  7300. Return: only if unsuccessful
  7301. Notes:    installation check is for the interrupt handler to begin with the bytes
  7302.       FBh 9Ch or 9Ch FAh, and the program name (not case-sensitive) to
  7303.       appear at offset 0005h (older versions) or the offset returned by
  7304.       AX=FFFFh/BX=FFF0h in the interrupt handler segment.
  7305.     Programs which use Stay-Res include ThesPlus (program name "THESPLUS")
  7306.       and Personal Calendar (program name "CAL") by Paul Mun~oz-Colman.
  7307. SeeAlso: AX=FFFBh,AX=FFFFh,INT 2D"AMIS"
  7308. ----------66FFFFBXFFF0-----------------------
  7309. INT 66 - MicroHelp Stay-Res Plus - FIND PROGRAM NAME
  7310.     AX = FFFFh
  7311.     BX = FFF0h
  7312. Return: DI = offset of program name in interrupt handler segment
  7313. SeeAlso: AX=FFFBh,AX=FFFEh,INT 2D"AMIS"
  7314. ----------67---------------------------------
  7315. INT 67 - Adaptec controllers - DRIVE 1 DATA
  7316. Note:    this vector stores the last four bytes of the parameter table for
  7317.       hard disk 1
  7318. SeeAlso: INT 64"Adaptec",INT 65"Adaptec",INT 66"Adaptec"
  7319. ----------67---------------------------------
  7320. INT 67 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
  7321. SeeAlso: INT 64"Pdisk",INT 66"Pdisk"
  7322. ----------67---------------------------------
  7323. INT 67 - Sangoma CCPOP 3270 resident module
  7324. SeeAlso: INT 61"Sangoma",INT 68"Sangoma"
  7325. ----------67---------------------------------
  7326. INT 67 - CUCKOO.COM - INSTALLATION CHECK
  7327. Notes:    this is not a vector; when loaded for the first time, CUCKOO.COM uses
  7328.       the last unused (0000h:0000h) vector in the range 60h-67h to store
  7329.       the signature value 434Ch:4F4Bh ('CLOK')
  7330.     CUCKOO is a resident on-screen clock with optional hourly chime or
  7331.       cuckoo by an unknown author with revisions by Thomas A. Lundin
  7332. ----------6700-------------------------------
  7333. INT 67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE AND WAIT
  7334.     AH = 00h
  7335.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  7336. Return: AL = status
  7337.         00h successful
  7338.         01h invalid function
  7339.         02h semaphore already locked
  7340.         03h unable to lock semaphore
  7341.         04h semaphore space exhausted
  7342.     AH = semaphore owner if status=02h
  7343. SeeAlso: AH=01h,AH=02h"PC-NET",INT 7F/AH=00h
  7344. ----------6701-------------------------------
  7345. INT 67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE
  7346.     AH = 01h
  7347.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  7348. Return: AL = status (see AH=00h)
  7349.     AH = semaphore owner if status=02h
  7350. SeeAlso: AH=00h,AH=02h"PC-NET",INT 7F/AH=01h"Alloy"
  7351. ----------6702-------------------------------
  7352. INT 67 - PC-NET, Alloy NTNX - UNLOCK SEMAPHORE
  7353.     AH = 02h
  7354.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  7355. Return: AL = status (see AH=00h)
  7356.     AH = semaphore owner if status=02h
  7357. SeeAlso: AH=00h,AH=01h"PC-NET",INT 7F/AH=02h
  7358. ----------673F--CX5145-----------------------
  7359. INT 67 U - QEMM-386 v4.23+ - INSTALLATION CHECK
  7360.     AH = 3Fh
  7361.     CX = 5145h ("QE")
  7362.     DX = 4D4Dh ("MM")
  7363. Return: AH = 00h if installed
  7364.         ES:DI -> QEMM API entry point
  7365. Notes:    if no other program has hooked INT 67, an alternate installation
  7366.       check is to test for the string
  7367.       "QUARTERDECK EXPANDED MEMORY MANAGER 386" at offset 14h in the INT 67
  7368.       handler's segment; the word at offset 12h contains the offset in
  7369.       the handler's segment of the API entry point
  7370.     MICEMM (Micronics Expanded Memory Manager) versions 2.0C and 4D support
  7371.       the alternate QEMM installation check and entry point functions 00h,
  7372.       02h, and 03h; version 4D only provides the signature string if the
  7373.       commandline argument "DV" is provided
  7374.     386MAX v6.01 responds to this call, but DESQview 2.42 does not
  7375.       recognize the returned entry point as providing QEMM's capabilities
  7376.       because a) only functions 0Ch (different from QEMM 0Ch) and
  7377.               1000h-1009h are supported,
  7378.             b) status is returned as for EMS functions, not QEMM funcs
  7379.           c) the protected-mode entry point returned by function 1000h
  7380.               only supports functions    0Ch, 1004h, 1005h, and 100Ah
  7381.     the string check mentioned above is not supported by 386MAX
  7382. SeeAlso: AH=DDh,AX=5BF0h,AX=FFA5h,INT 15/AX=11DEh,INT 21/AX=4402h"QEMM"
  7383. SeeAlso: INT 21/AX=4402h"386MAX",INT 2F/AX=D201h/BX=5145h
  7384.  
  7385. Call QEMM entry point with:
  7386.     AH = 00h get QEMM state
  7387.         Return: CF clear
  7388.             AL = QEMM state
  7389.                 bit 0 set if QEMM turned OFF
  7390.                 bit 1 set if in "Auto" mode
  7391.     AH = 01h set QEMM state
  7392.         AL = new state
  7393.             bit 0 set: place QEMM in OFF state
  7394.         Return: CF clear if successful
  7395.             CF set on error
  7396.     AH = 02h get ???
  7397.         Return: CF clear
  7398.             AX = segment of ??? data structure
  7399.             Data Structure
  7400.             Offset    Size    Description
  7401.              00h    DWORD    page table entry for ???
  7402.                  ???
  7403.     AH = 03h get QEMM version
  7404.         Return: CF clear
  7405.             AX = BX = version in BCD
  7406.         Notes:    the official docs only state that the version is
  7407.               returned in BX
  7408.             MICEMM returns AX=0001h, BX unchanged
  7409.     AH = 04h allocate 4K page and set AUTO/ON mode
  7410.         Return: CF clear if successful
  7411.                 DX = page number of a 4K page
  7412.             CF set if unable to allocate page
  7413.         Note:    QEMM mode unchanged if not AUTO/OFF
  7414.     AH = 05h free 4K page and turn QEMM off
  7415.         DX = page number returned by function 04h
  7416.         Return: CF clear
  7417.         Note:    QEMM mode unchanged if not AUTO/ON
  7418.     AH = 06h make new mapping context???
  7419.         DX = page number of 4K page to hold page table
  7420.         Return: CF clear
  7421.         Note:    copies page table into given page and then sets ???
  7422.               page table entry to point at copy
  7423.     AH = 07h get mapping context
  7424.         Return: CF clear
  7425.             DX = page number of page table for current mapping
  7426.                 context
  7427.     AH = 08h set mapping context???
  7428.         DX = linear page number of page table
  7429.         Return: CF clear
  7430.     AH = 09h get linear page number for page table entry
  7431.         CX = page table index
  7432.         Return: CF clear
  7433.             DX = linear page number
  7434.     AH = 0Ah set linear page number for page table entry
  7435.         CX = page table index
  7436.         DX = linear page number
  7437.         Return: CF clear
  7438.     AH = 0Bh map 4K pages
  7439.         BX = number of pages
  7440.         CX = first page number (must be 0100h to allocate HMA)
  7441.         DX = EMS handle (memory belonging to EMS handle will be mapped
  7442.             into the address space beginning with the first page
  7443.             allocated to the handle)
  7444.         Return: AH = 00h
  7445.     AH = 0Ch get available memory
  7446.         Return: CF clear
  7447.             BX = 0001h
  7448.             CX = total 4K pages???
  7449.             DX = number of 4K pages free
  7450.     AH = 0Dh ??? (related to callbacks)
  7451.         AL = 00h/01h/02h ???
  7452.         Return: CF clear
  7453.     AH = 0Eh set ??? callbacks
  7454.         DS:BX -> FAR routine for ???
  7455.         ES:DX -> FAR routine for ???
  7456.         Return: CF clear
  7457.         Note:    DS:BX callback should return BX=???; ES:DX is called
  7458.               with BX=???, and should set the ??? from which the
  7459.               other handler read the value of BX.  BH and BL
  7460.               appear to be separate values.
  7461.     AH = 0Fh unmap 4K pages
  7462.         CX = first page number
  7463.         DX = number of pages
  7464.         Return: CF clear
  7465.             AL = 00h/01h if ???
  7466.         Note:    if CX=0100h and DX=0010h, the HMA is remapped to
  7467.               simulate a disabled A20
  7468.     AX = 1000h get protected-mode interface
  7469.         DS:SI -> 16-byte buffer for two GDT entries
  7470.         ES:DI -> buffer for 4K page table
  7471.         Return: CF clear
  7472.             EAX = offset of protected-mode API entry point
  7473.             DS:SI buffer filled with two GDT descriptors
  7474.                 first is QEMM code segment, second is data???
  7475.             ES:DI buffer filled with 4K page table
  7476.             DI points to first unused page table entry
  7477.         SeeAlso: INT 67/AX=DE01h
  7478.     AX = 1001h get CPU debug registers
  7479.         ES:DI -> buffer for debug registers (8 DWORDs)
  7480.         Return: CF clear
  7481.             BL = INT01 handling (see function 1002h)
  7482.             ES:DI buffer filled
  7483.     AX = 1002h set CPU debug registers
  7484.         BL = INT01 handling
  7485.             00h  reflect all debugging exceptions as V86-mode INT 01's
  7486.             else convert debugging exceptions other than single-step
  7487.                    into V86-mode INT 03's, single-step to INT 01's
  7488.         ES:DI -> buffer containing debug registers (8 DWORDs)
  7489.         Return: CF clear
  7490.         Notes:    identical to INT 67/AX=DE09h if BL=01h
  7491.             the INT01 handling flag is set to 01h by the general-
  7492.               protection violation handler for certain privileged
  7493.               instructions
  7494.     AX = 1003h get machine status word CR0
  7495.         Return: CF clear
  7496.             EAX = contents of CR0
  7497.         SeeAlso: INT 67/AX=DE07h
  7498.     AX = 1004h allocate a 4K page
  7499.         Return: CF clear if successful
  7500.                 EDX = linear address of allocated page
  7501.             CF set on error
  7502.         SeeAlso: INT 67/AX=DE04h
  7503.     AX = 1005h free 4K page
  7504.         EDX = linear address of page to free
  7505.         Return: CF clear
  7506.         SeeAlso: INT 67/AX=DE05h
  7507.     AX = 1006h NOP
  7508.         Return: CF set
  7509.     AX = 1007h get maximum physical memory address
  7510.         Return: CF clear
  7511.             EDX = physical address of highest 4K memory page
  7512.         SeeAlso: INT 67/AX=DE02h
  7513.     AX = 1008h get physical address of page in first megabyte
  7514.         CX = page number (linear address shifted right 12 bits)
  7515.         Return: CF clear
  7516.             EDX = linear address of page
  7517.         SeeAlso: function 1F00h
  7518.     AX = 1009h switch to protected mode
  7519.         ESI = linear address in first megabyte of system reg values
  7520.             (see INT 67/AX=DE0Ch)
  7521.         interrupts disabled
  7522.         Return: interrupts disabled
  7523.             GDTR, IDTR, LDTR, TR loaded
  7524.             SS:ESP must have at least 16 bytes space, and the
  7525.                 entry point is required to set up a new stack
  7526.                 before enabling interrupts
  7527.             EAX, ESI, DS, ES, FS, GS destroyed
  7528.     AX = 100Ah switch back to virtual-86 mode
  7529.         DS = selector for data segment from function 1000h
  7530.         SS:ESP in first megabyte of linear memory
  7531.         interrupts disabled
  7532.         STACK:    QWORD  return address from FAR call to 32-bit segment
  7533.             DWORD  EIP
  7534.             DWORD  CS
  7535.             DWORD  reserved for EFLAGS
  7536.             DWORD  ESP
  7537.             DWORD  SS
  7538.             DWORD  ES
  7539.             DWORD  DS
  7540.             DWORD  FS
  7541.             DWORD  GS
  7542.         will switch to virtual86 mode with interrupts disabled, all
  7543.           segment registers loaded, and EAX destroyed.
  7544.     AH = 11h get memory type map
  7545.         AL = zero/nonzero ??? (set by QEMM.COM but apparently ignored
  7546.             by QEMM 6.00)
  7547.         ES:DI -> 256-byte buffer for memory types
  7548.         Return: CF clear
  7549.             BL = ???
  7550.             ES:DI buffer filled
  7551.         Note:    each byte of the buffer corresponds to a 4K page, and
  7552.               contains the type of that page: 00h = mappable,
  7553.               02h = mapped ROM, 03h = high RAM, 04h = excluded,
  7554.               05h = video, 06h = ROM, 07h = adapter ROM,
  7555.               08h = split ROM, 09h = page frame, 0Ah = RAMmable,
  7556.               0Bh = conventional
  7557.     AH = 12h get HIRAM chain
  7558.         Return: CF clear
  7559.             BX = segment of first MCB in high memory
  7560.                 0000h if no high memory
  7561.     AX = 1300h VIDRAMEGA???
  7562.         BL = 00h copy ???
  7563.              nonzero copy ??? (reverse)
  7564.         Return: CF clear
  7565.             AL = 00h if all pages clean
  7566.                = 01h if any page dirty
  7567.     AX = 1301h check if ???
  7568.         DX:DI = start address of range to check ???
  7569.         CX = length of range
  7570.         Return: CF clear
  7571.             CX = ??? (0000h or 1000h)
  7572.     AX = 1302h ???
  7573.         BL = ???
  7574.         BH = ???
  7575.         CX = ???
  7576.         SI = offset of ???
  7577.         DI = offset of ???
  7578.         ???
  7579.         Return: CF clear
  7580.             ???
  7581.         Note:    disables certain interrupts at the two 8259 PICs during
  7582.               execution; also modifies CRT controller during
  7583.               execution under certain circumstances
  7584.     AX = 1303h ??? EMS allocation
  7585.         BX = number of pages of EMS to allocate
  7586.         ???
  7587.         Return: CF clear if successful
  7588.             CF set on error
  7589.             ???
  7590.     AX = 1304h EMS deallocation
  7591.         DX = EMS handle
  7592.         Return: CF clear
  7593.     AX = 1305h ???
  7594.         CX = ???
  7595.         Return: CF clear
  7596.         Note:    disables certain interrupts at the two 8259 PICs during
  7597.               execution (see AX=130Ch)
  7598.     AX = 1306h set DESQview critical section counter address
  7599.         ES:BX -> WORD DESQview critical section counter or 0000h:0000h
  7600.         Return: CF clear
  7601.         Note:    also sets pointer in low-memory part of QEMM to current
  7602.               value of INT 15 if ES:BX not 0000h:0000h
  7603.     AX = 1307h ???
  7604.         Return: CF clear
  7605.         Note:    disables certain interrupts at the two 8259 PICs during
  7606.               execution (see AX=130Ch)
  7607.     AX = 1308h ???
  7608.         BL = ??? (zero/nonzero)
  7609.         Return: CF clear
  7610.     AX = 1309h Hercules mode-change support
  7611.         ES:BX -> new address for Hercules mode-change callback
  7612.         Return: CF clear
  7613.         Note:    the callback function is called whenever the CRTC mode
  7614.               register is written, with AL set to the value written
  7615.     AX = 130Ah virtualize EGA/VGA I/O ports 03C8h/03C9h???
  7616.         CX:DX -> buffer for storing CRTC register contents???
  7617.             or 0000h:0000h to disable
  7618.         Return: CF clear
  7619.     AX = 130Bh ???
  7620.         BL = ???
  7621.         Return: CF clear
  7622.             ???
  7623.     AX = 130Ch set interrupts to mask
  7624.         BX = interrupts to mask out during AX=1302h,AX=1307h,AX=1308h,
  7625.             AX=130Dh,AX=1310h (BL = master PIC, BH = slave PIC)
  7626.         Return: CF clear
  7627.     AX = 130Dh ???
  7628.         ???
  7629.         Return: CF clear
  7630.         Note:    disables certain interrupts at the two 8259 PICs during
  7631.               execution (see AX=130Ch)
  7632.     AX = 130Eh ??? (modifies CRT controller setup)
  7633.         ???
  7634.         Return: CF clear
  7635.     AX = 130Fh reset ???
  7636.         Return: CF clear
  7637.     AX = 1310h ???
  7638.         ???
  7639.         Return: CF clear
  7640.         Note:    disables certain interrupts at the two 8259 PICs during
  7641.               execution (see AX=130Ch)
  7642.     AX = 1311h set ???
  7643.         BL = ???
  7644.         Return: CF clear
  7645.     AX = 1312h (v6.02) NOP???
  7646.         Note:    called by DV 2.42, but appears to be a NOP in QEMM 6.02
  7647.     AX = 1400h ???
  7648.         ES:DI -> ??? data structure (at least 24 bytes)
  7649.         BL = ???
  7650.         Return: AX = ???
  7651.         Data structure
  7652.         Offset    Size    Description
  7653.          00h      WORD    ???
  7654.          02h    DWORD    far pointer to ???
  7655.          06h    DWORD    far pointer to ??? pointer array (see below)
  7656.          0Ah    DWORD    far pointer to ???
  7657.          0Eh    DWORD    ???
  7658.          12h    WORD    segment of ???
  7659.          14h    DWORD    far pointer to ???
  7660.         Pointer array
  7661.         Offset    Size    Description
  7662.          00h    WORD    number of pointers to follow
  7663.          02h  N DWORDs    far pointers to ???
  7664.         Note: QEMM converts the pointers into linear addresses in place
  7665.     AX = 1401h ???
  7666.         Return: CF clear
  7667.             ???
  7668.     AX = 1402h ???
  7669.         BL = function
  7670.             00h NOP
  7671.             01h ???
  7672.             02h ???
  7673.             other ???
  7674.         ES:DI -> ???
  7675.         Return: CF clear
  7676.             ???
  7677.         Data structure
  7678.         Offset    Size    Description
  7679.          00h    WORD    segment of ??? (X, word at X:0136h set to X)
  7680.          02h    WORD    segment of ??? (word at X:0124h set to this)
  7681.          04h    WORD    number of paragraphs of ???
  7682.          06h  3 WORDs    ??? (copied to X:0000h)
  7683.          0Ch      WORD    ???
  7684.     AX = 1403h add ??? to list and ??? (execute func 1406h)
  7685.         ES:DI -> ??? structure added to end of ??? list
  7686.             (at least 31 bytes, DWORD at offset 06h used for
  7687.              storing pointer to next struc, WORD at offset 00h
  7688.              seems to be a key or index)
  7689.         Return: CF clear
  7690.     AX = 1404h NOP
  7691.     AX = 1405h remove ??? from ??? list
  7692.         BX = key???
  7693.         Return: CF clear
  7694.     AX = 1406h ???
  7695.         ???
  7696.         Return: CF clear
  7697.             ???
  7698.     AX = 1407h ???
  7699.         ???
  7700.         Return: CF clear
  7701.             ???
  7702.     AX = 1408h ???
  7703.         ???
  7704.         Return: CF clear
  7705.             ???
  7706.     AX = 1409h ???
  7707.         ???
  7708.         Return: CF clear
  7709.             ???
  7710.     AX = 140Ah ???
  7711.         BX = ???
  7712.         Return: CF clear
  7713.             ???
  7714.     AX = 140Bh ???
  7715.         BX = ???
  7716.         Return: CF clear
  7717.             SI = segment of 256-byte buffer???
  7718.     AH = 15h ???
  7719.         ES:BX -> ??? or 0000h:0000h
  7720.         Return: CF clear
  7721.      ---QEMM v5.00+ ---
  7722.     AX = 1600h get memory access status
  7723.         ES:DI -> 256-byte buffer
  7724.         Return: ES:DI buffer filled
  7725.         Note:    each byte of the buffer indicates the status of a 4K
  7726.               page (bit 0 set if read, bit 1 set if written)
  7727.     AX = 1601h set memory access status
  7728.         ES:DI -> 256-byte buffer containing access statuses (see above)
  7729.     AH = 17h get memory usage statistics
  7730.         ES:DI -> 81-byte buffer for memory statistics (see below)
  7731.         Return: CF clear
  7732.      ---QEMM v5.11+ ---
  7733.     AH = 18h check whether conventional memory mapped into address range
  7734.         ES:BX = starting address
  7735.         CX = number of 4K pages
  7736.         Return: CF clear
  7737.             AL = 00h one or more pages is remapped
  7738.                  01h all pages in range are conventional memory
  7739.                      (physical address == virtual address)
  7740.     AH = 19h NOP
  7741.         Return: CF set
  7742.     AH = 1Ah I/O port access
  7743.         AL = subfunction
  7744.             00h get byte from I/O port
  7745.             Return: BL = port value
  7746.             01h send byte to I/O port
  7747.             BL = value to send
  7748.             02h send byte to I/O port, get byte from following port
  7749.             BH = value to send
  7750.             Return: BL = value read
  7751.             03h send bytes to two consecutive I/O ports
  7752.             BH = value for first I/O port (DX)
  7753.             BL = value for second I/O port (DX+1)
  7754.         DX = port number
  7755.         Return: CF clear
  7756.     AH = 1Bh MS Windows 3 support
  7757.         AL = subfunction
  7758.             00h get ???
  7759.             ES:DI -> buffer for ??? data structure
  7760.             Return: CF set on error
  7761.                 CF clear if successful
  7762.             Data structure:
  7763.             Offset    Size    Description
  7764.              00h    DWORD    pointer to ???
  7765.              04h    BYTE    ??? (v6.00 sets to 01h)
  7766.              05h    BYTE    ??? (v6.00 sets to 00h or 0Bh)
  7767.             SeeAlso: INT 21/AX=4402h"QEMM"
  7768.             01h ???
  7769.             Return: CF set on error
  7770.                 CF clear if successful
  7771.             02h ???
  7772.             Return: CF set on error
  7773.                 CF clear if successful
  7774.             03h MS Windows initializing
  7775.                 CX = segment from which Windows init broadcast made???
  7776.             DL = Windows startup flags???
  7777.             DI = Windows version number (major in upper byte)
  7778.             Return: ???
  7779.             SeeAlso: INT 2F/AX=1605h
  7780.             04h MS Windows terminating
  7781.             Return: CF clear
  7782.             05h determine whether program is driver???
  7783.             DS:DX -> ASCIZ filename
  7784.             Return: CF clear
  7785.                 AL = 01h if string ends in ".DRV"
  7786.                    = FFh if string ends in "GDI.EXE"
  7787.                    = 00h otherwise
  7788.             06h ???
  7789.             CX = length of data pointed at by DS:DX
  7790.             DS:DX -> ???
  7791.             Return: CF clear
  7792.             07h BUG: QEMM 6.00-6.03 accept this and branch randomly
  7793.             else Return: CF set
  7794.     AH = 1Ch protected-mode hardware interrupt handlers ???
  7795.         AL = subfunction
  7796.             00h restore??? IRQ0-7 handlers
  7797.             01h set??? IRQ0-7 handlers
  7798.             ES:DI -> 8 DWORDs containing ???
  7799.             02h restore??? IRQ8-15 handlers
  7800.             03h set??? IRQ8-15 handlers
  7801.             ES:DI -> 8 DWORDs containing ???
  7802.         BUG: although the jump table only contains four entries,
  7803.             QEMM 6.00 will attempt to use it for any value of
  7804.             AL between 00h and 2Ah, thus branching unpredictably
  7805.             for AL=04h-2Ah
  7806.      ---QEMM v6.00+ ---
  7807.     AH = 1Dh Stealth interrupts
  7808.         AL = subfunction
  7809.             00h switch to pre-Stealth interrupt vector table
  7810.                 Note:    also switches VGA Save table pointer
  7811.                   (0040h:00A8h)    and overwrites the vectors
  7812.                   currently assigned for use by the two
  7813.                   interrupt controllers (see INT 67/AX=DE0Ah)
  7814.                   with the vectors for INT 08-0F and 70-77 (to
  7815.                   avoid crashing the system).
  7816.             01h restore user interrupt vector table
  7817.             Notes:    interrupts should be disabled around the
  7818.                   AX=1D00h and AX=1D01h calls because QEMM does
  7819.                   not modify the memory maps to map in ROM, so
  7820.                   an interrupt could be disastrous
  7821.                 clears any pending IRQ7 at end of function
  7822.             else
  7823.             Return: CF set
  7824.     AH = 1Eh Stealth information
  7825.         AL = subfunction
  7826.             00h get Stealth configuration
  7827.             Return: BL = flags
  7828.                     bit 0: conventional memory sorted
  7829.                     bit 1: conventional memory filled
  7830.                     bit 2: ???
  7831.                     bit 3: ???
  7832.                     bit 4: expanded memory is in use
  7833.                     bit 5: ???
  7834.                 BH = ??? (always 00h for v6.00)
  7835.                 CL = stealth type (00h none,46h Frame,4Dh Map)
  7836.                 CH = ??? (zero/nonzero important)
  7837.                 DX = ??? (always 0000h for v6.00)
  7838.                 SI = ??? (always 0000h for v6.00)
  7839.                 DI = ??? (always 0000h for v6.00)
  7840.             01h get number of Stealth'ed ROMs
  7841.             Return: CF clear
  7842.                 BX = number of Stealth'ed ROMs
  7843.             02h get Stealth'ed ROM info
  7844.                 ES:DI -> buffer for Stealth ROM info (see below)
  7845.             Return: CF clear
  7846.                 BX = number of Stealth'ed ROMs
  7847.                 ES:DI buffer filled
  7848.             else
  7849.             Return: CF set
  7850.     AH = 1Fh page table manipulation
  7851.         AL = subfunction
  7852.             00h get page table entry
  7853.             CX = page number
  7854.             Return: EDX = page table entry
  7855.                 CF clear
  7856.             01h set page table entry
  7857.             CX = page number
  7858.             EDX = page table entry
  7859.             Return: CF clear
  7860.             SeeAlso: function 1008h
  7861.             else
  7862.             Return: CF set
  7863.     AH = 20h asynchronous disk access support???
  7864.         AL = subfunction
  7865.             00h get ???
  7866.             Return: CF clear
  7867.                 BL = flags
  7868.                     bit 7: ??? (set if Stealth:F or :M active)
  7869.                     bit 0: ???
  7870.             01h set ???
  7871.             BL = ??? (bit 0 only)
  7872.             Return: CF clear
  7873.             else
  7874.             Return: CF set
  7875.     AH = 21h Stealth support
  7876.         AL = subfunction
  7877.             00h copy data from Stealthed address space
  7878.             DS:SI -> start address of hidden memory to copy
  7879.             ES:DI -> buffer for copied data
  7880.             ECX = number of bytes to copy
  7881.             Return: CF clear if successful
  7882.                 CF set on error (DS:SI < C000h:0000h or
  7883.                          DS:SI + ECX > 1M)
  7884.             else
  7885.             Return: CF set
  7886.     ---QEMM v6.03 only---
  7887.     AH = 22h DESQview/X support
  7888.         AL = subfunction
  7889.             00h get ???
  7890.                 Return: CF clear
  7891.                 ES:DI -> ???
  7892.             01h set ???
  7893.                 ES:DI -> ??? or 0000h:0000h
  7894.             Return: CF clear if successful
  7895.                 CF set on error
  7896.     other
  7897.         Return: CF set
  7898.  
  7899. Format of QEMM 6.0 memory statistics:
  7900. Offset    Size    Description
  7901.  00h    BYTE    01h if Shadow RAM found, 00h otherwise
  7902.  01h    DWORD    initial conventional memory in bytes
  7903.  05h    DWORD    initial extended memory in bytes
  7904.  09h    DWORD    initial expanded memory in bytes
  7905.  0Dh    DWORD    initial "top" or "shadow" memory in bytes
  7906.  11h    DWORD    Unavailable conventional memory in bytes
  7907.  15h    DWORD    Unavailable extended memory in bytes
  7908.  19h    DWORD    Unavailable expanded memory in bytes
  7909.  1Dh    DWORD    Unavailable "top" or "shadow" memory in bytes
  7910.         Add to offset 49h for Total unavailable top/shadow.
  7911.  21h    DWORD    QEMM code size in bytes
  7912.  25h    DWORD    QEMM data size in bytes
  7913.  29h    DWORD    bytes used for TASKS=
  7914.  2Dh    DWORD    DMA buffer size
  7915.  31h    DWORD    bytes used for MAPS=
  7916.  35h    DWORD    bytes of high RAM
  7917.  39h    DWORD    bytes used by mapped ROMs
  7918.  3Dh    DWORD    bytes of conventional memory provided by QEMM
  7919.  41h    DWORD    bytes of extended memory NOT converted by QEMM (EXT=xxx)
  7920.  45h    DWORD    bytes of EMS/XMS pool memory provided by QEMM
  7921.  49h    DWORD    Unavailable "top" or "shadow" memory in bytes
  7922.         Add to offset 1Dh for Total unavailable top/shadow.
  7923.  4Dh    DWORD    conventional memory overhead in bytes
  7924.          (set to 0 by QEMM.COM prior to call)
  7925.  
  7926. Format of Stealth ROM info [array]:
  7927. Offset    Size    Description
  7928.  00h    WORD    starting segment of ROM
  7929.  02h    WORD    length of ROM in paragraphs
  7930. ----------6740-------------------------------
  7931. INT 67 - LIM EMS - GET MANAGER STATUS
  7932.     AH = 40h
  7933. Return: AH = status
  7934.         00h successful
  7935.         80h internal error
  7936.         81h hardware malfunction
  7937.         84h undefined function requested by application
  7938. Note:    this call can be used only after establishing that the EMS driver is in
  7939.       fact present
  7940. SeeAlso: AH=3Fh,AX=FFA5h
  7941. ----------6741-------------------------------
  7942. INT 67 - LIM EMS - GET PAGE FRAME SEGMENT
  7943.     AH = 41h
  7944. Return: AH = 00h function successful
  7945.         BX = segment of page frame
  7946.     AH = error code (see AH=40h)
  7947. SeeAlso: AH=58h,AH=68h
  7948. ----------6742-------------------------------
  7949. INT 67 - LIM EMS - GET NUMBER OF PAGES
  7950.     AH = 42h
  7951. Return: AH = 00h function successful
  7952.         BX = number of unallocated pages
  7953.         DX = total number of pages
  7954.     AH = error code (see AH=40h)
  7955. SeeAlso: INT 2F/AX=2702h
  7956. ----------6743-------------------------------
  7957. INT 67 - LIM EMS - GET HANDLE AND ALLOCATE MEMORY
  7958.     AH = 43h
  7959.     BX = number of logical pages to allocate
  7960. Return: AH = status
  7961.         00h function successful
  7962.         DX = handle
  7963.         80h internal error
  7964.         81h hardware malfunction
  7965.         84h undefined function requested
  7966.         85h no more handles available
  7967.         87h more pages requested than physically exist
  7968.         88h more pages requested than currently available
  7969.         89h zero pages requested
  7970. SeeAlso: AH=45h
  7971. ----------6744-------------------------------
  7972. INT 67 - LIM EMS - MAP MEMORY
  7973.     AH = 44h
  7974.     AL = physical page number (0-3)
  7975.     BX = logical page number
  7976.     DX = handle
  7977. Return: AH = status
  7978.         00h function successful
  7979.         80h internal error
  7980.         81h hardware malfunction
  7981.         83h invalid handle
  7982.         84h undefined function requested
  7983.         8Ah invalid logical page number
  7984.         8Bh illegal physical-page number
  7985. SeeAlso: AH=69h
  7986. ----------6745-------------------------------
  7987. INT 67 - LIM EMS - RELEASE HANDLE AND MEMORY
  7988.     AH = 45h
  7989.     DX = EMM handle
  7990. Return: AH = status
  7991.         00h successful
  7992.         80h internal error
  7993.         81h hardware malfunction
  7994.         83h invalid handle
  7995.         84h undefined function requested
  7996.         86h error in save or restore of mapping context
  7997. SeeAlso: AH=43h
  7998. ----------6746-------------------------------
  7999. INT 67 - LIM EMS - GET EMM VERSION
  8000.     AH = 46h
  8001. Return: AH = status
  8002.         00h successful
  8003.         AL = EMM version number
  8004.         80h internal error
  8005.         81h hardware malfunction
  8006.         84h undefined function requested
  8007. ----------6747-------------------------------
  8008. INT 67 - LIM EMS - SAVE MAPPING CONTEXT
  8009.     AH = 47h
  8010.     DX = handle
  8011. Return: AH = status
  8012.         00h successful
  8013.         80h internal error
  8014.         81h hardware malfunction
  8015.         83h invalid handle
  8016.         84h undefined function requested
  8017.         8Ch page-mapping hardware state save area is full
  8018.         8Dh save of mapping context failed
  8019. SeeAlso: AH=48h
  8020. ----------6748-------------------------------
  8021. INT 67 - LIM EMS - RESTORE MAPPING CONTEXT
  8022.     AH = 48h
  8023.     DX = handle
  8024. Return: AH = status
  8025.         00h successful
  8026.         80h internal error
  8027.         81h hardware malfunction
  8028.         83h invalid handle
  8029.         84h undefined function requested
  8030.         8Eh restore of mapping context failed
  8031. SeeAlso: AH=47h
  8032. ----------6749-------------------------------
  8033. INT 67 - LIM EMS - reserved - GET I/O PORT ADDRESSES
  8034.     AH = 49h
  8035. Note:    defined in EMS 3.0, but undocumented in EMS 3.2
  8036. ----------674A-------------------------------
  8037. INT 67 - LIM EMS - reserved - GET TRANSLATION ARRAY
  8038.     AH = 4Ah
  8039. Note:    defined in EMS 3.0, but undocumented in EMS 3.2
  8040. ----------674B-------------------------------
  8041. INT 67 - LIM EMS - GET NUMBER OF EMM HANDLES
  8042.     AH = 4Bh
  8043. Return: AH = status
  8044.         00h successful
  8045.         BX = number of EMM handles
  8046.         80h internal error
  8047.         81h hardware malfunction
  8048.         83h invalid handle
  8049.         84h undefined function requested
  8050. ----------674C-------------------------------
  8051. INT 67 - LIM EMS - GET PAGES OWNED BY HANDLE
  8052.     AH = 4Ch
  8053.     DX = EMM handle
  8054. Return: AH = status
  8055.         00h successful
  8056.         BX = number of logical pages
  8057.         80h internal error
  8058.         81h hardware malfunction
  8059.         83h invalid handle
  8060.         84h undefined function requested
  8061. SeeAlso: AH=4Dh
  8062. ----------674D-------------------------------
  8063. INT 67 - LIM EMS - GET PAGES FOR ALL HANDLES
  8064.     AH = 4Dh
  8065.     ES:DI -> array to receive information
  8066. Return: AH = status
  8067.         00h successful
  8068.         BX = number of active EMM handles
  8069.         array filled with 2-word entries, consisting of a handle
  8070.           and the number of pages allocated to that handle
  8071.         80h internal error
  8072.         81h hardware malfunction
  8073.         84h undefined function requested
  8074. SeeAlso: AH=4Ch
  8075. ----------674E-------------------------------
  8076. INT 67 - LIM EMS - GET OR SET PAGE MAP
  8077.     AH = 4Eh
  8078.     AL = 00h if getting mapping registers
  8079.          01h if setting mapping registers
  8080.          02h if getting and setting mapping registers at once
  8081.          03h if getting size of page-mapping array
  8082.     DS:SI -> array holding information (AL=01/02)
  8083.     ES:DI -> array to receive information (AL=00/02)
  8084. Return: AH = status
  8085.         00h successful
  8086.         AL = bytes in page-mapping array (AL=03h only)
  8087.         array pointed to by ES:DI receives mapping info (AL=00h/02h)
  8088.         80h internal error
  8089.         81h hardware malfunction
  8090.         84h undefined function requested
  8091.         8Fh undefined subfunction parameter
  8092.         A3h contents of source array corrupted (EMS 4.0?)
  8093. Note:    this function was designed to be used by multitasking operating systems
  8094.       and should not ordinarily be used by appplication software.
  8095. SeeAlso: AH=4Fh
  8096. ----------674F-------------------------------
  8097. INT 67 - LIM EMS 4.0 - GET/SET PARTIAL PAGE MAP
  8098.     AH = 4Fh
  8099.     AL = subfunction
  8100.         00h get partial page map
  8101.            DS:SI -> structure containing list of segments whose mapping
  8102.             contexts are to be saved
  8103.            ES:DI -> array to receive page map
  8104.         01h set partial page map
  8105.            DS:SI -> structure containing saved partial page map
  8106.         02h get size of partial page map
  8107.            BX = number of mappable segments in the partial map to be saved
  8108. Return: AH = status
  8109.         00h successful
  8110.         80h internal error
  8111.         81h hardware malfunction
  8112.         84h undefined function requested
  8113.         8Bh one of specified segments is not mappable
  8114.         8Fh undefined subfunction parameter
  8115.         A3h contents of partial page map corrupted or count of mappable
  8116.         segments exceeds total number of mappable segments in system
  8117.     AL = size of partial page map for subfunction 02h
  8118. SeeAlso: AH=4Eh
  8119. ----------6750-------------------------------
  8120. INT 67 - LIM EMS 4.0 - MAP/UNMAP MULTIPLE HANDLE PAGES
  8121.     AH = 50h
  8122.     AL = subfunction
  8123.         00h use physical page numbers
  8124.         01h use segment addresses
  8125.     DX = handle
  8126.     CX = number of entries in array
  8127.     DS:SI -> mapping array (see below)
  8128. Return: AH = status
  8129.         00h successful
  8130.         80h internal error
  8131.         81h hardware malfunction
  8132.         83h invalid handle
  8133.         84h undefined function requested
  8134.         8Ah one or more logical pages are invalid
  8135.         8Bh one or more physical pages are invalid
  8136.         8Fh invalid subfunction
  8137. SeeAlso: AH=40h
  8138.  
  8139. Format of mapping array entry:
  8140. Offset    Size    Description
  8141.  00h    WORD    logical page number or FFFFh to unmap physical page
  8142.  02h    WORD    physical page number or segment address
  8143. ----------6751-------------------------------
  8144. INT 67 - LIM EMS 4.0 - REALLOCATE PAGES
  8145.     AH = 51h
  8146.     DX = handle
  8147.     BX = number of pages to be allocated to handle
  8148. Return: BX = actual number of pages allocated to handle
  8149.     AH = status
  8150.         00h successful
  8151.         80h internal error
  8152.         81h hardware malfunction
  8153.         83h invalid handle
  8154.         84h undefined function requested
  8155.         87h more pages requested than present in system
  8156.         88h more pages requested than currently available
  8157. ----------6752-------------------------------
  8158. INT 67 - LIM EMS 4.0 - GET/SET HANDLE ATTRIBUTES
  8159.     AH = 52h
  8160.     AL = subfunction
  8161.         00h get handle attributes
  8162.         Return: AL = attribute
  8163.                 00h handle is volatile
  8164.                 01h handle is nonvolatile
  8165.         01h set handle attributes
  8166.         BL = new attribute (see returned AL)
  8167.         02h get attribute capability
  8168.         Return: AL = attribute capability
  8169.                 00h only volatile handles supported
  8170.                 01h both volatile and non-volatile supported
  8171.     DX = handle
  8172. Return:    AH = status
  8173.         00h successful
  8174.         80h internal error
  8175.         81h hardware malfunction
  8176.         83h invalid handle
  8177.         84h undefined function requested
  8178.         8Fh undefined subfunction
  8179.         90h undefined attribute type
  8180.         91h feature not supported
  8181. SeeAlso: AH=53h
  8182. ----------6753-------------------------------
  8183. INT 67 - LIM EMS 4.0 - GET/SET HANDLE NAME
  8184.     AH = 53h
  8185.     AL = subfunction
  8186.         00h get handle name
  8187.            ES:DI -> 8-byte buffer for handle name
  8188.         01h set handle name
  8189.            DS:SI -> 8-byte handle name
  8190.     DX = handle
  8191. Return: AH = status
  8192.         00h successful
  8193.         80h internal error
  8194.         81h hardware malfunction
  8195.         83h invalid handle
  8196.         84h undefined function requested
  8197.         8Fh undefined subfunction
  8198.         A1h duplicate handle name
  8199. SeeAlso: AH=52h
  8200. ----------6754-------------------------------
  8201. INT 67 - LIM EMS 4.0 - GET HANDLE DIRECTORY
  8202.     AH = 54h
  8203.     AL = subfunction
  8204.         00h get handle directory
  8205.            ES:DI -> buffer for handle directory (see below)
  8206.         01h search for named handle
  8207.            DS:SI -> 8-byte name
  8208.         02h get total number of handles
  8209. Return: AL = number of entries in handle directory (subfunction 00h)
  8210.     DX = value of named handle (subfunction 01h)
  8211.     BX = total number of handles (subfunction 02h)
  8212.     AH = status
  8213.         00h successful
  8214.         80h internal error
  8215.         81h hardware malfunction
  8216.         84h undefined function requested
  8217.         8Fh undefined subfunction
  8218.         A0h no such handle name
  8219.         A1h a handle found had no name
  8220.  
  8221. Format of handle directory entry:
  8222. Offset    Size    Description
  8223.  00h    WORD    handle
  8224.  02h  8 BYTEs    handle's name
  8225. ----------6755-------------------------------
  8226. INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND JUMP
  8227.     AH = 55h
  8228.     AL = subfunction
  8229.         00h physical page numbers provided by caller
  8230.         01h segment addresses provided by caller
  8231.     DX = handle
  8232.     DS:SI -> structure containing map and jump address
  8233. Return: (at target address unless error)
  8234.     AH = status
  8235.         00h successful
  8236.         80h internal error
  8237.         81h hardware failure
  8238.         83h invalid handle
  8239.         84h undefined function requested
  8240.         8Ah invalid logical page number encountered
  8241.         8Bh invalid physical page number encountered
  8242.         8Fh invalid subfunction
  8243. SeeAlso: AH=56h
  8244. ----------6756-------------------------------
  8245. INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND CALL
  8246.     AH = 56h
  8247.     AL = subfunction
  8248.         00h physical page numbers provided by caller
  8249.         DX = handle
  8250.         DS:SI -> structure containing page map and call address
  8251.         01h segment addresses provided by caller
  8252.         DX = handle
  8253.         DS:SI -> structure containing page map and call address
  8254.         02h get page map stack space required
  8255.         Return: BX = stack space required
  8256. Return: (if successful, the target address is called.  Use a RETF to return and
  8257.      restore mapping context)
  8258.     AH = status (see AH=55h)
  8259. SeeAlso: AH=55h
  8260. ----------6757-------------------------------
  8261. INT 67 - LIM EMS 4.0 - MOVE/EXCHANGE MEMORY REGION
  8262.     AH = 57h
  8263.     AL = subfunction
  8264.         00h move memory region
  8265.         01h exchange memory region
  8266.     DS:SI -> structure describing source and destination (see below)
  8267. Return: AH = status
  8268.         00h successful
  8269.         80h internal error
  8270.         81h hardware failure
  8271.         83h invalid handle
  8272.         84h undefined function requested
  8273.         8Ah invalid logical page number encountered
  8274.         8Fh undefined subfunction
  8275.         92h successful, but a portion of the source region has been
  8276.         overwritten
  8277.         93h length of source or destination region exceeds length of region
  8278.         allocated to either source or destination handle
  8279.         94h conventional and expanded memory regions overlap
  8280.         95h offset within logical page exceeds size of logical page
  8281.         96h region length exceeds 1M
  8282.         97h source and destination EMS regions have same handle and overlap
  8283.         98h memory source or destination type undefined
  8284.         A2h attempted to wrap around 1M conventional address space
  8285. Note:    source and destination may overlap for a move, in which case the copy
  8286.       direction is chosen such that the destination receives an intact copy
  8287.       of the source region
  8288.  
  8289. Format of EMS copy data:
  8290. Offset    Size    Description
  8291.  00h    DWORD    region length in bytes
  8292.  04h    BYTE    source memory type
  8293.         00h conventional
  8294.         01h expanded
  8295.  05h    WORD    source handle (0000h if conventional memory)
  8296.  07h    WORD    source initial offset (within page if EMS, segment if convent)
  8297.  09h    WORD    source initial segment (conv mem) or logical page (EMS)
  8298.  0Bh    BYTE    destination memory type
  8299.         00h conventional
  8300.         01h expanded
  8301.  0Ch    WORD    destination handle
  8302.  0Eh    WORD    destination initial offset
  8303.  10h    WORD    destination initial segment or page
  8304. ----------6758-------------------------------
  8305. INT 67 - LIM EMS 4.0 - GET MAPPABLE PHYSICAL ADDRESS ARRAY
  8306.     AH = 58h
  8307.     AL = subfunction
  8308.         00h get mappable physical address array
  8309.         ES:DI -> buffer to be filled with array
  8310.         01h get number of entries in m.p.a. array
  8311. Return: CX = number of entries in array
  8312.     AH = status
  8313.         00h successful
  8314.         80h internal error
  8315.         81h hardware failure
  8316.         84h undefined function requested
  8317.         8Fh undefined subfunction
  8318. Note:    the returned array for subfunction 00h is filled in physical segment
  8319.       address order
  8320.  
  8321. Format of mappable physical address entry:
  8322. Offset    Size    Description
  8323.  00h    WORD    physical page segment
  8324.  02h    WORD    physical page number
  8325. ----------6759-------------------------------
  8326. INT 67 - LIM EMS 4.0 - GET EXPANDED MEMORY HARDWARE INFORMATION
  8327.     AH = 59h
  8328.     AL = subfunction
  8329.         00h get hardware configuration array
  8330.         ES:DI -> buffer to be filled with array (see below)
  8331.         01h get unallocated raw page count
  8332.         Return: BX = unallocated raw pages
  8333.             DX = total raw pages
  8334. Return:    AH = status
  8335.         00h successful
  8336.         80h internal error
  8337.         81h hardware failure
  8338.         84h undefined function requested
  8339.         8Fh undefined subfunction
  8340.         A4h access denied by operating system
  8341. Note:    subfunction 00h is for use by operating systems only, and can be
  8342.       enabled or disabled at any time by the operating system
  8343.  
  8344. Format of hardware configuration array:
  8345. Offset    Size    Description
  8346.  00h    WORD    size of raw EMM pages in paragraphs
  8347.  02h    WORD    number of alternate register sets
  8348.  04h    WORD    size of mapping-context save area in bytes
  8349.  06h    WORD    number of register sets assignable to DMA
  8350.  08h    WORD    DMA operation type
  8351.         0000h DMA with alternate register sets
  8352.         0001h only one DMA register set
  8353. ----------675A-------------------------------
  8354. INT 67 - LIM EMS 4.0 - ALLOCATE STANDARD/RAW PAGES
  8355.     AH = 5Ah
  8356.     AL = subfunction
  8357.         00h allocate standard pages
  8358.         01h allocate raw pages
  8359.     BX = number of pages to allocate
  8360. Return: DX = handle
  8361.     AH = status
  8362.         00h successful
  8363.         80h internal error
  8364.         81h hardware failure
  8365.         84h undefined function requested
  8366.         85h no more handles available
  8367.         87h insufficient memory pages in system
  8368.         88h insufficient memory pages available
  8369.         8Fh undefined subfunction
  8370. ----------675B-------------------------------
  8371. INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET
  8372.     AH = 5Bh
  8373.     AL = subfunction
  8374.         00h get alternate map register set
  8375.         Return: BL = current active alternate map register set number
  8376.             ES:DI -> map register context save area if BL=00h
  8377.         01h set alternate map register set
  8378.         BL = new alternate map register set number
  8379.         ES:DI -> map register context save area if BL=0
  8380.         02h get alternate map save array size
  8381.         Return: DX = array size in bytes
  8382.         03h allocate alternate map register set
  8383.         Return: BL = number of map register set; 00h = not supported
  8384.         04h deallocate alternate map register set
  8385.         BL = number of alternate map register set
  8386. Return: AH = status
  8387.         00h successful
  8388.         80h internal error
  8389.         81h hardware malfunction
  8390.         84h undefined function requested
  8391.         8Fh undefined subfunction
  8392.         9Ah specified alternate map register set not supported
  8393.         9Bh all alternate map register sets currently allocated
  8394.         9Ch alternate map register sets not supported
  8395.         9Dh undefined or unallocated alternate map register set
  8396.         A3h source array corrupted
  8397.         A4h operating system denied access
  8398. Note:    this function is for use by operating systems only, and can be
  8399.       enabled or disabled at any time by the operating system
  8400. ----------675B-------------------------------
  8401. INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET - DMA REGISTERS
  8402.     AH = 5Bh
  8403.     AL = subfunction
  8404.         05h allocate DMA register set
  8405.         Return: BL = DMA register set number, 00h if not supported
  8406.         06h enable DMA on alternate map register set
  8407.            BL = DMA register set number
  8408.            DL = DMA channel number
  8409.         07h disable DMA on alternate map register set
  8410.            BL = DMA register set number
  8411.         08h deallocate DMA register set
  8412.            BL = DMA register set number
  8413. Return: AH = status
  8414.         00h successful
  8415.         80h internal error
  8416.         81h hardware malfunction
  8417.         84h undefined function requested
  8418.         8Fh undefined subfunction
  8419.         9Ah specified DMA register set not supported
  8420.         9Bh all DMA register sets currently allocated
  8421.         9Ch alternate DMA sets not supported
  8422.         9Dh undefined or unallocated DMA register set
  8423.         9Eh dedicated DMA channels not supported
  8424.         9Fh specified dedicated DMA channel not supported
  8425.         A3h source array corrupted
  8426.         A4h operating system denied access
  8427. Note:    this function is for use by operating systems only, and can be
  8428.       enabled or disabled at any time by the operating system
  8429. ----------675BE0-----------------------------
  8430. INT 67 - MICEMM v4D - GET LINEAR ADDRESS OF MEMORY
  8431.     AX = 5BE0h
  8432.     ES:BX -> memory for which to get linear address
  8433. Return: AH = 00h
  8434.     DX:CX = linear address of physical memory corresponding to ES:BX
  8435. SeeAlso: AX=5BF0h,AX=5BF1h
  8436. ----------675BF0-----------------------------
  8437. INT 67 - MICEMM v4D - INSTALLATION CHECK
  8438.     AX = 5BF0h
  8439. Return: AH = 00h if MICEMM present
  8440.         BX = code segment of driver
  8441. Note:    MICEMM is the Micronics Expanded Memory Manager
  8442. SeeAlso: AH=3Fh,AX=5BE0h,AX=5BF1h
  8443. ----------675BF1-----------------------------
  8444. INT 67 - MICEMM v4D - GET MEMORY TYPES
  8445.     AX = 5BF1h
  8446.     ES:BX -> 256-byte buffer for memory types
  8447. Return: AH = 00h
  8448.     ES:BX buffer filled
  8449. Note:    each byte in the buffer specifies the type of a 4K page of memory:
  8450.         00h unused
  8451.         02h DOS extension
  8452.         04h shadowed ROM
  8453.         08h mappable EMS
  8454.         10h page frame
  8455.         20h ROM
  8456.         40h reserved (video memory, etc)
  8457.         80h RAM
  8458. SeeAlso: AX=5BE0h,AX=5BF0h
  8459. ----------675C-------------------------------
  8460. INT 67 - LIM EMS 4.0 - PREPARE EXPANDED MEMORY HARDWARE FOR WARM BOOT
  8461.     AH = 5Ch
  8462. Return: AH = status
  8463.         00h successful
  8464.         80h internal error
  8465.         81h hardware malfunction
  8466.         84h undefined function requested
  8467. ----------675D-------------------------------
  8468. INT 67 - LIM EMS 4.0 - ENABLE/DISABLE OS FUNCTION SET FUNCTIONS
  8469.     AH = 5Dh
  8470.     AL = subfunction
  8471.         00h enable OS Function Set
  8472.         01h disable OS Function Set
  8473.         02h return access key (resets memory manager, returns access key at
  8474.         next invocation)
  8475.     BX,CX = access key returned by first invocation
  8476. Return: BX,CX = access key, returned only on first invocation of function
  8477.     AH = status
  8478.         00h successful
  8479.         80h internal error
  8480.         81h hardware malfunction
  8481.         84h undefined function requested
  8482.         8Fh undefined subfunction
  8483.         A4h operating system denied access
  8484. ----------6760-------------------------------
  8485. INT 67 - EEMS - GET PHYSICAL WINDOW ARRAY
  8486.     AH = 60h
  8487.     ES:DI -> buffer
  8488. Return: AH = status
  8489.     AL = number of entries
  8490.     buffer at ES:DI filled
  8491. ----------6761-------------------------------
  8492. INT 67 - EEMS - GENERIC ACCELERATOR CARD SUPPORT
  8493.     AH = 61h
  8494.     ???
  8495. Return: ???
  8496. Note:    can be used by accelerator card manufacturer to flush RAM cache,
  8497.       ensuring that the cache accurately reflects what the processor would
  8498.       see without the cache.
  8499. ----------6768-------------------------------
  8500. INT 67 - EEMS - GET ADDRESSES OF ALL PAGE FRAMES IN SYSTEM
  8501.     AH = 68h
  8502.     ES:DI -> buffer
  8503. Return: AH = status
  8504.     AL = number of entries
  8505.     buffer at ES:DI filled
  8506. Note:    equivalent to LIM 4.0 function 58h
  8507. ----------6769-------------------------------
  8508. INT 67 - EEMS - MAP PAGE INTO FRAME
  8509.     AH = 69h
  8510.     AL = frame number
  8511.     BX = page number
  8512.     DX = handle
  8513. Return: AH = status
  8514. Note:    similar to EMS function 44h
  8515. SeeAlso: AH=44h,AH=50h,AH=6Ah
  8516. ----------676A-------------------------------
  8517. INT 67 - EEMS - PAGE MAPPING
  8518.     AH = 6Ah
  8519.     AL = subfunction
  8520.         00h save partial page map
  8521.         CH = first page frame
  8522.         CL = number of frames
  8523.         ES:DI -> buffer which is to be filled
  8524.         01h restore partial page map
  8525.         CH = first page frame
  8526.         CL = number of frames
  8527.         DI:SI -> previously saved page map
  8528.         02h save and restore partial page map
  8529.         CH = first page frame
  8530.         CL = number of frames
  8531.         ES:DI = buffer for current page map
  8532.         DI:SI = new page map
  8533.         03h get size of save array
  8534.         CH = first page frame
  8535.         CL = number of frames
  8536.         Return: AL = size of array in bytes
  8537.         04h switch to standard map register setting
  8538.         05h switch to alternate map register setting
  8539.         06h deallocate pages mapped to frames in conventional memory
  8540.         CH = first page frame
  8541.         CL = number of frames
  8542. Return: AH = status
  8543. Note:    similar to EMS function 4Eh, except that a subrange of pages can be
  8544.       specified
  8545. SeeAlso: AH=69h
  8546. ----------67DD-------------------------------
  8547. INT 67 - Quadtel QMAPS - API
  8548.     AH = DDh
  8549.     AL = function
  8550.     ???
  8551. Return: ???
  8552. Notes:    details are not yet available
  8553.     Hewlett-Packard's HPMM.SYS is a licensed version of QMAPS, and thus
  8554.       supports this API
  8555. SeeAlso: AH=3Fh,AX=FFA5h
  8556. ----------67DE00-----------------------------
  8557. INT 67 - Virtual Control Program Interface - INSTALLATION CHECK
  8558.     AX = DE00h
  8559. Return: AH = 00h    VCPI is present
  8560.         BH = major version number
  8561.         BL = minor version number
  8562.     AH nonzero  VCPI not present
  8563. SeeAlso: INT 2F/AX=1687h
  8564. ----------67DE01-----------------------------
  8565. INT 67 - Virtual Control Program Interface - GET PROTECTED MODE INTERFACE
  8566.     AX = DE01h
  8567.     ES:DI -> 4K page table buffer
  8568.     DS:SI -> three descriptor table entries in GDT
  8569.         first becomes code segment descriptor, other two for use by
  8570.         main control program
  8571. Return: AH = 00h successful
  8572.         DI -> first unused page table entry in buffer
  8573.         EBX -> protected mode entry point in code segment
  8574.     AH = nonzero  failed
  8575. Note:    protected mode entry point may be called with AX=DE00h-DE05h and
  8576.       AX=DE0Ch (in each case, all other registers as appropriate for
  8577.       the function)
  8578. SeeAlso: INT 2F/AX=1687h,INT 67/AH=3Fh
  8579.  
  8580. QEMM v6.03 protected mode entry point may also be called with:
  8581.     AX = DF00h ???
  8582.         ???
  8583.         Return: ???
  8584.     AX = DF01h ???
  8585.         ???
  8586.         Return: ???
  8587. ----------67DE02-----------------------------
  8588. INT 67 - Virtual Control Program Interface - GET MAX PHYSICAL MEMORY ADDRESS
  8589.     AX = DE02h
  8590. Return: AH = 00h  successful
  8591.         EDX = physical address of highest 4K memory page
  8592.     AH nonzero: failed
  8593. SeeAlso: AH=3Fh
  8594. ----------67DE03-----------------------------
  8595. INT 67 - Virtual Control Program Interface - GET NUMBER OF FREE 4K PAGES
  8596.     AX = DE03h
  8597. Return: AH = 00h  successful
  8598.         EDX = number of free 4K pages
  8599.     AH nonzero: failed
  8600. Notes:    returns total number of pages available to ALL tasks in system
  8601.     also available in protected mode by calling the protected-mode VCPI
  8602.       entry point
  8603. SeeAlso: AX=DE04h
  8604. ----------67DE04-----------------------------
  8605. INT 67 - Virtual Control Program Interface - ALLOCATE A 4K PAGE
  8606.     AX = DE04h
  8607. Return: AH = 00h successful
  8608.         EDX = physical address of allocated page
  8609.     AH nonzero: failed
  8610. Notes:    the client program is responsible for freeing all memory allocated
  8611.       with this call before terminating
  8612.     also available in protected mode by calling the protected-mode VCPI
  8613.       entry point
  8614. SeeAlso: AH=3Fh,AX=DE03h,AX=DE05h
  8615. ----------67DE05-----------------------------
  8616. INT 67 - Virtual Control Program Interface - FREE 4K PAGE
  8617.     AX = DE05h
  8618.     EDX = physical address of 4K page
  8619. Return: AH = 00h successful
  8620.     AH nonzero: failed
  8621. Note:    also available in protected mode by calling the protected-mode VCPI
  8622.       entry point
  8623. SeeAlso: AH=3Fh,AX=DE04h
  8624. ----------67DE06-----------------------------
  8625. INT 67 - Virtual Control Program Interface - GET PHYS ADDR OF PAGE IN FIRST MB
  8626.     AX = DE06h
  8627.     CX = page number (linear address shifted right 12 bits)
  8628. Return: AH = 00h successful
  8629.         EDX = physical address of page
  8630.     AH nonzero: invalid page number (AH = 8Bh recommended)
  8631. ----------67DE07-----------------------------
  8632. INT 67 - Virtual Control Program Interface - READ CR0
  8633.     AX = DE07h
  8634. Return: AH = 00h
  8635.     EBX = value of Control Register 0
  8636. SeeAlso: AH=3Fh,AX=DE07h
  8637. ----------67DE08-----------------------------
  8638. INT 67 - Virtual Control Program Interface - READ DEBUG REGISTERS
  8639.     AX = DE08h
  8640.     ES:DI -> array of 8 DWORDs
  8641. Return: AH = 00h
  8642.     buffer filled with DR0 first, DR7 last, DR4 and DR5 unused
  8643. SeeAlso: AH=3Fh,AX=DE09h
  8644. ----------67DE09-----------------------------
  8645. INT 67 - Virtual Control Program Interface - SET DEBUG REGISTERS
  8646.     AX = DE09h
  8647.     ES:DI -> array of 8 DWORDs holding new values of debug registers
  8648. Return: AH = 00h
  8649. Note:    values for DR4 and DR5 ignored
  8650. SeeAlso: AH=3Fh,AX=DE08h
  8651. ----------67DE0A-----------------------------
  8652. INT 67 - Virtual Control Program Interface - GET 8259 INTERRUPT VECTOR MAPPINGS
  8653.     AX = DE0Ah
  8654. Return: AH = 00h successful
  8655.         BX = first vector used by master 8259 (IRQ0)
  8656.         CX = first vector used by slave 8259 (IRQ8)
  8657.     AH nonzero: failed
  8658. Note:    CX is undefined in systems without a slave 8259
  8659. SeeAlso: AX=DE0Bh,INT 21/AX=250Ch,INT 31/AX=0400h
  8660. ----------67DE0B-----------------------------
  8661. INT 67 - Virtual Control Program Interface - SET 8259 INTERRUPT VECTOR MAPPINGS
  8662.     AX = DE0Bh
  8663.     BX = first vector used by master 8259
  8664.     CX = first vector used by slave 8259
  8665.     interrupts disabled
  8666. Return: AH = 00h successful
  8667.     AH nonzero: failed 
  8668. Notes:    This call merely informs the server that the client has changed the
  8669.       interrupt mappings.  The client may not change the mappings if they
  8670.       have already been changed by the server or another client, and is
  8671.       responsible for restoring the original mappings before terminating.
  8672. SeeAlso: AX=DE0Ah
  8673. ----------67DE0C-----------------------------
  8674. INT 67 - Virtual Control Program Interface - SWITCH TO PROTECTED MODE
  8675.     AX = DE0Ch
  8676.     ESI = linear address in first megabyte of values for system registers
  8677.     interrupts disabled
  8678. Return: interrupts disabled
  8679.     GDTR, IDTR, LDTR, TR loaded
  8680.     SS:ESP must have at least 16 bytes space, and the entry point is
  8681.         required to set up a new stack before enabling interrupts
  8682.     EAX, ESI, DS, ES, FS, GS destroyed
  8683. SeeAlso: AH=3Fh,INT 15/AH=89h,INT 38/AH=10h
  8684.  
  8685. Note:    in protected mode, calling the protected-mode VCPI entry point with 
  8686.       AX = DE0Ch
  8687.       DS = segment selector from function DE01h
  8688.       SS:ESP in first megabyte of linear memory
  8689.       STACK:QWORD  return address from FAR call to 32-bit segment
  8690.         DWORD  EIP
  8691.         DWORD  CS
  8692.         DWORD  reserved for EFLAGS
  8693.         DWORD  ESP
  8694.         DWORD  SS
  8695.         DWORD  ES
  8696.         DWORD  DS
  8697.         DWORD  FS
  8698.         DWORD  GS
  8699.       and interrupts disabled, will switch to virtual86 mode with
  8700.       interrupts disabled, all segment registers loaded, and EAX destroyed.
  8701.  
  8702. Format of system register values for switch to protected mode:
  8703. Offset    Size    Description
  8704.  00h    DWORD    value for CR3
  8705.  04h    DWORD    linear address in first megabyte of value for GDTR
  8706.  08h    DWORD    linear address in first megabyte of value for IDTR
  8707.  0Ch    WORD    value for LDTR
  8708.  0Eh    WORD    value for TR
  8709.  10h    PWORD    CS:EIP of protected mode entry-point
  8710. ----------67FFA5-----------------------------
  8711. INT 67 - Microsoft EMM386.EXE v4.20+ - INSTALLATION CHECK
  8712.     AX = FFA5h
  8713. Return: AX = 845Ah if loaded
  8714.         BX:CX -> API entry point
  8715. Notes:    this call is available even if EMM386 is not providing EMS
  8716.     if no other program has hooked INT 67, an alternate installation
  8717.       check is to search for the string
  8718.       "MICROSOFT EXPANDED MEMORY MANAGER 386" early in the INT 67
  8719.       handler's segment, usually at offset 14h
  8720. SeeAlso: AH=3Fh
  8721.  
  8722. Call API entry point with:
  8723.     AH = 00h get memory manager's status
  8724.         Return: AH = status
  8725.                 bit 0: not active (OFF)
  8726.             bit 1: in "Auto" mode
  8727.     AH = 01h set memory manager's state
  8728.         AL = new state (00h ON, 01h OFF, 02h AUTO)
  8729.     AH = 02h Weitek coprocessor support
  8730.         AL = subfunction
  8731.         00h get Weitek support state
  8732.             Return: AL = status
  8733.                     bit 0: Weitek coprocessor is present
  8734.                 bit 1: Weitek support is enabled
  8735.         01h turn on Weitek support
  8736.         02h turn off Weitek support
  8737.      --- v4.20-4.41 only ---
  8738.     AH = 03h Windows support???
  8739.         AL = subfunction (00h, 01h)
  8740.     AH = 04h print copyright notice to standard output
  8741.          (using INT 21/AH=09h)
  8742.     AH = 05h print available report
  8743.          (the one shown when running EMM386 from the DOS prompt)
  8744. ---------------------------------------------
  8745.  
  8746. Downloaded From P-80 International Information Systems 304-744-2253
  8747.