home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / DOS_HELP / INTER191.ZIP / INTERRUP.D < prev    next >
Encoding:
Text File  |  1991-01-05  |  186.6 KB  |  5,551 lines

  1. INT 60 - reserved for user interrupt
  2. ----------60---------------------------------
  3. INT 60 - Zero Bug Virus
  4.    The "Zero Bug" virus hooks this vector.  Purpose unknown.
  5. SeeAlso: INT 32
  6. ----------60---------------------------------
  7. INT 60 - Adaptec and OMTI controllers - DRIVE 0 DATA
  8. SeeAlso: INT 64"Adaptec"
  9. ----------60---------------------------------
  10. INT 60 - PC-IPC API
  11.     STACK:    DWORD    pointer to parameter block (see below)
  12. Return: STACK:    unchanged
  13. Notes:    PC-IPC is a shareware TSR by Donnelly Software Engineering which allows
  14.       communication between independent programs
  15.     INT 60 is the default, any interrupt vector may be used by specifying
  16.       the vector on the commandline
  17.  
  18. Format of parameter block:
  19. Offset    Size    Description
  20.  00h    WORD    caller's ID
  21.  02h    WORD    to ID
  22.  04h    WORD    command code (see below)
  23.  06h    WORD    returned status
  24.         bit 0: unused
  25.         bit 1: IPC enabled
  26.         bit 2: IPC installed
  27.         bit 3: error
  28.         bit 4: message(s) available
  29.  08h    WORD    returned error code (see below)
  30.  0Ah    WORD    size of data
  31.  0Ch    DWORD    pointer to data buffer
  32.  
  33. Values of command code:
  34.  01h "IPC_CMND_INQUIRE"  inquire current status
  35.         set status field, writes WORD to data buffer containing free
  36.           message space in bytes, and sets the "size" field to the
  37.           number of messages waiting
  38.  02h "IPC_CMND_ENABLE"    reenable PC-IPC
  39.         ignored unless called with the same ID that disabled PC-IPC
  40.  03h "IPC_CMND_DISABLE" disable PC-IPC
  41.  04h "IPC_CMND_INSTALL" reset PC-IPC
  42.  06h "IPC_CMND_RDATA"    read data
  43.         returns first message in data buffer, sets "size" to message
  44.           length and "to ID" field to sender's ID
  45.         if no messages available, bit 4 of status is cleared and "size"
  46.           is set to zero
  47.  07h "IPC_CMND_SDATA"    send data
  48.  08h "IPC_CMND_REQID"    require user ID
  49.         create a new recognized ID and return in "caller's ID" field
  50.  09h "IPC_CMND_DELID"    cancel user ID
  51.         delete caller's ID from pool of recognized IDs
  52.  0Ah "IPC_CMND_RDATAW"    read data, wait if no messages available
  53.  0Bh "IPC_CMND_VERS"    get PC-IPC version 
  54.         string representing version returned in data buffer, "size"
  55.           field set to length of string
  56.  
  57. Values for error code:
  58.  00h    no error
  59.  01h    invalid command or parameter
  60.  02h    only process 0 can install/reset IPC
  61.  03h    process can not install/reset IPC
  62.  04h    IPC is not enabled
  63.  05h    process can not disable IPC
  64.  06h    invalid destination process ID
  65.  07h    invalid sending process ID
  66.  08h    invalid data destination
  67.  09h    no more process IDs available
  68.  0Ah    can not relinquish that process ID
  69.  0Bh    message space is full
  70.  0Ch    IPC is not installed
  71. ----------60---------------------------------
  72. INT 60 - Tangram Arbiter - API
  73. Notes:    Arbiter may use any interrupt from 60h to 66h (parameterized)
  74.     identified by string "@ARB_API" immediately following a short jump at
  75.       the interrupt handler address
  76.     Arbiter makes a PC disk look like a slow disk over an SNA link to an
  77.       IBM mainframe
  78. ----------60---------------------------------
  79. INT 60 - FTP Packet Driver - PC/TCP Packet Driver Specification
  80.    The handler for the interrupt will start with a 3-byte jump instruction, 
  81.    followed by the ASCIZ string "PKT DRVR".  To find the interrupt being used
  82.    by the driver, an application should scan through interrupt vectors 60h to
  83.    80h until it finds one with the "PKT DRVR" string.
  84. ----------6000-------------------------------
  85. INT 60 - SYS_PROF.EXE - PROFILER STATUS
  86.     AH = 00h
  87. Return: AX = 0000h    profiling is off
  88.         otherwise profiling is on
  89. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
  90. SeeAlso: AH=01h"SYS_PROF",02h"SYS_PROF"
  91. ----------6001FF-----------------------------
  92. INT 60 - FTP Packet Driver - BASIC FUNC - GET DRIVER INFO
  93.     AX = 01FFh
  94.     BX = handle returned by function 02h
  95. Return: CF set on error
  96.         DH = error code (see below)
  97.     CF clear if successful
  98.         BX = version
  99.         CH = network interface class (see below)
  100.         DX = interface type (see below)
  101.         CL = number
  102.         DS:SI -> name
  103.         AL = driver functions supported
  104.         01h basic
  105.         02h basic and extended
  106.         05h basic and high-performance
  107.         06h basic, high-performance, and extended
  108.         FFh not installed
  109. Note:    the handle in BX is optional for drivers written to v1.07 or later of
  110.       the packet driver specification
  111.  
  112. Values for error code:
  113.     01h invalid handle number
  114.     02h no interfaces of the specified class found
  115.     03h no interfaces of the specified type found
  116.     04h no interfaces of the specified number found
  117.     05h bad packet type
  118.     06h interface does not support multicast messages
  119.     07h this packet driver cannot terminate
  120.     08h invalid receiver mode
  121.     09h insufficient space
  122.     0Ah type accessed but never released
  123.     0Bh bad command
  124.     0Ch packet could not be sent
  125.     0Dh hardware address could not be changed
  126.     0Eh hardware address has a bad length or format
  127.     0Fh could not reset interface
  128.  
  129. Values for Network Interface classes/types:
  130.     Class 01h  Ethernet/IEEE 802.3     
  131.     01h 3COM 3C500/3C501
  132.     02h 3COM 3C505
  133.     03h MICOM-Interlan NI5010
  134.     04h BICC Data Networks 4110
  135.     05h BICC Data Networks 4117
  136.     06h MICOM-Interlan NP600
  137.     08h Ungermann-Bass PC-NIC
  138.     09h Univation NC-516
  139.     0Ah TRW PC-2000    
  140.     0Bh MICOM-Interlan NI5210
  141.     0Ch 3COM 3C503
  142.     0Dh 3COM 3C523
  143.     0Eh Western Digital WD8003
  144.     0Fh Spider Systems S4
  145.     10h Torus Frame Level
  146.     11h 10Net Communications
  147.     12h Gateway PC-bus
  148.     13h Gateway AT-bus
  149.     14h Gateway MCA-bus
  150.     15h IMC PCnic
  151.     16h IMC PCnic II
  152.     17h IMC PCnic 8-bit
  153.     18h Tigan Communications
  154.     19h Micromatic Research
  155.     1Ah Clarkson "Multiplexor"
  156.     1Bh D-Link 8-bit
  157.     1Ch D-Link 16-bit
  158.     1Dh D-Link PS/2
  159.     1Eh Research Machines 8
  160.     1Fh Research Machines 16
  161.     20h Research Machines MCA
  162.     21h Radix Microsystems EXM1 16-bit
  163.     22h Interlan Ni9210
  164.     23h Interlan Ni6510
  165.     24h Vestra LANMASTER 16-bit
  166.     25h Vestra LANMASTER 8-bit
  167.     26h Allied Telesis PC/XT/AT
  168.     27h Allied Telesis NEC PC-98
  169.     28h Allied Telesis Fujitsu FMR
  170.     29h Ungermann-Bass NIC/PS2
  171.     2Ah Tiara LANCard/E AT
  172.     2Bh Tiara LANCard/E MC
  173.     2Ch Tiara LANCard/E TP
  174.     2Dh Spider Communications SpiderComm 8
  175.     2Eh Spider Communications SpiderComm 16
  176.     2Fh AT&T Starlan NAU
  177.     30h AT&T Starlan-10 NAU
  178.     31h AT&T Ethernet NAU
  179.     32h Intel smart card
  180.     Class 02h  ProNET-10
  181.     01h Proteon p1300
  182.     02h Proteon p1800
  183.     Class 03h  IEEE 802.5/ProNet-4
  184.     01h IBM Token-Ring Adapter
  185.     02h Proteon p1340
  186.     03h Proteon p1344
  187.     04h Gateway PC-bus
  188.     05h Gateway AT-bus
  189.     06h Gateway MCA-bus
  190.     Class 04h  Omninet
  191.     Class 05h  Appletalk
  192.     Class 06h  Serial Line
  193.     01h Clarkson 8250-SLIP
  194.     02h Clarkson "Multiplexor"
  195.     Class 07h  StarLAN (subsumed by Ethernet class)
  196.     Class 08h  ARCnet
  197.     01h Datapoint RIM
  198.     Class 09h  AX.25
  199.     Class 0Ah  KISS
  200.     Class 0Bh  IEEE 802.3 with 802.2 headers
  201.     types same as for class 01h
  202.     Class 0Ch  FDDI with 802.2 headers
  203.     Class 0Dh  Internet X.25
  204.     01h Western Digital
  205.     02h Frontier Technology
  206.     Class 0Eh  N.T. LANSTAR (encapsulating DIX Ethernet)
  207.     01h NT LANSTAR/8
  208.     02h NT LANSTAR/MC
  209. Note: class and type numbers are cleared through FTP Software
  210. ----------6001-------------------------------
  211. INT 60 - SYS_PROF.EXE - TURN PROFILING OFF
  212.     AH = 01h
  213. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
  214. SeeAlso: AH=00h"SYS_PROF",02h"SYS_PROF"
  215. ----------6002-------------------------------
  216. INT 60 - FTP Packet Driver - BASIC FUNC - ACCESS TYPE
  217.     AH = 02h
  218.     AL = interface class
  219.     BX = interface type
  220.     DL = interface number
  221.     DS:SI -> type
  222.     CX = length of type
  223.     ES:DI -> receiver
  224. Return: CF set on error
  225.         DH = error code (see AX=01FFh)
  226.     CF clear if successful
  227.         AX = handle            
  228. SeeAlso: AH=03h"FTP"
  229.  
  230. Receiver is called with
  231.     AX = subfunction
  232.         00h application to return pointer to buffer in ES:DI
  233.         returned ES:DI = 0000h:0000h means throw away packet
  234.         01h copy completed
  235.         DS:SI -> buffer
  236.     BX = handle
  237.     CX = buffer length
  238. when a packet is received
  239. ----------6002-------------------------------
  240. INT 60 - SYS_PROF.EXE - TURN PROFILING ON
  241.     AH = 02h
  242. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
  243. SeeAlso: AH=00h"SYS_PROF",01h"SYS_PROF"
  244. ----------6003-------------------------------
  245. INT 60 - FTP Packet Driver - BASIC FUNC - RELEASE TYPE
  246.     AH = 03h
  247.     BX = handle
  248. Return: CF set on error
  249.        DH = error code (see AX=01FFh)
  250.     CF clear if successful    
  251. SeeAlso: AH=02h"FTP"
  252. ----------6003-------------------------------
  253. INT 60 - SYS_PROF.EXE - GET ADDRESS OF PROFILING TABLE
  254.     AH = 03h
  255. Return: ES:BX -> profiling table
  256. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
  257. SeeAlso: AH=04h"SYS_PROF"
  258. ----------6004-------------------------------
  259. INT 60 - FTP Packet Driver - BASIC FUNC - SEND PACKET
  260.     AH = 04h
  261.     DS:SI -> buffer
  262.     CX = length
  263. Return: CF set on error
  264.         DH = error code (see AX=01FFh)
  265.     CF clear if successful
  266. Note:    the buffer may be modified immediately upon return from this call
  267. SeeAlso: AH=0Bh
  268. ----------6004-------------------------------
  269. INT 60 - SYS_PROF.EXE - CLEAR PROFILING TABLE
  270.     AH = 04h
  271. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
  272. SeeAlso: AH=03h"SYS_PROF"
  273. ----------6005-------------------------------
  274. INT 60 - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE
  275.     AH = 05h
  276.     BX = handle
  277. Return: CF set on error
  278.        DH = error code (see AX=01FFh)
  279.     CF clear if successful
  280. ----------6006-------------------------------
  281. INT 60 - FTP Packet Driver - BASIC FUNC - GET ADDRESS
  282.     AH = 06h
  283.     BX = handle
  284.     ES:DI -> buffer
  285.     CX = length
  286. Return: CF set on error
  287.         DH = error code (see AX=01FFh)
  288.     CF clear if successful
  289.         CX = length    
  290. Note:    copies the local net address associated with the handle into the buffer
  291. ----------6007-------------------------------
  292. INT 60 - FTP Packet Driver - BASIC FUNC - RESET INTERFACE
  293.     AH = 07h
  294.     BX = handle
  295. Return: CF set on error
  296.         DH = error code (see AX=01FFh)
  297.     CF clear if successful
  298. ----------600A-------------------------------
  299. INT 60 - FTP Packet Driver 1.09+ - HIGH-PERF FUNC - GET PARAMETERS
  300.     AH = 0Ah
  301. Return: CF set on error
  302.         DH = error code (0Bh) (see AX=01FFh)
  303.     CF clear if successful
  304.         ES:DI -> parameter table (see below)
  305.  
  306. Format of parameter table:
  307. Offset    Size    Description
  308.  00h    BYTE    major revision of packet driver spec driver conforms to
  309.  01h    BYTE    minor revision of packet driver spec
  310.  02h    BYTE    length of this structure in bytes
  311.  03h    BYTE    length of a MAC-layer address
  312.  04h    WORD    maximum transfer unit, including MAC headers
  313.  06h    WORD    buffer size for multicast addr
  314.  08h    WORD    number of receive buffers (one less than back-to-back MTU rcvs)
  315.  0Ah    WORD    number of transmit buffers
  316.  0Ch    WORD    interrupt number to hook for post-EOI processing, 00h=none
  317. ----------600B-------------------------------
  318. INT 60 - FTP Packet Driver 1.09+ - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
  319.     AH = 0Bh
  320.     DS:SI -> buffer
  321.     CX = length of buffer
  322.     ES:DI -> FAR function to call when buffer becomes available
  323. Return: CF set on error
  324.         DH = error code (0Bh,0Ch) (see AX=01FFh)
  325.     CF clear if successful
  326. Note:    unlike function 04h, the buffer is not available for modification as
  327.       soon as the call returns; the buffer may be queued by the driver and
  328.       not processed until later
  329. SeeAlso: AH=04h"Packet Driver"
  330.  
  331. Completion function called with:
  332.     AX = result
  333.         00h copy OK
  334.         nonzero error
  335.     ES:DI -> buffer passed to INT 60/AH=0Bh call
  336. ----------600C-------------------------------
  337. INT 60 - Banyan VINES, 3com - GET STATION ADDRESS
  338.     AH = 0Ch
  339. Return: AL = status
  340.         00h successful
  341.         ES:SI -> 6-byte station address
  342.         02h semaphore service is unavailable
  343. ----------6011-------------------------------
  344. INT 60 - 10-NET, Banyan VINES - LOCK AND WAIT
  345.     AH = 11h
  346.     AL = drive number or 0
  347.     DX = number of seconds to wait
  348.     ES:SI = Ethernet address or 0
  349.     DS:BX -> 31-byte ASCIZ semaphore name
  350. Return: AL = status
  351.         00h successful
  352.         01h timeout
  353.         02h server not responding
  354.         03h invalid semaphore name
  355.         04h semaphore list is full
  356.         05h invalid drive ID
  357.         06h invalid Ethernet address
  358.         07h not logged in
  359.         08h write to network failed
  360.         09h semaphore already logged for this CPU
  361. SeeAlso: AH=12h,13h
  362. ----------6012-------------------------------
  363. INT 60 - 10-NET, Banyan VINES - LOCK
  364.     AH = 12h
  365.     AL = drive number or 00h
  366.     ES:SI = Ethernet address or 0000h:0000h
  367.     DS:BX -> 31-byte ASCIZ semaphore name
  368. Return: AL = status (see also AH=11h)
  369.         01h semaphore currently locked by another PC
  370. Note:    unlike function 11h, this function returns immediately
  371. SeeAlso: AH=11h,13h
  372. ----------6013-------------------------------
  373. INT 60 - 10-NET, Banyan VINES - UNLOCK
  374.     AH = 13h
  375.     AL = drive number or 00h
  376.     ES:SI = Ethernet address or 0000h:0000h
  377.     DS:BX -> 31-byte ASCIZ semaphore name
  378. Return: AL = status (see also AH=11h)
  379.         1 semaphore not locked
  380. SeeAlso: AH=11h,12h
  381. ----------6014-------------------------------
  382. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET RECEIVE MODE
  383.     AH = 14h
  384.     BX = handle
  385.     CX = mode
  386.         01h turn off receiver
  387.         02h receive only packets sent to this interface
  388.         03h mode 2 plus broadcast packets
  389.         04h mode 3 plus limited multicast packets
  390.         05h mode 3 plus all multicast packets
  391.         06h all packets
  392. Return: CF set on error
  393.        DH = error code (01h,08h) (see AX=01FFh)
  394.     CF clear if successful
  395. SeeAlso: AH=15h
  396. ----------6015-------------------------------
  397. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET RECEIVE MODE
  398.     AH = 15h
  399.     BX = handle
  400. Return: CF set on error
  401.         DH = error code (01h) (see AX=01FFh)
  402.     CF clear if successful
  403.         AX = mode    
  404. SeeAlso: AH=14h
  405. ----------6016-------------------------------
  406. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET MULTICAST LIST
  407.     AH = 16h
  408.     ES:DI -> multicast list
  409.     CX = length of list in bytes
  410. Return: CF set on error
  411.         DH = error code (06h,09h,0Eh) (see AX=01FFh)
  412.     CF clear if successful
  413. SeeAlso: AX=17h
  414. ----------6017-------------------------------
  415. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET MULTICAST LIST
  416.     AH = 17h
  417. Return: CF set on error
  418.         DH = error code (06h,09h) (see AX=01FFh)
  419.     CF clear if successful
  420.         ES:DI -> multicast addresses (do not modify)
  421.         CX = bytes of multicast addresses currently in use
  422. SeeAlso: AH=16h
  423. ----------6018-------------------------------
  424. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET STATISTICS
  425.     AH = 18h
  426.     BX = handle
  427. Return: CF set on error
  428.         DH = error code (01h) (see AX=01FFh)
  429.     CF clear if successful
  430.         DS:SI -> statistics (see below)
  431.  
  432. Format of statistics:
  433. Offset    Size    Description
  434.  00h    DWORD    packets in
  435.  04h    DWORD    packets out
  436.  08h    DWORD    bytes in
  437.  0Ch    DWORD    bytes out
  438.  10h    DWORD    errors in
  439.  14h    DWORD    errors out
  440.  18h    DWORD    packets dropped    
  441. ----------6019-------------------------------
  442. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET NETWORK ADDRESS
  443.     AH = 19h
  444.     ES:DI -> address
  445.     CX = length of address
  446. Return: CF set on error
  447.         DH = error code (0Dh,0Eh) (see AX=01FFh)
  448.     CF clear if successful
  449.         CX = length
  450. ----------61---------------------------------
  451. INT 61 - reserved for user interrupt
  452. ----------61---------------------------------
  453. INT 61 - Adaptec and OMTI controllers - DRIVE 0 DATA
  454. SeeAlso: INT 60"Adaptec"
  455. ----------610001-----------------------------
  456. INT 61 - Banyan VINES - "Sosock" - OPEN COMMUNICATIONS SOCKET
  457.     AX = 0001h
  458.     DS:DX -> communications control block (function 0001h)
  459. Return: AX = status
  460.         0000h  successful
  461.         0001h  service not installed
  462.         0002h  invalid service ID
  463.         0098h  resource already in use
  464.         009Eh  address family does not exist
  465.         009Fh  socket type does not exist
  466.         00A0h  protocol does not exist
  467.         00A1h  no more sockets available
  468.         00A2h  no more buffer space available
  469. Note:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  470.       interrupt handler is identified by the string "BANV" in the four
  471.       bytes immediately preceding the interrupt handler
  472.  
  473. Format of control block:
  474. Offset    Size    Description
  475.  00h    WORD    0001h
  476.  02h    WORD    pointer to argument block
  477.  04h    WORD    error return code
  478.  06h  4 BYTEs    reserved
  479.  
  480. Format of argument block:
  481. Offset    Size    Description
  482.  00h    WORD    pointer to 2-byte buffer for socket identifier
  483.  02h    WORD    address family
  484.         0003h Banyan
  485.  04h    WORD    socket type
  486.         in address family 0003h
  487.             0001h IPC socket
  488.             0002h SPP socket
  489.  06h    WORD    protocol number
  490.         FFFFh default
  491.  08h    WORD    pointer to 16-byte buffer for socket address
  492.  0Ah    WORD    local port number
  493.         0000h if service should assign transient port number
  494.         0001h to 01FFh well-known port number (assigned by Banyan)
  495.  
  496. Format of IPC port:
  497. Offset    Size    Description
  498.  00h    WORD    address family (always 0003h for Banyan ports)
  499.  04h  4 BYTEs    network number (server's serial number)
  500.  06h    WORD    subnet number  (0001h = server, 8000h-FFFEh = PC)
  501.  08h    WORD    port ID (0001h-01FFh for "well-known" ports)
  502.  0Ah    BYTE    hop count
  503.  0Bh  5 BYTEs    filler
  504. ----------610001-----------------------------
  505. INT 61 - Banyan VINES - "Sosend" - INITIATE OUTPUT EVENT
  506.     AX = 0001h
  507.     DS:DX -> communications control block (function 0002h)
  508. Return: AX = status
  509.         0000h  successful
  510.         0001h  service not installed
  511.         0002h  invalid service ID
  512.         0003h-000Ah reserved for BANV interface errors
  513.         0097h  invalid socket identifier
  514.         009Bh  destination node unreachable
  515.         009Ch  message overflow
  516.         009Dh  destination socket nonexistent
  517.         00A2h  no more buffer space
  518.         00A3h  timeout
  519.         00B1h  resource disconnect
  520. Note:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  521.       interrupt handler is identified by the string "BANV" in the four
  522.       bytes immediately preceding the interrupt handler
  523.  
  524. Format of control block:
  525. Offset    Size    Description
  526.  00h    WORD    0002h
  527.  02h    WORD    pointer to argument block (see below)
  528.  04h    WORD    error return code
  529.         0000h successful
  530.         0097h invalid socket ID
  531.         00A2h no more buffer space
  532.         00A3h timeout event
  533.         00A5h resource not available
  534.         00A6h internal communication failure
  535.         00B1h resource disconnect
  536.  06h  4 BYTEs    reserved
  537.  
  538. Format of argument block:
  539. Offset    Size    Description
  540.  00h    WORD    routine metric
  541.  02h    WORD    error return code
  542.  04h    WORD    socket identifier
  543.  06h    WORD    pointer to send buffer
  544.  08h    WORD    length of send buffer
  545.  0Ah    WORD    flags
  546.         bit 0: async request
  547.             1: reliable message
  548.             3: end of user message received
  549.             4: vectored request (if set, send buffer contains buffer
  550.             descriptors)
  551.             5: connection-specific receive
  552.             6: change to connection-specific receive mode
  553.  0Ch 16 BYTEs    socket address (see below)
  554.  1Ch    WORD    timeout value in multiples of 200ms
  555.  1Eh    WORD    connection identifier
  556.  20h    WORD    type of request
  557.         0001h send message
  558.         0002h establish a virtual connection
  559.         0003h terminate a virtual connection
  560.  
  561. Format of buffer descriptor:
  562. Offset    Size    Description
  563.  00h    WORD    data segment
  564.  02h    WORD    buffer pointer
  565.  04h    WORD    buffer length
  566.  06h    WORD    character count
  567.  
  568. Format of socket address for unreliable datagrams:
  569. Offset    Size    Description
  570.  00h    WORD    0003h      address family
  571.  02h    DWORD    FFFFFFFFh network number
  572.  06h    WORD    FFFFh      subnet number
  573.  08h    WORD          local port number
  574.  0Ah    BYTE    00h-0Fh      hop count
  575.  0Bh  5 BYTEs    0000h      filler
  576. ----------610001-----------------------------
  577. INT 61 - Banyan VINES - "Sorec" - RECEIVE INPUT EVENT NOTIFICATION
  578.     AX = 0001h
  579.     DS:DX -> communications control block (function 0003h)
  580. Return: AX = status
  581.         0000h  successful
  582.         0001h  service not installed
  583.         0002h  invalid service ID
  584.         0003h-000Ah reserved for BANV interface errors
  585.         0097h  invalid socket identifier
  586.         00A2h  no more buffer space
  587.         00A3h  timeout
  588. Note:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  589.       interrupt handler is identified by the string "BANV" in the four
  590.       bytes immediately preceding the interrupt handler
  591.  
  592. Format of control block:
  593. Offset    Size    Description
  594.  00h    WORD    0003h
  595.  02h    WORD    pointer to argument block (see below)
  596.  04h    WORD    error return code
  597.         0000h successful
  598.         0097h invalid socket ID
  599.         00A2h no more buffer space
  600.         00A3h timeout event
  601.         00A5h resource not available
  602.         00A6h internal communication failure
  603.         00B1h resource disconnect
  604.  06h  4 BYTEs    reserved
  605.  
  606. Format of argument block:
  607. Offset    Size    Description
  608.  00h    WORD    character count
  609.  02h    WORD    error return code
  610.  04h    WORD    socket identifier
  611.  06h    WORD    pointer to receive buffer
  612.  08h    WORD    length of receive buffer
  613.  0Ah    WORD    flags
  614.         bit 0: async request
  615.             2: flush receive buffer on overflow
  616.             3: end of user message received
  617.             4: vectored request (if set, receive buffer contains buffer
  618.             descriptors)
  619.             5: connection-specific receive
  620.             6: change to connection-specific receive mode
  621.  0Ch 16 BYTEs    socket address
  622.  1Ch    WORD    timeout value in multiples of 200ms
  623.  1Eh    WORD    connection identifier
  624.  20h    WORD    type of response
  625.         0001h message received
  626.         0002h virtual connection established
  627.         0003h virtual connection terminated
  628.  
  629. Format of buffer descriptor:
  630. Offset    Size    Description
  631.  00h    WORD    data segment
  632.  02h    WORD    buffer pointer
  633.  04h    WORD    buffer length
  634.  06h    WORD    character count
  635. ----------610001-----------------------------
  636. INT 61 - Banyan VINES - "Soclose" - CLOSE A SOCKET
  637.     AX = 0001h
  638.     DS:DX -> communications control block (function 0004h)
  639. Return: AX = status
  640.         0000h  successful
  641.         0001h  service not installed
  642.         0002h  invalid service ID
  643.         0003h-000Ah reserved for BANV interface errors
  644.         0097h  invalid socket identifier
  645. Note:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  646.       interrupt handler is identified by the string "BANV" in the four
  647.       bytes immediately preceding the interrupt handler
  648.  
  649. Format of control block:
  650. Offset    Size    Description
  651.  00h    WORD    0004h
  652.  02h    WORD    pointer to argument block (see below)
  653.  04h    WORD    error return code
  654.  06h  4 BYTEs    reserved
  655.  
  656. Format of argument block:
  657. Offset    Size    Description
  658.  00h    WORD    socket identifier
  659. ----------610001-----------------------------
  660. INT 61 - Banyan VINES - "Sowait" - WAIT FOR ASYNCHRONOUS EVENT COMPLETION
  661.     AX = 0001h
  662.     DS:DX -> communications control block (function 0005h)
  663. Return: AX = status
  664.         0000h  successful
  665.         0001h  service not installed
  666.         0002h  invalid service ID
  667.         0003h-000Ah reserved for BANV interface errors
  668.         00A2h  no more buffer space available
  669.         00A3h  timeout event
  670. Notes:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  671.       interrupt handler is identified by the string "BANV" in the four
  672.       bytes immediately preceding the interrupt handler
  673.     returns results for all asynchronous operations invoked from the
  674.       data segment used for this call
  675.  
  676. Format of control block:
  677. Offset    Size    Description
  678.  00h    WORD    0005h
  679.  02h    WORD    pointer to argument block (see below)
  680.  04h    WORD    error return code
  681.  06h  4 BYTEs    reserved
  682.  
  683. Format of argument block:
  684. Offset    Size    Description
  685.  00h    WORD    pointer to WORD event pointer
  686.  02h    WORD    timeout in multiples of 200ms, FFFFh = infinite
  687. ----------610001-----------------------------
  688. INT 61 - Banyan VINES - "Sosession" - REGISTER APPLICATION WITH COMM SERVICE
  689.     AX = 0001h
  690.     DS:DX -> communications control block (function 0008h)
  691. Return: AX = status
  692.         0000h  successful
  693.         00A2h  no more buffer space available
  694. Note:    BANYAN can use any interrupt from 60h through 66h (default 61h).  The
  695.       Banyan interrupt handler is identified by the string "BANV" in the
  696.       four bytes immediately preceding the interrupt handler
  697.  
  698. Format of control block:
  699. Offset    Size    Description
  700.  00h    WORD    0008h
  701.  02h    WORD    process type
  702.         0001h transient process
  703.         0002h resident process
  704.  04h    WORD    error return code
  705.  06h  4 BYTEs    reserved
  706. ----------610001-----------------------------
  707. INT 61 - Banyan VINES - "Soint" - SET USER COMPLETION FUNCTION
  708.     AX = 0001h
  709.     DS:DX -> communications control block (function 000Bh)
  710. Return: AX = status
  711.         0000h  successful
  712.         0001h  service not installed
  713.         0002h  invalid service ID
  714.         0003h-000Ah reserved for BANV interface errors
  715.         00A2h  no more buffer space available
  716. Notes:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  717.       interrupt handler is identified by the string "BANV" in the four
  718.       bytes immediately preceding the interrupt handler
  719.     FAR user function is invoked with SS,DS, and ES set to segment of
  720.       control block, and with the stack containing
  721.         DWORD    return address
  722.         WORD    argument pointer (sosend or sorec argument block)
  723.         WORD    error return code
  724.             0000h argument pointer is valid
  725.             00A3h timeout
  726.  
  727. Format of control block:
  728. Offset    Size    Description
  729.  00h    WORD    000Bh
  730.  02h    WORD    pointer to argument block (see below)
  731.  04h    WORD    error return code
  732.  06h  2 BYTEs    reserved
  733.  08h    WORD    user CS register
  734.  
  735. Format of argument block:
  736. Offset    Size    Description
  737.  00h    WORD    pointer to user interrupt function    
  738.  02h    WORD    pointer to user stack
  739.  04h    WORD    initial timeout value in multiples of 200ms, FFFFh = infinite
  740. ----------610002-----------------------------
  741. INT 61 - Banyan VINES - 3270 INTERFACE
  742.     AX = 0002h
  743.     BH = function
  744.         00h "pi2reset"  reset 3270/SNA or 3270/BSC driver
  745.         02h "pi2bsc" (3270/BSC only)
  746.         03h    "pi2get"    get information stored in 3270 resident driver
  747.         04h "pi2put"    store information in 3270 resident driver
  748.         05h "pi2gcur"   get current screen position
  749.         07h "pi2sdat"   send data keystroke
  750.         08h "pi2scom"   send command keystroke
  751.         0Ah "pi2field"  get field info for arbitrary screen positions
  752.         0Fh "pi2stat"   get logical unit/device status
  753.         12h "pi2nlus"   determine logical unit/device assignment
  754.         13h "pi2gate"   specifies comm port address to gateway service
  755.         14h "pi2attach" attach a logical unit/device
  756.         15h "pi2sdev"   save logical unit/device info in resident driver
  757.                 (not supported in >3.0)
  758.         16h "pi2gdev"   get device information (not supported in >3.0)
  759.         17h "pi2luinfo" get info about specific logical unit/device
  760.         18h "pi2gerr"   get finer error detail
  761.         19h "pi2dhold"  (3270/SNA only)  holds a 3270 device
  762.         1Ah "pi2shut"   release memory-resident module
  763.         1Ch "pi2sprof"  save profile info in res driver (not supp in >3.0)
  764.         1Dh "pi2gprof"  get prevsly stored profile info (not supp in >3.0)
  765.     DS:CX -> argument block (except BH=00h,1Ah)
  766. Return: AX = status
  767.         0000h successful
  768.         000Bh invalid parameter or data does not fit data area
  769.         000Ch another code path currently active in resident driver
  770.         000Dh operation currently not allowed
  771.         0032h encountered connection disconnect error
  772.         0033h encountered "sosend" completion error
  773.         0034h encountered "sosend" communication error
  774.         0035h attach request refused.  extended error info via "pi2gerr":
  775.             01h resource unavailable
  776.             02h invalid type
  777.             03h version mismatch
  778.             04h invalid logical unit number
  779.             05h error during ARL processing
  780.             06h no access for user
  781.         0071h encountered "sosock" error
  782.         0072h encountered unrecognizable error
  783.         0073h encountered "sowait" error (extended info via "pi2gerr")
  784.         0074h encountered invalid type-of-request on "sowait"
  785.         0075h encountered "sorec" error (extended info via "pi2gerr")
  786.         0076h encountered "sorec" completion error (ext info via "pi2gerr")
  787.         0077h encountered connection request
  788.         0078h encountered unrecognizable data
  789.         0079h encountered unknown connection ID (ext info via "pi2gerr")
  790. Notes:    Either 3270/SNA or 3270/BSC interface may use AX=0002h, depending on
  791.       which is loaded first.  The other interface will use AX=000Ah
  792.     Status codes greater than 63h indicate an inconsistency in the 3270/SNA
  793.       or 3270/BSC resident driver, which must be reloaded by the user
  794.  
  795. Format of argument block for BH=03h,04h:
  796. Offset    Size    Description
  797.  00h    WORD    size of data area (max 256)
  798.  02h  N BYTEs    data area
  799.  
  800. Format of argument block for BH=05h:
  801. Offset    Size    Description
  802.  00h    WORD    logical unit/device number
  803.  02h    WORD    pointer to WORD buffer for cursor index
  804.  04h    WORD    pointer to BYTE buffer for current field attribute
  805.  
  806. Format of argument block for BH=07h:
  807. Offset    Size    Description
  808.  00h    WORD    logical unit/device number
  809.  02h    WORD    ASCII data byte
  810.  04h    WORD    pointer to WORD count of characters which will need updating
  811.  
  812. Format of argument block for BH=08h:
  813. Offset    Size    Description
  814.  00h    WORD    logical unit/device number
  815.  02h    WORD    keystroke
  816.         0000h Enter
  817.         0001h Clear
  818.         0002h PA1
  819.         0003h PA2
  820.         0004h PA3
  821.         0005h PF1
  822.         ...
  823.         001Ch PF24
  824.         001Dh CSELECT (cursor select)
  825.         001Eh Insert
  826.         001Fh Delete
  827.         0020h EOField
  828.         0021h EINPUT (erase input)
  829.         0022h Reset
  830.         0023h Attention
  831.         0024h SysReq
  832.         0025h Duplicate
  833.         0026h Fieldmark
  834.         0027h Home
  835.         0028h NextLine
  836.         0029h Tab
  837.         002Ah BackTab
  838.         002Bh cursor up
  839.         002Ch cursor down
  840.         002Dh cursor right
  841.         002Eh cursor left
  842.         002Fh double cursor right
  843.         0030h double cursor left
  844.         0031h PRINT
  845.         0032h CANCEL
  846.         0033h Backspace
  847.  
  848. Format of argument block for BH=0Ah:
  849. Offset    Size    Description
  850.  00h    WORD    logical unit/device number
  851.  02h    WORD    screen index
  852.  04h    WORD    pointer to WORD buffer for field length
  853.  06h    WORD    pointer to WORD buffer for offset in screen of field start
  854.  
  855. Format of argument block for BH=0Fh:
  856. Offset    Size    Description
  857.  00h    WORD    logical unit/device number
  858.  02h    WORD    clear mask (clear these bits of status after returning status)
  859.  04h    WORD    pointer to WORD buffer for status
  860.         bit 10: status modified
  861.         bit  9: buffer modified
  862.         bit  8: set cursor
  863.         bit  5: sound alarm
  864.         bits 0,1: size of print line for printer logical units
  865.             00 unformatted line
  866.             01 40-character line
  867.             10 64-character line
  868.             11 80-character line
  869.  
  870. Format of argument block for BH=12h:
  871. Offset    Size    Description
  872.  00h    WORD    pointer to WORD buffer for number of logical units or devices
  873.  02h    WORD    pointer to WORD buffer for version number
  874.  04h    WORD    pointer to 64-byte buffer for logical unit/device list
  875.  
  876. Format of argument block for BH=13h:
  877. Offset    Size    Description
  878.  00h 16 BYTEs    communications port address (see AX=0001h#"Sosock")
  879.  
  880. Format of argument block for BH=14h:
  881. Offset    Size    Description
  882.  00h    WORD    logical unit/device number 
  883.         0000h attach any free device of the specified type
  884.  02h    WORD    logical unit/device type
  885.         (3270/SNA) 01h, 02h, or 03h
  886.         (3270/BSC) 02h display
  887.         (3270/BSC) 03h printer
  888.  04h    WORD    pointer to WORD buffer for attached logical unit/device number
  889.  
  890. Format of argument block for BH=16h:
  891. Offset    Size    Description
  892.  00h    WORD    pointer to 18-byte buffer for device block (see below)
  893.         first WORD must be set to desired logical unit/device number
  894.  
  895. Format of argument block for BH=17h:
  896. Offset    Size    Description
  897.  00h    WORD    logical unit/device number
  898.  02h    WORD    pointer to information block in caller's DS (see below)
  899.  
  900. Format of argument block for BH=18h:
  901. Offset    Size    Description
  902.  00h    WORD    pointer to WORD buffer for major error code
  903.  02h    WORD    pointer to WORD buffer for minor error code
  904.  
  905. Format of argument block for BH=19h:
  906. Offset    Size    Description
  907.  00h    WORD    logical unit/device number
  908.  
  909. Format of argument block for BH=1Ch,1Dh:
  910. Offset    Size    Description
  911.  00h    WORD    pointer to profile block in caller's DS (see below)
  912.  
  913. Format of device block, argument block for BH=15h:
  914. Offset    Size    Description
  915.  00h    WORD    logical unit/device number
  916.  02h    WORD    logical unit/device type
  917.  04h    WORD    display model number
  918.  06h    WORD    numeric checking
  919.  08h    WORD    status line
  920.  0Ah    BYTE    unprotected normal field attribute
  921.  0Bh    BYTE    unprotected intensified field attribute
  922.  0Ch    BYTE    protected normal field attribute
  923.  0Dh    BYTE    protected intensified field attribute
  924.  0Eh    WORD    reserved
  925.  10h    WORD    printer port number
  926.  
  927. Format of information block:
  928. Offset    Size    Description
  929.  00h    WORD    device model number
  930.  02h    DWORD    screen buffer pointer
  931.  06h    DWORD    status line pointer (see below)
  932.  0Ah    DWORD    reserved
  933.  
  934. Format of status line:
  935. Offset    Size    Description
  936.  00h    BYTE    comm line status
  937.         00h inactive
  938.         01h active
  939.  01h    BYTE    activation level
  940.         01h physical unit activated
  941.         02h logical unit also activated
  942.         03h session is bound
  943.  02h    BYTE    data traffic state
  944.         00h inactive
  945.         01h active
  946.  03h    BYTE    screen ownership
  947.         00h SLU->PLU sessoin owns screen
  948.         01h SLU->SSCP session owns screen
  949.  04h    BYTE    keyboard status
  950.         00h UNLOCK - ready to accept data
  951.         01h TIME - aid was struck
  952.         02h SYSTEM - received response no restore
  953.         03h FUNCTION - unavailable keyboard function
  954.         04h INPUT - not currently used
  955.         05h ENDFIELD - field filled in insert mode
  956.         06h PROTECTED - attempt to enter in protected field
  957.         07h NUMERIC - attempt to enter in numeric field
  958.         08h PROGRAM - error in outbound data stream
  959.  05h    BYTE    insert mode
  960.         01h if in insert mode
  961.  06h    BYTE    numeric
  962.         01h if current screen buffer is numeric only
  963.  07h    BYTE    printer status
  964.         00h printer not assigned
  965.         01h printer is inactive
  966.         02h printer error
  967.         03h currently printing
  968.         04h printer is busy
  969.         05h printer is very busy
  970.  08h    BYTE    printer assignment
  971.  09h    BYTE    maximum size of network name
  972.  0Ah  N BYTEs    ASCIZ network name
  973.     BYTE    maximum size of message window
  974.       M BYTEs    null-terminated message window
  975.     BYTE    code set
  976.         00h EBCDIC
  977.         01h ASCII
  978.       M BYTEs    extended attributes
  979.         01h extended attributes are in effect (stored at screen+1920)
  980.             each extended attribute specifies
  981.             bits 0,1: 00=normal, 01=blink, 10=reverse, 11=underscor
  982.             bits 2-4: 000=default,001=blue,010=red,011=pink,
  983.                   100=green,101=turquoise,110=yellow,111=white
  984.     BYTE    extended color
  985.         01h other than base color is in effect
  986.  
  987. Format of profile block:
  988. Offset    Size    Description
  989.  00h 64 BYTEs    gateway service name
  990.  40h 16 BYTEs    gateway comm port address
  991.  50h    WORD    primary logical unit number
  992.  52h    WORD    secondary logical unit type
  993.  54h    WORD    secondary logical unit number
  994.  56h    WORD    printer assignment
  995.  58h 50 BYTEs    keyboard definitions filename
  996. ----------610003-----------------------------
  997. INT 61 - Banyan VINES - ASYNCHRONOUS TERMINAL EMULATION
  998.     AX = 0003h
  999.     DS:BX -> argument block with function number (see below)
  1000. Return: AX = status
  1001.         0000h successful
  1002.         000Bh invalid session ID
  1003.         000Ch session not active
  1004.         000Dh invalid request type
  1005.         000Eh invalid parameters
  1006.         000Fh out of heap space
  1007.         0010h timeout on send
  1008.         0011h Banyan communications error
  1009.         0012h session not waiting for host
  1010.         0013h session is active
  1011.         0014h duplicate suspend session request
  1012.         0015h no session suspended
  1013.         0016h ring data buffer full
  1014.         0017h printer error encountered
  1015.         0018h Banyan communications error
  1016.         0019h unable to make connection
  1017.         001Ah no ring buffer specified at startup
  1018.         001Bh service is down
  1019.         001Ch invalid service name
  1020.         001Dh service is closed
  1021.         001Eh invalid connection name
  1022.         001Fh max session limit reached for service
  1023.         0020h access rights list for connection/dialout does not include
  1024.             this user
  1025.         0021h service not responding
  1026.         0022h missing telephone number
  1027.  
  1028. Format of argument block:
  1029. Offset    Size    Description
  1030.  00h    BYTE    session ID (00h)
  1031.  01h    BYTE    asynchronous interface request number
  1032.         00h initialize user buffer pointer information area
  1033.         01h send to host
  1034.         02h "control monitor"
  1035.         03h "flow control data": freeze/unfreeze display, ring buffer
  1036.         04h end active session
  1037.         05h set session parameter
  1038.         06h get session parameter
  1039.         07h set tab settings
  1040.         08h get tab settings
  1041.         09h refresh emulation screen
  1042.         0Ah suspend session temporarily
  1043.         0Bh restore previously suspended session
  1044.         0Ch set state of scroll lock checking
  1045.         0Dh exit emulation
  1046.         0Eh interrupt on character from host
  1047.         0Fh start a session
  1048.         10h start/stop printing of data received from host
  1049.         11h get file transfer parameters
  1050.         12h get connection information
  1051.         13h start/stop tracing data traffic in session
  1052.         14h interrupt on message from host
  1053.         15h reset error
  1054. ---request=00h---
  1055.  02h    WORD    pointer to info area in caller's current DS
  1056.         Offset    Size    Description
  1057.          00h    WORD    flags
  1058.                 0000h don't read interface's data buffer
  1059.                 0001h read data buffer
  1060.          02h    DWORD    pointer to ring buffer
  1061.          06h    WORD    length of ring buffer
  1062.          08h    WORD    ring buffer offset to last byte read by caller
  1063.          0Ah    DWORD    pointer to WORD containing offset of last byte
  1064.                   in ring buffer filled
  1065.          0Eh    DWORD    pointer to screen buffer
  1066.          12h    DWORD    pointer to field containing cursor position
  1067.          16h    DWORD    pointer to terminal status area (see below)
  1068. ---request=01h---
  1069.  02h    BYTE    type
  1070.         00h ASCII byte
  1071.         01h ASCII string
  1072.         02h terminal function code
  1073.         03h up arrow
  1074.         04h down arrow
  1075.         05h left arrow
  1076.         06h right arrow
  1077.         07h break
  1078.  03h  N BYTEs    type-specific info
  1079.         Offset    Size    Description
  1080.         ---ASCII byte---
  1081.          03h    BYTE    byte to send to host
  1082.         ---ASCII string---
  1083.          03h    WORD    length of string
  1084.          05h    WORD    pointer to string
  1085.         ---terminal function code (VT52/VT100)---
  1086.          03h    BYTE    function code
  1087.                 00h keypad 0
  1088.                 01h keypad 1
  1089.                 ...
  1090.                 09h keypad 9
  1091.                 0Ah keypad -
  1092.                 0Bh keypad ,
  1093.                 0Ch keypad .
  1094.                 0Dh keypad ENTER
  1095.                 0Eh PF1
  1096.                 0Fh PF2
  1097.                 10h PF3
  1098.                 11h PF4
  1099.         ---terminal function code (IBM3101)---
  1100.          03h    BYTE    function code
  1101.                 00h PF1
  1102.                 ...
  1103.                 07h PF8
  1104.                 08h Home
  1105. ---request=02h---
  1106.  02h    BYTE    display flag
  1107.         00h don't display data received from host
  1108.         01h display data
  1109. ---request=03h---
  1110.  02h    BYTE    flow control flag
  1111.         00h allow characters to be put into display or ring buffer
  1112.         01h don't place any more characters into display or ring buffer
  1113. ---request=05h,06h---
  1114.  02h    BYTE    parameter number
  1115.         00h line speed (00h=any, 01h=50, 02h=110, 03h=134.5, 04h=150,
  1116.             05h=300,06h=600,07h=1200,08h=2400,09h=4800, 0Ah=9600)
  1117.         01h parity (00h=none, 01h=odd, 02h=even)
  1118.         02h duplex (00h=full, 01h=half)
  1119.         03h character size (00h=7 bits, 01h=8 bits)
  1120.         04h stop bits (00h=1, 01h=2)
  1121.         05h XON/XOFF flow control (00h=no, 01h=yes)
  1122.         07h intercharacter delay in tenths of a second
  1123.         08h interline delay in tenths of a second
  1124.         09h auto linefeed (00h=no, 01h=yes)
  1125.         0Ah filter control characters (00h=no, 01h=yes)
  1126.         0Bh terminal type (00h=VT100,01h=glassTTY,02h=VT52,03h=IBM3101)
  1127.         0Ch auto wrap (00h=no, 01h=yes)
  1128.         0Dh cursor shape (00h=underscore, 01h=block)
  1129.         0Eh character set (00h=UK, 01h=US ASCII)
  1130.         0Fh printer port (00h=LPT1, 01h=LPT2, 02h=LPT3)
  1131.  03h    BYTE    parameter value (returned for 06h)
  1132. ---request=07h,08h---
  1133.  02h    WORD    pointer to 80-byte buffer in caller's current DS
  1134.           each byte = 00h if no tab, 01h if tab at that position
  1135. ---request=0Ah---
  1136.  02h    WORD    size of session information to be saved
  1137.  04h    WORD    pointer to buffer in caller's DS
  1138. ---request=0Bh---
  1139.  02h    WORD    size of buffer into which session info is restored
  1140.  04h    WORD    pointer to buffer in caller's DS
  1141. ---request=0Ch---
  1142.  02h    BYTE    check_scroll_lock flag
  1143.         00h off
  1144.         01h on (display of host data stopped while ScrollLock on)
  1145. ---request=0Eh,14h---
  1146.  02h    DWORD    pointer to routine to be called (0000h:0000h = don't call)
  1147.  06h    DWORD    stack pointer to use when call is made
  1148. ---request=0Fh---
  1149.  02h    WORD    pointer to information area in caller's current DS
  1150.         Offset    Size    Description
  1151.          00h    WORD    length of service name
  1152.          02h    WORD    pointer to service name in caller's DS
  1153.          04h    BYTE    type of connection
  1154.                 (00h=connection name, 01h=dialout)
  1155.          05h    WORD    length of connection name/telephone number
  1156.          07h    WORD    pointer to connection name/telephone number
  1157. ---request=10h---
  1158.  02h    WORD    print capture flag (00h=off, 01h=on)
  1159. ---request=11h---
  1160.  02h    WORD    pointer to info area in caller's current DS
  1161.         Offset    Size    Description
  1162.          00h    BYTE    protocol flag (00h none, 01h Kermit)
  1163.          01h    BYTE    direction flag (00h send, 01h receive)
  1164.          02h    BYTE    length of null-terminated PC filename
  1165.          03h    DWORD    pointer to null-terminated PC filename
  1166.          07h    BYTE    length of null-terminated host filename
  1167.          08h    DWORD    pointer to null-terminated host filename
  1168. ---request=12h---
  1169.  02h    WORD    pointer to info area in caller's current DS (see below)
  1170.         Offset    Size    Description
  1171.          00h    WORD    length of service name (returned)
  1172.          02h    WORD    pointer to 64-byte buffer for service name
  1173.          04h    BYTE    type of connection
  1174.                 00h connection name
  1175.                 01h dialout
  1176.          05h    WORD    length of connection name/telephone number
  1177.          07h    WORD    pointer to 64-byte buffer for name/telno
  1178.          09h    BYTE    server line number being used (returned)
  1179. ---request=13h---
  1180.  02h    BYTE    trace flag (00h=off, 01h=on)
  1181.  
  1182. Format of terminal status area:
  1183. Offset    Size    Description
  1184.  00h    BYTE    status of session: 4Eh=oNline, 46h=oFfline, 57h=Waiting
  1185.  01h    BYTE    terminal type (00h=VT100, 01h=TTY, 02h=VT52, 03h=IBM3101)
  1186.  02h    BYTE    current keypad mode (VT100,VT52 only)
  1187.         4Eh ("N") numeric mode
  1188.         41h ("A") application mode
  1189.  03h  4 BYTEs    current state of LEDs (VT100 only)
  1190.         00h off
  1191.         01h on
  1192.  07h    WORD    line error count
  1193.  09h    WORD    primary error code
  1194.         0000h no error
  1195.         0001h unable to make connection
  1196.         0002h communications error, restart session
  1197.         0003h async terminal emulation service unavailable
  1198.         0004h lost carrier
  1199.         0005h all matching lines busy
  1200.         0006h no lines defined for connection name
  1201.         0007h no dial lines available on server
  1202.         0008h no matching dial lines available
  1203.         0009h out of heap space
  1204.         000Ah service error encountered
  1205.         000Bh timed out waiting to connect
  1206.         000Ch communications error
  1207.         000Dh communications error
  1208.         000Eh host want file transferred to/from PC
  1209.         000Fh host software changed session parameter
  1210.         0010h host software changed tap settings
  1211.         0011h host software changed LED indicator
  1212.         0012h host software changed display background (secondary error
  1213.             code 00h for white on black, 01h for black on white)
  1214.         0013h host software changed display option (secondary error
  1215.             code 00h for off, 01h for on)
  1216.         0014h communications error
  1217.         0015h communications error
  1218.         0016h unable to make connection
  1219.         0017h unable to make connection
  1220.  0Bh    WORD    secondary error code
  1221. ----------610004-----------------------------
  1222. INT 61 - Banyan VINES - GET SERVER SERIAL NUMBER
  1223.     AX = 0004h
  1224.     DS:DX -> request block (function 0008h)
  1225. Return: AX = status
  1226.         0000h server ID returned in request block
  1227.         000Fh invalid drive
  1228.         0015h drive not ready
  1229.  
  1230. Format of request block:
  1231. Offset    Size    Description
  1232.  00h    WORD    0008h
  1233.  02h    WORD    drive number (0=default, 1=A, ...)
  1234.  04h  6 BYTEs    buffer for server ID
  1235. ----------610005-----------------------------
  1236. INT 61 - Banyan VINES - PRINTER CONTROL
  1237.     AX = 0005h
  1238.     DS:DX -> request block
  1239. Return: AX = status
  1240.         0000h successful
  1241.         0001h network software not installed or incompatible
  1242.  
  1243. Format of request block:
  1244. Offset    Size    Description
  1245.  00h    WORD    function
  1246.         0201h "endspool" all data for a print job has been sent
  1247.         0205h "getactive" get currently active printer port
  1248.  02h    WORD    number of active port (1-3)
  1249.  04h    WORD    ??? (0 for func 0201h, 3 for func 0205h)
  1250.  06h    WORD    0000h
  1251. ----------610007-----------------------------
  1252. INT 61 - Banyan VINES - GET PORTS FOR A SERVICE
  1253.     AX = 0007h
  1254.     BX = 0002h
  1255.     DS:DX -> StreetTalk service name
  1256.     DS:DI -> port record block (see below)
  1257. Return: AX = status
  1258.         0000h successful
  1259.         0001h PC network software not installed or incompatible
  1260.         03E9h incorrect name syntax
  1261.         03EAh organization name too long
  1262.         03EBh group name too long
  1263.         03ECh item name too long
  1264.         03EDh StreetTalk name too long
  1265.         03F3h organization not found
  1266.         03F4h group not found
  1267.         03F5h StreetTalk name not found
  1268.         03F8h not a StreetTalk name
  1269.         040Dh appropriate StreetTalk name unavailable
  1270.  
  1271. Format of port record block:
  1272. Offset    Size    Description
  1273.  00h    WORD    number of 17-byte elements
  1274.  02h 17 BYTEs    element (byte 00h = input port type, bytes 01h-10h = port)
  1275.         (see AX=0001h#"Sosock" for port format)
  1276. ----------610007-----------------------------
  1277. INT 61 - Banyan VINES - VERIFY EXISTENCE OF NAME AND RETURN CANONICAL FORM
  1278.     AX = 0007h
  1279.     BX = 0004h
  1280.     DS:DX -> StreetTalk name of service
  1281.     DS:DI -> port record block (see below)
  1282. Return: AX = status
  1283.         0000h successful
  1284.         0001h PC network software not installed or incompatible
  1285.         03E9h incorrect name syntax
  1286.         03EAh organization name too long
  1287.         03EBh group name too long
  1288.         03ECh item name too long
  1289.         03EDh StreetTalk name too long
  1290.         03F3h organization not found
  1291.         03F4h group not found
  1292.         03F5h StreetTalk name not found
  1293.         03F8h not a StreetTalk name
  1294.         0409h modify access denied
  1295.         040Dh appropriate StreetTalk name unavailable
  1296.  
  1297. Format of port record block:
  1298. Offset    Size    Description
  1299.  00h    WORD    number of 17-byte elements
  1300.  02h 17 BYTEs    element: byte 00h = input port type, 01h-10h = port
  1301.         (see AX=0001h#"Sosock" for port format)
  1302. ----------610007-----------------------------
  1303. INT 61 - Banyan VINES - GET USER NAME
  1304.     AX = 0007h
  1305.     BX = 0005h
  1306.     DS:DX -> 64-byte buffer for user's StreetTalk name
  1307. Return: AX = status
  1308.         0000h successful
  1309.         0001h network software not installed or incompatible
  1310. Note:    if no user logged in, first byte of returned name will be 00h
  1311. ----------610007-----------------------------
  1312. INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING
  1313.     AX = 0007h
  1314.     BX = 0006h
  1315.     SI = error code (>100)
  1316.     DS:DX -> 80-byte buffer for error text
  1317. Return: AX = status
  1318.         0000h successful
  1319.         0001h network software not installed or incompatible        
  1320. ----------610007-----------------------------
  1321. INT 61 - Banyan VINES - VERIFY EXISTENCE OF NAME AND RETURN CANONICAL FORM
  1322.     AX = 0007h
  1323.     BX = 0007h
  1324.     DS:DX -> NiceName block (see below)
  1325. Return: AX = status
  1326.         0000h successful
  1327.         0001h PC network software not installed or incompatible
  1328.         03E9h incorrect name syntax
  1329.         03EAh organization name too long
  1330.         03EBh group name too long
  1331.         03ECh item name too long
  1332.         03EDh StreetTalk name too long
  1333.         03F3h organization not found
  1334.         03F4h group not found
  1335.         03F5h StreetTalk name not found
  1336.         03F8h not a StreetTalk name
  1337.         040Dh appropriate StreetTalk name unavailable
  1338. SeeAlso: AX=0007h/BX=0008h
  1339.  
  1340. Format of NiceName block:
  1341. Offset    Size    Description
  1342.  00h    WORD    type of name
  1343.         0064h organization
  1344.         00C8h group
  1345.         012Ch item
  1346.  02h    WORD    pointer to ASCIZ input name
  1347.  04h    WORD    pointer to 64-byte buffer for output name
  1348. ----------610007-----------------------------
  1349. INT 61 - Banyan VINES - ENUMERATE StreetTalk NAMES
  1350.     AX = 0007h
  1351.     BX = 0008h
  1352.     DS:DX -> enumerate block (see below)
  1353. Return: AX = status
  1354.         0000h successful
  1355.         0411h all matching names have been returned
  1356.         0412h some groups unavailable, all available matches returned
  1357. Note:    each program using this call should continue until a nonzero status
  1358.       is returned; otherwise, some resources will not be freed for several
  1359.       hours
  1360. SeeAlso: AX=0007h/BX=0007h
  1361.  
  1362. Format of enumerate block:
  1363. Offset    Size    Description
  1364.  00h    WORD    return code
  1365.  02h    WORD    pointer to pattern string
  1366.  04h    WORD    enumerate type
  1367.         0064h organization
  1368.         00C8h group
  1369.         012Ch item
  1370.  06h    WORD    enumerate class
  1371.         0000h unspecified (return all matching items)
  1372.         0001h user names
  1373.         0002h service names
  1374.         0003h list names
  1375.         0004h nicknames
  1376.  08h    WORD    pointer to category criteria block (see below) or 0
  1377.  0Ah    WORD    pointer to array of 64-byte returned names
  1378.  0Ch    WORD    number of names returned
  1379.  0Eh  6 BYTEs    reserved for subsequent enumerated calls (set to zeros on first
  1380.           call)
  1381.  
  1382. Format of category criteria block:
  1383. Offset    Size    Description
  1384.  00h    WORD    exclude flag
  1385.         0000h return only items with the specified categories
  1386.         0001h return all items except those with the given categories
  1387.  02h    WORD    number of categories
  1388.  04h    WORD    category 1 value
  1389.  06h    WORD    category 2 value
  1390.         ...
  1391.  
  1392. Values for common service categories:
  1393.  0002h file service
  1394.  0003h print service
  1395.  0004h mail service
  1396.  0005h StreetTalk
  1397.  0006h time service
  1398.  0008h semaphore service
  1399.  0009h 3270/SNA service
  1400.  000Ah asynchronous terminal emulation service
  1401.  000Ch NETBIOS service
  1402.  000Dh PC-based service
  1403. ----------610008-----------------------------
  1404. INT 61 - Banyan VINES - POST MESSAGE ON LOCAL DISPLAY
  1405.     AX = 0008h
  1406.     BX = 0002h
  1407.     CX = flags
  1408.         bit 0: message will remain on screen until user presses ^X
  1409.         bit 1: ring bell after displaying message
  1410.         bit 2: blink
  1411.     DS:DX -> ASCIZ string to display (only first 80 chars used)
  1412. Return: AX = status
  1413.         0000h successful
  1414.         000Bh message display function currently busy
  1415.         000Ch message queue full
  1416. Note:    queues up to three messages to be displayed on the bottom line
  1417. ----------610008-----------------------------
  1418. INT 61 - Banyan VINES - INTERCEPT VINES 25th-LINE MESSAGES AT LOCAL PC
  1419.     AX = 0008h
  1420.     BX = 0003h
  1421.     DS:DX -> request block
  1422. Return: AX = status
  1423.         0000h successful
  1424.         0001h network software not installed or incompatible
  1425. Notes:    message handler should not call BIOS or DOS functions, and should
  1426.       either call next handler or simply return
  1427.     to stop intercepting messages, set prev and next request blocks to
  1428.       point at each other
  1429.  
  1430. Format of request block:
  1431. Offset    Size    Description
  1432.  00h    DWORD    pointer to user-written message handler
  1433.  04h    DWORD    pointer to next request block (filled in by VINES)
  1434.  08h    DWORD    pointer to previous request block (filled in by VINES)
  1435.  0Ch    DWORD    pointer to message storage area (filled by VINES) (see below)
  1436.  
  1437. Format of message storage area:
  1438. Offset    Size    Description
  1439.  00h 16 BYTEs    IPC port of message sender (see AX=0001h#"Sosock")
  1440.  10h    BYTE    message flags
  1441.  11h    WORD    reserved
  1442.  13h    BYTE    length of message
  1443.  14h 80 BYTEs    message text
  1444. ----------61000A-----------------------------
  1445. INT 61 - Banyan VINES - SECONDARY 3270 INTERFACE
  1446.     AX = 000Ah
  1447. Notes:    either 3270/SNA or 3270/BSC interface will use AX=000Ah, depending on
  1448.       which is loaded second.  The first interface loaded will use AX=0002h
  1449. SeeAlso: INT 61/AX=0002h
  1450. ----------6101-------------------------------
  1451. INT 61 - Banyan VINES - CHECK SERVICE
  1452.     AH = 01h
  1453.     AL = service ID
  1454.         01h communications
  1455.         02h primary 3270 emulation
  1456.         03h async terminal emulation
  1457.         04h file deflectoin
  1458.         07h StreetTalk
  1459.         08h environment
  1460.         0Ah secondary 3270 emulation
  1461.         0Bh semaphore service
  1462.         0Ch 3270 emulation active status
  1463.         0Dh 3270 keyboard interrupt simulator
  1464. Return: AX = status
  1465.         0000h installed
  1466.         0001h not installed
  1467.         0002h invalid ID
  1468. ----------6102-------------------------------
  1469. INT 61 - Banyan VINES - GET REVISION NUMBER
  1470.     AH = 02h
  1471.     DS:DX -> 2-byte buffer for result
  1472. Return: AX = 0000h installed
  1473.         DS:DX buffer contains revision number as
  1474.         10000d * major_ver + 100d * minor_ver + patch_revision
  1475. ----------61---------------------------------
  1476. INT 61 - Sangoma CCIP (CCPOP 3270 resident module) INTERFACE
  1477.     BX:DX -> control block
  1478. ----------62---------------------------------
  1479. INT 62 - reserved for user interrupt
  1480. ----------62---------------------------------
  1481. INT 62 - Adaptec and OMTI controllers - DRIVE 0 DATA
  1482. SeeAlso: INT 61"Adaptec"
  1483. ----------6201-------------------------------
  1484. INT 62 - Cswitch - GIVE UP REST OF TIME-SLICE
  1485.     AH = 01h
  1486. Note:    Cswitch is a set of multitasking functions by Herb Rose
  1487. SeeAlso: AH=05h,AH=06h
  1488. ----------6202-------------------------------
  1489. INT 62 - Cswitch - WAIT FOR SEMAPHORE
  1490.     AH = 02h
  1491.     DX = semaphore number (0-63)
  1492. Return: AX = FFFFh bad semaphore number
  1493.          else  success
  1494. SeeAlso: AH=03h,AH=04h
  1495. ----------6203-------------------------------
  1496. INT 62 - Cswitch - CHECK SEMAPHORE
  1497.     AH = 03h
  1498.     DX = semaphore number (0-63)
  1499. Return: AX = FFFFh not owned
  1500.          else  owned
  1501. SeeAlso: AH=02h,AH=04h
  1502. ----------6204-------------------------------
  1503. INT 62 - Cswitch - TRIGGER SEMAPHORE
  1504.     AH = 04h
  1505.     DX = semaphore number (0-63)
  1506. Return: AX = FFFFh bad semaphore number
  1507.          else  success
  1508. SeeAlso: AH=02h,AH=03h
  1509. ----------6205-------------------------------
  1510. INT 62 - Cswitch - SLEEP
  1511.     AH = 05h
  1512.     BX = seconds to sleep
  1513. SeeAlso: AH=01h,AH=06h,AH=08h
  1514. ----------6206-------------------------------
  1515. INT 62 - Cswitch - SUSPEND
  1516.     AH = 06h
  1517. SeeAlso: AH=05h,AH=08h
  1518. ----------6207-------------------------------
  1519. INT 62 - Cswitch - SPAWN
  1520.     AH = 07h
  1521.     ES:BX -> function address to start executing at
  1522.     CX = priority (1-10)
  1523. Return: AX = FFFDh  no free memory control blocks
  1524.        = FFFEh  no free task control blocks
  1525.        = FFFFh  not enough memory to create new task stack
  1526.        = >0     the tcb number of the new task, indicating no error
  1527. SeeAlso: AH=0Fh,AH=10h
  1528. ----------6208-------------------------------
  1529. INT 62 - Cswitch - WAKE UP TASK
  1530.     AH = 08h
  1531.     BX = tcb identifier
  1532. SeeAlso: AH=05h,AH=06h
  1533. ----------6209-------------------------------
  1534. INT 62 - Cswitch - SET PRIORITY
  1535.     AH = 09h
  1536.     BX = new base priority (1-10)
  1537. Note:    the lower the priority is numerically, the more often the task will run
  1538. ----------620A-------------------------------
  1539. INT 62 - Cswitch - TEST MESSAGE QUEUE
  1540.     AH = 0Ah
  1541.     DX = queue number (0-63)
  1542. Return: AX = FFFFh bad queue number
  1543.        = 0000h nothing on queue
  1544.          else  number of bytes in first message in queue
  1545. SeeAlso: AH=0Bh,AH=0Ch
  1546. ----------620B-------------------------------
  1547. INT 62 - Cswitch - SEND MESSAGE
  1548.     AH = 0Bh
  1549.     CX = number of bytes to write
  1550.     DS:SI -> buffer
  1551.     DX = queue number (0-63)
  1552. Return: AX = FFFEh triggered by something arriving, redo the call
  1553.        = FFFFh bad queue number
  1554.        = 0000h no message was on queue
  1555.          else  number of bytes in message
  1556. SeeAlso: AH=0Ah,AH=0Ch
  1557. ----------620C-------------------------------
  1558. INT 62 - Cswitch - READ MESSAGE
  1559.     AH = 0Ch
  1560.     CX = number of bytes to read
  1561.     DS:SI -> buffer
  1562.     DX = queue number (0-63)
  1563. Return: AX = FFFFh bad queue number
  1564.          else  number of bytes transferred
  1565. SeeAlso: AH=0Ah,AH=0Bh
  1566. ----------620D-------------------------------
  1567. INT 62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT
  1568.     AH = 0Dh
  1569. SeeAlso: AH=0Eh
  1570. ----------620E-------------------------------
  1571. INT 62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT
  1572.     AH = 0Eh
  1573. SeeAlso: AH=0Dh
  1574. ----------620F-------------------------------
  1575. INT 62 - Cswitch - LOAD AND RUN PROGRAM FROM DISK
  1576.     AH = 0Fh
  1577.     ES:BX -> command line
  1578.     CX = priority (1-10)
  1579.     DX = background flag
  1580.        = != 0000h  allows loading to EMS
  1581. Return: AX = 0000h task loader queue is full
  1582.        = 0001h  no error
  1583. SeeAlso: AH=07h,AH=10h,AH=13h
  1584. ----------6210-------------------------------
  1585. INT 62 - Cswitch - TERMINATE SPAWNED PROGRAM
  1586.     AH = 10h
  1587. SeeAlso: AH=07h,AH=0Fh
  1588. ----------6211-------------------------------
  1589. INT 62 - Cswitch - GET TCB INFORMATION
  1590.     AH = 11h
  1591.     ES:BX -> a pointer which will be set to the tcb address
  1592. Return: AX = tcb indentifier
  1593. SeeAlso: AH=12h
  1594. ----------6212-------------------------------
  1595. INT 62 - Cswitch - GET TCB ADDRESS
  1596.     AH = 12h
  1597.     ES:BX -> a pointer which will be set to the tcb table address
  1598. Return: AX = tcb indentifier
  1599. SeeAlso: AH=11h
  1600. ----------6213-------------------------------
  1601. INT 62 - Cswitch - CHECK STATUS OF PREVIOUS LOAD_TASK
  1602.     AH = 13h
  1603. Return: AX = FFFCh no Memory Control Blocks available
  1604.        = FFFDh no TCBs available
  1605.        = FFFEh insufficient memory
  1606.        = FFFFh cannot open file
  1607.        = 0000h load in progress (not done yet)
  1608.          else  tcb indentifier
  1609. SeeAlso: AH=0Fh
  1610. ----------63---------------------------------
  1611. INT 63 - reserved for user interrupt
  1612. ----------63---------------------------------
  1613. INT 63 - Adaptec and OMTI controllers - DRIVE 0 DATA
  1614. SeeAlso: INT 62"Adaptec"
  1615. ----------63---------------------------------
  1616. INT 63 - Oracle SQL Protected Mode Executive - ???
  1617. ----------63---------------------------------
  1618. INT 63 - 4+Power FLOPPY CONTROLLER - ORIGINAL INT 13/40
  1619.    the "4+Power" quad floppy controller BIOS hooks INT 13 (or INT 40 if INT 13
  1620.    has been moved there) and places the old value here
  1621. ----------64---------------------------------
  1622. INT 64 - reserved for user interrupt
  1623. ----------64---------------------------------
  1624. INT 64 - Adaptec controllers - DRIVE 1 DATA
  1625. SeeAlso: INT 60"Adaptec"
  1626. ----------64---------------------------------
  1627. INT 64 - Oracle SQL Protected Mode Executive - ???
  1628. ----------64---------------------------------
  1629. INT 64 - Novell NetWare to v2.0a - LOW-LEVEL API
  1630. Note:    equivalent to INT 7A for NetWare versions through 2.0a only; later
  1631.       versions do not use this interrupt for IPX/SPX access, instead
  1632.       getting an entry point from INT 2F/AX=7A00h
  1633. SeeAlso: INT 2F/AX=7A00h,INT 7A"Novell"
  1634. ----------64---------------------------------
  1635. INT 64 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
  1636. ----------64---------------------------------
  1637. INT 64 - Extended Batch Language v3.14+
  1638.     AH = function
  1639.         00h to 5Fh chained to previous handler
  1640.         60h to 6Dh reserved, return immediately
  1641.         80h to FFh chained to previous handler
  1642.         6Eh clear ??? counter/flag
  1643.         6Fh return counter/flag that AH=6Eh clears
  1644.         70h ???
  1645.         AL = ???
  1646.         71h ???
  1647.         AL = ???
  1648.         72h ???
  1649.         73h insert byte at end of keyboard buffer
  1650.         AL = byte to insert
  1651.         74h insert byte at front of keyboard buffer
  1652.         AL = byte to insert
  1653.         75h ???
  1654.         76h get keyboard "stack" status
  1655.         AL = 'K' if kbd read will read physical keyboard
  1656.              'S' if it will read EBL internal keyboard buffer
  1657.         AH = ???
  1658.         77h clear internal keyboard buffer
  1659.         78h ???
  1660.         AL = ???
  1661.         79h ???
  1662.         7Ah ???
  1663.         AL = ???
  1664.         7Bh ???
  1665.         AL = ???
  1666.         7Ch ???
  1667.         AL = ???
  1668.         7Dh ???
  1669.         AL = ???
  1670.         7Eh clear buffer for ???
  1671.         7Fh installation check
  1672.         Return: CX = version in BCD
  1673.             DI = segment of ???
  1674.             BX = segment of next program's PSP???
  1675. Notes:    Extended Batch Language is a batch-file enhancer by Seaware
  1676.     the chaining does not check whether the interrupt had been hooked
  1677.       before, so if you try to chain when the previous vector was 
  1678.       0000h:0000h, you'll be in trouble
  1679. ----------65---------------------------------
  1680. INT 65 - reserved for user interrupt
  1681. ----------65---------------------------------
  1682. INT 65 - Adaptec controllers - DRIVE 1 DATA
  1683. SeeAlso: INT 64"Adaptec"
  1684. ----------65---------------------------------
  1685. INT 65 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
  1686. ----------65---------------------------------
  1687. INT 65 - SD.COM v6.2
  1688.    The unregistered version of SD62.COM uses the low byte of this vector to
  1689.    count the number of invocations, displaying a registration reminder each
  1690.    time after the 20th use.
  1691. ----------65---------------------------------
  1692. INT 65 - Ad Lib SOUND.COM - INTERFACE
  1693.     SI = function number (see separate entries for details on several)
  1694.        = 0000h Init
  1695.        = 0002h RelTimeStart
  1696.        = 0003h SetState
  1697.        = 0004h GetState
  1698.        = 0005h Flush
  1699.        = 0006h SetMode
  1700.        = 0007h GetMode
  1701.        = 0008h SetRelVolume
  1702.        = 0009h SetTempo
  1703.        = 000Ah SetTranspose
  1704.        = 000Bh GetTranspose
  1705.        = 000Ch SetActVoice
  1706.        = 000Dh GetActVoice
  1707.        = 000Eh PlayNoteDel
  1708.        = 000Fh PlayNote
  1709.        = 0010h SetTimbre
  1710.        = 0011h SetPitch
  1711.        = 0012h SetTickBeat
  1712.        = 0013h NoteOn
  1713.        = 0014h NoteOff
  1714.        = 0015h Timbre
  1715.        = 0016h SetPitchBend
  1716.        = 0017h WaveForm
  1717.     ES:BX -> arguments
  1718. Note:    the installation check consists of checking for the signature block
  1719.       immediately preceding the interrupt handler (see below)
  1720.  
  1721. Format of signature block:
  1722. Offset    Size    Description
  1723.  00h    WORD    version number
  1724.  02h 19 BYTEs    "SOUND-DRIVER-AD-LIB"
  1725.  15h    BYTE    01h
  1726.  16h    BYTE    01h
  1727.  17h    BYTE    00h
  1728. ----------65---------------------------------
  1729. INT 65 - Ad Lib SOUND.COM - INITIALIZE (RESET)
  1730.     SI = 0000h
  1731. ----------65---------------------------------
  1732. INT 65 - Ad Lib SOUND.COM - SET STATE
  1733.     SI = 0003h
  1734.     ES:BX -> WORD state = 0000h disabled 
  1735.                 = 0001h enabled
  1736. SeeAlso: SI=0004h
  1737. ----------65---------------------------------
  1738. INT 65 - Ad Lib SOUND.COM - GET STATE
  1739.     SI = 0004h
  1740. Return: AX = 0000h all done playing sounds
  1741.        = else  still playing sounds
  1742. SeeAlso: SI=0003h
  1743. ----------65---------------------------------
  1744. INT 65 - Ad Lib SOUND.COM - SET MODE
  1745.     SI = 0006h
  1746.     ES:BX -> WORD mode = 0000h melodic
  1747.                = 0001h percussive
  1748. SeeAlso: SI=0007h
  1749. ----------65---------------------------------
  1750. INT 65 - Ad Lib SOUND.COM - GET MODE
  1751.     SI = 0007h
  1752. Return: AX = 0000h melodic
  1753.        = 0001h percussive
  1754. SeeAlso: SI=0006h
  1755. ----------65---------------------------------
  1756. INT 65 - Ad Lib SOUND.COM - SET ACTIVE VOICE
  1757.     SI = 000Ch
  1758.     ES:BX -> WORD voice = 0000h to 0008h
  1759. SeeAlso: SI=000Dh
  1760. ----------65---------------------------------
  1761. INT 65 - Ad Lib SOUND.COM - GET ACTIVE VOICE
  1762.     SI = 000Dh
  1763. Return: AX = voice (0000h to 0008h)
  1764. SeeAlso: SI=000Ch
  1765. ----------66---------------------------------
  1766. INT 66 - reserved for user interrupt
  1767. ----------66---------------------------------
  1768. INT 66 - Adaptec controllers - DRIVE 1 DATA
  1769. SeeAlso: INT 65"Adaptec"
  1770. ----------66---------------------------------
  1771. INT 66 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
  1772. ----------66FFFE-----------------------------
  1773. INT 66 - THESPLUS - UNINSTALL
  1774.     AX = FFFEh
  1775.     BX = FFFEh
  1776. Return: only if unsuccessful
  1777. Note:    installation check is for the interrupt handler to begin with the bytes
  1778.       FBh, 9Ch, and the string "THESPLUS" to appear at offset 0005h in the
  1779.       interrupt handler segment.
  1780. ----------660688-----------------------------
  1781. INT 66 - John W. Ratcliff (The IBM Digitized Sound Package)
  1782.     AX = 0688h
  1783.     ???
  1784. Return: ???
  1785. ----------660689-----------------------------
  1786. INT 66 - John W. Ratcliff (The IBM Digitized Sound Package)
  1787.     AX = 0689h
  1788.     ???
  1789. Return: ???
  1790. ----------67---------------------------------
  1791. INT 67 - Adaptec controllers - DRIVE 1 DATA
  1792. SeeAlso: INT 66"Adaptec"
  1793. ----------6740-------------------------------
  1794. INT 67 - LIM EMS - GET MANAGER STATUS
  1795.     AH = 40h
  1796. Return: AH = status
  1797.         00h successful
  1798.         80h internal error
  1799.         81h hardware malfunction
  1800.         84h undefined function requested by application
  1801. Note:    this call can be used only after establishing that the EMS driver is in
  1802.       fact present
  1803. ----------6741-------------------------------
  1804. INT 67 - LIM EMS - GET PAGE FRAME SEGMENT
  1805.     AH = 41h
  1806. Return: AH = 00h function successful
  1807.         BX = segment of page frame
  1808.     AH = error code (see AH=40h)
  1809. ----------6742-------------------------------
  1810. INT 67 - LIM EMS - GET NUMBER OF PAGES
  1811.     AH = 42h
  1812. Return: AH = 00h function successful
  1813.         BX = number of unallocated pages
  1814.         DX = total number of pages
  1815.     AH = error code (see AH=40h)
  1816. ----------6743-------------------------------
  1817. INT 67 - LIM EMS - GET HANDLE AND ALLOCATE MEMORY
  1818.     AH = 43h
  1819.     BX = number of logical pages to allocate
  1820. Return: AH = status
  1821.         00h function successful
  1822.         DX = handle
  1823.         80h internal error
  1824.         81h hardware malfunction
  1825.         84h undefined function requested
  1826.         85h no more handles available
  1827.         87h more pages requested than physically exist
  1828.         88h more pages requested than currently available
  1829.         89h zero pages requested
  1830. SeeAlso: AH=45h
  1831. ----------6744-------------------------------
  1832. INT 67 - LIM EMS - MAP MEMORY
  1833.     AH = 44h
  1834.     AL = physical page number (0-3)
  1835.     BX = logical page number
  1836.     DX = handle
  1837. Return: AH = status
  1838.         00h function successful
  1839.         80h internal error
  1840.         81h hardware malfunction
  1841.         83h invalid handle
  1842.         84h undefined function requested
  1843.         8Ah invalid logical page number
  1844.         8Bh illegal physical-page number
  1845. SeeAlso: AH=69h
  1846. ----------6745-------------------------------
  1847. INT 67 - LIM EMS - RELEASE HANDLE AND MEMORY
  1848.     AH = 45h
  1849.     DX = EMM handle
  1850. Return: AH = status
  1851.         00h successful
  1852.         80h internal error
  1853.         81h hardware malfunction
  1854.         83h invalid handle
  1855.         84h undefined function requested
  1856.         86h error in save or restore of mapping context
  1857. SeeAlso: AH=43h
  1858. ----------6746-------------------------------
  1859. INT 67 - LIM EMS - GET EMM VERSION
  1860.     AH = 46h
  1861. Return: AH = status
  1862.         00h successful
  1863.         AL = EMM version number
  1864.         80h internal error
  1865.         81h hardware malfunction
  1866.         84h undefined function requested
  1867. ----------6747-------------------------------
  1868. INT 67 - LIM EMS - SAVE MAPPING CONTEXT
  1869.     AH = 47h
  1870.     DX = handle
  1871. Return: AH = status
  1872.         00h successful
  1873.         80h internal error
  1874.         81h hardware malfunction
  1875.         83h invalid handle
  1876.         84h undefined function requested
  1877.         8Ch page-mapping hardware state save area is full
  1878.         8Dh save of mapping context failed
  1879. SeeAlso: AH=47h
  1880. ----------6748-------------------------------
  1881. INT 67 - LIM EMS - RESTORE MAPPING CONTEXT
  1882.     AH = 48h
  1883.     DX = handle
  1884. Return: AH = status
  1885.         00h successful
  1886.         80h internal error
  1887.         81h hardware malfunction
  1888.         83h invalid handle
  1889.         84h undefined function requested
  1890.         8Eh restore of mapping context failed
  1891. SeeAlso: AH=47h
  1892. ----------6749-------------------------------
  1893. INT 67 - LIM EMS - reserved - GET I/O PORT ADDRESSES
  1894.     AH = 49h
  1895. Note:    defined in EMS 3.0, but undocumented in EMS 3.2
  1896. ----------674A-------------------------------
  1897. INT 67 - LIM EMS - reserved - GET TRANSLATION ARRAY
  1898.     AH = 4Ah
  1899. Note:    defined in EMS 3.0, but undocumented in EMS 3.2
  1900. ----------674B-------------------------------
  1901. INT 67 - LIM EMS - GET NUMBER OF EMM HANDLES
  1902.     AH = 4Bh
  1903. Return: AH = status
  1904.         00h successful
  1905.         BX = number of EMM handles
  1906.         80h internal error
  1907.         81h hardware malfunction
  1908.         83h invalid handle
  1909.         84h undefined function requested
  1910. ----------674C-------------------------------
  1911. INT 67 - LIM EMS - GET PAGES OWNED BY HANDLE
  1912.     AH = 4Ch
  1913.     DX = EMM handle
  1914. Return: AH = status
  1915.         00h successful
  1916.         BX = number of logical pages
  1917.         80h internal error
  1918.         81h hardware malfunction
  1919.         83h invalid handle
  1920.         84h undefined function requested
  1921. SeeAlso: AH=4Dh
  1922. ----------674D-------------------------------
  1923. INT 67 - LIM EMS - GET PAGES FOR ALL HANDLES
  1924.     AH = 4Dh
  1925.     ES:DI -> array to receive information
  1926. Return: AH = status
  1927.         00h successful
  1928.         BX = number of active EMM handles
  1929.         array filled with 2-word entries, consisting of a handle
  1930.           and the number of pages allocated to that handle
  1931.         80h internal error
  1932.         81h hardware malfunction
  1933.         84h undefined function requested
  1934. SeeAlso: AH=4Ch
  1935. ----------674E-------------------------------
  1936. INT 67 - LIM EMS - GET OR SET PAGE MAP
  1937.     AH = 4Eh
  1938.     AL = 00h if getting mapping registers
  1939.          01h if setting mapping registers
  1940.          02h if getting and setting mapping registers at once
  1941.          03h if getting size of page-mapping array
  1942.     DS:SI -> array holding information (AL=01/02)
  1943.     ES:DI -> array to receive information (AL=00/02)
  1944. Return: AH = status
  1945.         00h successful
  1946.         AL = bytes in page-mapping array (AL=03h only)
  1947.         array pointed to by ES:DI receives mapping info (AL=00h/02h)
  1948.         80h internal error
  1949.         81h hardware malfunction
  1950.         84h undefined function requested
  1951.         8Fh undefined subfunction parameter
  1952.         A3h contents of source array corrupted (EMS 4.0?)
  1953. Note:    this function was designed to be used by multitasking operating systems
  1954.       and should not ordinarily be used by appplication software.
  1955. SeeAlso: AH=4Fh
  1956. ----------674F-------------------------------
  1957. INT 67 - LIM EMS 4.0 - GET/SET PARTIAL PAGE MAP
  1958.     AH = 4Fh
  1959.     AL = subfunction
  1960.         00h get partial page map
  1961.            DS:SI -> structure containing list of segments whose mapping
  1962.             contexts are to be saved
  1963.            ES:DI -> array to receive page map
  1964.         01h set partial page map
  1965.            DS:SI -> structure containing saved partial page map
  1966.         02h get size of partial page map
  1967.            BX = number of mappable segments in the partial map to be saved
  1968. Return: AH = status
  1969.         00h successful
  1970.         80h internal error
  1971.         81h hardware malfunction
  1972.         84h undefined function requested
  1973.         8Bh one of specified segments is not mappable
  1974.         8Fh undefined subfunction parameter
  1975.         A3h contents of partial page map corrupted or count of mappable
  1976.         segments exceeds total number of mappable segments in system
  1977.     AL = size of partial page map for subfunction 02h
  1978. SeeAlso: AH=4Eh
  1979. ----------6750-------------------------------
  1980. INT 67 - LIM EMS 4.0 - MAP/UNMAP MULTIPLE HANDLE PAGES
  1981.     AH = 50h
  1982.     AL = subfunction
  1983.         00h
  1984.         01h
  1985.     DX = handle
  1986.     CX = number of entries in array
  1987.     DS:SI -> mapping array
  1988. Return: AH = status
  1989.         00h successful
  1990.         80h internal error
  1991.         81h hardware malfunction
  1992.         83h invalid handle
  1993.         84h undefined function requested
  1994.         8Ah one or more logical pages are invalid
  1995.         8Bh one or more physical pages are invalid
  1996.         8Fh invalid subfunction
  1997. SeeAlso: AH=40h
  1998. ----------6751-------------------------------
  1999. INT 67 - LIM EMS 4.0 - REALLOCATE PAGES
  2000.     AH = 51h
  2001.     DX = handle
  2002.     BX = number of pages to be allocated to handle
  2003. Return: BX = actual number of pages allocated to handle
  2004.     AH = status
  2005.         00h successful
  2006.         80h internal error
  2007.         81h hardware malfunction
  2008.         83h invalid handle
  2009.         84h undefined function requested
  2010.         87h more pages requested than present in system
  2011.         88h more pages requested than currently available
  2012. ----------6752-------------------------------
  2013. INT 67 - LIM EMS 4.0 - GET/SET HANDLE ATTRIBUTES
  2014.     AH = 52h
  2015.     AL = subfunction
  2016.         00h get handle attributes
  2017.         Return: AL = attribute
  2018.                 00h handle is volatile
  2019.                 01h handle is nonvolatile
  2020.         01h set handle attributes
  2021.         BL = new attribute (see returned AL)
  2022.         02h get attribute capability
  2023.         Return: AL = attribute capability
  2024.                 00h only volatile handles supported
  2025.                 01h both volatile and non-volatile supported
  2026.     DX = handle
  2027. Return:    AH = status
  2028.         00h successful
  2029.         80h internal error
  2030.         81h hardware malfunction
  2031.         83h invalid handle
  2032.         84h undefined function requested
  2033.         8Fh undefined subfunction
  2034.         90h undefined attribute type
  2035.         91h feature not supported
  2036. SeeAlso: AH=53h
  2037. ----------6753-------------------------------
  2038. INT 67 - LIM EMS 4.0 - GET/SET HANDLE NAME
  2039.     AH = 53h
  2040.     AL = subfunction
  2041.         00h get handle name
  2042.            ES:DI -> 8-byte handle name array
  2043.         01h set handle name
  2044.            DS:SI -> 8-byte handle name
  2045.     DX = handle
  2046. Return: AH = status
  2047.         00h successful
  2048.         80h internal error
  2049.         81h hardware malfunction
  2050.         83h invalid handle
  2051.         84h undefined function requested
  2052.         8Fh undefined subfunction
  2053.         A1h duplicate handle name
  2054. SeeAlso: AH=52h
  2055. ----------6754-------------------------------
  2056. INT 67 - LIM EMS 4.0 - GET HANDLE DIRECTORY
  2057.     AH = 54h
  2058.     AL = subfunction
  2059.         00h get handle directory
  2060.            ES:DI -> buffer for handle directory
  2061.         01h search for named handle
  2062.            DS:SI -> 8-byte name
  2063.         02h get total number of handles
  2064. Return: AL = number of entries in handle directory (subfunction 00h)
  2065.     DX = value of named handle (subfunction 01h)
  2066.     BX = total number of handles (subfunction 02h)
  2067.     AH = status
  2068.         00h successful
  2069.         80h internal error
  2070.         81h hardware malfunction
  2071.         84h undefined function requested
  2072.         8Fh undefined subfunction
  2073.         A0h no such handle name
  2074.         A1h a handle found had no name
  2075. ----------6755-------------------------------
  2076. INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND JUMP
  2077.     AH = 55h
  2078.     AL = subfunction
  2079.         00h physical page numbers provided by caller
  2080.         01h segment addresses provided by caller
  2081.     DX = handle
  2082.     DS:SI -> structure containing map and jump address
  2083. Return: (at target address unless error)
  2084.     AH = status
  2085.         00h successful
  2086.         80h internal error
  2087.         81h hardware failure
  2088.         83h invalid handle
  2089.         84h undefined function requested
  2090.         8Ah invalid logical page number encountered
  2091.         8Bh invalid physical page number encountered
  2092.         8Fh invalid subfunction
  2093. SeeAlso: AH=56h
  2094. ----------6756-------------------------------
  2095. INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND CALL
  2096.     AH = 56h
  2097.     AL = subfunction
  2098.         00h physical page numbers provided by caller
  2099.         DX = handle
  2100.         DS:SI -> structure containing page map and call address
  2101.         01h segment addresses provided by caller
  2102.         DX = handle
  2103.         DS:SI -> structure containing page map and call address
  2104.         02h get page map stack space required
  2105.         Return: BX = stack space required
  2106. Return: (if successful, the target address is called.  Use a RETF to return and
  2107.      restore mapping context)
  2108.     AH = status (see AH=55h)
  2109. SeeAlso: AH=55h
  2110. ----------6757-------------------------------
  2111. INT 67 - LIM EMS 4.0 - MOVE/EXCHANGE MEMORY REGION
  2112.     AH = 57h
  2113.     AL = subfunction
  2114.         00h move memory region
  2115.         01h exchange memory region
  2116.     DS:SI -> structure describing source and destination (see below)
  2117. Return: AH = status
  2118.         00h successful
  2119.         80h internal error
  2120.         81h hardware failure
  2121.         83h invalid handle
  2122.         84h undefined function requested
  2123.         8Ah invalid logical page number encountered
  2124.         8Fh undefined subfunction
  2125.         92h successful, but a portion of the source region has been
  2126.         overwritten
  2127.         93h length of source or destination region exceeds length of region
  2128.         allocated to either source or destination handle
  2129.         94h conventional and expanded memory regions overlap
  2130.         95h offset within logical page exceeds size of logical page
  2131.         96h region length exceeds 1M
  2132.         97h source and destination EMS regions have same handle and overlap
  2133.         98h memory source or destination type undefined
  2134.         A2h attempted to wrap around 1M conventional address space
  2135. Note:    source and destination may overlap for a move, in which case the copy
  2136.       direction is chosen such that the destination receives an intact copy
  2137.       of the source region
  2138.  
  2139. Format of EMS copy data:
  2140. Offset    Size    Description
  2141.  00h    DWORD    region length in bytes
  2142.  04h    BYTE    source memory type
  2143.         00h conventional
  2144.         01h expanded
  2145.  05h    WORD    source handle (0000h if conventional memory)
  2146.  07h    WORD    source initial offset (within page if EMS, segment if convent)
  2147.  09h    WORD    source initial segment (conv mem) or logical page (EMS)
  2148.  0Bh    BYTE    destination memory type
  2149.         00h conventional
  2150.         01h expanded
  2151.  0Ch    WORD    destination handle
  2152.  0Eh    WORD    destination initial offset
  2153.  10h    WORD    destination initial segment or page
  2154. ----------6758-------------------------------
  2155. INT 67 - LIM EMS 4.0 - GET MAPPABLE PHYSICAL ADDRESS ARRAY
  2156.     AH = 58h
  2157.     AL = subfunction
  2158.         00h get mappable physical address array
  2159.         ES:DI -> buffer to be filled with array
  2160.         01h get number of entries in m.p.a. array
  2161. Return: CX = number of entries in array
  2162.     AH = status
  2163.         00h successful
  2164.         80h internal error
  2165.         81h hardware failure
  2166.         84h undefined function requested
  2167.         8Fh undefined subfunction
  2168. Note:    the returned array for subfunction 00h is filled in physical segment
  2169.       address order
  2170.  
  2171. Format of mappable physical address entry:
  2172. Offset    Size    Description
  2173.  00h    WORD    physical page segment
  2174.  02h    WORD    physical page number
  2175. ----------6759-------------------------------
  2176. INT 67 - LIM EMS 4.0 - GET EXPANDED MEMORY HARDWARE INFORMATION
  2177.     AH = 59h
  2178.     AL = subfunction
  2179.         00h get hardware configuration array
  2180.         ES:DI -> buffer to be filled with array (see below)
  2181.         01h get unallocated raw page count
  2182.         Return: BX = unallocated raw pages
  2183.             DX = total raw pages
  2184. Return:    AH = status
  2185.         00h successful
  2186.         80h internal error
  2187.         81h hardware failure
  2188.         84h undefined function requested
  2189.         8Fh undefined subfunction
  2190.         A4h access denied by operating system
  2191. Note:    subfunction 00h is for use by operating systems only, and can be
  2192.       enabled or disabled at any time by the operating system
  2193.  
  2194. Format of hardware configuration array:
  2195. Offset    Size    Description
  2196.  00h    WORD    size of raw EMM pages in paragraphs
  2197.  02h    WORD    number of alternate register sets
  2198.  04h    WORD    size of mapping-context save area in bytes
  2199.  06h    WORD    number of register sets assignable to DMA
  2200.  08h    WORD    DMA operation type
  2201.         0000h DMA with alternate register sets
  2202.         0001h only one DMA register set
  2203. ----------675A-------------------------------
  2204. INT 67 - LIM EMS 4.0 - ALLOCATE STANDARD/RAW PAGES
  2205.     AH = 5Ah
  2206.     AL = subfunction
  2207.         00h allocate standard pages
  2208.         01h allocate raw pages
  2209.     BX = number of pages to allocate
  2210. Return: DX = handle
  2211.     AH = status
  2212.         00h successful
  2213.         80h internal error
  2214.         81h hardware failure
  2215.         84h undefined function requested
  2216.         85h no more handles available
  2217.         87h insufficient memory pages in system
  2218.         88h insufficient memory pages available
  2219.         8Fh undefined subfunction
  2220. ----------675B-------------------------------
  2221. INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET
  2222.     AH = 5Bh
  2223.     AL = subfunction
  2224.         00h get alternate map register set
  2225.         Return: BL = current active alternate map register set number
  2226.             ES:DI -> map register context save area if BL=00h
  2227.         01h set alternate map register set
  2228.         BL = new alternate map register set number
  2229.         ES:DI -> map register context save area if BL=0
  2230.         02h get alternate map save array size
  2231.         Return: DX = array size in bytes
  2232.         03h allocate alternate map register set
  2233.         Return: BL = number of map register set; 00h = not supported
  2234.         04h deallocate alternate map register set
  2235.         BL = number of alternate map register set
  2236. Return: AH = status
  2237.         00h successful
  2238.         80h internal error
  2239.         81h hardware malfunction
  2240.         84h undefined function requested
  2241.         8Fh undefined subfunction
  2242.         9Ah specified alternate map register set not supported
  2243.         9Bh all alternate map register sets currently allocated
  2244.         9Ch alternate map register sets not supported
  2245.         9Dh undefined or unallocated alternate map register set
  2246.         A3h source array corrupted
  2247.         A4h operating system denied access
  2248. Note:    this function is for use by operating systems only, and can be
  2249.       enabled or disabled at any time by the operating system
  2250. ----------675B-------------------------------
  2251. INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET - DMA REGISTERS
  2252.     AH = 5Bh
  2253.     AL = subfunction
  2254.         05h allocate DMA register set
  2255.         Return: BL = DMA register set number, 00h if not supported
  2256.         06h enable DMA on alternate map register set
  2257.            BL = DMA register set number
  2258.            DL = DMA channel number
  2259.         07h disable DMA on alternate map register set
  2260.            BL = DMA register set number
  2261.         08h deallocate DMA register set
  2262.            BL = DMA register set number
  2263. Return: AH = status
  2264.         00h successful
  2265.         80h internal error
  2266.         81h hardware malfunction
  2267.         84h undefined function requested
  2268.         8Fh undefined subfunction
  2269.         9Ah specified DMA register set not supported
  2270.         9Bh all DMA register sets currently allocated
  2271.         9Ch alternate DMA sets not supported
  2272.         9Dh undefined or unallocated DMA register set
  2273.         9Eh dedicated DMA channels not supported
  2274.         9Fh specified dedicated DMA channel not supported
  2275.         A3h source array corrupted
  2276.         A4h operating system denied access
  2277. Note:    this function is for use by operating systems only, and can be
  2278.       enabled or disabled at any time by the operating system
  2279. ----------675C-------------------------------
  2280. INT 67 - LIM EMS 4.0 - PREPARE EXPANDED MEMORY HARDWARE FOR WARM BOOT
  2281.     AH = 5Ch
  2282. Return: AH = status
  2283.         00h successful
  2284.         80h internal error
  2285.         81h hardware malfunction
  2286.         84h undefined function requested
  2287. ----------675D-------------------------------
  2288. INT 67 - LIM EMS 4.0 - ENABLE/DISABLE OS FUNCTION SET FUNCTIONS
  2289.     AH = 5Dh
  2290.     AL = subfunction
  2291.         00h enable OS Function Set
  2292.         01h disable OS Function Set
  2293.         02h return access key (resets memory manager, returns access key at
  2294.         next invocation)
  2295.     BX,CX = access key returned by first invocation
  2296. Return: BX,CX = access key, returned only on first invocation of function
  2297.     AH = status
  2298.         00h successful
  2299.         80h internal error
  2300.         81h hardware malfunction
  2301.         84h undefined function requested
  2302.         8Fh undefined subfunction
  2303.         A4h operating system denied access
  2304. ----------6760-------------------------------
  2305. INT 67 - EEMS - GET PHYSICAL WINDOW ARRAY
  2306.     AH = 60h
  2307.     ES:DI -> buffer
  2308. Return: AH = status
  2309.     AL = number of entries
  2310.     buffer at ES:DI filled
  2311. ----------6761-------------------------------
  2312. INT 67 - EEMS - GENERIC ACCELERATOR CARD SUPPORT
  2313.     AH = 61h
  2314.     ???
  2315. Return: ???
  2316. Note:    can be used by accelerator card manufacturer to flush RAM cache,
  2317.       ensuring that the cache accurately reflects what the processor would
  2318.       see without the cache.
  2319. ----------6768-------------------------------
  2320. INT 67 - EEMS - GET ADDRESSES OF ALL PAGE FRAMES IN SYSTEM
  2321.     AH = 68h
  2322.     ES:DI -> buffer
  2323. Return: AH = status
  2324.     AL = number of entries
  2325.     buffer at ES:DI filled
  2326. Note:    equivalent to LIM 4.0 function 58h
  2327. ----------6769-------------------------------
  2328. INT 67 - EEMS - MAP PAGE INTO FRAME
  2329.     AH = 69h
  2330.     AL = frame number
  2331.     BX = page number
  2332.     DX = handle
  2333. Return: AH = status
  2334. Note:    similar to EMS function 44h
  2335. SeeAlso: AH=44h,50h,6Ah
  2336. ----------676A-------------------------------
  2337. INT 67 - EEMS - PAGE MAPPING
  2338.     AH = 6Ah
  2339.     AL = subfunction
  2340.         00h save partial page map
  2341.         CH = first page frame
  2342.         CL = number of frames
  2343.         ES:DI -> buffer which is to be filled
  2344.         01h restore partial page map
  2345.         CH = first page frame
  2346.         CL = number of frames
  2347.         DI:SI -> previously saved page map
  2348.         02h save and restore partial page map
  2349.         CH = first page frame
  2350.         CL = number of frames
  2351.         ES:DI = buffer for current page map
  2352.         DI:SI = new page map
  2353.         03h get size of save array
  2354.         CH = first page frame
  2355.         CL = number of frames
  2356.         Return: AL = size of array in bytes
  2357.         04h switch to standard map register setting
  2358.         05h switch to alternate map register setting
  2359.         06h deallocate pages mapped to frames in conventional memory
  2360.         CH = first page frame
  2361.         CL = number of frames
  2362. Return: AH = status
  2363. Note:    similar to EMS function 4Eh, except that a subrange of pages can be
  2364.       specified
  2365. SeeAlso: AH=69h
  2366. ----------67DE00-----------------------------
  2367. INT 67 - Virtual Control Program Interface - INSTALLATION CHECK
  2368.     AX = DE00h
  2369. Return: AH = 00h    VCPI is present
  2370.         BH = major version number
  2371.         BL = minor version number
  2372.     AH nonzero  VCPI not present
  2373. ----------67DE01-----------------------------
  2374. INT 67 - Virtual Control Program Interface - GET PROTECTED MODE INTERFACE
  2375.     AX = DE01h
  2376.     ES:DI -> 4K page table buffer
  2377.     DS:SI -> three descriptor table entries in GDT
  2378.         first becomes code segment descriptor, other two for use by
  2379.         main control program
  2380. Return: AH = 00h successful
  2381.         DI -> first unused page table entry in buffer
  2382.         EBX -> protected mode entry point in code segment
  2383.     AH = nonzero  failed
  2384. ----------67DE02-----------------------------
  2385. INT 67 - Virtual Control Program Interface - GET MAX PHYSICAL MEMORY ADDRESS
  2386.     AX = DE02h
  2387. Return: AH = 00h  successful
  2388.         EDX = physical address of highest 4K memory page
  2389.     AH nonzero: failed
  2390. ----------67DE03-----------------------------
  2391. INT 67 - Virtual Control Program Interface - GET NUMBER OF FREE 4K PAGES
  2392.     AX = DE03h
  2393. Return: AH = 00h  successful
  2394.         EDX = number of free 4K pages
  2395.     AH nonzero: failed
  2396. Notes:    returns total number of pages available to ALL tasks in system
  2397.     also available in protected mode by calling the protected-mode VCPI
  2398.       entry point
  2399. SeeAlso: AX=DE04h
  2400. ----------67DE04-----------------------------
  2401. INT 67 - Virtual Control Program Interface - ALLOCATE A 4K PAGE
  2402.     AX = DE04h
  2403. Return: AH = 00h successful
  2404.         EDX = physical address of allocated page
  2405.     AH nonzero: failed
  2406. Notes:    the client program is responsible for freeing all memory allocated
  2407.       with this call before terminating
  2408.     also available in protected mode by calling the protected-mode VCPI
  2409.       entry point
  2410. SeeAlso: AX=DE03h,DE05h
  2411. ----------67DE05-----------------------------
  2412. INT 67 - Virtual Control Program Interface - FREE 4K PAGE
  2413.     AX = DE05h
  2414.     EDX = physical address of 4K page
  2415. Return: AH = 00h successful
  2416.     AH nonzero: failed
  2417. Note:    also available in protected mode by calling the protected-mode VCPI
  2418.       entry point
  2419. SeeAlso: AX=DE04h
  2420. ----------67DE06-----------------------------
  2421. INT 67 - Virtual Control Program Interface - GET PHYS ADDR OF PAGE IN FIRST MB
  2422.     AX = DE06h
  2423.     CX = page number (linear address shifted right 12 bits)
  2424. Return: AH = 00h successful
  2425.         EDX = physical address of page
  2426.     AH nonzero: invalid page number (AH = 8Bh recommended)
  2427. ----------67DE07-----------------------------
  2428. INT 67 - Virtual Control Program Interface - READ CR0
  2429.     AX = DE07h
  2430. Return: AH = 00h
  2431.     EBX = value of Control Register 0
  2432. SeeAlso: AX=DE07h
  2433. ----------67DE08-----------------------------
  2434. INT 67 - Virtual Control Program Interface - READ DEBUG REGISTERS
  2435.     AX = DE08h
  2436.     ES:DI -> array of 8 DWORDs
  2437. Return: AH = 00h
  2438.     buffer filled with DR0 first, DR7 last, DR4 and DR5 unused
  2439. SeeAlso: AX=DE09h
  2440. ----------67DE09-----------------------------
  2441. INT 67 - Virtual Control Program Interface - SET DEBUG REGISTERS
  2442.     AX = DE09h
  2443.     ES:DI -> array of 8 DWORDs holding new values of debug registers
  2444. Return: AH = 00h
  2445. Note:    values for DR4 and DR5 ignored
  2446. SeeAlso: AX=DE08h
  2447. ----------67DE0A-----------------------------
  2448. INT 67 - Virtual Control Program Interface - GET 8259 INTERRUPT VECTOR MAPPINGS
  2449.     AX = DE0Ah
  2450. Return: AH = 00h successful
  2451.         BX = first vector used by master 8259 (IRQ0)
  2452.         CX = first vector used by slave 8259 (IRQ8)
  2453.     AH nonzero: failed
  2454. Note:    CX is undefined in systems without a slave 8259
  2455. SeeAlso: AX=DE0Bh
  2456. ----------67DE0B-----------------------------
  2457. INT 67 - Virtual Control Program Interface - SET 8259 INTERRUPT VECTOR MAPPINGS
  2458.     AX = DE0Bh
  2459.     BX = first vector used by master 8259
  2460.     CX = first vector used by slave 8259
  2461.     interrupts disabled
  2462. Return: AH = 00h successful
  2463.     AH nonzero: failed 
  2464. Notes:    This call merely informs the server that the client has changed the
  2465.       interrupt mappings.  The client may not change the mappings if they
  2466.       have already been changed by the server or another client, and is
  2467.       responsible for restoring the original mappings before terminating.
  2468. SeeAlso: AX=DE0Ah
  2469. ----------67DE0C-----------------------------
  2470. INT 67 - Virtual Control Program Interface - SWITCH TO PROTECTED MODE
  2471.     AX = DE0Ch
  2472.     ESI = linear address in first megabyte of values for system registers
  2473.     interrupts disabled
  2474. Return: interrupts disabled
  2475.     GDTR, IDTR, LDTR, TR loaded
  2476.     SS:ESP must have at least 16 bytes space, and the entry point is
  2477.         required to set up a new stack before enabling interrupts
  2478.     EAX, ESI, DS, ES, FS, GS destroyed
  2479. SeeAlso: INT 15/AH=89h
  2480.  
  2481. Note:    in protected mode, calling the protected-mode VCPI entry point with 
  2482.       AX = DE0Ch
  2483.       DS = segment selector from function DE01h
  2484.       SS:ESP in first megabyte of linear memory
  2485.       STACK:QWORD  return address from FAR call to 32-bit segment
  2486.         DWORD  EIP
  2487.         DWORD  CS
  2488.         DWORD  reserved for EFLAGS
  2489.         DWORD  ESP
  2490.         DWORD  SS
  2491.         DWORD  ES
  2492.         DWORD  DS
  2493.         DWORD  FS
  2494.         DWORD  GS
  2495.       and interrupts disabled, will switch to virtual86 mode with
  2496.       interrupts disabled, all segment registers loaded, and EAX destroyed.
  2497.  
  2498. Format of system register values for switch to protected mode:
  2499. Offset    Size    Description
  2500.  00h    DWORD    value for CR3
  2501.  04h    DWORD    linear address in first megabyte of value for GDTR
  2502.  08h    DWORD    linear address in first megabyte of value for IDTR
  2503.  0Ch    WORD    value for LDTR
  2504.  0Eh    WORD    value for TR
  2505.  10h    PWORD    CS:EIP of protected mode entry-point
  2506. ----------67---------------------------------
  2507. INT 67 - Sangoma CCPOP 3270 resident module
  2508. ----------6801-------------------------------
  2509. INT 68 - APPC/PC
  2510.     AH = 01h
  2511.     DS:DX -> control block
  2512.  
  2513. Format of control block:
  2514. Offset    Size    Description
  2515.  00h 12 BYTEs    reserved
  2516.  0Ch    WORD    verb (action)
  2517.  0Eh  6 BYTEs    00h
  2518.  14h    DWORD    (high byte first) return code (see below)
  2519. ---if verb = 1B00h (DISPLAY)---
  2520.  18h    WORD    00h
  2521.  1Ah  8 BYTEs    (high byte first) logical unit ID
  2522.  22h  8 BYTEs    (high byte first) partner logical unit name
  2523.  2Ah  8 BYTEs    (high byte first) mode name
  2524.  32h    BYTE    logical unit session limit
  2525.  33h    BYTE    partner logical unit session limit
  2526.  34h    BYTE    mode maximum negotiable session limit
  2527.  35h    BYTE    current session limit
  2528.  36h    BYTE    minimum negotiated winner limit
  2529.  37h    BYTE    maximum negotiated loser limit
  2530.  38h    BYTE    active session count
  2531.  39h    BYTE    active CONWINNER session count
  2532.  3Ah    BYTE    active CONLOSER session count
  2533.  3Bh    BYTE    session termination count
  2534.  3Ch    BYTE    bit 7: SESSION_TERMINATION_TARGET_DRAIN
  2535.         bit 6: SESSION_TERMINATION_SOURCE_DRAIN
  2536. ---if verb=2000h (Attach Physical Unit)---
  2537.  18h    WORD    00h
  2538.  1Ah    BYTE    version
  2539.  1Bh    BYTE    release
  2540.  1Ch  8 BYTEs    (high byte first) net name
  2541.  24h  8 BYTEs    (high byte first) physical unit name
  2542.  2Ch  8 BYTEs    00h
  2543.  34h    DWORD    pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
  2544.  38h    DWORD    00h
  2545.  3Ch    BYTE    00h RETURN_CONTROL: COMPLETE
  2546.         01h RETURN_CONTROL: INCOMPLETE
  2547. ---if verb=2100h (Attach Logical Unit)---
  2548.  18h    WORD    70  offset to partner logical unit record
  2549.  1Ah  8 BYTEs    (high byte first) logical unit name
  2550.  22h  8 BYTEs    (high byte first) logical unit ID
  2551.  2Ah    BYTE    logical unit local address
  2552.  2Bh    BYTE    logical unit session limit
  2553.  2Ch    DWORD    pointer to CREATE_TP_EXIT routine,
  2554.         FFFFFFFFh = reject incoming ALLOCATEs
  2555.         00000000h = queue ALLOCATEs
  2556.  30h    DWORD    00h
  2557.  34h    DWORD    pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
  2558.  38h    DWORD    00h
  2559.  3Ch    BYTE    maximum TPs
  2560.  3Dh    BYTE    queue depth
  2561.  3Eh    DWORD    pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh=no pswd exit
  2562.  42h    DWORD    00h
  2563.  46h    WORD    total length of partner records
  2564.     for each partner logical unit:
  2565.     WORD    length of this partner logical unit record
  2566.     WORD    42  offset to mode records
  2567.       8 BYTEs    (high byte first) partner logical unit name
  2568.     BYTE    partner logical unit security capabilities
  2569.         bit 7: already verified
  2570.         bit 6: conversation level security
  2571.         bit 5: session level security
  2572.     BYTE    partner logical unit session limit
  2573.     WORD    partner logical unit maximum MC_SEND_LL
  2574.       8 BYTEs    (high byte first) partner logical unit DLC name
  2575.     BYTE    partner logical unit adapter number
  2576.      17 BYTEs    (counted string) partner logical unit adapter address
  2577.     WORD    total length of mode records
  2578.    for each mode:
  2579.     WORD    16  length of this mode record
  2580.       8 BYTEs    (high byte first) mode name
  2581.     WORD    RU_SIZE high bound
  2582.     WORD    RU_SIZE low bound
  2583.     BYTE    mode maximum negotiable session limit
  2584.     BYTE    pacing size for receive
  2585. ---if verb=2200h (Detach Logical Unit)---
  2586.  18h  8 BYTEs    (high byte first) logical unit ID
  2587.  20h    BYTE    00h
  2588. ---if verb=2700h (Detach Physical Unit)---
  2589.  18h    BYTE    00h  type: hard
  2590.         01h  type: soft
  2591. ---if verb=2B00h (Activate DLC)---
  2592.  18h  8 BYTEs    (high byte first) DLC name
  2593.  20h    BYTE    adapter number
  2594.  
  2595. Values for return code:
  2596.      0000h    successful
  2597.      0001h    BAD_TP_ID
  2598.      0002h    BAD_CONV_ID
  2599.      0003h    bad logical unit ID
  2600.      0008h    no physical unit attached
  2601.      0110h    bad state
  2602.      01B1h    BAD_PART_LUNAME
  2603.      01B2h    bad mode name
  2604.      0201h    physical unit already active
  2605.      0211h    logical unit already active
  2606.      0212h    BAD_PART_SESS
  2607.      0213h    BAD_RU_SIZES
  2608.      0214h    BAD_MODE_SESS
  2609.      0216h    BAD_PACING_CNT
  2610.      0219h    EXTREME_RUS
  2611.      021Ah    SNASVCMG_1
  2612.      0223h    SSCP_CONNECTED_LU
  2613.      0230h    invalid change
  2614.      0243h    too many TPs
  2615.      0272h    adapter close failure
  2616.      0281h    GET_ALLOC_BAD_TYPE
  2617.      0282h    unsuccessful
  2618.      0283h    DLC failure
  2619.      0284h    unrecognized DLC
  2620.      0286h    duplicate DLC
  2621.      0301h    SSCP_PU_SESSION_NOT_ACTIVE
  2622.      0302h    data exceeds RU size
  2623.      0401h    invalid direction
  2624.      0402h    invalid type
  2625.      0403h    segment overlap
  2626.      0404h    invalid first character
  2627.      0405h    table error
  2628.      0406h    conversion error
  2629.      F0010000h    APPC disabled
  2630.      F0020000h    APPC busy
  2631.      F0030000h    APPC abended
  2632.      F0040000h    incomplete
  2633.  
  2634. Routines defined by LU_LU_PASSWORD_EXIT, CREATE_TP_EXIT, and SYSTEM_LOG_EXIT
  2635. pointers are called by pushing the DWORD pointer to the verb on the stack and
  2636. then performing a FAR call.
  2637.  
  2638. Format of ACCESS_LU_LU_PW verb:
  2639. Offset    Size    Description
  2640.  00h 12 BYTEs    reserved
  2641.  0Ch    WORD    1900h
  2642.  0Eh  8 BYTEs    (high byte first) logical unit ID
  2643.  16h  8 BYTEs    (high byte first) logical unit name
  2644.  1Eh  8 BYTEs    (high byte first) partner logical unit name
  2645.  26h 17 BYTEs    (counted string) partner fully qualified logical unit name
  2646.  37h    BYTE    password available (0=no, 1=yes)
  2647.  38h  8 BYTEs    password
  2648.  
  2649. Format of CREATE_TP verb:
  2650. Offset    Size    Description
  2651.  00h 12 BYTEs    reserved
  2652.  0Ch    WORD    2300h
  2653.  0Eh  6 BYTEs    00h
  2654.  14h    DWORD    (high byte first) sense code
  2655.         00000000h    Ok
  2656.         080F6051h    SECURITY_NOT_VALID
  2657.         084B6031h    TP_NOT_AVAIL_RETRY
  2658.         084C0000h    TP_NOT_AVAIL_NO_RETRY
  2659.         10086021h    TP_NAME_NOT_RECOGNIZED
  2660.         10086034h    CONVERSATION_TYPE_MISMATCH
  2661.         10086041h    SYNC_LEVEL_NOT_SUPPORTED
  2662.  18h  8 BYTEs    (high byte first) TP ID
  2663.  20h  8 BYTEs    (high byte first) logical unit ID
  2664.  28h    DWORD    (high byte first) conversation ID
  2665.  2Ch    BYTE    0 basic conversation, 1 mapped conversation
  2666.  2Dh    BYTE    0 no sync level, 1 confirm
  2667.  2Eh    BYTE    reserved
  2668.  2Fh 65 BYTEs    (counted string) transaction program name
  2669.  70h  6 BYTEs    00h
  2670.  76h    WORD    length of ERROR_LOG_DATA to return
  2671.  78h    DWORD    pointer to ERROR_LOG_DATA buffer
  2672.  7Ch  8 BYTEs    (high byte first) partner logical unit name
  2673.  84h 18 BYTEs    (counted string) partner fully qualified logical unit name
  2674.  96h  8 BYTEs    (high byte first) mode name
  2675.  9Eh 12 BYTEs    00h
  2676.  AAh 11 BYTEs    (counted string) password
  2677.  B5h 11 BYTEs    (counted string) user ID
  2678.  C0h    BYTE    0 verification should be performed
  2679.         1 already verified
  2680.  
  2681. Format of SYSLOG verb:
  2682. Offset    Size    Description
  2683.  00h 12 BYTEs    reserved
  2684.  0Ch    WORD    2600h
  2685.  0Eh 10 BYTEs    00h
  2686.  18h    WORD    (high byte first) type
  2687.  1Ah    DWORD    (high byte first) subtype
  2688.  1Eh    DWORD    pointer to ADDITIONAL_INFO
  2689.  22h    DWORD    (high byte first) conversation ID
  2690.  26h  8 BYTEs    (high byte first) TP ID
  2691.  2Eh  8 BYTEs    (high byte first) physical unit or logical unit name
  2692.  36h    WORD    length of data
  2693.  38h    DWORD    pointer to data
  2694.  3Ch    BYTE    00h
  2695. ----------6802-------------------------------
  2696. INT 68 - APPC/PC
  2697.     AH = 02h
  2698.     DS:DX -> control block
  2699.  
  2700. Format of control block:
  2701. Offset    Size    Description
  2702.  00h 12 BYTEs    reserved
  2703.  0Ch    WORD    verb (action)
  2704.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  2705.         0 if basic verb
  2706.  0Fh  5 BYTEs    reserved (0)
  2707.  14h    WORD    (high byte first) primary return code (see below)
  2708.  16h    DWORD    (high byte first) error code (see below)
  2709.  1Ah  8 BYTEs    (high byte first) TP_ID
  2710.  22h    DWORD    (high byte first) conversation ID
  2711. ---if verb=0100h (Allocate or MC_Allocate)---
  2712.  26h    BYTE    (MC_Allocate only) 0 basic conversation
  2713.                      1 mapped conversation
  2714.  27h    BYTE    00h SYNC_LEVEL = none
  2715.         01h SYNC_LEVEL = confirm
  2716.  28h    WORD    0000h
  2717.  2Ah    BYTE    00h RETURN_CONTROL: when session allocated
  2718.         01h RETURN_CONTROL: immediate
  2719.         02h RETURN_CONTROL: when session free
  2720.  2Bh  8 BYTEs    00h
  2721.  33h  8 BYTEs    (high byte first) partner logical unit name
  2722.  3Bh  8 BYTEs    (high byte first) mode name
  2723.  43h 65 BYTEs    (counted string) TP name
  2724.  84h    BYTE    00h security: none
  2725.         01h security: same
  2726.         02h security: pgm
  2727.  85h 11 BYTEs    00h
  2728.  90h 11 BYTEs    (counted string) password
  2729.  9Bh 11 BYTEs    (counted string) user ID
  2730.  A6h    WORD    PIP_DATA length
  2731.  A8h    DWORD    pointer to PIP_DATA
  2732. ---if verb=0300h (Confirm or MC_Confirm)---
  2733.  26h    BYTE  request to send received (0=no, 1=yes)
  2734. ---if verb=0400h (Confirmed or MC_Confirmed), no additional fields---
  2735. ---if verb=0500h (Deallocate or MC_Deallocate)---
  2736.  26h    BYTE    00h
  2737.  27h    BYTE    type 0 SYNC_LEVEL
  2738.              1 FLUSH
  2739.              2 ABEND_PROC
  2740.              3 ABEND_SVC
  2741.              4 ABEND_TIMER
  2742.              5 ABEND
  2743.  28h    WORD    (MC_Deallocate only) length of error log data
  2744.  2Ah    DWORD    (MC_Deallocate only) pointer to error log data
  2745. ---if verb=0600h (Flush or MC_Flush), no additional fields---
  2746. ---if verb=0700h (Get_Attributes or MC_Get_Attributes)---
  2747.  26h  8 BYTEs    (high byte first) logical unit ID
  2748.  2Eh    BYTE    00h
  2749.  2Fh    BYTE    SYNC_LEVEL (0=none, 1=confirm)
  2750.  30h  8 BYTEs    (high byte first) mode name
  2751.  38h  8 BYTEs    (high byte first) own net name
  2752.  40h  8 BYTEs    (high byte first) own logical unit name
  2753.  48h  8 BYTEs    (high byte first) partner logical unit name
  2754.  50h 18 BYTEs    (counted string) partner's fully qualified logical unit name
  2755.  62h    BYTE    00h
  2756.  63h 11 BYTEs    (counted string) user ID
  2757. ---if verb=0800h (Get_Type)---
  2758.  26h    BYTE    type (0=basic conversation, 1=mapped conversation)
  2759. ---if verb=0900h (Post_on_Receipt)---
  2760.  26h    WORD    maximum length
  2761.  28h    BYTE    fill (0=buffer, 1=LL)
  2762. ---if verb=0A00h (Prepare_to_Receive or MC_Prepare_to_Receive)---
  2763.  26h    BYTE    type (0=SYNC_LEVEL, 1=FLUSH)
  2764.  27h    BYTE    locks (0=short, 1=long)
  2765. ---if verb=0B00h (Receive_and_Wait or MC_Receive_and_Wait)---
  2766.  26h    BYTE    what received
  2767.         00h data
  2768.         01h data complete
  2769.         02h data incomplete
  2770.         03h confirm
  2771.         04h confirm send
  2772.         05h confirm deallocate
  2773.         06h send
  2774.  27h    BYTE    (MC_Receive_and_Wait only) fill (0=buffer, 1=LL)
  2775.  28h    BYTE    Request_to_Send_Received (0=no, 1=yes)
  2776.  29h    WORD    maximum length
  2777.  2Bh    WORD    data length
  2778.  2Dh    DWORD    pointer to data
  2779. ---if verb=0C00h (Receive_Immediate or MC_Receive_Immediate)---
  2780.  26h    BYTE    what received
  2781.         00h data
  2782.         01h data complete
  2783.         02h data incomplete
  2784.         03h confirm
  2785.         04h confirm send
  2786.         05h confirm deallocate
  2787.         06h send
  2788.  27h    BYTE    (MC_Receive_Immediate only) fill (0=buffer, 1=LL)
  2789.  28h    BYTE    Request_to_Send_Received (0=no, 1=yes)
  2790.  29h    WORD    maximum length
  2791.  2Bh    WORD    data length
  2792.  2Dh    DWORD    pointer to data
  2793. ---if verb=0E00h (Request_to_Send or MC_Request_to_Send), no other fields---
  2794. ---if verb=0F00h (Send_Data or MC_Send_Data)---
  2795.  26h    BYTE    request to send received (0=no, 1=yes)
  2796.  27h    BYTE    00h
  2797.  28h    WORD    data length
  2798.  2Ah    DWORD    pointer to data
  2799. ---if verb=1000h (Send_Error or MC_Send_Error)---
  2800.  26h    BYTE    request to send received (0=no, 1=yes)
  2801.  27h    BYTE    type (0=program, 1=SVC)
  2802.  28h    DWORD    00h
  2803.  2Ch    WORD    (MC_Send_Error only) LOG_DATA length
  2804.  2Eh    DWORD    (MC_Send_Error only) pointer to LOG_DATA
  2805. ---if verb=1200h (Test or MC_Test)---
  2806.  26h    BYTE    (MC_Test only) test (0=posted, 1=request_to_send received)
  2807.         Note: error code has different interpretations for:
  2808.             0 posted data
  2809.             1 posted not data (primary return code = 0)
  2810.             1 bad TP_ID (primary return code = 1)
  2811. ---if verb=1300h (Wait)---
  2812.  26h    BYTE    number of conversations to wait on
  2813.         Note: error codes have interpretations as for 1200h above
  2814.  
  2815. Values for primary return code:
  2816.  0000h    successful
  2817.  0001h    parameter check
  2818.  0002h    state check
  2819.  0003h    allocation error
  2820.  0005h    deallocate abended
  2821.  0006h    deallocate abended program
  2822.  0007h    deallocate abended SVC
  2823.  0008h    deallocate abended timer
  2824.  0009h    deallocate normal return
  2825.  000Ah    data posting blocked
  2826.  000Bh    posting not active
  2827.  000Ch    PROG_ERROR_NO_TRUNC
  2828.  000Dh    PROG_ERROR_TRUNC
  2829.  000Eh    PROG_ERROR_PURGING
  2830.  000Fh    CONV_FAILURE_RETRY
  2831.  0010h    CONV_FAILURE_NO_RETRY
  2832.  0011h    SVC_ERROR_NO_TRUNC
  2833.  0012h    SVC_ERROR_TRUNC
  2834.  0013h    SVC_ERROR_PURGING
  2835.  0014h    unsuccessful
  2836.  0018h    CNOS partner logical unit reject
  2837.  0019h    conversation type mixed
  2838.  F001h    APPC disabled
  2839.  F002h    APPC busy
  2840.  F003h    APPC abended
  2841.  F004h    incomplete
  2842.  
  2843. Values for error code:
  2844.  0001h bad TP ID
  2845.  0002h bad conversation ID
  2846.  0004h allocation error, no retry
  2847.  0005h allocation error, retry
  2848.  0006h data area crosses segment boundary
  2849.  0010h bad TPN length
  2850.  0011h bad CONV length
  2851.  0012h bad SYNC level
  2852.  0013h bad security selection
  2853.  0014h bad return control
  2854.  0015h SEC_TOKENS too big
  2855.  0016h PIP_LEN incorrect
  2856.  0017h no use of SNASVCMG
  2857.  0018h unknown partner mode
  2858.  0031h confirm: SYNC_NONE
  2859.  0032h confirm: bad state
  2860.  0033h confirm: NOT_LL_BDY
  2861.  0041h confirmed: bad state
  2862.  0051h deallocate: bad type
  2863.  0052h deallocate: flush bad state
  2864.  0053h deallocate: confirm bad state
  2865.  0055h deallocate: NOT_LL_BDY
  2866.  0057h deallocate: log LL_WRONG
  2867.  0061h flush: not send state
  2868.  0091h post on receipt: invalid length
  2869.  0092h post on receipt: not in receive state
  2870.  0093h post on receipt: bad fill
  2871.  00A1h prepare to receive:invalid type
  2872.  00A2h prepare to receive: unfinished LL
  2873.  00A3h prepare to receive: not in send state
  2874.  00B1h receive and wait: bad state
  2875.  00B2h receive and wait: NOT_LL_BDY
  2876.  00B5h receive and wait: bad fill
  2877.  00C1h receive immediate: not in receive state
  2878.  00C4h receive immediate: bad fill
  2879.  00E1h request to send: not in receive state
  2880.  00F1h send data: bad LL
  2881.  00F2h send data: not in send state
  2882.  0102h send error: log LL wrong
  2883.  0103h send error: bad type
  2884.  0121h test: invalid type
  2885.  0122h test: not in receive state
  2886. ----------6803-------------------------------
  2887. INT 68 - APPC/PC
  2888.     AH = 03h
  2889.     DS:DX -> control block (see below)
  2890.  
  2891. Format of control block:
  2892. Offset    Size    Description
  2893.  00h 12 BYTEs    reserved
  2894.  0Ch    WORD    verb (action)
  2895.  0Eh  6 BYTEs    0
  2896.  14h    DWORD    (high byte first) return code (see AH=01h)
  2897.  18h    WORD    0
  2898.  1Ah  8 BYTEs    (high byte first) logical unit ID
  2899. ---if verb=2400h (TP Started), control block continues---
  2900.  22h  8 BYTEs    (high byte first) TP ID
  2901. ---if verb=2800h (Get ALLOCATE), control block continues---
  2902.  22h    BYTE    type
  2903.         00h dequeue
  2904.         01h test
  2905.  23h    DWORD    pointer to CREATE_TP record
  2906. ---if verb=2A00h (Change Logical Unit). control block continues---
  2907.  22h    DWORD    pointer to CREATE_TP_EXIT routine
  2908.         FFFFFFFFh reject incoming ALLOCATEs
  2909.         00000000h queue ALLOCATEs
  2910.  26h    DWORD    00000000h
  2911.  2Ah    DWORD    pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh= don't log errors
  2912.  2Eh    DWORD    00000000h
  2913.  32h    BYTE    maximum TPs
  2914.  33h    BYTE    00h stop QUEUE_ALLOCATEs
  2915.         01h resume QUEUE_ALLOCATEs
  2916.  34h    DWORD    pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh = no exit
  2917.  38h    DWORD    00000000h
  2918. ----------6804-------------------------------
  2919. INT 68 - APPC/PC
  2920.     AH = 04h
  2921.     DS:DX -> control block (see below)
  2922.  
  2923. Format of control block:
  2924. Offset    Size    Description
  2925.  00h 12 BYTEs    reserved
  2926.  0Ch    WORD    verb (action)
  2927.         2500h TP_ENDED
  2928.         2900h TP_VALID
  2929.  0Eh  6 BYTEs    0
  2930.  14h    DWORD    (high byte first) return code (see AH=01h)
  2931.  18h    WORD    0
  2932.  1Ah  8 BYTEs    (high byte first) TP_ID
  2933.  22h    DWORD -> CREATE_TP record (only if verb = 2900h)
  2934. ----------6805-------------------------------
  2935. INT 68 - APPC/PC - TRANSFER MSG DATA
  2936.     AH = 05h
  2937.     DS:DX -> control block (see below)
  2938.  
  2939. Format of control block:
  2940. Offset    Size    Description
  2941.  00h 12 BYTEs    reserved
  2942.  0Ch    WORD    1C00h
  2943.  0Eh    BYTE    00h user defined
  2944.         01h NMVT
  2945.         02h alert subvectors
  2946.         03h PDSTATS subvectors
  2947.  0Fh  5 BYTEs    0
  2948.  14h    DWORD    (high byte first) return code (see AH=01h)
  2949.  18h 12 BYTEs    0
  2950.  24h    BYTE    if bit 0 clear, add correlation subvector
  2951.         if bit 1 clear, add product set ID subvector
  2952.         if bit 2 clear, do SYSLOG
  2953.         if bit 3 clear, send SSCP_PU_SESSION
  2954.  25h    BYTE    0
  2955.  26h    WORD    length of data
  2956.  28h  N BYTEs    data
  2957. ----------6806-------------------------------
  2958. INT 68 - APPC/PC - CHANGE NUMBER OF SESSIONS
  2959.     AH = 06h
  2960.     DS:DX -> control block (see below)
  2961.  
  2962. Format of control block:
  2963. Offset    Size    Description
  2964.  00h 12 BYTEs    reserved
  2965.  0Ch    WORD    1500h
  2966.  0Eh  6 BYTEs    0
  2967.  14h    WORD    (high byte first) primary return code (see AH=02h)
  2968.  16h    DWORD    (high byte first) secondary return code (see below, AH=01h)
  2969.  1Ah  8 BYTEs    (high byte first) logical unit ID
  2970.  22h  8 BYTEs    blanks
  2971.  2Ah  8 BYTEs    (high byte first) partner logical unit name
  2972.  32h  8 BYTEs    (high byte first) mode name
  2973.  3Ah    BYTE    bit 7: use MODE_NAME_SELECT_ALL rather than MODE_NAME
  2974.         bit 6: set negotiable values
  2975.  3Bh    BYTE    partner logical unit mode session limit
  2976.  3Ch    BYTE    minimum CONWINNERS_SOURCE
  2977.  3Dh    BYTE    maximum CONWINNERS_TARGET
  2978.  3Eh    BYTE    automatic activation
  2979.  3Fh    BYTE    0
  2980.  40h    BYTE    bit 7: drain target
  2981.         bit 6: drain source
  2982.         bit 5: target responsible, not source
  2983.  
  2984. Values for secondary return code (see also AH=01h):
  2985.   0000h accepted
  2986.   0001h negotiated
  2987.   0003h bad logical unit ID
  2988.   0004h allocation failure, no retry
  2989.   0005h allocation failure, retry
  2990.   0151h can't raise limits
  2991.   0153h all modes must reset
  2992.   0154h bad SNASVCMG limits
  2993.   0155h minimum greater than total
  2994.   0156h mode closed (prim return code = 1)
  2995.     CNOS mode closed (prim return code = 18h)
  2996.   0157h bad mode name (prim return code = 1)
  2997.     CNOS bad mode name (prim return code = 18h)
  2998.   0159h reset SNA drains
  2999.   015Ah single not SRC response
  3000.   015Bh bad partner logical unit
  3001.   015Ch exceeds maximum allowed
  3002.   015Dh change SRC drains
  3003.   015Eh logical unit detached
  3004.   015Fh CNOS command race reject
  3005. ----------6807-------------------------------
  3006. INT 68 - APPC/PC - PASSTHROUGH
  3007.     AH = 07h
  3008.     DS:DX -> control block (format depends on application subsystem)
  3009. ----------68FA-------------------------------
  3010. INT 68 - APPC/PC - ENABLE/DISABLE APPC
  3011.     AH = FAh
  3012.     AL bit 0 = 0 enable
  3013.            1 disable
  3014. ----------68FB-------------------------------
  3015. INT 68 - APPC/PC - CONVERT
  3016.     AH = FBh
  3017.     DS:DX -> control block (see below)
  3018.  
  3019. Format of control block:
  3020. Offset    Size    Description
  3021.  00h 12 BYTEs    reserved
  3022.  0Ch    WORD    1A00h
  3023.  0Eh  6 BYTEs    0
  3024.  14h    DWORD    (high byte first) return code
  3025.  18h    BYTE    conversion
  3026.            00h ASCII to EBCDIC
  3027.            01h EBCDIC to ASCII
  3028.  19h    BYTE    character set
  3029.            00h AE
  3030.            01h A
  3031.            02h G
  3032.  1Ah    WORD    length of string to convert
  3033.  1Ch    DWORD    pointer to source
  3034.  20h    DWORD    pointer to target
  3035. ----------68FC-------------------------------
  3036. INT 68 - APPC/PC - ENABLE/DISABLE MESSAGE TRACING
  3037.     AH = FCh
  3038.     AL = 00h disable tracing
  3039.        = 01h enable tracing
  3040.         DX = number of bytes to keep (0=all)
  3041. SeeAlso: AH=FDh
  3042. ----------68FD-------------------------------
  3043. INT 68 - APPC/PC - ENABLE/DISABLE API VERB TRACING
  3044.     AH = FDh
  3045.     AL = 00h disable tracing
  3046.          01h enable tracing
  3047. SeeAlso: AH=FCh,FEh
  3048. ----------68FE-------------------------------
  3049. INT 68 - APPC/PC - SET TRACE DESTINATION
  3050.     AH = FEh
  3051.     AL = trace destinations
  3052.         bit 0  storage (DS:DX -> trace stats record)
  3053.         bit 1  display
  3054.         bit 2  file (trace written to file OUTPUT.PC)
  3055.         bit 3  printer
  3056. SeeAlso: AH=FDh
  3057.  
  3058. Format of Trace Statistics Record:
  3059. Offset    Size    Description
  3060.  00h    DWORD    pointer to storage trace buffer
  3061.  04h    WORD    max number of 80-byte records in trace
  3062.  06h    WORD    (high-order byte first!) current record number (must init to 0)
  3063.  08h    DWORD    (high-order byte first!) number of records written (init to 0)
  3064.  0Ch    DWORD    reserved
  3065. Note:    do not move record while trace is active
  3066. ----------68FF-------------------------------
  3067. INT 68 - APPC/PC - SET PASSTHROUGH
  3068.     AH = FFh
  3069.     DS:DX -> passthrough exit routine
  3070. ----------68---------------------------------
  3071. INT 68 - Sangoma CCPOP 3270 resident module
  3072. ----------69---------------------------------
  3073. INT 69 - Zenith AT BIOS - ???
  3074.    called by INT 09 handler
  3075. ----------690100-----------------------------
  3076. INT 69 - DECnet DOS CTERM - INSTALLATION CHECK
  3077.     AX = 0100h
  3078. Return: AL = FFh if present
  3079. SeeAlso: AX=010Fh
  3080. ----------690101-----------------------------
  3081. INT 69 - DECnet DOS CTERM - SEND BYTE
  3082.     AX = 0101h
  3083.     BL = character
  3084.     DX = session handle
  3085. Return: AH >= 80h on error
  3086. SeeAlso: AX=0102h
  3087. ----------690102-----------------------------
  3088. INT 69 - DECnet DOS CTERM - READ BYTE
  3089.     AX = 0102h
  3090.     DX = session handle
  3091. Return: AH >= 80h on error
  3092.     AH < 80h if successful
  3093.         AL = character
  3094. SeeAlso: AX=0101h
  3095. ----------690103-----------------------------
  3096. INT 69 - DECnet DOS CTERM - STATUS
  3097.     AX = 0103h
  3098.     DX = session handle
  3099. Return: AH status flags
  3100.         bit 7 session has been aborted
  3101.         6 DECnet error
  3102.         1 trace data available
  3103.         0 receive data available
  3104.     AL = reason code if DECnet error
  3105.         00h normal disconnect
  3106.         01h unknown message from host
  3107.         02h protocol violation from host
  3108.         03h could not process the initiate message
  3109.         04h error receiving message from host
  3110.         05h error sending message to host
  3111.         06h error checking for message from host
  3112.         07h remote system does not support CTERM
  3113.         08h remote system does not support correct protocol version
  3114.         09h did not receive BIND message from host
  3115.         0Ah could not send BIND message to host
  3116.         0Bh no more sessions available
  3117.         0Ch session does not exist
  3118.         0Dh not enough memory to complete operation
  3119.         0Eh connection has broken
  3120. SeeAlso: AX=0104h
  3121. ----------690104-----------------------------
  3122. INT 69 - DECnet DOS CTERM - DECnet STATUS
  3123.     AX = 0104h
  3124.     DX = session handle
  3125. Return: AX = reason code (see AX=0103h)
  3126. Note:    use this call when AX=0103h returns a DECnet error
  3127. SeeAlso: AX=0103h
  3128. ----------690105-----------------------------
  3129. INT 69 - DECnet DOS CTERM - OPEN SESSION
  3130.     AX = 0105h
  3131.     DS:BX -> ASCIZ node name
  3132.     ES:DX -> buffer for session control block (see INT 6A/AH=D0h)
  3133. Return: AX <= 0 on error
  3134.     AX > 0 session handle
  3135. SeeAlso: AX=0103h,AX=0106h,AX=010Ah
  3136. ----------690106-----------------------------
  3137. INT 69 - DECnet DOS CTERM - CLOSE SESSION
  3138.     AX = 0106h
  3139.     DX = session handle
  3140. Return: AH = 00h good close
  3141.        other error code (see AX=0103h)
  3142. SeeAlso: AX=0103h,AX=0105h
  3143. ----------69010A-----------------------------
  3144. INT 69 - DECnet DOS CTERM - GET SESSION CONTROL BLOCK SIZE
  3145.     AX = 010Ah
  3146. Return: AX = length of session control block in bytes
  3147. SeeAlso: AX=0105h
  3148. ----------69010B-----------------------------
  3149. INT 69 - DECnet DOS CTERM - GET DECnet SOCKET
  3150.     AX = 010Bh
  3151.     DX = session handle
  3152. Return: AX > 0    DECnet socket for the session
  3153.        = 0    no match for handle
  3154. ----------69010F-----------------------------
  3155. INT 69 - DECnet DOS CTERM - DEINSTALL CTERM
  3156.     AX = 010Fh
  3157. Return: AH = 00h succesful uninstall
  3158.        other error code
  3159. Note:    CTERM must have been the last TSR loaded in order to deinstall it
  3160. SeeAlso: AX=0100h
  3161. ----------6A---------------------------------
  3162. INT 6A - OPTHELP.COM
  3163. Notes:    OPTHELP is an optionally-resident help system for SLR Systems's OPTASM
  3164.       assembler
  3165.     may be configured to use any interrupt from 60h to 7Fh (default 6Ah)
  3166. ----------6A---------------------------------
  3167. INT 6A - DECnet DOS - LOCAL AREA TRANSPORT PROGRAM
  3168. Note:    the 3 bytes preceding the interrupt handler are "LAT"; this serves as
  3169.       the installation check
  3170. ----------6A01-------------------------------
  3171. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BYTE
  3172.     AH = 01h
  3173.     AL = character
  3174.     DH = FFh
  3175.     DL = handle
  3176. Return: AH >= 80h on error
  3177. SeeAlso: AH=02h
  3178. ----------6A02-------------------------------
  3179. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - READ BYTE
  3180.     AH = 02h
  3181.     DH = FFh
  3182.     DL = handle
  3183. Return: AH < 80h if successful
  3184.         AL = character
  3185.     AH >= 80h on error
  3186. SeeAlso: AH=01h
  3187. ----------6A03-------------------------------
  3188. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - STATUS
  3189.     AH = 03h
  3190.     DH = FFh
  3191.     DL = handle
  3192. Return: AH = status flags
  3193.         bit 5 transmit buffer empty
  3194.         3 session in start state
  3195.         2 session not active
  3196.         1 unable to queue transmit data
  3197.         0 receive data available
  3198. ----------6AD0-------------------------------
  3199. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - OPEN SESSION
  3200.     AH = D0h
  3201.     AL = FFh no password
  3202.        = 0Fh password at ES:DI
  3203.     DH = FFh
  3204.     DS:BX -> LAT session control block (see below)
  3205.     ES:DI -> 16-byte blank-padded password
  3206. Return: AH = 00h success
  3207.         DL = handle
  3208. SeeAlso: AX=D000h
  3209.  
  3210. Format of LAT Session Control Block:
  3211. Offset    Size    Description
  3212.  00h 18 BYTEs    service name
  3213.  12h 18 BYTEs    node name (future use)
  3214.  24h 18 BYTEs    port name (future use)
  3215.  36h    DWORD    -> session stopped post routine
  3216.  3Ah    DWORD    -> service table overflow post routine
  3217.  3Eh    DWORD    -> transmit post routine
  3218.  42h    DWORD    -> receive post routine
  3219.  46h    WORD    session status
  3220.         04h circuit failure
  3221.         08h stop slot received
  3222.  48h    WORD    slot state (LAT driver use)
  3223.  4Ah    WORD    local credits (LAT driver use)
  3224.  4Ch    DWORD    -> VCB (LAT driver use)
  3225.  50h    WORD    backward slot (LAT driver use)
  3226.  52h    WORD    forward slot (LAT driver use)
  3227.  54h    WORD    remote slot ID (LAT driver use)
  3228.  56h    WORD    local slot ID (LAT driver use)
  3229.  58h    WORD    slot byte count (LAT driver use)
  3230.  5Ah    BYTE    remote credits (LAT driver use)
  3231.  5Bh 255 BYTEs    transmitted data slot
  3232. 15Ah    BYTE    number of receive data slots (4 recommended)
  3233. 15Bh    BYTE    number of occupied slots
  3234. 15Ch    BYTE    index of next receive slot to use
  3235. 15Dh    BYTE    index of current receive slot
  3236. 15Eh    WORD    pointer to first received character
  3237. 160h  N WORDs    pointers to receive slots (buffers); each is 259 bytes
  3238. Note:    set post routines to 0000h:0000h if polled operation will be used
  3239. ----------6AD000-----------------------------
  3240. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - CLOSE SESSION
  3241.     AX = D000h
  3242.     DH = FFh
  3243.     DL = handle
  3244. Return: AX = 0000h successful
  3245.        = 0001h no such session
  3246.        = 0002h session not running, try again later
  3247. SeeAlso: AH=D0h
  3248. ----------6AD100-----------------------------
  3249. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BREAK
  3250.     AX = D100h
  3251.     DH = FFh
  3252.     DL = handle
  3253. Return: AX = 0000h if successful
  3254.     AH bit 7 set is unable to send break
  3255. ----------6AD300-----------------------------
  3256. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - RESET LAT COUNTERS
  3257.     AX = D300h
  3258.     DH = FFh
  3259. SeeAlso: AX=D400h
  3260. ----------6AD400-----------------------------
  3261. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - COPY LAT COUNTERS
  3262.     AX = D400h
  3263.     DH = FFh
  3264.     CX = buffer size
  3265.     ES:BX -> buffer for LAT counters
  3266. Return: AX = 0000h counters copied into buffer
  3267.        = FFFFh buffer too small
  3268. SeeAlso: AX=D300h
  3269. ----------6AD500-----------------------------
  3270. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - GET NEXT LAT SERVICE NAME
  3271.     AX = D500h
  3272.     DH = FFh
  3273.     ES:BX -> 17-byte buffer for name
  3274. Return: AH = 00h if successful
  3275.        ES:BX buffer filled
  3276.     AX = FFFFh if end of table or no name available
  3277. Notes:    use this function to get the names of the hosts on the network
  3278.     successive calls are necessary to get all names
  3279. SeeAlso: AX=D600h
  3280. ----------6AD600-----------------------------
  3281. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - LAT SERVICE TABLE RESET
  3282.     AX = D600h
  3283.     DH = FFh
  3284. Return: AX = number of service table entries
  3285.     BX = 0000h service table has not overflowed
  3286.        = FFFFh service table has overflowed
  3287. SeeAlso: AX=D500h
  3288. ----------6B02-------------------------------
  3289. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK
  3290.     AH = 02h
  3291.     AL nonzero
  3292. Return: AL = 00h if present and OK
  3293. ----------6B0000-----------------------------
  3294. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED WRITE
  3295.     AX = 0000h
  3296.     CX = length
  3297.     ES:BX -> buffer
  3298. Return: CX = number of bytes written
  3299. ----------6B0100-----------------------------
  3300. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ
  3301.     AX = 0100h
  3302.     CX = length of buffer
  3303.     ES:BX -> buffer
  3304. Return: CX = number of bytes read
  3305. ----------6B0600-----------------------------
  3306. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL
  3307.     AX = 0600h
  3308.     CX = command
  3309.         02h send break
  3310.         04h disconnect
  3311.         06h hold
  3312. ----------6B0700-----------------------------
  3313. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS
  3314.     AX = 0700h
  3315. Return: CH <> 00h if connection active
  3316. ----------6B6B-------------------------------
  3317. INT 6B - Tandy SCHOOLMATE PLUS - API
  3318.     AH = 6Bh
  3319.     AL = E0h to FFh
  3320. ----------6C---------------------------------
  3321. INT 6C - system resume vector (CONVERTIBLE)
  3322. ----------6C---------------------------------
  3323. INT 6C - DOS 3.2 Realtime Clock update
  3324. ----------6D---------------------------------
  3325. INT 6D - VGA - internal
  3326. Note:    used by IBM, Paradise, Video7, and NCR
  3327. ----------6D---------------------------------
  3328. INT 6D - ATI VGA Wonder - VIDEO BIOS ENTRY POINT
  3329.    points at the original INT 10 entry point set up by the ATI BIOS
  3330. SeeAlso: INT 10
  3331. ----------6D---------------------------------
  3332. INT 6D - DECnet DOS - DATA LINK LAYER PROGRAM
  3333. ----------6E---------------------------------
  3334. INT 6E - DECnet DOS - DECnet NETWORK PROCESS API
  3335. Notes:    this is the main DECnet DOS access, and is described in Digital manual
  3336.       AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual")
  3337.     there is a signature/data area immediately prior to the interrupt
  3338.       handler which may be used as an installation check
  3339.  
  3340. Format of signature area:
  3341. Offset    Size    Description
  3342.  -5    BYTE    major version number
  3343.  -4    BYTE    minor version number
  3344.  -3   3 BYTEs    signature (ASCII "DNP")
  3345. ----------6F---------------------------------
  3346. INT 6F - HP ES-12 EXTENDED BIOS - READ CMOS MEMORY
  3347.     BP = 0012h
  3348.     AH = 22h
  3349.     BL = address of CMOS byte to read
  3350. Return: AH = status
  3351.     AL = byte read
  3352.     BP, DS destroyed
  3353. SeeAlso: BP=0012h/AH=24h
  3354. ----------6F---------------------------------
  3355. INT 6F - HP ES-12 EXTENDED BIOS - WRITE CMOS MEMORY
  3356.     BP = 0012h
  3357.     AH = 24h
  3358.     BL = address of CMOS byte to write
  3359.     AL = new value
  3360. Return: AH = status
  3361.     BP, DS destroyed
  3362. SeeAlso: BP=0012h/AH=22h
  3363. ----------6F---------------------------------
  3364. INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface)
  3365. ----------6F00-------------------------------
  3366. INT 6F - 10-NET - LOGIN
  3367.     AH = 00h
  3368.     DS:DX -> login record (see below)
  3369. Return: CL = security level
  3370.     AX = status
  3371.         0000h successful
  3372.         01FFh time out on response
  3373.         02FFh network (hardware) error
  3374.         03FFh invalid password
  3375.         04FFh local rexource not available
  3376.         05FFh server resource not available
  3377.         06FFh already logged in under different name
  3378.         07FFh login security failure (node)
  3379.         08FFh not logged in
  3380.         09FFh position calc error
  3381.         0AFFh receive subfunction not = send subfunction (i.e. read, write)
  3382.         0BFFh request function not in range
  3383.         0CFFh no more server file handle entries left
  3384.         0DFFh no more shared file table entries left
  3385.         0EFFh no more user file handle entries left
  3386.         0FFFh chat permit not on
  3387.         10FFh not a server on request
  3388.         11FFh no transporter board error
  3389.         12FFh time out on send
  3390.         13FFh item not found (spool item not on queue)
  3391.         14FFh dos access incompatible
  3392.         15FFh record already locked
  3393.         16FFh invalid parameter
  3394.         17FFh record lock time out error
  3395.         18FFh currently spooling to named device
  3396.         19FFh dropped receive message (throttle)
  3397.         1AFFh open sharing violation
  3398.         1BFFh no more tuf entries left
  3399.         1CFFh not file owner on open
  3400.         1DFFh read security not passed
  3401.         1EFFh write security not passed
  3402.         1FFFh group security not passed
  3403.         20FFh security file failure
  3404.         21FFh activity file failure
  3405.         22FFh spool cntrl file failure
  3406.         23FFh device not mounted (spooling)
  3407.         24FFh spool file has not been terminated
  3408.         25FFh device not mounted or is not being shared
  3409.         26FFh duplicate node id
  3410.         27FFh file not found error
  3411.         28FFh no more files
  3412.         29FFh unknown internal system error
  3413.         2AFFh print queue is full or corrupted
  3414.         2BFFh invalid function
  3415.         2CFFh invalid handle
  3416.         2DFFh too many files opened
  3417.         2EFFh path not found
  3418.         2FFFh named file is active
  3419. /* I've gotten one submission which says FFxxh, and another with xxFFh */
  3420. /* I don't know which way around these should be, does somebody else know? */
  3421.         FF01h timeout
  3422.         FF02h network error
  3423.         FF03h invalid password
  3424.         FF04h no local buffer
  3425.         FF05h superstation not available
  3426.         FF06h node already logged in
  3427.         FF07h login not valid from this node
  3428.         FF08h node ID already in use
  3429.         FF16h invalid parameter (bad length, invalid node ID, etc)
  3430.         FF17h record locked by another user
  3431.         FF18h sent message has been dropped
  3432. SeeAlso: AH=01h
  3433.  
  3434. Format of login record:
  3435. Offset    Size    Description
  3436.  00h  8 BYTEs    user name
  3437.  08h  8 BYTEs    password
  3438.  10h 12 BYTEs    name of SuperStation
  3439. ----------6F01-------------------------------
  3440. INT 6F - 10-NET - LOGOFF
  3441.     AH = 01h
  3442.     DS:DX -> superstation ID or nulls (12 bytes)
  3443. Return: CX = number of files closed
  3444.     AX = status (see AH=00h)
  3445.         FF08h superstation ID not already logged in
  3446. SeeAlso: AH=00h
  3447. ----------6F02-------------------------------
  3448. INT 6F - 10-NET - STATUS OF NODE
  3449.     AH = 02h
  3450.     DS:DX -> 512-byte status record (see below)
  3451. Return: CF set on error
  3452.         AX = error code (see AH=00h)
  3453.     CF clear if successful
  3454.  
  3455. Format of node status record:
  3456. Offset    Size    Description
  3457.  00h  8 BYTEs    user name (0 if none)
  3458.  08h    BYTE    station type
  3459.            00h workstation
  3460.            01h superstation
  3461.            02h gateway station
  3462.            03h gateway active
  3463.            04h logged into multiple superstations
  3464.            05h reserved
  3465.  09h 24 BYTEs    list of superstations logged into more than one superstation
  3466.  21h 12 BYTEs    node ID
  3467.  2Dh    WORD    message count for this station (send for user node, receive for
  3468.         superstations)
  3469. ---for superstations only---
  3470.  2Fh    WORD    drives allocated (bit 0=A:, bit 1=B:,...)
  3471.  31h    BYTE    user service flag
  3472.         bit 7: gate
  3473.             6: print permit on
  3474.             4: SUBMIT is on
  3475.             3: mail waiting for node
  3476.             2: calendar waiting for you
  3477.             1: news waiting for you
  3478.             0: mail waiting for you
  3479.  32h    BYTE    printers allocated (bit 0=LPT1,...)
  3480.  33h    BYTE    number of unprinted spool files
  3481.  34h    BYTE    number of opened files
  3482.  35h    BYTE    number of logged on nodes
  3483.  36h    BYTE    primary drive (1=A:)
  3484.  37h    BYTE    reserved
  3485.  38h  N BYTEs    list of logged on node IDs (each 12 bytes, max 37 IDs)
  3486. 1F4h  3 BYTEs    time: sec/min/hrs
  3487. 1F7h  3 BYTEs    date: day/mon/year-1980
  3488. ----------6F03-------------------------------
  3489. INT 6F - 10-NET - GET ADDRESS OF CONFIGURATION TABLE
  3490.     AH = 03h
  3491.     DS:DI -> node ID (optional)
  3492. Return: ES:BX -> configuration table 
  3493. SeeAlso: AH=13h
  3494.  
  3495. Format of configuration table:
  3496. Offset    Size    Description
  3497. -41    WORD    local device table address
  3498. -39    WORD    extended network error mapping table address
  3499. -37    WORD    shared device table address
  3500. -35    WORD    mounted device table address
  3501. -33    BYTE    receive buffer counter
  3502. -32    BYTE    collect buffer counter
  3503. -31    WORD    TUF address
  3504. -29    BYTE    enable flag
  3505. -28    BYTE    FCB keep flag
  3506. -27    WORD    reserved
  3507. ---up to here, 10-Net v3.3---
  3508. -25    WORD    count of dropped Send6F
  3509. -23    WORD    buffer start address
  3510. -21    WORD    comm driver base address
  3511. -19    WORD    send/receive retry count
  3512. -17    BYTE    number of 550ms loops before timeout
  3513. -16    WORD    UFH address
  3514. -14    WORD    CDIR address
  3515. -12    WORD    LTAB address
  3516. -10    WORD    SFH address
  3517. -8    WORD    FTAB address
  3518. -6    WORD    RLTAB address
  3519. -4    WORD    SMI address
  3520. -2    WORD    NTAB address
  3521.  00h    WORD    address of first CT_DRV
  3522.  02h    BYTE    number of DRV entries
  3523.  03h  8 BYTEs    login name
  3524.  0Bh 12 BYTEs    node ID (blank-padded)
  3525.  17h  6 BYTEs    node address
  3526.  1Dh    BYTE    flag
  3527.  1Eh    BYTE    CT_CFLG (chat permit)
  3528.         bit 1: sound bell
  3529.         bit 0: CHAT permit
  3530.  1Fh    BYTE    CT_PSFLG
  3531.         bit 5: PRINT permit
  3532.         bit 4: KB initiated
  3533.         bit 3: CHAT called FOXPTRM
  3534.         bit 2: SUBMIT active
  3535.         bit 1: SUBMIT received
  3536.         bit 0: SUBMIT permit
  3537.  20h    BYTE    in 10Net flag
  3538.  21h    WORD    receive message count
  3539.  23h    WORD    send message count
  3540.  25h    WORD    retry count
  3541.  27h    WORD    failed count
  3542.  29h    WORD    driver errors
  3543.  2Bh    WORD    dropped responses/CHATs
  3544.  2Dh  9 BYTEs    LIST ID/NTAB address (3 entries--LPT1-3)
  3545.  36h  6 BYTEs    AUX ID/NTAB address (2 entries--COM1-2)
  3546.  3Ch    BYTE    active CB channel
  3547.  3Dh    BYTE    received 6F messages on queue
  3548.  3Eh  9 BYTEs    activity counters for channels 1-9
  3549. ---beyond here, 10-Net v3.3---
  3550.  47h    BYTE    bit 0 = RS232 gate
  3551.             1 = Send6F gate (user set)
  3552.  48h    DWORD    pointer into gate (user set)
  3553.  4Ch    DWORD    pointer into 10Net send
  3554.  50h  N WORDs    addresses of timer blocks
  3555. ----------6F04-------------------------------
  3556. INT 6F - 10-NET - SEND
  3557.     AH = 04h
  3558.     DS:BX -> record
  3559.         12 BYTEs receiving node's ID
  3560.             if first byte has high-order bit set, message is
  3561.                directed to the CT_RGATE vector at the receiver
  3562.             if second byte is 00h, first byte is taken as a CB
  3563.                channel number and delivered to all nodes on same
  3564.                channel
  3565.            WORD  length of data at DX
  3566.     DS:DX -> data (max 1024 bytes)
  3567. Return: CF set on error
  3568.         AX = error code (see AH=00h)
  3569.     CF clear if successful
  3570. SeeAlso: AH=05h
  3571. ----------6F05-------------------------------
  3572. INT 6F - 10-NET - RECEIVE
  3573.     AH = 05h
  3574.     CX = number of seconds before timeout
  3575.     DS:DX -> receive buffer (see below)
  3576. Return: CF set on error
  3577.         AX = error code (see AH=00h)
  3578.     CF clear if successful
  3579.         AH = FEh if dequeued message is a CB message
  3580. SeeAlso: AH=04h
  3581.  
  3582. Format of receive buffer:
  3583. Offset    Size    Description
  3584.  00h 12 BYTEs    sending node's ID
  3585.  0Ch    WORD    length of message
  3586.  0Eh  N BYTEs    message (maximum 1024 bytes)
  3587. ----------6F07-------------------------------
  3588. INT 6F - 10-NET - LOCK HANDLE
  3589.     AH = 07h
  3590.     BX = file handle
  3591.     CX:DX = starting offset in file
  3592.     SI = record length
  3593. Return: CF set on error
  3594.         AX = error code (see also AH=00h)
  3595.         0002h file not found
  3596.     CF clear if successful
  3597. SeeAlso: AH=08h, INT 21/AH=5Ch
  3598. ----------6F08-------------------------------
  3599. INT 6F - 10-NET - UNLOCK HANDLE
  3600.     AH = 08h
  3601.     BX = file handle
  3602.     AL = mode
  3603.         00h unlock all
  3604.         01h unlock record at CX:DX
  3605. Return: CF set on error
  3606.         AX = error code (see also AH=00h)
  3607.         0002h file not found
  3608.     CF clear if successful
  3609. SeeAlso: AH=07h, INT 21/AH=5Ch
  3610. ----------6F09-------------------------------
  3611. INT 6F - 10-NET - SUBMIT
  3612.     AH = 09h
  3613.     DS:BX -> submit record (see below)
  3614.  
  3615. Format of submit record:
  3616. Offset    Size    Description
  3617.  00h 12 BYTEs    destination node ID (must be logged in)
  3618.  0Ch    WORD    length+2 of following 'command line' text
  3619.  0Eh  N BYTEs    command line text (<=100 bytes), system adds CR
  3620. ----------6F0A-------------------------------
  3621. INT 6F - 10-NET - CHAT
  3622.     AH = 0Ah
  3623.     DS:BX -> control parameters (see below)
  3624.     DS:DX -> chat message (see below)
  3625.  
  3626. Format of control parameters:
  3627. Offset    Size    Description
  3628.  00h  8 BYTEs    sender ID, defaults to node's userID if nulls
  3629.  08h  8 BYTEs    destination user ID, 'EVERYONE' may be used
  3630.  10h 12 BYTEs    destination node ID
  3631.  
  3632. Format of chat message:
  3633. Offset    Size    Description
  3634.  00h    WORD    length+2 of following text
  3635.  02h  N BYTEs    text, max 101 bytes
  3636. ----------6F0B-------------------------------
  3637. INT 6F - 10-NET - LOCK SEMAPHORE, RETURN IMMEDIATELY
  3638.     AH = 0Bh
  3639.     AL = drive number or 0
  3640.     ES:SI = Ethernet address or 0
  3641.     DS:BX -> 31-byte ASCIZ semaphore name
  3642. Return: AL = status
  3643.         00h successful
  3644.         01h semaphore currently locked
  3645.         02h server not responding
  3646.         03h invalid semaphore name
  3647.         04h semaphore list is full
  3648.         05h invalid drive ID
  3649.         06h invalid Ethernet address
  3650.         07h not logged in
  3651.         08h write to network failed
  3652.         09h semaphore already logged in this CPU
  3653. Note:    same as INT 60/AH=12h
  3654. SeeAlso: AH=0Ch,INT 60/AH=12h
  3655. ----------6F0C-------------------------------
  3656. INT 6F - 10-NET - UNLOCK SEMAPHORE
  3657.     AH = 0Ch
  3658.     AL = drive number or 0
  3659.     ES:SI = Ethernet address or 0
  3660.     DS:BX -> 31-byte ASCIZ semaphore name
  3661. Return: AL = status (see also AH=0Bh)
  3662.         01h semaphore not locked
  3663. Note:    same as INT 60/AH=13h
  3664. SeeAlso: AH=0Bh,INT 60/AH=13h
  3665. ----------6F0D-------------------------------
  3666. INT 6F - 10-NET - WHO
  3667.     AH = 0Dh
  3668.     AL = type code
  3669.         01h return superstations only
  3670.         02h return non-superstations only
  3671.         otherwise return all
  3672.     CX = length of data
  3673.     DS:DX -> array of records to be filled (see below)
  3674. Return: CL = number of records returned (responding stations)
  3675.  
  3676. Format of station record:
  3677. Offset    Size    Description
  3678.  00h 12 BYTEs    node ID
  3679.  0Ch    BYTE    flags
  3680.         bit 1 = workstation
  3681.             2 = superstation
  3682.             3 = xgate
  3683.             4 = active gate
  3684. ---if AL = 01h---
  3685.  0Dh    BYTE    version number
  3686.     WORD    level number of 10Net software in responding node
  3687. ---if AL = 02h---
  3688.  0Dh  8 BYTEs    user ID
  3689.  15h    BYTE    version number
  3690.  16h    WORD    level number
  3691. ----------6F0E-------------------------------
  3692. INT 6F - 10-NET - SPOOL/PRINT
  3693.     AH = 0Eh
  3694.     DS:DX -> spool/print record (see below)
  3695. Return: CF set on error
  3696.         AX = error code (see also AH=00h)
  3697.         FF17h device not mounted
  3698.         FF18h already spooling to named device
  3699.     CF clear if successful
  3700.  
  3701. Format of Spool/Print record:
  3702. Offset    Size    Description
  3703.  00h    WORD    operation code
  3704.            00h initiate spool
  3705.            01h abort print
  3706.            02h close spool
  3707.            03h delete spool
  3708.            04h print
  3709.            05h get report info
  3710.            06h set chat template
  3711.            07h queue
  3712.            08h return queue
  3713.            09h queue non-spooled file for printing
  3714.  02h 11 BYTEs    file name in FCB format
  3715. ---if operation code = 00h or 06h---
  3716.  0Dh    BYTE    notification
  3717.         bit 7: queue to top
  3718.         bit 6: do ID page
  3719.         bit 5: no form feed
  3720.         bit 4: reserved
  3721.         bit 3: explicity queuing only
  3722.         bit 2: notify at print completion
  3723.         bit 1: notify server operator/reply
  3724.         bit 0: notify at print start
  3725.  0Eh    BYTE    days to keep (FFh=forever)
  3726.  0Fh    BYTE    bits 0,1: device (1=LPT1)
  3727.         bits 4-7: remote drive to store spool file (1=A,...)
  3728.  10h    WORD    length of following data area
  3729.  12h  N BYTEs    up to 64 bytes of description
  3730. ---if operation code = 03h---
  3731.  0Dh  8 BYTEs    user ID to associate with filename
  3732. ---if operation code = 04h---
  3733.  0Dh    WORD    block number
  3734.  0Fh  8 BYTEs    user ID to associate with filename
  3735. ---if operation code = 05h---
  3736.  0Dh    BYTE    RRN to start retrieve
  3737.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  3738.         bit 3: if set, return entries for all users
  3739.  0Fh    WORD    length of following area
  3740.  11h  N BYTEs    up to 1500 bytes to receive $SCNTL records returned
  3741. ---if operation code = 07h---
  3742.  0Dh    BYTE    queue number
  3743.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  3744.  0Fh    WORD    number of bytes of test print to be done
  3745.  11h    BYTE    code: 01h print device
  3746.               02h test print count
  3747.               03h prn
  3748. ---if operation code = 08h---
  3749.  0Dh    BYTE    queue location or $SCNTL location to start access
  3750.             returns next item for access:
  3751.                 00h-7Fh queued items
  3752.                 80h-FEh non-queued, non-printed items
  3753.                 FFh    no more items
  3754.  0Eh    WORD    unused
  3755.  10h    WORD    length of following area
  3756.  12h  N BYTEs    up to 64 bytes to receive $SCNTL records
  3757. ---if operation code = 09h---
  3758.  0Dh  3 BYTEs    unused
  3759.  10h  N BYTEs    path to non-spooled file to be queued for printing
  3760.  
  3761. Format of $SCNTL record:
  3762. Offset    Size    Description
  3763.  00h  8 BYTEs    user ID
  3764.  08h 11 BYTEs    filename in FCB format
  3765.  13h  6 BYTEs    node ID
  3766.  19h  3 BYTEs    creation date
  3767.  1Ch    BYTE    flags
  3768.         bit 7: queue to top
  3769.             6: do ID page
  3770.             5: no form feed at end
  3771.             4: reserved
  3772.             3: explicit queueing only
  3773.             2: notify at completion
  3774.             1: notify server operator/reply
  3775.             0: notify at start
  3776.  1Dh    BYTE    retention time in days
  3777.  1Eh    BYTE    printing device (LPTx)
  3778.  1Fh  3 BYTEs    date last printed (0 = never)
  3779.  22h    BYTE    device containing spoolfile
  3780.  23h    WORD    bytes to print for test print
  3781.  25h    WORD    block number to start print
  3782.  27h    BYTE    reserved
  3783. ----------6F10-------------------------------
  3784. INT 6F - 10-NET - ATTACH/DETACH PRINTER
  3785.     AH = 10h
  3786.     AL = subfunction
  3787.         00h initiate spooling if LPT1 is mounted
  3788.         01h terminate spooling if LPT1 is mounted
  3789. SeeAlso: INT 21/AX=5D08h
  3790. ----------6F11-------------------------------
  3791. INT 6F - 10-NET - LOCK FCB
  3792.     AH = 11h
  3793.     AL = mode
  3794.         01h sequential
  3795.         02h random
  3796.         03h random block
  3797.         CX = number of records
  3798.     DS:DX -> FCB
  3799. Return: CF set on error
  3800.         AX = error code (see also AH=00h)
  3801.         2 file not found
  3802.     CF clear if successful
  3803. SeeAlso: AH=12h
  3804. ----------6F12-------------------------------
  3805. INT 6F - 10-NET - UNLOCK FCB
  3806.     AH = 12h
  3807.     AL = mode
  3808.         00h sequential
  3809.         01h random
  3810.         02h random block
  3811.         CX = number of records
  3812.     DS:DX -> FCB
  3813. Return: CF set on error
  3814.         AX = error code (see also AH=00h)
  3815.         2 file not found
  3816.     CF clear if successful
  3817. SeeAlso: AH=11h
  3818. ----------6F13-------------------------------
  3819. INT 6F - 10-NET v3.3 - GET REMOTE CONFIGURATION TABLE ADDRESS
  3820.     AH = 13h
  3821.     DS:DX -> node ID, 12 bytes blank-padded
  3822. Return: CF set on error
  3823.         AX = error code (see AH=00h)
  3824.     CF clear if successful
  3825.         ES:BX = configuration table address on given machine
  3826. SeeAlso: AH=03h
  3827. ----------6F14-------------------------------
  3828. INT 6F - 10-NET v3.3 - GET REMOTE MEMORY
  3829.     AH = 14h
  3830.     BX:SI = address of remote memory
  3831.     CX = length (<=1024 bytes)
  3832.     DS:DX -> node ID, 12 bytes blank-padded
  3833.     DS:DI -> area to receive remote memory image
  3834. Return: CF set on error
  3835.         AX = error code (see AH=00h)
  3836.     CF clear if successful
  3837.         CX = amount of memory copied to DS:SI
  3838. ----------6F1501-----------------------------
  3839. INT 6F - 10-NET v3.3 - GET SHARED DEVICE ENTRY
  3840.     AX = 1501h
  3841.     BX = zero-based index
  3842.     DS:SI -> node ID, 12 bytes blank-padded
  3843.     ES:DI -> 85-byte buffer for shared device table entry (see below)
  3844. Return: CF set on error
  3845.         AX = error code (see AH=00h)
  3846.     CF clear if successful
  3847.         ES:DI buffer contains shared device table entry of BXth device:
  3848. SeeAlso: AX=1502h,1503h
  3849.  
  3850. Format of shared device table entry:
  3851. Offset    Size    Description
  3852.  00h  8 BYTEs    device
  3853.  08h  8 BYTEs    alias
  3854.  10h 64 BYTEs    path
  3855.  50h  8 BYTEs    password
  3856.  58h    BYTE    access
  3857.  59h  4 BYTEs    mask
  3858. ----------6F1502-----------------------------
  3859. INT 6F - 10-NET v3.3 - SET SHARED DEVICE ENTRY
  3860.     AX = 1502h
  3861.     DS:SI -> node ID, 12 bytes blank-padded
  3862.     ES:DI -> valid shared device table entry
  3863. Return: CF set on error
  3864.         AX = error code (see AH=00h)
  3865.     CF clear if successful
  3866. SeeAlso: AX=1501h,1503h
  3867. ----------6F1503-----------------------------
  3868. INT 6F - 10-NET v3.3 - DELETE SHARED DEVICE ENTRY
  3869.     AX = 1503h
  3870.     BX = zero-based index
  3871.     DS:SI -> node ID, 12 bytes blank-padded
  3872. Return: CF set on error
  3873.         AX = error code (see AH=00h)
  3874.     CF clear if successful
  3875. SeeAlso: AX=1501h,1502h
  3876. ----------6F17-------------------------------
  3877. INT 6F - 10-NET v3.3 - MOUNT
  3878.     AH = 17h
  3879.     AL = local drive number (0=A:)
  3880.     BL = remote drive letter or '1'..'3' for LPTn or '4' or '5' for COMx
  3881.     DS:DX -> node ID, 12 bytes blank-padded
  3882. Return: CF set on error
  3883.         AX = error code (see AH=00h)
  3884.     CF clear if successful
  3885. SeeAlso: AH=18h
  3886. ----------6F18-------------------------------
  3887. INT 6F - 10-NET v3.3 - UNMOUNT
  3888.     AH = 18h
  3889.     AL = local drive number (0=A:)
  3890.     BL = type
  3891.         00h        disk
  3892.         01h-03h LPTn
  3893.         04h,05h COMx
  3894. Return: CF set on error
  3895.         AX = error code (see AH=00h)
  3896.     CF clear if successful
  3897. SeeAlso: AH=17h
  3898. ----------70---------------------------------
  3899. INT 70 - IRQ8 - AT/XT286/PS50+ - REAL-TIME CLOCK
  3900. Note:    may be masked by setting bit 0 on I/O port A1h
  3901. SeeAlso: INT 08,INT 1A/AH=02h,INT 58
  3902. ----------71---------------------------------
  3903. INT 71 - IRQ9 - AT/XT286/PS50+ - LAN ADAPTER 1
  3904. Notes:    may be masked by setting bit 1 on I/O port A1h
  3905.     rerouted to INT 0A by BIOS
  3906.     under DESQview, only the INT 15h vector and BASIC segment address (the
  3907.       word at 0000h:0510h) may be assumed to be valid for the handler's
  3908.       process
  3909. SeeAlso: INT 0A,INT 59
  3910. ----------72---------------------------------
  3911. INT 72 - IRQ10 - AT/XT286/PS50+ - RESERVED
  3912. Note:    may be masked by setting bit 2 on I/O port A1h
  3913. SeeAlso: INT 5A
  3914. ----------73---------------------------------
  3915. INT 73 - IRQ11 - AT/XT286/PS50+ - RESERVED
  3916. Note:    may be masked by setting bit 3 on I/O port A1h
  3917. SeeAlso: INT 5B
  3918. ----------74---------------------------------
  3919. INT 74 - IRQ12 - PS50+ - MOUSE INTERRUPT
  3920. Notes:    may be masked by setting bit 4 on I/O port A1h
  3921.     under DESQview, only the INT 15h vector and BASIC segment address (the
  3922.       word at 0000h:0510h) may be assumed to be valid for the handler's
  3923.       process
  3924. SeeAlso: INT 33,INT 5C
  3925. ----------75---------------------------------
  3926. INT 75 - IRQ13 - AT/XT286/PS50+ - 80287 ERROR
  3927. Notes:    may be masked by setting bit 5 on I/O port A1h
  3928.     rerouted to INT 02 by BIOS
  3929.     under DESQview, only the INT 15h vector and BASIC segment address (the
  3930.       word at 0000h:0510h) may be assumed to be valid for the handler's
  3931.       process
  3932. SeeAlso: INT 10"COPROCESSOR",INT 5D
  3933. ----------76---------------------------------
  3934. INT 76 - IRQ14 - AT/XT286/PS50+ - FIXED DISK
  3935. Note:    may be masked by setting bit 6 on I/O port A1h
  3936. SeeAlso: INT 0E"IRQ6",INT 5E
  3937. ----------77---------------------------------
  3938. INT 77 - IRQ15 - AT/XT286/PS50+ - RESERVED
  3939. Note:    may be masked by setting bit 7 on I/O port A1h
  3940. SeeAlso: INT 5F
  3941. ----------77---------------------------------
  3942. INT 77 - IRQ15 - Compaq SLT/286 - POWER CONSERVATION
  3943. Note:    may be masked by setting bit 7 on I/O port A1h
  3944. SeeAlso: INT 15/AX=4600h,INT 5F
  3945. ----------7800-------------------------------
  3946. INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT
  3947.     AH = 00h
  3948.     DX = interface board I/O port
  3949. Return:    CF set on error
  3950.         AL = error code
  3951.         00h illegal command given to SCSI code
  3952.         01h invalid I/O port specified (must be from 100H to 3F8H, and
  3953.             must be on an 8-port boundary)
  3954.         02h invalid DMA channel specified (must be from 1 to 3)
  3955.         03h invalid SCSI board number specified (must be from 0 to 7)
  3956.         04h error from data register test during self-test
  3957.         05h SCSI input signals not all 0 when SCSI RST activated
  3958.         06h SCSI input signals not all 0 before selecting a SCSI device
  3959.         07h BSY signal is active; SCSI bus is busy
  3960.         08h SCSI board not selected, BSY signal did not come on in
  3961.             response to raising SEL
  3962.         09h time-out waiting for status state, signifying end of DMA
  3963.             transfer
  3964. Note:    if this routine is not called, the port is the driver's default
  3965.       (usually 0280h or 0300h)
  3966.     an installation check is performed by TARGA.DEV upon initialization
  3967.       by checking for the string "SCSI" at offset 03h into the interrupt
  3968.       handler
  3969. SeeAlso: AH=01h,AH=02h
  3970. ----------7801-------------------------------
  3971. INT 78 - TARGA.DEV - GET I/O PORT
  3972.     AH = 01h
  3973. Return: DX = current interface board I/O port
  3974. SeeAlso: AH=00h,AH=03h
  3975. ----------7802-------------------------------
  3976. INT 78 - TARGA.DEV - SET DMA CHANNEL
  3977.     AH = 02h
  3978.     AL = interface board DMA channel
  3979. Return: CF set on error
  3980.     AL = error code (see AH=00h)
  3981. Note:    if this routine is not called, the DMA channel is the driver's default
  3982.       (usually 3)
  3983. SeeAlso: AH=00h,AH=03h
  3984. ----------7803-------------------------------
  3985. INT 78 - TARGA.DEV - GET DMA CHANNEL
  3986.     AH = 03h
  3987. Return: AL = current interface board DMA channel
  3988. SeeAlso: AH=01h,AH=02h
  3989. ----------7804-------------------------------
  3990. INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER
  3991.     AH = 04h
  3992.     AL = SCSI device number
  3993. Return: CF set on error
  3994.     AL = error code (see AH=00h)
  3995. Note:    if this routine is not called, the device number used is the driver's
  3996.       default (usually 0)
  3997. SeeAlso: AH=02h,AH=05h
  3998. ----------7805-------------------------------
  3999. INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER
  4000.     AH = 05h
  4001. Return: AL = current SCSI device number
  4002. SeeAlso: AH=03h,AH=04h
  4003. ----------7806-------------------------------
  4004. INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE
  4005.     AH = 06h
  4006.     AL = 00h clear early return mode
  4007.        = 01h set early return mode
  4008. Note:    if early return mode is set then SCSI will return with no errors
  4009.       when the last DMA transfer is started in a call with AH=13h or AH=14h
  4010.     if this routine is not called, early return mode is cleared
  4011. SeeAlso: AH=13h,AH=14h,AH=15h
  4012. ----------7808-------------------------------
  4013. INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST
  4014.     AH = 08h
  4015. Return: CF set on error
  4016.     AL = error code (see AH=00h)
  4017. Note:    the SCSI bus is also reset
  4018. SeeAlso: AH=09h
  4019. ----------7809-------------------------------
  4020. INT 78 - TARGA.DEV - RESET SCSI BUS
  4021.     AH = 09h
  4022. Return: AL = error code if carry set (see AH=00h)
  4023. SeeAlso: AH=08h
  4024. ----------7810-------------------------------
  4025. INT 78 - TARGA.DEV - SEND SCSI COMMAND
  4026.     AH = 10h
  4027.     DS:SI -> command bytes
  4028. Return: AH = SCSI status byte
  4029.     CF clear if successful
  4030.         AL = SCSI message byte
  4031.     CF set on error
  4032.         AL = error code (see AH=00h)
  4033. SeeAlso: AH=11h
  4034.  
  4035. Format of SCSI Command:
  4036. Offset    Size    Description
  4037.  00h    BYTE    length of command
  4038.  01h    ???    command bytes
  4039. ----------7811-------------------------------
  4040. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)
  4041.     AH = 11h
  4042.     DS:SI -> command bytes
  4043.     ES:BX -> data storage area
  4044.     CX = number of data bytes to transfer
  4045. Return: AH = SCSI status byte
  4046.     CF clear if successful
  4047.         AL = SCSI message byte
  4048.     CF set on error
  4049.         AL = error code (see AH=00h)
  4050. Note:    this command receives data internally one byte at a time
  4051. SeeAlso: AH=10h,AH=13h
  4052.  
  4053. Format of SCSI Command:
  4054. Offset    Size    Description
  4055.  00h    BYTE    length of command
  4056.  01h    ???    command bytes
  4057. ----------7812-------------------------------
  4058. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)
  4059.     AH = 12h
  4060.     DS:SI -> command bytes
  4061.     ES:BX -> data storage area
  4062.     CX = number of data bytes to transfer
  4063. Return: AH = SCSI status byte
  4064.     CF clear if successful
  4065.         AL = SCSI message byte
  4066.     CF set on error
  4067.         AL = error code (see AH=00h)
  4068. Note:    this command sends data internally one byte at a time
  4069. SeeAlso: AH=14h
  4070.  
  4071. Format of SCSI Command:
  4072. Offset    Size    Description
  4073.  00h    BYTE    length of command
  4074.  01h    ???    command bytes
  4075. ----------7813-------------------------------
  4076. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)
  4077.     AH = 13h
  4078.     DS:SI -> command bytes
  4079.     ES:BX -> data storage area
  4080.     DX:CX = number of data bytes to transfer
  4081. Return: AH = SCSI status byte (if early return mode is clear)
  4082.     CF clear if successful
  4083.         AL = SCSI message byte (if early return mode is clear)
  4084.     CF set on error
  4085.         AL = error code (see AH=00h)
  4086. Note:    this command receives data using DMA
  4087. SeeAlso: AH=11h,AH=12h
  4088.  
  4089. Format of SCSI Command:
  4090. Offset    Size    Description
  4091.  00h    BYTE    length of command
  4092.  01h    ???    command bytes
  4093. ----------7814-------------------------------
  4094. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)
  4095.     AH = 14h
  4096.     DS:SI -> command bytes
  4097.     ES:BX -> data storage area
  4098.     DX:CX = number of data bytes to transfer
  4099. Return: AH = SCSI status byte (if early return mode is clear)
  4100.     CF clear if successful
  4101.         AL = SCSI message byte (if early return mode is clear)
  4102.     CF set on error
  4103.         AL = error code (see AH=00h)
  4104. Note:    this command sends data using DMA
  4105. SeeAlso: AH=12h,AH=13h
  4106.  
  4107. Format of SCSI Command:
  4108. Offset    Size    Description
  4109.  00h    BYTE    length of command
  4110.  01h    ???    command bytes
  4111. ----------7815-------------------------------
  4112. INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)
  4113.     AH = 15h
  4114. Return: AH = SCSI status byte
  4115.     CF clear if successful
  4116.         AL = SCSI message byte
  4117.     CF set on error
  4118.         AL = error code (see AH=00h)
  4119. Note:    if AH=06h was previously called to set the early return mode, this
  4120.       function finishes a command AH=13h or AH=14h which returned before
  4121.       the last DMA transfer was finished
  4122. SeeAlso: AH=06h,AH=13h,AH=14h
  4123. ----------79---------------------------------
  4124. INT 79 - AVATAR.SYS - FAST GET KEYSTROKE
  4125. Return: CF set if no keystroke available
  4126.         AX = FFFFh
  4127.     CF clear if key pressed
  4128.         AX = keystroke
  4129. Notes:    if a keystroke is available, it is removed from the keyboard buffer
  4130.       before being returned
  4131.     AVATAR.SYS is a CON driver by George Adam Stanislav which interprets
  4132.       AVATAR command codes just as ANSI.SYS interprets ANSI commands
  4133. SeeAlso: INT 29
  4134. ----------7A---------------------------------
  4135. INT 7A - Novell NetWare to v2.0a - LOW-LEVEL API
  4136.     ???
  4137. Note:    this interrupt is used for IPX/SPX access in NetWare versions through
  4138.       2.0a only; later versions use INT 2F/AX=7A00h to get an entry point
  4139. SeeAlso: INT 2F/AX=7A00h,INT 64"Novell"
  4140. ----------7A---------------------------------
  4141. INT 7A - Topware Network Operating System - ???
  4142.     AL = ???
  4143.     ???
  4144. Return: ???
  4145. ----------7A---------------------------------
  4146. INT 7A - AutoCAD Device Interface
  4147.     ???
  4148. ----------7A04-------------------------------
  4149. INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE
  4150.     AH = 04h
  4151.     ???
  4152. Return: ???
  4153. SeeAlso: AH=06h
  4154. ----------7A06-------------------------------
  4155. INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE
  4156.     AH = 06h
  4157.     ???
  4158. Return: ???
  4159. SeeAlso: AH=04h
  4160. ----------7A09-------------------------------
  4161. INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES
  4162.     AH = 09h
  4163.     BX = 8020h (synchronous request)
  4164.     CX = 0000h
  4165.     DX = ID of session manager (SESSMGR)
  4166.     AL = service
  4167.         01h get session ID
  4168.         02h get session info
  4169.         04h dettach from session
  4170.         05h attach to session
  4171.         06h get list of windows available
  4172.         07h get environment of window
  4173.         08h get 'PIF' (program information file) info
  4174.         0Ah get base window ID
  4175.         0Bh get cursor info
  4176.     ES:DI -> control block
  4177. Return: ???
  4178. ----------7A09-------------------------------
  4179. INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES
  4180.     AH = 09h
  4181.     BX = 8020h (synchronous request)
  4182.     CX = 0000h
  4183.     DX = ID of keyboard manager
  4184.     AL = service
  4185.         01h connect to keyboard
  4186.         02h disconnect from keyboard
  4187.         03h read from keyboard
  4188.         04h send keystroke to session
  4189.         05h disable input
  4190.         06h enable input
  4191.         07h update status code
  4192.     ES:DI -> control block
  4193. Return: ???
  4194. ----------7A09-------------------------------
  4195. INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES
  4196.     AH = 09h
  4197.     BX = 8020h (synchronous request)
  4198.     CX = 00FFh
  4199.     DX = ID of window service controller (WSCTRL)
  4200.     AL = service
  4201.         01h connect to WS control
  4202.         02h disconnect from WS control
  4203.         03h add a window
  4204.         04h change window's position on screen
  4205.         05h change window's size
  4206.         06h change window's color
  4207.         07h change window's position in the presentation space
  4208.         08h hide/unhide toggle
  4209.         09h enlarge/reduce toggle
  4210.         0Ah change screen background color
  4211.         0Bh get window's position on screen
  4212.         0Ch get window's size
  4213.         0Dh get window's color
  4214.         0Eh get window's position in the presentation space
  4215.         0Fh determine whether hidden
  4216.         10h determine whether enlarged
  4217.         11h get background color
  4218.         12h get window names
  4219.         13h delete all windows from profile
  4220.         14h pick active window
  4221.         15h redraw screen
  4222.         16h redraw window
  4223.         17h delete a window from profile
  4224.         18h get active window
  4225.         19h get active screen
  4226.         1Ah get window data
  4227.         1Bh change window data
  4228.         1Ch select active screen
  4229.     ES:DI -> control block
  4230. Return: ???
  4231. ----------7A09-------------------------------
  4232. INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES
  4233.     AH = 09h
  4234.     BX = 8020h
  4235.     CX = 00FFh
  4236.     DX = ID of PCPSM
  4237.     AL = service
  4238.         01h define presentation space
  4239.         02h delete presentation space
  4240.         03h display presentation space
  4241.         04h position cursor in presentation space
  4242.         05h change default presentation space
  4243.     ES:DI -> control block
  4244. Return: ???
  4245. ----------7A09-------------------------------
  4246. INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION
  4247.     AH = 09h
  4248.     BX = 8020h
  4249.     CX = 00FFh
  4250.     DX = ID of 3270EML
  4251.     AL = service
  4252.         01h connect
  4253.         02h disconnect
  4254.     ES:DI -> control block
  4255. Return: ???
  4256. ----------7A09-------------------------------
  4257. INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA
  4258.     AH = 09h
  4259.     BX = 8020h
  4260.     CX = 00FFh
  4261.     DX = ID of OIAM
  4262.     AL = service
  4263.         01h read Operator Information Area
  4264.         02h read OIA subset
  4265.     ES:DI -> control block
  4266. Return: ???
  4267. Note: the OIA is the 25th line on the Host session
  4268. ----------7A09-------------------------------
  4269. INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA
  4270.     AH = 09h
  4271.     BX = 8020h
  4272.     CX = 00FFh
  4273.     DX = ID of XLATE
  4274.     AL = service
  4275.         01h translate from host characters to ASCII and vice versa
  4276.         (determined by control block byte 11)
  4277.     ES:DI -> control block
  4278. Return: ???
  4279. ----------7A09-------------------------------
  4280. INT 7A - IBM 3270 Workstation Program API - COPY SERVICE
  4281.     AH = 09h
  4282.     BX = 8020h
  4283.     CX = 00FFh
  4284.     DX = ID of copy service
  4285.     AL = service
  4286.         01h copy string from one presentation space to another
  4287.         02h copy block from one presentation space to another
  4288.         03h connect to PC session for copy
  4289.         04h disconnect PC session from copy
  4290.     ES:DI -> control block
  4291. Return: ???
  4292. ----------7A09-------------------------------
  4293. INT 7A - IBM 3270 Workstation Program API - Multi-DOS
  4294.     AH = 09h
  4295.     BX = 8020h
  4296.     CX = 00FFh
  4297.     ES:DI -> control block
  4298.     DX = ID of INDJQRY  
  4299.         get environment size
  4300.        = ID of INDJASY
  4301.         request DOS functions from workstation
  4302.        = ID of MEMORY
  4303.         AL = function
  4304.             01h allocate memory
  4305.             02h deallocate memory
  4306.             03h modify allocated size
  4307. Return: ???
  4308. ----------7A09-------------------------------
  4309. INT 7A - IBM 3270 Workstation Program API - HOST SERVICES
  4310.     AH = 09h
  4311.     BX = 4000h for async request, 8028h for synchronous request
  4312.     CX = 0000h
  4313.     DX = ID of MFIC
  4314.     AL = service
  4315.        01h connect to host
  4316.        02h disconnect from host
  4317.        03h read DFT structured data from host
  4318.        04h write DFT structured data to host
  4319.        05h create a host buffer
  4320.     ES:DI -> control block
  4321. ----------7A13-------------------------------
  4322. INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE
  4323.     AH = 13h
  4324.     ???
  4325. Return: ???
  4326. ----------7A81-------------------------------
  4327. INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME
  4328.     AH = 81h
  4329.     ES:DI -> 8-char blank-padded gate name
  4330.         "SESSMGR ", "KEYBOARD", "WSCTRL  ", "MFIC    ", "PCPSM     ",
  4331.         "3270EML ", "COPY    ", "XLATE     ", "OIAM    ", "MEMORY  ",
  4332.         "INDJQRY ", or "INDJASY "
  4333. Return: DX = gate ID
  4334. ----------7A83-------------------------------
  4335. INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS
  4336.     AH = 83h
  4337.     ???
  4338. Return: ???
  4339. ----------7AFDCB-----------------------------
  4340. INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK
  4341.     AX = FDCBh
  4342. Return: DX:AX -> PCS/3270 signature block if loaded (see below)
  4343.  
  4344. Format of signature block:
  4345. Offset    Size    Description
  4346.  04h    WORD    PCS/3270 signature (5741h)
  4347.  06h    WORD    version (0501h = PCS/3270 v1.0)
  4348. ----------7AFE01-----------------------------
  4349. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  4350.     AX = FE01h
  4351.     ???
  4352. Return: ???
  4353. SeeAlso: AX=FE02h
  4354. ----------7AFE02-----------------------------
  4355. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  4356.     AX = FE02h
  4357.     ???
  4358. Return: ???
  4359. SeeAlso: AX=FE01h
  4360. ----------7AFF01-----------------------------
  4361. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  4362.     AX = FF01h
  4363.     ES:DI -> API function handler routine
  4364. Return: CX = 1200h
  4365. SeeAlso: AX=FF02h,FF03h
  4366. ----------7AFF02-----------------------------
  4367. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION
  4368.     AX = FF02h
  4369. Return: CX = 1200h
  4370. SeeAlso: AX=FF01h
  4371. ----------7AFF03-----------------------------
  4372. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  4373.     AX = FF03h
  4374.     ES:DI -> send/receive function handler routine
  4375. Return: CX = 1200h
  4376. SeeAlso: AX=FF01h
  4377. ----------7AFF04-----------------------------
  4378. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL ???
  4379.     AX = FF04h
  4380.     ES:DI -> ???
  4381. Return: CX = 1200h
  4382. ----------7B---------------------------------
  4383. INT 7B - Btrieve API
  4384.     DS:DX -> 38-byte parameter record (see below)
  4385. Return: return code field set
  4386. Note:    Btrieve sets low byte of vector to 33h; this serves as the installation
  4387.       check
  4388.  
  4389. Format of Btrieve parameter record:
  4390. Offset    Size    Description
  4391.  00h    DWORD    pointer to data buffer
  4392.  04h    WORD    data buffer length
  4393.  06h    DWORD    pointer to 90-byte record containing positioning info
  4394.         (should be same for all calls for same file)
  4395.  0Ah    DWORD    pointer to 38-byte FCB info buffer
  4396.         (should be same for all calls for same file)
  4397.  0Eh    WORD    function code (see below)
  4398.  10h    DWORD    pointer to file name/key buffer
  4399.  14h    BYTE    key length
  4400.  15h    BYTE    key number
  4401.  16h    DWORD    pointer to status code (see below)
  4402.  1Ah    WORD    interface code (version specific)
  4403.  
  4404. Values for function code:
  4405.  00h open
  4406.  01h close
  4407.  02h insert
  4408.  03h update
  4409.  04h delete
  4410.  05h get_equal
  4411.  06h get_next
  4412.  07h get_prev
  4413.  08h get_greater
  4414.  09h get_gr_eql
  4415.  0Ah get_less
  4416.  0Bh get_less_eq
  4417.  0Ch get_first
  4418.  0Dh get_last
  4419.  0Eh create
  4420.  0Fh stat
  4421.  10h extend
  4422.  11h set_dir: set directory information
  4423.  12h get_dir: get directory information
  4424.  13h begin_trans
  4425.  14h end_trans
  4426.  15h abort_trans
  4427.  16h get_pos: get record position number
  4428.  17h get_direct: get data by sending record position
  4429.  18h step_direct
  4430.  19h stop
  4431.  1Ah version
  4432.  1Bh unlock
  4433.  1Ch reset
  4434.  1Dh set owner
  4435.  1Eh clear owner
  4436.  1Fh create supplemental index
  4437.  20h drop supplemental index
  4438.  21h step first
  4439.  22h step last
  4440.  23h step next
  4441.  31h ???
  4442.  37h ???
  4443.  38h ???
  4444.  39h ???
  4445.  3Ah ???
  4446.  3Bh ???
  4447.  3Ch ???
  4448.  3Dh ???
  4449.  3Eh ???
  4450.  3Fh ???
  4451.  add 100 (64h) for a single-record wait lock (automatically released on next
  4452.          get)
  4453.  add 200 (C8h) for a single-record nowait lock (nowait lock returns error 54h
  4454.          or 55h if record already locked)
  4455.  add 300 (12Ch) for a multiple-record wait lock (not released until unlock
  4456.          called)
  4457.  add 400 (190h) for a multiple-record nowait lock (nowait lock returns error
  4458.          54h or 55h if record already locked)
  4459.  
  4460. Values for status code:
  4461.  00h successful
  4462.  01h invalid operation
  4463.  02h I/O error
  4464.  03h file not open
  4465.  04h key value not found
  4466.  05h duplicate key value
  4467.  06h invalid key number
  4468.  07h different key number
  4469.  08h invalid positioning
  4470.  09h end of file
  4471.  0Ah modifiable key value error
  4472.  0Bh invalid file name
  4473.  0Ch file not found
  4474.  0Dh extended file error
  4475.  0Eh pre-image open error
  4476.  0Fh pre-image I/O error
  4477.  10h expansion error
  4478.  11h close error
  4479.  12h disk full
  4480.  13h unrecoverable error
  4481.  14h record manager inactive
  4482.  15h key buffer too short
  4483.  16h data buffer length overrun
  4484.  17h position block length
  4485.  18h page size error
  4486.  19h create I/O error
  4487.  1Ah number of keys
  4488.  1Bh invalid key position
  4489.  1Ch invalid record length
  4490.  1Dh invalid key length
  4491.  1Eh not a Btrieve file
  4492.  1Fh file already extended
  4493.  20h extended I/O error
  4494.  22h invalid extension name
  4495.  23h directory error
  4496.  24h transaction error
  4497.  25h transaction is active
  4498.  26h transaction control file I/O error
  4499.  27h end/abort transaction error
  4500.  28h transaction max files
  4501.  29h operation not allowed
  4502.  2Ah incomplete accelerated access
  4503.  2Bh invalid record address
  4504.  2Ch null key path
  4505.  2Dh inconsistent key flags
  4506.  2Eh access to file denied
  4507.  2Fh maximum open files
  4508.  30h invalid alternate sequence definition
  4509.  31h key type error
  4510.  32h owner already set
  4511.  33h invalid owner
  4512.  34h error writing cache
  4513.  35h invalid interface
  4514.  36h variable page error
  4515.  37h autoincrement error
  4516.  38h incomplete index
  4517.  39h expanded memory error
  4518.  3Ah compression buffer too short
  4519.  3Bh file already exists
  4520.  50h conflict
  4521.  51h lock error
  4522.  52h lost position
  4523.  53h read outside transaction
  4524.  54h record in use
  4525.  55h file in use
  4526.  56h file table full
  4527.  57h handle table full
  4528.  58h incompatible open mode
  4529.  5Dh incompatible lock type
  4530.  5Eh permission error
  4531. ----------7B---------------------------------
  4532. INT 7B - Eicon Access API (3270/5250 gateways)
  4533. ----------7C---------------------------------
  4534. INT 7C - IBM REXX88PC command language
  4535.     ???
  4536. ----------7D---------------------------------
  4537. INT 7D - not used
  4538. ----------7E---------------------------------
  4539. INT 7E - not used
  4540. ----------7F----BX---------------------------
  4541. INT 7F - Halo88 - API
  4542.     BX = function
  4543.         64h arc
  4544.         65h bar
  4545.         66h box
  4546.         67h circle
  4547.         68h clr
  4548.         69h default hatch style
  4549.         6Ah default line style
  4550.         6Bh delhcur
  4551.         6Ch delln / deltcur
  4552.         6Dh ellipse
  4553.         6Eh fill
  4554.         6Fh flood
  4555.         70h flood2
  4556.         71h init graphics
  4557.         72h init hcur
  4558.         73h init marker
  4559.         74h init tcur
  4560.         75h inqarc
  4561.         76h inqbknd
  4562.         77h inqclr
  4563.         78h inqerr
  4564.         79h inqgcur
  4565.         7Ah inqhcur
  4566.         7Bh inqmarker
  4567.         7Dh inqtcur
  4568.         7Eh inqtext
  4569.         7Fh lnabs
  4570.         80h lnrel
  4571.         81h markerabs
  4572.         82h markerrel
  4573.         83h moveabs
  4574.         84h movehcurabs
  4575.         85h movehcurrel
  4576.         86h moverel
  4577.         87h movetcurabs
  4578.         88h movetcurrel
  4579.         89h movefrom
  4580.         8Ah moveto
  4581.         8Bh pie
  4582.         8Ch polylnabs
  4583.         8Dh polylnrel
  4584.         8Eh ptabs
  4585.         8Fh ptrel
  4586.         91h setasp
  4587.         92h set color
  4588.         93h set font
  4589.         94h set hatch style
  4590.         95h set line style
  4591.         97h settext
  4592.         98h set text color
  4593.         99h btext
  4594.         9Ah setseg
  4595.         9Bh display
  4596.         9Ch setscreen
  4597.         9Eh close graphics
  4598.         9Fh ftinit
  4599.         A0h ftlocate
  4600.         A1h ftext
  4601.         A5h set viewport
  4602.         A6h set window
  4603.         A7h set world
  4604.         AAh ftcolor
  4605.         ACh initlp
  4606.         ADh inqasp
  4607.         AEh inqdev
  4608.         AFh inqdisplay
  4609.         B0h inqft
  4610.         B1h inqftcolor
  4611.         B2h inqinterlace
  4612.         B3h inqlpa
  4613.         B4h inqlpg
  4614.         B5h inqmode
  4615.         B6h inqscreen
  4616.         B7h inqversion
  4617.         B8h roam
  4618.         B9h scroll
  4619.         BAh setieee
  4620.         BBh set interlace
  4621.         BCh shift
  4622.         BDh start graphics
  4623.         BEh vpan
  4624.         CBh gwrite
  4625.         CCh gread
  4626.         CDh setxor
  4627.         CEh rbox
  4628.         CFh rcir
  4629.         D0h rlnabs
  4630.         D1h rlnrel
  4631.         D2h delbox
  4632.         D3h delcir
  4633.         D5h setseg2
  4634.         DCh worldoff
  4635.         DDh mapwtod
  4636.         DEh mapdtow
  4637.         DFh mapwton
  4638.         E0h mapntow
  4639.         E1h mapdton
  4640.         E2h mapntod
  4641.         E3h inqworld
  4642.         E4h inqviewport
  4643.         E5h set line width
  4644.         E6h lnjoint
  4645.         E7h set locator
  4646.         E8h read locator
  4647.         E9h setdev
  4648.         EBh setstext
  4649.         ECh setstclr
  4650.         EDh setstang
  4651.         EEh stext
  4652.         EFh inqstext
  4653.         F0h setdegree
  4654.         F1h inqstsize
  4655.         F2h polyfabs
  4656.         F3h polyfrel
  4657.         F4h inqdrange
  4658.         F5h inqstang
  4659.         F6h orglocator
  4660.         F7h inqlocator
  4661.         F8h inqarea
  4662.         F9h setipal
  4663.         FAh setborder
  4664.         FBh inqcrange
  4665.         FEh setclip
  4666.         FFh fcir
  4667.            100h setcrange
  4668.            101h setdrange
  4669.            102h setlattr
  4670.            103h polycabs
  4671.            104h polycrel
  4672.            108h memcom
  4673.            109h memexp
  4674.            10Ah memmov
  4675.            10Eh movefx
  4676.            10Fh movetx
  4677.            110h inqrgb
  4678.            111h save image
  4679.            112h restore image
  4680.            113h setapal
  4681.            114h setxpal
  4682.            118h inqtsize
  4683.            12Eh gprint
  4684.            130h setprn
  4685.            131h setpattr
  4686.            133h setbattr
  4687.            135h pexpand
  4688.            136h ptnorm
  4689.            137h pfnorm
  4690.            13Bh inqprn
  4691.            13Ch lopen
  4692.            13Dh lclose
  4693.            13Eh lappend
  4694.            13Fh lrecord
  4695.            140h lswitch
  4696.            142h inqfun
  4697.            15Dh lsetup
  4698.            15Eh lrest
  4699.            15Fh lsave
  4700.     additional parameters on stack
  4701. Return: ???
  4702. Notes:    Halo88 is a suite of graphics routines
  4703.     according to Stuart Kemp, the code appears to make no provisions for
  4704.        chaining
  4705. ----------7F----CX4354-----------------------
  4706. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  4707.     AL = request ID
  4708.         01h "Request"/"RequestDirect"
  4709.         ES:BX -> pRq
  4710.         DX ignored
  4711.         04h "Wait"
  4712.         ES:BX -> ppMsgRet
  4713.         DX = exchange
  4714.         05h "AllocExch"
  4715.         ES:BX -> pExchRet
  4716.         06h "DeAllocExch"
  4717.         DX = exchange
  4718.         07h "Check"
  4719.         ES:BX -> ppMsgRet
  4720.         DX = exchange
  4721.     CX = 4354h ('CT')
  4722. Return: AX = status
  4723.         0000h successful
  4724. ----------7F---------------------------------
  4725. INT 7F - 386/MultiWare Network Executive for the 80386 (Alloy?)
  4726. Note:    the word at C800h:0000h or C800h:0002h will be 584Eh if this
  4727.       multitasking system is present.
  4728. ----------7F0104-----------------------------
  4729. INT 7F - HLLAPI (IBM 3270 High-Level Language API)
  4730.     AX = 0104h (HLLAPI gate ID)
  4731.     BX = 0000h
  4732.     DS:SI -> parameter control block (see below)
  4733. Return: parameter control block updated
  4734.  
  4735. Format of parameter control block:
  4736. Offset    Size    Description
  4737.  00h  3 BYTEs    signature = 'PCB'
  4738.  03h    BYTE    function number (see below)
  4739.  04h    WORD    segment of control string
  4740.  06h    WORD    offset of control string
  4741.  08h    WORD    length of control string, unless explicit end-of-str char set
  4742.  0Ah    BYTE    unused
  4743.  0Bh    WORD    return code
  4744.  0Dh    WORD    maximum length of control string
  4745.  
  4746. Values for function number:
  4747.  00h    Query system (Attachmate implementation only)
  4748.  01h    Connect presentation space
  4749.  02h    Disconnect presentation space
  4750.  03h    Send string of keystrokes as if typed from keyboard
  4751.  04h    Wait ~60s, returns status of presentation space
  4752.  05h    Copy current presentation space into a user-defined buffer
  4753.  06h    Search presentation space for first occurrence of a specified string
  4754.  07h    Query cursor location in current presentation space
  4755.  08h    Copy part or all of current presentation space into user buffer
  4756.  09h    Set session parameters; parameters vary by vendor
  4757.  0Ah    Get info on sessions currently connected
  4758.  0Bh    Lock current presentation space
  4759.  0Ch    Unlock previously locked presentation space
  4760.  0Dh    Return copy of operator info area (OIA) of current presentation space
  4761.  0Eh    get attribute byte for given position in the current presentation space
  4762.  0Fh    copy string of characters to the current presentation space
  4763.  10h    workstation control functions
  4764.  11h    storage manager functions, intended primarily for BASIC applications
  4765.  12h    set delay period in half-second intervals
  4766.  14h    get info on level of workstation support used
  4767.  15h    reset session parameters to default values
  4768.  16h    get detailed info on the current session
  4769.  17h    start host notification to application on presentation sp or OIA update
  4770.  18h    check host update when host notification enabled
  4771.  19h    stop host notification
  4772.  1Eh    search field within current presentation space for string
  4773.  1Fh    get first positionof a selected field in the current presentation space
  4774.  20h    get length of specified field
  4775.  21h    copy string into a specified field
  4776.  22h    copy specified field into a user-defined buffer
  4777.  23h    create alternate presentation space (IBM only), don't use with BASIC
  4778.  24h    switch to alternate presentation space (IBM only), not with BASIC
  4779.  25h    display cursor in specified area (IBM only), don't use with BASIC
  4780.  26h    display alternate presentation space (IBM only), don't use with BASIC
  4781.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  4782.  32h    start intercepting keystrokes to allow filtering
  4783.  33h    get keystrokes after turning on interception
  4784.  34h    notify operator when keystroke rejected by filter subroutine
  4785.  35h    stop intercepting keystrokes
  4786.  5Ah    send file
  4787.  5Bh    receive file
  4788.  5Ch    run a program
  4789.  5Dh    execute DOS command
  4790.  63h    change presentation space position to PC display row/col or vice versa
  4791.  FFh    Get info on DCA implementation
  4792.  
  4793. Session Parameters for function 09h:
  4794.  ATTRIB        return attributes in hex
  4795.  NOATTRIB    return attributes as blanks
  4796.  CONPHYS    make physical connection
  4797.  CONLOG        only make logical connection
  4798.  EAB        copy extended attribute bytes along with data 
  4799.  NOEAB        copy data only
  4800.  ESC=n        set escape character to "n" (default '@')
  4801.  EOT=n        set end of string character (default 00h)
  4802.  FPAUSE        full-duration pause
  4803.  IPAUSE        interruptible pause
  4804.  STRLEN        use explicit string lengths
  4805.  STREOT        use terminated strings
  4806.  SRCHALL    search entire presentation space
  4807.  SRCHFROM    search from specified offset
  4808.  SRCHFRWD    search forward from position 1
  4809.  SRCHBKWD    search backward from last position in presentation space
  4810.  TWAIT        wait specified time for keyboard ready
  4811.  LWAIT        wait until keyboard ready
  4812.  NWAIT        no wait
  4813.  TRON        enable tracing
  4814.  TROFF        disable tracing
  4815.  AUTORESET    send reset before sending keys with function 03h
  4816.  NORESET    don't send reset
  4817.  QUIET        don't display messages sent with INT 21/AH=9
  4818.  NOQUIET    allow messages to be displayed
  4819.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  4820.  XLATE        translate extended attribute bytes
  4821.  NOXLATE    don't translate
  4822.  NEWRET        use HLLAPI v3.0 return code conventions
  4823.  OLDRET        use HLLAPI v2.0 return code conventions
  4824. ----------7F---------------------------------
  4825. INT 7F - HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE
  4826.     AX = function
  4827.         0105h get entry points
  4828.         Return: CF set on error
  4829.             CF clear if successful
  4830.                 CX:DX -> array of FAR pointers to entry points
  4831. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  4832.       and then performing a FAR call via the appropriate vector of the
  4833.       entry point array
  4834.  
  4835. Function numbers: (do FAR call via entry_points+4*function)
  4836.  08h    HOPEN
  4837.  10h    HINT
  4838.  13h    HLDPAL
  4839.  15h    HBBW
  4840.  17h    HBBR
  4841.  18h    HBBCHN
  4842.  1Dh    HQMODE
  4843.  22h    HCLOSE
  4844.  30h    HINIT
  4845.  31h    HSYNC
  4846.  39h    HSPAL
  4847.  3Ah    HRPAL 
  4848. ----------7F09-------------------------------
  4849. INT 7F - MultiLink Advanced - SET TASK PRIORITY
  4850.     AH = 09h
  4851.     AL = priority (0-7)
  4852. Note:    the installation check consists of ensuring that the interrupt vector
  4853.       is not pointing at segment 0000h, then checking whether the byte
  4854.       at offset 0000h in the interrupt handler's segment is E9h
  4855. ----------80---------------------------------
  4856. INT 80 - Q-PRO4 - ???
  4857. ----------80---------------------------------
  4858. INT 80 - reserved for BASIC
  4859. ----------81---------------------------------
  4860. INT 81 - reserved for BASIC
  4861. ----------81---------------------------------
  4862. INT 81 - IBM TOKEN RING ADAPTER - ???
  4863. ----------82---------------------------------
  4864. INT 82 - reserved for BASIC
  4865. ----------82---------------------------------
  4866. INT 82 - IBM TOKEN RING ADAPTER - ???
  4867.     AH = function
  4868.         00h display message???
  4869.             DS:BX -> string
  4870.     ???
  4871. Return: ???
  4872. ----------83---------------------------------
  4873. INT 83 - reserved for BASIC
  4874. ----------84---------------------------------
  4875. INT 84 - reserved for BASIC
  4876. ----------85---------------------------------
  4877. INT 85 - reserved for BASIC
  4878. ----------86---------------------------------
  4879. INT 86 - Relocated (by NETBIOS) INT 18
  4880. ----------86---------------------------------
  4881. INT 86 - used by BASIC while in interpreter
  4882. ----------86---------------------------------
  4883. INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS
  4884. ----------87---------------------------------
  4885. INT 87 - used by BASIC while in interpreter
  4886. ----------87---------------------------------
  4887. INT 87 - APL*PLUS/PC - ????
  4888. ----------88---------------------------------
  4889. INT 88 - used by BASIC while in interpreter
  4890. ----------88----AL00-------------------------
  4891. INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE
  4892.     AL = 00h
  4893.     BX = STPTR of the variable to be assigned
  4894.     ES:SI -> model of type, rank, and shape (see below)
  4895. Return: ES:DI -> first data byte of object
  4896.     DX:CX = number of elements in the object
  4897. Format of shape model:
  4898. Offset    Size    Description
  4899.  00h    BYTE    type
  4900.         01h character (2-byte dimension sizes)
  4901.         02h integer (2-byte dimension sizes)
  4902.         08h floating point (2-byte dimension sizes)
  4903.         11h character (4-byte dimension sizes)
  4904.         12h integer (4-byte dimension sizes)
  4905.         18h floating point (4-byte dimension sizes)
  4906.  01h    BYTE    rank
  4907.  02h    WORD/DWORD first dimension of shape
  4908.  N    WORD/DWORD second dimension of shape
  4909.     ...
  4910. ----------88----AL01-------------------------
  4911. INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE
  4912.     AL = 01h
  4913.     AH = rank
  4914.     BX = STPTR of the variable to be assigned
  4915.     CX = first dimension (if any)
  4916.     DX = second dimension (if any)
  4917. Return: ES:DI -> object
  4918.     CX = number of elements in the object
  4919. Note:    each dimension must be 32767 or smaller
  4920. SeeAlso: AL=02h,08h
  4921. ----------88----AL02-------------------------
  4922. INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE
  4923.     AL = 02h
  4924.     AH = rank
  4925.     BX = STPTR of the variable to be assigned
  4926.     CX = first dimension (if any)
  4927.     DX = second dimension (if any)
  4928. Return: ES:DI -> object
  4929.     CX = number of elements in the object
  4930. Note:    each dimension must be 32767 or smaller
  4931. SeeAlso: AL=01h,08h
  4932. ----------88----AL08-------------------------
  4933. INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE
  4934.     AL = 08h
  4935.     AH = rank
  4936.     BX = STPTR of the variable to be assigned
  4937.     CX = first dimension (if any)
  4938.     DX = second dimension (if any)
  4939. Return: ES:DI -> object
  4940.     CX = number of elements in the object
  4941. Note:    each dimension must be 32767 or smaller
  4942. SeeAlso: AL=01h,02h
  4943. ----------88----ALF5-------------------------
  4944. INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
  4945.     AL = F5h
  4946.     BX = STPTR of object
  4947. ----------88----ALF6-------------------------
  4948. INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
  4949.     AL = F6h
  4950.     BX = STPTR of object
  4951. SeeAlso: AL=F7h,F8h
  4952. ----------88----ALF7-------------------------
  4953. INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
  4954.     AL = F7h
  4955.     BX = STPTR of object
  4956. SeeAlso: AL=F6h,F8h
  4957. ----------88----ALF8-------------------------
  4958. INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
  4959.     AL = F8h
  4960.     BX = STPTR of object
  4961. Return:  BX = 0000h eligible
  4962.           0001h not eligible
  4963. SeeAlso: AL=F6h,F7h
  4964. ----------88----ALF9-------------------------
  4965. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  4966.     AL = F9h
  4967.     ES:SI -> name
  4968.     CX = length of name
  4969. Return: CF set if name ill-formed or already in use
  4970.         BX = STPTR if already in symbol table
  4971.     CF clear if name is available for use
  4972.         BX = 0000h
  4973. Note:    does not force the name into the workspace
  4974. SeeAlso: AL=FEh,FFh
  4975. ----------88----ALFC-------------------------
  4976. INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION
  4977.     AL = FCh
  4978.     BX = amount of memory needed (paragraphs)
  4979. Return: CF clear if memory available
  4980.     CF set if a workspace compaction is required
  4981. SeeAlso: AL=FDh
  4982. ----------88----ALFD-------------------------
  4983. INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY
  4984.     AL = FDh
  4985. Return: BX = number of paragraphs available in workspace
  4986. SeeAlso: AL=FCh
  4987. ----------88----ALFE-------------------------
  4988. INT 88 - APL*PLUS/PC - CREATE NAME
  4989.     AL = FEh
  4990.     ES:SI -> name
  4991.     CX = length of name
  4992. Return: BX = STPTR of name
  4993.     DX = interpreter's data segment
  4994. SeeAlso: AL=F9h,FFh
  4995. ----------88----ALFF-------------------------
  4996. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  4997.     AL = FFh
  4998.     ES:SI -> name
  4999.     CX = length of name
  5000. Return: CF set if name ill-formed or already in use
  5001.         BX = STPTR if already in symbol table
  5002.     CF clear if name is available for use
  5003.         BX = 0000h
  5004. Note:    forces the name into the workspace and makes it immune from outswapping
  5005. SeeAlso: AL=F9h,FEh
  5006. ----------89---------------------------------
  5007. INT 89 - used by BASIC while in interpreter
  5008. ----------8A---------------------------------
  5009. INT 8A - used by BASIC while in interpreter
  5010. ----------8A---------------------------------
  5011. INT 8A - APL*PLUS/PC - PRINT SCREEN
  5012. Note:    same as INT 05
  5013. SeeAlso: INT 05
  5014. ----------8B---------------------------------
  5015. INT 8B - used by BASIC while in interpreter
  5016. ----------8B---------------------------------
  5017. INT 8B - APL*PLUS/PC - BEEP
  5018. Note:    same as printing a ^G via INT 21/AH=02h
  5019. SeeAlso: INT 21/AH=02h
  5020. ----------8C---------------------------------
  5021. INT 8C - used by BASIC while in interpreter
  5022. ----------8C0000-----------------------------
  5023. INT 8C - CLEAR SCREEN MEMORY
  5024.     AX = 0000h do not save display attributes
  5025.        = 0001h save attributes
  5026. ----------8D---------------------------------
  5027. INT 8D - used by BASIC while in interpreter
  5028. ----------8E---------------------------------
  5029. INT 8E - used by BASIC while in interpreter
  5030. ----------8F---------------------------------
  5031. INT 8F - used by BASIC while in interpreter
  5032. ----------90---------------------------------
  5033. INT 90 - used by BASIC while in interpreter
  5034. ----------90---------------------------------
  5035. INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER
  5036. ----------91---------------------------------
  5037. INT 91 - used by BASIC while in interpreter
  5038. ----------91---------------------------------
  5039. INT 91 - IBM TOKEN RING ADAPTER - ???
  5040. ----------92---------------------------------
  5041. INT 92 - used by BASIC while in interpreter
  5042. ----------92---------------------------------
  5043. INT 92 - Sangoma X.25 INTERFACE PROGRAM
  5044.     BX:DX -> control block
  5045. ----------93---------------------------------
  5046. INT 93 - used by BASIC while in interpreter
  5047. ----------93---------------------------------
  5048. INT 93 - IBM TOKEN RING ADAPTER - ???
  5049. ----------94---------------------------------
  5050. INT 94 - used by BASIC while in interpreter
  5051. ----------95---------------------------------
  5052. INT 95 - used by BASIC while in interpreter
  5053. ----------95---------------------------------
  5054. INT 95 - APL*PLUS/PC - DETERMINE R= SPACE
  5055. Note:    use only when the R= option is invoked on entering APL
  5056. ----------96---------------------------------
  5057. INT 96 - used by BASIC while in interpreter
  5058. ----------97---------------------------------
  5059. INT 97 - used by BASIC while in interpreter
  5060. ----------98---------------------------------
  5061. INT 98 - used by BASIC while in interpreter
  5062. ----------99---------------------------------
  5063. INT 99 - used by BASIC while in interpreter
  5064. ----------9A---------------------------------
  5065. INT 9A - used by BASIC while in interpreter
  5066. ----------9B---------------------------------
  5067. INT 9B - used by BASIC while in interpreter
  5068. ----------9C---------------------------------
  5069. INT 9C - used by BASIC while in interpreter
  5070. ----------9D---------------------------------
  5071. INT 9D - used by BASIC while in interpreter
  5072. ----------9E---------------------------------
  5073. INT 9E - used by BASIC while in interpreter
  5074. ----------9F---------------------------------
  5075. INT 9F - used by BASIC while in interpreter
  5076. ----------A0---------------------------------
  5077. INT A0 - used by BASIC while in interpreter
  5078. ----------A0---------------------------------
  5079. INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE
  5080. SeeAlso: INT 59
  5081. ----------A1---------------------------------
  5082. INT A1 - used by BASIC while in interpreter
  5083. ----------A2---------------------------------
  5084. INT A2 - used by BASIC while in interpreter
  5085. ----------A3---------------------------------
  5086. INT A3 - used by BASIC while in interpreter
  5087. ----------A4---------------------------------
  5088. INT A4 - used by BASIC while in interpreter
  5089. ----------A4---------------------------------
  5090. INT A4 - Right Hand Man API
  5091.     function number in AH
  5092. Note: Right-Hand Man is a TSR desk-top utility, and only hooks this interrupt
  5093.     while popped up
  5094. ----------A5---------------------------------
  5095. INT A5 - used by BASIC while in interpreter
  5096. ----------A6---------------------------------
  5097. INT A6 - used by BASIC while in interpreter
  5098. ----------A7---------------------------------
  5099. INT A7 - used by BASIC while in interpreter
  5100. ----------A8---------------------------------
  5101. INT A8 - used by BASIC while in interpreter
  5102. ----------A9---------------------------------
  5103. INT A9 - used by BASIC while in interpreter
  5104. ----------AA---------------------------------
  5105. INT AA - used by BASIC while in interpreter
  5106. ----------AB---------------------------------
  5107. INT AB - used by BASIC while in interpreter
  5108. ----------AC---------------------------------
  5109. INT AC - used by BASIC while in interpreter
  5110. ----------AD---------------------------------
  5111. INT AD - used by BASIC while in interpreter
  5112. ----------AE---------------------------------
  5113. INT AE - used by BASIC while in interpreter
  5114. ----------AF---------------------------------
  5115. INT AF - used by BASIC while in interpreter
  5116. ----------B0---------------------------------
  5117. INT B0 - used by BASIC while in interpreter
  5118. ----------B1---------------------------------
  5119. INT B1 - used by BASIC while in interpreter
  5120. ----------B2---------------------------------
  5121. INT B2 - used by BASIC while in interpreter
  5122. ----------B3---------------------------------
  5123. INT B3 - used by BASIC while in interpreter
  5124. ----------B370-------------------------------
  5125. INT B3 - ZIPKEY - GET VERSION
  5126.     AH = 70h
  5127. Return: AH = major version
  5128.     AL = minor version
  5129.     CL = number of states and territories in current database
  5130.     DH = year of current database - 1900
  5131.     DL = month of current database's file date
  5132. Notes:    if installed, the string "ZIPKEY" is present at offset 75h in the
  5133.       interrupt handler's segment, and the byte at 7Bh contains the API
  5134.       version number (currently 00h)
  5135.     ZIPKEY is a resident ZIPCODE database by Eric Isaacson
  5136. ----------B371-------------------------------
  5137. INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE
  5138.     AH = 71h
  5139.     BX = abbreviation, in either case
  5140. Return: CF set on error
  5141.         AL = FFh
  5142.     CF clear if successful
  5143.         AL = ZIPKEY state code
  5144. SeeAlso: AH=72h
  5145. ----------B372-------------------------------
  5146. INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION
  5147.     AH = 72h
  5148.     BL = ZIPKEY state code
  5149. Return: CF set on error
  5150.     CF clear if successful
  5151.         AX = abbreviation, in upper case
  5152. SeeAlso: AH=71h,73h
  5153. ----------B373-------------------------------
  5154. INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME
  5155.     AH = 73h
  5156.     BL = ZIPKEY state code
  5157.     ES:DI -> buffer for name
  5158. Return: CF set on error
  5159.     CF clear if successful
  5160.         ES:DI points one byte beyond end of name
  5161. SeeAlso: AH=72h
  5162. ----------B374-------------------------------
  5163. INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS
  5164.     AH = 74h
  5165.     DX = zipcode region (0-999)
  5166.     CH = last two digits of zipcode (0-99)
  5167.     ES:DI -> buffer
  5168. Return: CF set on error
  5169.     CF clear if successful
  5170.         ES:DI points one byte beyond end of digit string
  5171. ----------B375-------------------------------
  5172. INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE
  5173.     AH = 75h
  5174.     DX = zipcode region (0-999)
  5175.     CH = last two digits of zipcode (0-99)
  5176. Return: CF set on error (zipcode not found)
  5177.         AL = suggested state code, FFh if none
  5178.     CF clear if successful
  5179.         AL = ZIPKEY state code
  5180. SeeAlso: AH=76h,79h
  5181. ----------B376-------------------------------
  5182. INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE
  5183.     AH = 76h
  5184.     DX = zipcode region (0-999)
  5185.     CH = last two digits of zipcode (0-99)
  5186.     ES:DI -> buffer for name
  5187. Return: CF set on error
  5188.         AL = suggested state code, FFh if none
  5189.         ES:DI buffer filled with suggested city name
  5190.     CF clear if successful
  5191.         AL = ZIPKEY state code
  5192.         ES:DI points one byte beyond end of name
  5193. SeeAlso: AH=75h,78h
  5194. ----------B377-------------------------------
  5195. INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE
  5196.     AH = 77h
  5197.     DX = zipcode region (0-999)
  5198.     CH = last two digits of zipcode (0-99)
  5199.     BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key
  5200. Return: CF set on error
  5201.     CF clear if successful    
  5202.         zipcode specification as defined by the BX keystroke is placed in
  5203.           keyboard buffer, as if the user had popped up ZIPKEY and exited
  5204.           by pressing the key specified by BX
  5205. ----------B378-------------------------------
  5206. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY
  5207.     AH = 78h
  5208.     BL = ZIPKEY state code
  5209.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  5210. Return: BH = number of matching entries (set to 51 if more than 50)
  5211.     DX = zipcode region of first match (0-999)
  5212.     CL = last two digits of first zipcode in the range (0-99)
  5213.     CH = last two digits of last zipcode in the range (0-99)
  5214. SeeAlso: AH=79h,7Ah
  5215. ----------B379-------------------------------
  5216. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY
  5217.     AH = 79h
  5218.     BL = ZIPKEY state code of first state to search
  5219.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  5220. Return:    AL = ZIPKEY state code of first matching state
  5221.     BH = number of matching entries (set to 51 if more than 50)
  5222.     DX = zipcode region of first match (0-999)
  5223.     CL = last two digits of first zipcode in first range (0-99)
  5224.     CH = last two digits of last zipcode in first range (0-99)
  5225. Note:    to find all matching cities, repeat search with BL set to one more than
  5226.       the returned AL
  5227. SeeAlso: AH=78h,7Ah
  5228. ----------B37A-------------------------------
  5229. INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP
  5230.     AH = 7Ah
  5231.     BL = case number (0 to one less than value returned in BH by lookup)
  5232. Return: AL = ZIPKEY state code
  5233.     DX = zipcode region (0-999)
  5234.     CL = last two digits of first zipcode in the range (0-99)
  5235.     CH = last two digits of last zipcode in the range (0-99)
  5236. SeeAlso: AH=78h,79h
  5237. ----------B37B-------------------------------
  5238. INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT
  5239.     AH = 7Bh
  5240. Return: BL = maximum number of characters for a city name
  5241.     BH = ZIPKEY state code for last city-name search
  5242.         FFh if none
  5243.     CX:DX = internal code identifying last city search
  5244. SeeAlso: AH=7Ch
  5245. ----------B37C-------------------------------
  5246. INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT
  5247.     AH = 7Ch
  5248.     BL = maximum number of characters for a city name
  5249.     BH = ZIPKEY state code for last city-name search
  5250.         FFh if none
  5251.     CX:DX = internal code returned by AH=7Bh
  5252. Return: CF set on error
  5253.     CF clear if successful
  5254. SeeAlso: AH=7Bh
  5255. ----------B37D-------------------------------
  5256. INT B3 - ZIPKEY - REQUEST POP UP
  5257.     AH = 7Dh
  5258.     BL = index number to simulate pressing a hotkey
  5259.         FFh for immediate popup with no playback on return
  5260. Return: CF set on error
  5261.         AL = FDh already busy with another request
  5262.            = FEh illegal function
  5263.     CF clear if successful
  5264.         window popped up and was closed by the user
  5265. ----------B37E-------------------------------
  5266. INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION
  5267.     AH = 7Eh
  5268.     DX = zipcode region (0-999)
  5269.     ES:DI -> buffer for name
  5270. Return: CF set on error
  5271.         AL = FFh region does not exist
  5272.     CF clear if successful
  5273.         AL = ZIPKEY state code
  5274.         ES:DI points one byte beyond end of name
  5275. ----------B37F-------------------------------
  5276. INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS
  5277.     AH = 7Fh
  5278.     BL = function
  5279.         00h turn off hotkeys
  5280.         01h turn on hotkeys
  5281.         02h return hotkey status
  5282.         03h toggle hotkey status
  5283. Return: AL = hotkey status
  5284.         00h off
  5285.         01h on
  5286. ----------B4---------------------------------
  5287. INT B4 - used by BASIC while in interpreter
  5288. ----------B5---------------------------------
  5289. INT B5 - used by BASIC while in interpreter
  5290. ----------B6---------------------------------
  5291. INT B6 - used by BASIC while in interpreter
  5292. ----------B7---------------------------------
  5293. INT B7 - used by BASIC while in interpreter
  5294. ----------B8---------------------------------
  5295. INT B8 - used by BASIC while in interpreter
  5296. ----------B9---------------------------------
  5297. INT B9 - used by BASIC while in interpreter
  5298. ----------BA---------------------------------
  5299. INT BA - used by BASIC while in interpreter
  5300. ----------BB---------------------------------
  5301. INT BB - used by BASIC while in interpreter
  5302. ----------BC---------------------------------
  5303. INT BC - used by BASIC while in interpreter
  5304. ----------BD---------------------------------
  5305. INT BD - used by BASIC while in interpreter
  5306. ----------BE---------------------------------
  5307. INT BE - used by BASIC while in interpreter
  5308. ----------BF---------------------------------
  5309. INT BF - used by BASIC while in interpreter
  5310. ----------C0---------------------------------
  5311. INT C0 - used by BASIC while in interpreter
  5312. ----------C1---------------------------------
  5313. INT C1 - used by BASIC while in interpreter
  5314. ----------C2---------------------------------
  5315. INT C2 - used by BASIC while in interpreter
  5316. ----------C3---------------------------------
  5317. INT C3 - used by BASIC while in interpreter
  5318. ----------C4---------------------------------
  5319. INT C4 - used by BASIC while in interpreter
  5320. ----------C5---------------------------------
  5321. INT C5 - used by BASIC while in interpreter
  5322. ----------C6---------------------------------
  5323. INT C6 - used by BASIC while in interpreter
  5324. ----------C6---------------------------------
  5325. INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86
  5326. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  5327.       the older interrupts
  5328. ----------C7---------------------------------
  5329. INT C7 - used by BASIC while in interpreter
  5330. ----------C7---------------------------------
  5331. INT C7 - APL*PLUS/PC - ???
  5332. ----------C8---------------------------------
  5333. INT C8 - used by BASIC while in interpreter
  5334. ----------C8---------------------------------
  5335. INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88
  5336. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  5337.       the older interrupts
  5338. ----------C9---------------------------------
  5339. INT C9 - used by BASIC while in interpreter
  5340. ----------C9---------------------------------
  5341. INT C9 - APL*PLUS/PC - ???
  5342. ----------CA---------------------------------
  5343. INT CA - used by BASIC while in interpreter
  5344. ----------CA---------------------------------
  5345. INT CA - APL*PLUS/PC - IDENTICAL TO INT 8A
  5346. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  5347.       the older interrupts
  5348. ----------CB---------------------------------
  5349. INT CB - used by BASIC while in interpreter
  5350. ----------CB---------------------------------
  5351. INT CB - APL*PLUS/PC - IDENTICAL TO INT 8B
  5352. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  5353.       the older interrupts
  5354. ----------CC---------------------------------
  5355. INT CC - used by BASIC while in interpreter
  5356. ----------CC---------------------------------
  5357. INT CC - APL*PLUS/PC - IDENTICAL TO INT 8C
  5358. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  5359.       the older interrupts
  5360. ----------CD---------------------------------
  5361. INT CD - used by BASIC while in interpreter
  5362. ----------CD---------------------------------
  5363. INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5364. ----------CE---------------------------------
  5365. INT CE - used by BASIC while in interpreter
  5366. ----------CE---------------------------------
  5367. INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5368. ----------CF---------------------------------
  5369. INT CF - used by BASIC while in interpreter
  5370. ----------CF---------------------------------
  5371. INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION
  5372. ----------D0---------------------------------
  5373. INT D0 - used by BASIC while in interpreter
  5374. ----------D0---------------------------------
  5375. INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5376. ----------D1---------------------------------
  5377. INT D1 - used by BASIC while in interpreter
  5378. ----------D1---------------------------------
  5379. INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5380. ----------D2---------------------------------
  5381. INT D2 - used by BASIC while in interpreter
  5382. ----------D2---------------------------------
  5383. INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5384. ----------D3---------------------------------
  5385. INT D3 - used by BASIC while in interpreter
  5386. ----------D3---------------------------------
  5387. INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5388. ----------D4---------------------------------
  5389. INT D4 - used by BASIC while in interpreter
  5390. ----------D4---------------------------------
  5391. INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5392. ----------D5---------------------------------
  5393. INT D5 - used by BASIC while in interpreter
  5394. ----------D5---------------------------------
  5395. INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5396. ----------D6---------------------------------
  5397. INT D6 - used by BASIC while in interpreter
  5398. ----------D6---------------------------------
  5399. INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5400. ----------D7---------------------------------
  5401. INT D7 - used by BASIC while in interpreter
  5402. ----------D7---------------------------------
  5403. INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5404. ----------D8---------------------------------
  5405. INT D8 - used by BASIC while in interpreter
  5406. ----------D8---------------------------------
  5407. INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5408. ----------D9---------------------------------
  5409. INT D9 - used by BASIC while in interpreter
  5410. ----------D9---------------------------------
  5411. INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5412. ----------DA---------------------------------
  5413. INT DA - used by BASIC while in interpreter
  5414. ----------DA---------------------------------
  5415. INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5416. ----------DB---------------------------------
  5417. INT DB - used by BASIC while in interpreter
  5418. ----------DB---------------------------------
  5419. INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5420. ----------DC---------------------------------
  5421. INT DC - used by BASIC while in interpreter
  5422. ----------DC---------------------------------
  5423. INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5424. ----------DD---------------------------------
  5425. INT DD - used by BASIC while in interpreter
  5426. ----------DD---------------------------------
  5427. INT DD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5428. ----------DE---------------------------------
  5429. INT DE - used by BASIC while in interpreter
  5430. ----------DE---------------------------------
  5431. INT DE - APL*PLUS/PC - ???
  5432. Note:    appears to be the same as INT 16
  5433. ----------DF---------------------------------
  5434. INT DF - used by BASIC while in interpreter
  5435. ----------DF---------------------------------
  5436. INT DF - APL*PLUS/PC - SAME AS INT 10
  5437. SeeAlso: INT 10
  5438. ----------E0---------------------------------
  5439. INT E0 - CP/M-86 function calls
  5440. ----------E0---------------------------------
  5441. INT E0 - used by BASIC while in interpreter
  5442. ----------E0---------------------------------
  5443. INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION
  5444. ----------E1---------------------------------
  5445. INT E1 - used by BASIC while in interpreter
  5446. ----------E2---------------------------------
  5447. INT E2 - used by BASIC while in interpreter
  5448. ----------E3---------------------------------
  5449. INT E3 - used by BASIC while in interpreter
  5450. ----------E40005-----------------------------
  5451. INT E4 - Logitech Modula v2.0 - MonitorEntry
  5452.     AX = 0005h
  5453.     BX = priority
  5454. SeeAlso: AX=0006h
  5455. ----------E40006-----------------------------
  5456. INT E4 - Logitech Modula v2.0 - MonitorExit
  5457.     AX = 0006h
  5458. SeeAlso: AX=0005h
  5459. ----------E4---------------------------------
  5460. INT E4 - used by BASIC while in interpreter
  5461. ----------E5---------------------------------
  5462. INT E5 - used by BASIC while in interpreter
  5463. ----------E6---------------------------------
  5464. INT E6 - used by BASIC while in interpreter
  5465. ----------E7---------------------------------
  5466. INT E7 - used by BASIC while in interpreter
  5467. ----------E8---------------------------------
  5468. INT E8 - used by BASIC while in interpreter
  5469. ----------E9---------------------------------
  5470. INT E9 - used by BASIC while in interpreter
  5471. ----------EA---------------------------------
  5472. INT EA - used by BASIC while in interpreter
  5473. ----------EB---------------------------------
  5474. INT EB - used by BASIC while in interpreter
  5475. ----------EC---------------------------------
  5476. INT EC - used by BASIC while in interpreter
  5477. ----------ED---------------------------------
  5478. INT ED - used by BASIC while in interpreter
  5479. ----------EE---------------------------------
  5480. INT EE - used by BASIC while in interpreter
  5481. ----------EF---------------------------------
  5482. INT EF - used by BASIC while in interpreter
  5483. ----------EF---------------------------------
  5484. INT EF - compiled BASIC - ORIGINAL INT 09 VECTOR
  5485. ----------EF----CX0473-----------------------
  5486. INT EF - GEM - INTERFACE
  5487.     CX = 0473h
  5488.     DS:DX -> GEM parameter block
  5489. ----------F0---------------------------------
  5490. INT F0 - used by BASIC while in interpreter
  5491. ----------F0---------------------------------
  5492. INT F0 - compiled BASIC - ORIGINAL INT 08 VECTOR
  5493. ----------F1---------------------------------
  5494. INT F1 - reserved for user interrupt
  5495. ----------F1---------------------------------
  5496. INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
  5497.     DS:BX -> '$'-terminated text string
  5498. Note:    SPEECH.COM is a resident text-to-speech converter by Douglas Sisco
  5499. ----------F2---------------------------------
  5500. INT F2 - reserved for user interrupt
  5501. ----------F3---------------------------------
  5502. INT F3 - reserved for user interrupt
  5503. ----------F4---------------------------------
  5504. INT F4 - reserved for user interrupt
  5505. ----------F5---------------------------------
  5506. INT F5 - reserved for user interrupt
  5507. ----------F6---------------------------------
  5508. INT F6 - reserved for user interrupt
  5509. ----------F7---------------------------------
  5510. INT F7 - reserved for user interrupt
  5511. ----------F8---------------------------------
  5512. INT F8 - 10 ms INTERVAL TIMER (TANDY???)
  5513. ----------F9---------------------------------
  5514. INT F9 - reserved for user interrupt
  5515. ----------FA---------------------------------
  5516. INT FA - USART READY (RS-232C) (TANDY???)
  5517. ----------FB---------------------------------
  5518. INT FB - USART Rx READY (keyboard) (TANDY???)
  5519. ----------FC---------------------------------
  5520. INT FC - reserved for user interrupt
  5521. ----------FD---------------------------------
  5522. INT FD - reserved for user interrupt
  5523. ----------FE---------------------------------
  5524. INT FE - AT/XT286/PS50+ - destroyed by return from protected mode
  5525. ----------FF---------------------------------
  5526. INT FF - AT/XT286/PS50+ - destroyed by return from protected mode
  5527. ----------FF---------------------------------
  5528. INT FF - Z100 - WARM BOOT
  5529. ---------------------------------------------
  5530. Please redistribute the following files unmodified as a group, in an archive
  5531. named INTER191:
  5532.     INTERRUP.1ST    the read-me file, containing credits, availability info
  5533.     INTERRUP.A    INT 00 through INT 1F
  5534.     INTERRUP.B    INT 20 through INT 27
  5535.     INTERRUP.C    INT 28 through INT 5F
  5536.     INTERRUP.D    INT 60 through INT FF
  5537.     INTERRUP.PRI    a brief introduction to interrupts
  5538.     INTPRINT.COM    a simple formatter that also generates the list summary
  5539.     INTPRINT.DOC    instructions for INTPRINT
  5540.     INTPRINT.C    source code for INTPRINT
  5541.     MEMORY.LST    format of the BIOS data area
  5542.     INT2QH.*    program for converting list to QuickHelp database
  5543. This compilation is Copyright (c) 1989, 1990, 1991 Ralf Brown
  5544. ---------------------------------------------
  5545. ARPA: ralf@cs.cmu.edu
  5546. UUCP: {ucbvax,harvard}!cs.cmu.edu!ralf
  5547. BIT:  ralf%cs.cmu.edu@cmuccvma
  5548. FIDO: Ralf Brown 1:129/3.1
  5549.     or post a message to the DR_DEBUG echo
  5550. CIS:  >INTERNET:ralf@cs.cmu.edu
  5551.