home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / i / inter33b.zip / INTERRUP.H < prev    next >
Text File  |  1993-01-03  |  246KB  |  6,865 lines

  1. Interrupt List, part 8 of 8
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993 Ralf Brown
  3. ----------68---------------------------------
  4. INT 68 - Sangoma CCPOP 3270 resident module
  5. SeeAlso: INT 67"Sangoma",INT 92"Sangoma"
  6. ----------6801-------------------------------
  7. INT 68 - APPC/PC - NETWORK DEVICE CONTROL
  8.     AH = 01h
  9.     DS:DX -> control block
  10.  
  11. Format of control block:
  12. Offset    Size    Description
  13.  00h 12 BYTEs    reserved
  14.  0Ch    WORD    verb (action)
  15.  0Eh  6 BYTEs    00h
  16.  14h    DWORD    big-endian return code (see below)
  17. ---if verb = 1B00h (DISPLAY)---
  18.  18h    WORD    00h
  19.  1Ah  8 BYTEs    logical unit ID (big-endian)
  20.  22h  8 BYTEs    partner logical unit name (big-endian)
  21.  2Ah  8 BYTEs    mode name (big-endian)
  22.  32h    BYTE    logical unit session limit
  23.  33h    BYTE    partner logical unit session limit
  24.  34h    BYTE    node maximum negotiable session limit
  25.  35h    BYTE    current session limit
  26.  36h    BYTE    minimum negotiated winner limit
  27.  37h    BYTE    maximum negotiated loser limit
  28.  38h    BYTE    active session count
  29.  39h    BYTE    active CONWINNER session count
  30.  3Ah    BYTE    active CONLOSER session count
  31.  3Bh    BYTE    session termination count
  32.  3Ch    BYTE    bit 7: SESSION_TERMINATION_TARGET_DRAIN
  33.         bit 6: SESSION_TERMINATION_SOURCE_DRAIN
  34. ---if verb=2000h (Attach Physical Unit)---
  35.  18h    WORD    00h
  36.  1Ah    BYTE    version
  37.  1Bh    BYTE    release
  38.  1Ch  8 BYTEs    net name (big-endian)
  39.  24h  8 BYTEs    physical unit name (big-endian)
  40.  2Ch  8 BYTEs    00h
  41.  34h    DWORD    pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
  42.  38h    DWORD    00h
  43.  3Ch    BYTE    00h RETURN_CONTROL: COMPLETE
  44.         01h RETURN_CONTROL: INCOMPLETE
  45. ---if verb=2100h (Attach Logical Unit)---
  46.  18h    WORD    70  offset to partner logical unit record
  47.  1Ah  8 BYTEs    logical unit name (big-endian)
  48.  22h  8 BYTEs    logical unit ID (big-endian)
  49.  2Ah    BYTE    logical unit local address
  50.  2Bh    BYTE    logical unit session limit
  51.  2Ch    DWORD    pointer to CREATE_TP_EXIT routine,
  52.         FFFFFFFFh = reject incoming ALLOCATEs
  53.         00000000h = queue ALLOCATEs
  54.  30h    DWORD    00h
  55.  34h    DWORD    pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
  56.  38h    DWORD    00h
  57.  3Ch    BYTE    maximum TPs
  58.  3Dh    BYTE    queue depth
  59.  3Eh    DWORD    pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh=no pswd exit
  60.  42h    DWORD    00h
  61.  46h    WORD    total length of partner records
  62.     for each partner logical unit:
  63.     WORD    length of this partner logical unit record
  64.     WORD    42  offset to mode records
  65.       8 BYTEs    partner logical unit name (big-endian)
  66.     BYTE    partner logical unit security capabilities
  67.         bit 7: already verified
  68.         bit 6: conversation level security
  69.         bit 5: session level security
  70.     BYTE    partner logical unit session limit
  71.     WORD    partner logical unit maximum MC_SEND_LL
  72.       8 BYTEs    partner logical unit DLC name (big-endian)
  73.     BYTE    partner logical unit adapter number
  74.      17 BYTEs    (counted string) partner logical unit adapter address
  75.     WORD    total length of mode records
  76.    for each mode:
  77.     WORD    16  length of this mode record
  78.       8 BYTEs    mode name (big-endian)
  79.     WORD    RU_SIZE high bound
  80.     WORD    RU_SIZE low bound
  81.     BYTE    mode maximum negotiable session limit
  82.     BYTE    pacing size for receive
  83. ---if verb=2200h (Detach Logical Unit)---
  84.  18h  8 BYTEs    logical unit ID (big-endian)
  85.  20h    BYTE    00h
  86. ---if verb=2700h (Detach Physical Unit)---
  87.  18h    BYTE    00h  type: hard
  88.         01h  type: soft
  89. ---if verb=2B00h (Activate DLC)---
  90.  18h  8 BYTEs    DLC name (big-endian)
  91.  20h    BYTE    adapter number
  92.  
  93. Values for return code:
  94.      0000h    successful
  95.      0001h    BAD_TP_ID
  96.      0002h    BAD_CONV_ID
  97.      0003h    bad logical unit ID
  98.      0008h    no physical unit attached
  99.      0110h    bad state
  100.      01B1h    BAD_PART_LUNAME
  101.      01B2h    bad mode name
  102.      0201h    physical unit already active
  103.      0211h    logical unit already active
  104.      0212h    BAD_PART_SESS
  105.      0213h    BAD_RU_SIZES
  106.      0214h    BAD_MODE_SESS
  107.      0216h    BAD_PACING_CNT
  108.      0219h    EXTREME_RUS
  109.      021Ah    SNASVCMG_1
  110.      0223h    SSCP_CONNECTED_LU
  111.      0230h    invalid change
  112.      0243h    too many TPs
  113.      0272h    adapter close failure
  114.      0281h    GET_ALLOC_BAD_TYPE
  115.      0282h    unsuccessful
  116.      0283h    DLC failure
  117.      0284h    unrecognized DLC
  118.      0286h    duplicate DLC
  119.      0301h    SSCP_PU_SESSION_NOT_ACTIVE
  120.      0302h    data exceeds RU size
  121.      0401h    invalid direction
  122.      0402h    invalid type
  123.      0403h    segment overlap
  124.      0404h    invalid first character
  125.      0405h    table error
  126.      0406h    conversion error
  127.      F0010000h    APPC disabled
  128.      F0020000h    APPC busy
  129.      F0030000h    APPC abended
  130.      F0040000h    incomplete
  131.  
  132. Routines defined by LU_LU_PASSWORD_EXIT, CREATE_TP_EXIT, and SYSTEM_LOG_EXIT
  133. pointers are called by pushing the DWORD pointer to the verb on the stack and
  134. then performing a FAR call.
  135.  
  136. Format of ACCESS_LU_LU_PW verb:
  137. Offset    Size    Description
  138.  00h 12 BYTEs    reserved
  139.  0Ch    WORD    1900h
  140.  0Eh  8 BYTEs    logical unit ID (big-endian)
  141.  16h  8 BYTEs    logical unit name (big-endian)
  142.  1Eh  8 BYTEs    partner logical unit name (big-endian)
  143.  26h 17 BYTEs    (counted string) partner fully qualified logical unit name
  144.  37h    BYTE    password available (0=no, 1=yes)
  145.  38h  8 BYTEs    password
  146.  
  147. Format of CREATE_TP verb:
  148. Offset    Size    Description
  149.  00h 12 BYTEs    reserved
  150.  0Ch    WORD    2300h
  151.  0Eh  6 BYTEs    00h
  152.  14h    DWORD    sense code (big-endian)
  153.         00000000h    Ok
  154.         080F6051h    SECURITY_NOT_VALID
  155.         084B6031h    TP_NOT_AVAIL_RETRY
  156.         084C0000h    TP_NOT_AVAIL_NO_RETRY
  157.         10086021h    TP_NAME_NOT_RECOGNIZED
  158.         10086034h    CONVERSATION_TYPE_MISMATCH
  159.         10086041h    SYNC_LEVEL_NOT_SUPPORTED
  160.  18h  8 BYTEs    TP ID (big-endian)
  161.  20h  8 BYTEs    logical unit ID (big-endian)
  162.  28h    DWORD    conversation ID (big-endian)
  163.  2Ch    BYTE    0 basic conversation, 1 mapped conversation
  164.  2Dh    BYTE    0 no sync level, 1 confirm
  165.  2Eh    BYTE    reserved
  166.  2Fh 65 BYTEs    (counted string) transaction program name
  167.  70h  6 BYTEs    00h
  168.  76h    WORD    length of ERROR_LOG_DATA to return
  169.  78h    DWORD    pointer to ERROR_LOG_DATA buffer
  170.  7Ch  8 BYTEs    partner logical unit name (big-endian)
  171.  84h 18 BYTEs    (counted string) partner fully qualified logical unit name
  172.  96h  8 BYTEs    mode name (big-endian)
  173.  9Eh 12 BYTEs    00h
  174.  AAh 11 BYTEs    (counted string) password
  175.  B5h 11 BYTEs    (counted string) user ID
  176.  C0h    BYTE    0 verification should be performed
  177.         1 already verified
  178.  
  179. Format of SYSLOG verb:
  180. Offset    Size    Description
  181.  00h 12 BYTEs    reserved
  182.  0Ch    WORD    2600h
  183.  0Eh 10 BYTEs    00h
  184.  18h    WORD    type (big-endian)
  185.  1Ah    DWORD    subtype (big-endian)
  186.  1Eh    DWORD    pointer to ADDITIONAL_INFO
  187.  22h    DWORD    conversation ID (big-endian)
  188.  26h  8 BYTEs    TP ID (big-endian)
  189.  2Eh  8 BYTEs    physical unit or logical unit name (big-endian)
  190.  36h    WORD    length of data
  191.  38h    DWORD    pointer to data
  192.  3Ch    BYTE    00h
  193. ----------6802-------------------------------
  194. INT 68 - APPC/PC - CONNECTION CONTROL
  195.     AH = 02h
  196.     DS:DX -> control block
  197.  
  198. Format of control block:
  199. Offset    Size    Description
  200.  00h 12 BYTEs    reserved
  201.  0Ch    WORD    verb (action)
  202.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  203.         0 if basic verb
  204.  0Fh  5 BYTEs    reserved (0)
  205.  14h    WORD    (high byte first) primary return code (see below)
  206.  16h    DWORD    (high byte first) error code (see below)
  207.  1Ah  8 BYTEs    (high byte first) TP_ID
  208.  22h    DWORD    (high byte first) conversation ID
  209. ---if verb=0100h (Allocate or MC_Allocate)---
  210.  26h    BYTE    (MC_Allocate only) 0 basic conversation
  211.                    1 mapped conversation
  212.  27h    BYTE    00h SYNC_LEVEL = none
  213.         01h SYNC_LEVEL = confirm
  214.  28h    WORD    0000h
  215.  2Ah    BYTE    00h RETURN_CONTROL: when session allocated
  216.         01h RETURN_CONTROL: immediate
  217.         02h RETURN_CONTROL: when session free
  218.  2Bh  8 BYTEs    00h
  219.  33h  8 BYTEs    (high byte first) partner logical unit name
  220.  3Bh  8 BYTEs    (high byte first) mode name
  221.  43h 65 BYTEs    (counted string) TP name
  222.  84h    BYTE    00h security: none
  223.         01h security: same
  224.         02h security: pgm
  225.  85h 11 BYTEs    00h
  226.  90h 11 BYTEs    (counted string) password
  227.  9Bh 11 BYTEs    (counted string) user ID
  228.  A6h    WORD    PIP_DATA length
  229.  A8h    DWORD    pointer to PIP_DATA
  230. ---if verb=0300h (Confirm or MC_Confirm)---
  231.  26h    BYTE  request to send received (0=no, 1=yes)
  232. ---if verb=0400h (Confirmed or MC_Confirmed), no additional fields---
  233. ---if verb=0500h (Deallocate or MC_Deallocate)---
  234.  26h    BYTE    00h
  235.  27h    BYTE    type 0 SYNC_LEVEL
  236.              1 FLUSH
  237.              2 ABEND_PROC
  238.              3 ABEND_SVC
  239.              4 ABEND_TIMER
  240.              5 ABEND
  241.  28h    WORD    (MC_Deallocate only) length of error log data
  242.  2Ah    DWORD    (MC_Deallocate only) pointer to error log data
  243. ---if verb=0600h (Flush or MC_Flush), no additional fields---
  244. ---if verb=0700h (Get_Attributes or MC_Get_Attributes)---
  245.  26h  8 BYTEs    (high byte first) logical unit ID
  246.  2Eh    BYTE    00h
  247.  2Fh    BYTE    SYNC_LEVEL (0=none, 1=confirm)
  248.  30h  8 BYTEs    (high byte first) mode name
  249.  38h  8 BYTEs    (high byte first) own net name
  250.  40h  8 BYTEs    (high byte first) own logical unit name
  251.  48h  8 BYTEs    (high byte first) partner logical unit name
  252.  50h 18 BYTEs    (counted string) partner's fully qualified logical unit name
  253.  62h    BYTE    00h
  254.  63h 11 BYTEs    (counted string) user ID
  255. ---if verb=0800h (Get_Type)---
  256.  26h    BYTE    type (0=basic conversation, 1=mapped conversation)
  257. ---if verb=0900h (Post_on_Receipt)---
  258.  26h    WORD    maximum length
  259.  28h    BYTE    fill (0=buffer, 1=LL)
  260. ---if verb=0A00h (Prepare_to_Receive or MC_Prepare_to_Receive)---
  261.  26h    BYTE    type (0=SYNC_LEVEL, 1=FLUSH)
  262.  27h    BYTE    locks (0=short, 1=long)
  263. ---if verb=0B00h (Receive_and_Wait or MC_Receive_and_Wait)---
  264.  26h    BYTE    what received
  265.         00h data
  266.         01h data complete
  267.         02h data incomplete
  268.         03h confirm
  269.         04h confirm send
  270.         05h confirm deallocate
  271.         06h send
  272.  27h    BYTE    (MC_Receive_and_Wait only) fill (0=buffer, 1=LL)
  273.  28h    BYTE    Request_to_Send_Received (0=no, 1=yes)
  274.  29h    WORD    maximum length
  275.  2Bh    WORD    data length
  276.  2Dh    DWORD    pointer to data
  277. ---if verb=0C00h (Receive_Immediate or MC_Receive_Immediate)---
  278.  26h    BYTE    what received
  279.         00h data
  280.         01h data complete
  281.         02h data incomplete
  282.         03h confirm
  283.         04h confirm send
  284.         05h confirm deallocate
  285.         06h send
  286.  27h    BYTE    (MC_Receive_Immediate only) fill (0=buffer, 1=LL)
  287.  28h    BYTE    Request_to_Send_Received (0=no, 1=yes)
  288.  29h    WORD    maximum length
  289.  2Bh    WORD    data length
  290.  2Dh    DWORD    pointer to data
  291. ---if verb=0E00h (Request_to_Send or MC_Request_to_Send), no other fields---
  292. ---if verb=0F00h (Send_Data or MC_Send_Data)---
  293.  26h    BYTE    request to send received (0=no, 1=yes)
  294.  27h    BYTE    00h
  295.  28h    WORD    data length
  296.  2Ah    DWORD    pointer to data
  297. ---if verb=1000h (Send_Error or MC_Send_Error)---
  298.  26h    BYTE    request to send received (0=no, 1=yes)
  299.  27h    BYTE    type (0=program, 1=SVC)
  300.  28h    DWORD    00h
  301.  2Ch    WORD    (MC_Send_Error only) LOG_DATA length
  302.  2Eh    DWORD    (MC_Send_Error only) pointer to LOG_DATA
  303. ---if verb=1200h (Test or MC_Test)---
  304.  26h    BYTE    (MC_Test only) test (0=posted, 1=request_to_send received)
  305.         Note: error code has different interpretations for:
  306.             0 posted data
  307.             1 posted not data (primary return code = 0)
  308.             1 bad TP_ID (primary return code = 1)
  309. ---if verb=1300h (Wait)---
  310.  26h    BYTE    number of conversations to wait on
  311.         Note: error codes have interpretations as for 1200h above
  312.  
  313. Values for primary return code:
  314.  0000h    successful
  315.  0001h    parameter check
  316.  0002h    state check
  317.  0003h    allocation error
  318.  0005h    deallocate abended
  319.  0006h    deallocate abended program
  320.  0007h    deallocate abended SVC
  321.  0008h    deallocate abended timer
  322.  0009h    deallocate normal return
  323.  000Ah    data posting blocked
  324.  000Bh    posting not active
  325.  000Ch    PROG_ERROR_NO_TRUNC
  326.  000Dh    PROG_ERROR_TRUNC
  327.  000Eh    PROG_ERROR_PURGING
  328.  000Fh    CONV_FAILURE_RETRY
  329.  0010h    CONV_FAILURE_NO_RETRY
  330.  0011h    SVC_ERROR_NO_TRUNC
  331.  0012h    SVC_ERROR_TRUNC
  332.  0013h    SVC_ERROR_PURGING
  333.  0014h    unsuccessful
  334.  0018h    CNOS partner logical unit reject
  335.  0019h    conversation type mixed
  336.  F001h    APPC disabled
  337.  F002h    APPC busy
  338.  F003h    APPC abended
  339.  F004h    incomplete
  340.  
  341. Values for error code:
  342.  0001h bad TP ID
  343.  0002h bad conversation ID
  344.  0004h allocation error, no retry
  345.  0005h allocation error, retry
  346.  0006h data area crosses segment boundary
  347.  0010h bad TPN length
  348.  0011h bad CONV length
  349.  0012h bad SYNC level
  350.  0013h bad security selection
  351.  0014h bad return control
  352.  0015h SEC_TOKENS too big
  353.  0016h PIP_LEN incorrect
  354.  0017h no use of SNASVCMG
  355.  0018h unknown partner mode
  356.  0031h confirm: SYNC_NONE
  357.  0032h confirm: bad state
  358.  0033h confirm: NOT_LL_BDY
  359.  0041h confirmed: bad state
  360.  0051h deallocate: bad type
  361.  0052h deallocate: flush bad state
  362.  0053h deallocate: confirm bad state
  363.  0055h deallocate: NOT_LL_BDY
  364.  0057h deallocate: log LL_WRONG
  365.  0061h flush: not send state
  366.  0091h post on receipt: invalid length
  367.  0092h post on receipt: not in receive state
  368.  0093h post on receipt: bad fill
  369.  00A1h prepare to receive:invalid type
  370.  00A2h prepare to receive: unfinished LL
  371.  00A3h prepare to receive: not in send state
  372.  00B1h receive and wait: bad state
  373.  00B2h receive and wait: NOT_LL_BDY
  374.  00B5h receive and wait: bad fill
  375.  00C1h receive immediate: not in receive state
  376.  00C4h receive immediate: bad fill
  377.  00E1h request to send: not in receive state
  378.  00F1h send data: bad LL
  379.  00F2h send data: not in send state
  380.  0102h send error: log LL wrong
  381.  0103h send error: bad type
  382.  0121h test: invalid type
  383.  0122h test: not in receive state
  384. ----------6803-------------------------------
  385. INT 68 - APPC/PC
  386.     AH = 03h
  387.     DS:DX -> control block (see below)
  388.  
  389. Format of control block:
  390. Offset    Size    Description
  391.  00h 12 BYTEs    reserved
  392.  0Ch    WORD    verb (action)
  393.  0Eh  6 BYTEs    0
  394.  14h    DWORD    (high byte first) return code (see AH=01h)
  395.  18h    WORD    0
  396.  1Ah  8 BYTEs    (high byte first) logical unit ID
  397. ---if verb=2400h (TP Started), control block continues---
  398.  22h  8 BYTEs    (high byte first) TP ID
  399. ---if verb=2800h (Get ALLOCATE), control block continues---
  400.  22h    BYTE    type
  401.         00h dequeue
  402.         01h test
  403.  23h    DWORD    pointer to CREATE_TP record
  404. ---if verb=2A00h (Change Logical Unit). control block continues---
  405.  22h    DWORD    pointer to CREATE_TP_EXIT routine
  406.         FFFFFFFFh reject incoming ALLOCATEs
  407.         00000000h queue ALLOCATEs
  408.  26h    DWORD    00000000h
  409.  2Ah    DWORD    pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh= don't log errors
  410.  2Eh    DWORD    00000000h
  411.  32h    BYTE    maximum TPs
  412.  33h    BYTE    00h stop QUEUE_ALLOCATEs
  413.         01h resume QUEUE_ALLOCATEs
  414.  34h    DWORD    pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh = no exit
  415.  38h    DWORD    00000000h
  416. ----------6804-------------------------------
  417. INT 68 - APPC/PC
  418.     AH = 04h
  419.     DS:DX -> control block (see below)
  420.  
  421. Format of control block:
  422. Offset    Size    Description
  423.  00h 12 BYTEs    reserved
  424.  0Ch    WORD    verb (action)
  425.         2500h TP_ENDED
  426.         2900h TP_VALID
  427.  0Eh  6 BYTEs    0
  428.  14h    DWORD    (high byte first) return code (see AH=01h)
  429.  18h    WORD    0
  430.  1Ah  8 BYTEs    (high byte first) TP_ID
  431.  22h    DWORD -> CREATE_TP record (only if verb = 2900h)
  432. ----------6805-------------------------------
  433. INT 68 - APPC/PC - TRANSFER MSG DATA
  434.     AH = 05h
  435.     DS:DX -> control block (see below)
  436.  
  437. Format of control block:
  438. Offset    Size    Description
  439.  00h 12 BYTEs    reserved
  440.  0Ch    WORD    1C00h
  441.  0Eh    BYTE    00h user defined
  442.         01h NMVT
  443.         02h alert subvectors
  444.         03h PDSTATS subvectors
  445.  0Fh  5 BYTEs    0
  446.  14h    DWORD    (high byte first) return code (see AH=01h)
  447.  18h 12 BYTEs    0
  448.  24h    BYTE    if bit 0 clear, add correlation subvector
  449.         if bit 1 clear, add product set ID subvector
  450.         if bit 2 clear, do SYSLOG
  451.         if bit 3 clear, send SSCP_PU_SESSION
  452.  25h    BYTE    0
  453.  26h    WORD    length of data
  454.  28h  N BYTEs    data
  455. ----------6806-------------------------------
  456. INT 68 - APPC/PC - CHANGE NUMBER OF SESSIONS
  457.     AH = 06h
  458.     DS:DX -> control block (see below)
  459.  
  460. Format of control block:
  461. Offset    Size    Description
  462.  00h 12 BYTEs    reserved
  463.  0Ch    WORD    1500h
  464.  0Eh  6 BYTEs    0
  465.  14h    WORD    (high byte first) primary return code (see AH=02h)
  466.  16h    DWORD    (high byte first) secondary return code (see below, AH=01h)
  467.  1Ah  8 BYTEs    (high byte first) logical unit ID
  468.  22h  8 BYTEs    blanks
  469.  2Ah  8 BYTEs    (high byte first) partner logical unit name
  470.  32h  8 BYTEs    (high byte first) mode name
  471.  3Ah    BYTE    bit 7: use MODE_NAME_SELECT_ALL rather than MODE_NAME
  472.         bit 6: set negotiable values
  473.  3Bh    BYTE    partner logical unit mode session limit
  474.  3Ch    BYTE    minimum CONWINNERS_SOURCE
  475.  3Dh    BYTE    maximum CONWINNERS_TARGET
  476.  3Eh    BYTE    automatic activation
  477.  3Fh    BYTE    0
  478.  40h    BYTE    bit 7: drain target
  479.         bit 6: drain source
  480.         bit 5: target responsible, not source
  481.  
  482. Values for secondary return code (see also AH=01h):
  483.   0000h accepted
  484.   0001h negotiated
  485.   0003h bad logical unit ID
  486.   0004h allocation failure, no retry
  487.   0005h allocation failure, retry
  488.   0151h can't raise limits
  489.   0153h all modes must reset
  490.   0154h bad SNASVCMG limits
  491.   0155h minimum greater than total
  492.   0156h mode closed (prim return code = 1)
  493.     CNOS mode closed (prim return code = 18h)
  494.   0157h bad mode name (prim return code = 1)
  495.     CNOS bad mode name (prim return code = 18h)
  496.   0159h reset SNA drains
  497.   015Ah single not SRC response
  498.   015Bh bad partner logical unit
  499.   015Ch exceeds maximum allowed
  500.   015Dh change SRC drains
  501.   015Eh logical unit detached
  502.   015Fh CNOS command race reject
  503. ----------6807-------------------------------
  504. INT 68 - APPC/PC - PASSTHROUGH
  505.     AH = 07h
  506.     DS:DX -> control block (format depends on application subsystem)
  507. SeeAlso: AH=FFh
  508. ----------68FA-------------------------------
  509. INT 68 - APPC/PC - ENABLE/DISABLE APPC
  510.     AH = FAh
  511.     AL bit 0 = 0 enable
  512.            1 disable
  513. ----------68FB-------------------------------
  514. INT 68 - APPC/PC - CONVERT
  515.     AH = FBh
  516.     DS:DX -> control block (see below)
  517.  
  518. Format of control block:
  519. Offset    Size    Description
  520.  00h 12 BYTEs    reserved
  521.  0Ch    WORD    1A00h
  522.  0Eh  6 BYTEs    0
  523.  14h    DWORD    (high byte first) return code
  524.  18h    BYTE    conversion
  525.            00h ASCII to EBCDIC
  526.            01h EBCDIC to ASCII
  527.  19h    BYTE    character set
  528.            00h AE
  529.            01h A
  530.            02h G
  531.  1Ah    WORD    length of string to convert
  532.  1Ch    DWORD    pointer to source
  533.  20h    DWORD    pointer to target
  534. ----------68FC-------------------------------
  535. INT 68 - APPC/PC - ENABLE/DISABLE MESSAGE TRACING
  536.     AH = FCh
  537.     AL = 00h disable tracing
  538.        = 01h enable tracing
  539.         DX = number of bytes to keep (0=all)
  540. SeeAlso: AH=FDh
  541. ----------68FD-------------------------------
  542. INT 68 - APPC/PC - ENABLE/DISABLE API VERB TRACING
  543.     AH = FDh
  544.     AL = 00h disable tracing
  545.          01h enable tracing
  546. SeeAlso: AH=FCh,AH=FEh
  547. ----------68FE-------------------------------
  548. INT 68 - APPC/PC - SET TRACE DESTINATION
  549.     AH = FEh
  550.     AL = trace destinations
  551.         bit 0  storage (DS:DX -> trace stats record)
  552.         bit 1  display
  553.         bit 2  file (trace written to file OUTPUT.PC)
  554.         bit 3  printer
  555. SeeAlso: AH=FDh
  556.  
  557. Format of Trace Statistics Record:
  558. Offset    Size    Description
  559.  00h    DWORD    pointer to storage trace buffer
  560.  04h    WORD    max number of 80-byte records in trace
  561.  06h    WORD    (high-order byte first!) current record number (must init to 0)
  562.  08h    DWORD    (high-order byte first!) number of records written (init to 0)
  563.  0Ch    DWORD    reserved
  564. Note:    do not move record while trace is active
  565. ----------68FF-------------------------------
  566. INT 68 - APPC/PC - SET PASSTHROUGH
  567.     AH = FFh
  568.     DS:DX -> passthrough exit routine
  569. SeeAlso: AH=07h
  570. ----------69---------------------------------
  571. INT 69 - Zenith AT BIOS - ???
  572.    called by INT 09 handler
  573. ----------690100-----------------------------
  574. INT 69 - DECnet DOS CTERM - INSTALLATION CHECK
  575.     AX = 0100h
  576. Return: AL = FFh if present
  577. SeeAlso: AX=010Fh
  578. ----------690101-----------------------------
  579. INT 69 - DECnet DOS CTERM - SEND BYTE
  580.     AX = 0101h
  581.     BL = character
  582.     DX = session handle
  583. Return: AH >= 80h on error
  584. SeeAlso: AX=0102h
  585. ----------690102-----------------------------
  586. INT 69 - DECnet DOS CTERM - READ BYTE
  587.     AX = 0102h
  588.     DX = session handle
  589. Return: AH >= 80h on error
  590.     AH < 80h if successful
  591.         AL = character
  592. SeeAlso: AX=0101h
  593. ----------690103-----------------------------
  594. INT 69 - DECnet DOS CTERM - STATUS
  595.     AX = 0103h
  596.     DX = session handle
  597. Return: AH status flags
  598.         bit 7 session has been aborted
  599.         6 DECnet error
  600.         1 trace data available
  601.         0 receive data available
  602.     AL = reason code if DECnet error
  603.         00h normal disconnect
  604.         01h unknown message from host
  605.         02h protocol violation from host
  606.         03h could not process the initiate message
  607.         04h error receiving message from host
  608.         05h error sending message to host
  609.         06h error checking for message from host
  610.         07h remote system does not support CTERM
  611.         08h remote system does not support correct protocol version
  612.         09h did not receive BIND message from host
  613.         0Ah could not send BIND message to host
  614.         0Bh no more sessions available
  615.         0Ch session does not exist
  616.         0Dh not enough memory to complete operation
  617.         0Eh connection has broken
  618. SeeAlso: AX=0104h
  619. ----------690104-----------------------------
  620. INT 69 - DECnet DOS CTERM - DECnet STATUS
  621.     AX = 0104h
  622.     DX = session handle
  623. Return: AX = reason code (see AX=0103h)
  624. Note:    use this call when AX=0103h returns a DECnet error
  625. SeeAlso: AX=0103h
  626. ----------690105-----------------------------
  627. INT 69 - DECnet DOS CTERM - OPEN SESSION
  628.     AX = 0105h
  629.     DS:BX -> ASCIZ node name
  630.     ES:DX -> buffer for session control block (see INT 6A/AH=D0h)
  631. Return: AX <= 0 on error
  632.     AX > 0 session handle
  633. SeeAlso: AX=0103h,AX=0106h,AX=010Ah
  634. ----------690106-----------------------------
  635. INT 69 - DECnet DOS CTERM - CLOSE SESSION
  636.     AX = 0106h
  637.     DX = session handle
  638. Return: AH = 00h good close
  639.        other error code (see AX=0103h)
  640. SeeAlso: AX=0103h,AX=0105h
  641. ----------69010A-----------------------------
  642. INT 69 - DECnet DOS CTERM - GET SESSION CONTROL BLOCK SIZE
  643.     AX = 010Ah
  644. Return: AX = length of session control block in bytes
  645. SeeAlso: AX=0105h
  646. ----------69010B-----------------------------
  647. INT 69 - DECnet DOS CTERM - GET DECnet SOCKET
  648.     AX = 010Bh
  649.     DX = session handle
  650. Return: AX > 0    DECnet socket for the session
  651.        = 0    no match for handle
  652. ----------69010F-----------------------------
  653. INT 69 - DECnet DOS CTERM - DEINSTALL CTERM
  654.     AX = 010Fh
  655. Return: AH = 00h succesful uninstall
  656.        other error code
  657. Note:    CTERM must have been the last TSR loaded in order to deinstall it
  658. SeeAlso: AX=0100h
  659. ----------690A-------------------------------
  660. INT 69 - DECnet DOS 2.1+ - DATA LINK LAYER
  661.     AH = 0Ah
  662.     AL = function
  663.         00h initialize
  664.         01h open portal
  665.         02h close portal
  666.         03h enable multicast address
  667.         04h disable multicast address
  668.         05h transmit
  669.         06h request transmit buffer
  670.         07h deallocate transmit buffer
  671.         08h read channel status
  672.         09h read datalink portal list
  673.         0Ah read information about a datalink portal
  674.         0Bh read and/or clear counters
  675.         0Ch request to boot from a network server
  676.         0Dh enable Ethernet channel
  677.         0Eh disable Ethernet channel
  678.         0Fh start MOP/send a System ID message
  679.         10h stop MOP
  680.         11h get DECPARM
  681.         12h set DECPARM
  682.         13h external loopback
  683.     ES:BX -> Datalink Communication Block
  684. Return: AX = status
  685.         00h successful
  686.         01h hardware failed to initialize
  687.         02h channel state was not off (must be off to execute that command)
  688.         03h channel state is off (must be on to execute that command)
  689.         04h address not set
  690.         05h hardware missing
  691.         06h buffer too small
  692.         07h no more buffers available
  693.         08h no more resources available
  694.         09h promiscuous receiver active
  695.         0Ah non exclusive
  696.         0Bh unrecognized portal
  697.         0Ch protocol type in use
  698.         0Dh not a valid Multicast address
  699.         0Eh outstanding calls
  700.         0Fh hardware doesn't support receiving bad frames
  701.         10h none outstanding
  702.         11h no events
  703.         12h broken
  704.         13h buffer quota exceeded
  705.         14h already initialized
  706.         15h loopback failure
  707. SeeAlso: INT 6D"DECnet"
  708.  
  709. Format of Datalink Communication Block
  710. Offset    Type    Description
  711.  00h    WORD    portal ID
  712.  02h  6 BYTEs    source address
  713.  08h  6 BYTEs    destination address
  714.  0Eh    DWORD    buffer pointer
  715.  12h    WORD    buffer length
  716.  14h    WORD    operation
  717.  16h    BYTE    pad flag (used on open)
  718.             00h no pad
  719.             01h pad
  720.  17h    BYTE    mode flag (used on open)
  721.             00h 802.3
  722.             01h Ethernet
  723.             02h promiscuous
  724.  18h    DWORD    line status change function
  725.  1Ch    DWORD    received data function
  726.  20h    DWORD    transmitted data function
  727.  24h    BYTE    maximum outstanding transmits/receives
  728.  25h  2 BYTEs    protocol type
  729.  27h    WORD    buffers lost
  730. ----------694001-----------------------------
  731. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  732.     AX = 4001h
  733. Return: CF clear
  734.     AX = 0000h
  735.     ES:SI -> ???
  736. Note:    INT 69 is the default, and may be set to any interrupt from 60h-7Fh;
  737.       the signature "SYSV" immediately before the interrupt handler serves
  738.       as the installation check
  739. SeeAlso: AX=4002h
  740. ----------694002-----------------------------
  741. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  742.     AX = 4002h
  743.     ???
  744. Return: ???
  745. Note:    INT 69 is the default, and may be set to any interrupt from 60h-7Fh;
  746.       the signature "SYSV" immediately before the interrupt handler serves
  747.       as the installation check
  748. ----------694101-----------------------------
  749. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  750.     AX = 4101h
  751. Return: CF clear
  752.     ES:SI -> ???
  753. SeeAlso: AX=4102h,AX=4103h,AX=4104h
  754. ----------694102-----------------------------
  755. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  756.     AX = 4102h
  757.     ???
  758. Return: ???
  759. ----------694103-----------------------------
  760. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  761.     AX = 4103h
  762.     ???
  763. Return: ???
  764. ----------694104-----------------------------
  765. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  766.     AX = 4104h
  767.     ???
  768. Return: ???
  769. ----------6942-------------------------------
  770. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  771.     AH = 42h
  772.     AL = function (01h-14h)
  773.     ???
  774. Return: ???
  775. ----------6943-------------------------------
  776. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  777.     AH = 43h
  778.     AL = function (01h-05h)
  779.     ???
  780. Return: ???
  781. ----------6944-------------------------------
  782. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  783.     AH = 44h
  784.     AL = function (01h-03h)
  785.     ???
  786. Return: ???
  787. ----------6949-------------------------------
  788. INT 69 - 10NET v5.0 - SYSSVC.COM - BUG
  789.     AH = 49h
  790. Note:    due to a fencepost error, this function branches to hyperspace
  791. SeeAlso: AX=4001h,AH=FFh
  792. ----------696996-----------------------------
  793. INT 69 - ISR.COM v1.00 - SPECIFY INTERRUPT HANDLER
  794.     AX = 6996h
  795.     DS:DX -> interrupt handler or 0000h:0000h to disable
  796. Return: AX = 9669h
  797. Notes:    ISR (Interrupt Service Reflector) is a TSR by Rich Bono which permits
  798.       a program to provide hardware interrupt handlers even while being
  799.       debugged with a debugger that swaps interrupt vectors during
  800.       debugging.
  801.     the interrupt vector which is to be reflected is set at installation
  802.       time and cannot be changed
  803. ----------69FF-------------------------------
  804. INT 69 - 10NET v5.0 - SYSSVC.COM - SIGNAL SYSTEM ERROR
  805.     AH = FFh
  806. Return: never???
  807. Notes:    displays "System Error" message and register dump, then halts system
  808.     INT 69 is the default, and may be set to any interrupt from 60h-7Fh;
  809.       the signature "SYSV" immediately before the interrupt handler serves
  810.       as the installation check
  811. SeeAlso: AX=4001h,AH=49h
  812. ----------6A---------------------------------
  813. INT 6A - OPTHELP.COM
  814. Notes:    OPTHELP is an optionally-resident help system for SLR Systems's OPTASM
  815.       assembler
  816.     may be configured to use any interrupt from 60h to 7Fh (default 6Ah)
  817. ----------6A---------------------------------
  818. INT 6A - DECnet DOS - LOCAL AREA TRANSPORT PROGRAM
  819. Note:    the installation check consists of testing for a signature area
  820.       immediately preceding the interrupt handler
  821. SeeAlso: INT 6B"DECnet",INT 6D"DECnet"
  822.  
  823. Format of signature area:
  824. Offset    Size    Description
  825.  -5    BYTE    major version number
  826.  -4    BYTE    minor version number
  827.  -3   3 BYTEs    signature (ASCII "LAT")
  828. ----------6A01--DHFF-------------------------
  829. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BYTE
  830.     AH = 01h
  831.     DH = FFh
  832.     AL = character
  833.     DL = handle
  834. Return: AH >= 80h on error
  835. SeeAlso: AH=02h
  836. ----------6A02--DHFF-------------------------
  837. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - READ BYTE
  838.     AH = 02h
  839.     DH = FFh
  840.     DL = handle
  841. Return: AH < 80h if successful
  842.         AL = character
  843.     AH >= 80h on error
  844. SeeAlso: AH=01h
  845. ----------6A03--DHFF-------------------------
  846. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - STATUS
  847.     AH = 03h
  848.     DH = FFh
  849.     DL = handle
  850. Return: AH = status flags
  851.         bit 5 transmit buffer empty
  852.         3 session in start state
  853.         2 session not active
  854.         1 unable to queue transmit data
  855.         0 receive data available
  856. ----------6AD0--DHFF-------------------------
  857. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - OPEN SESSION
  858.     AH = D0h
  859.     DH = FFh
  860.     AL = FFh no password
  861.        = 0Fh password at ES:DI
  862.     ES:BX -> LAT session control block (see below)
  863.     ES:DI -> 16-byte blank-padded password
  864. Return: AH = 00h success
  865.         DL = handle
  866. SeeAlso: AX=D000h
  867.  
  868. Format of LAT Session Control Block:
  869. Offset    Size    Description
  870.  00h 18 BYTEs    service name
  871.  12h 18 BYTEs    node name (future use)
  872.  24h 18 BYTEs    port name (future use)
  873.  36h    DWORD    -> session stopped post routine
  874.  3Ah    DWORD    -> service table overflow post routine
  875.  3Eh    DWORD    -> transmit post routine
  876.  42h    DWORD    -> receive post routine
  877.  46h    WORD    session status
  878.         04h circuit failure
  879.         08h stop slot received
  880.  48h    WORD    slot state (LAT driver use)
  881.  4Ah    WORD    local credits (LAT driver use)
  882.  4Ch    DWORD    -> VCB (LAT driver use)
  883.  50h    WORD    backward slot (LAT driver use)
  884.  52h    WORD    forward slot (LAT driver use)
  885.  54h    WORD    remote slot ID (LAT driver use)
  886.  56h    WORD    local slot ID (LAT driver use)
  887.  58h    WORD    slot byte count (LAT driver use)
  888.  5Ah    BYTE    remote credits (LAT driver use)
  889.  5Bh 255 BYTEs    transmitted data slot
  890. 15Ah    BYTE    number of receive data slots (4 recommended)
  891. 15Bh    BYTE    number of occupied slots
  892. 15Ch    BYTE    index of next receive slot to use
  893. 15Dh    BYTE    index of current receive slot
  894. 15Eh    WORD    pointer to first received character
  895. 160h  N WORDs    pointers to receive slots (buffers); each is 259 bytes
  896. Note:    set post routines to 0000h:0000h if polled operation will be used
  897. ----------6AD000DHFF-------------------------
  898. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - CLOSE SESSION
  899.     AX = D000h
  900.     DH = FFh
  901.     DL = handle
  902. Return: AX = 0000h successful
  903.        = 0001h no such session
  904.        = 0002h session not running, try again later
  905. SeeAlso: AH=D0h
  906. ----------6AD100DHFF-------------------------
  907. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BREAK
  908.     AX = D100h
  909.     DH = FFh
  910.     DL = handle
  911. Return: AX = 0000h if successful
  912.     AH bit 7 set if unable to send break
  913. ----------6AD300DHFF-------------------------
  914. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - RESET LAT COUNTERS
  915.     AX = D300h
  916.     DH = FFh
  917. SeeAlso: AX=D400h
  918. ----------6AD400DHFF-------------------------
  919. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - COPY LAT COUNTERS
  920.     AX = D400h
  921.     DH = FFh
  922.     CX = buffer size
  923.     ES:BX -> buffer for LAT counters
  924. Return: AX = 0000h counters copied into buffer
  925.        = FFFFh buffer too small
  926. SeeAlso: AX=D300h
  927. ----------6AD500DHFF-------------------------
  928. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - GET NEXT LAT SERVICE NAME
  929.     AX = D500h
  930.     DH = FFh
  931.     ES:BX -> 17-byte buffer for name
  932. Return: AH = 00h if successful
  933.        ES:BX buffer filled
  934.     AX = FFFFh if end of table or no name available
  935. Notes:    use this function to get the names of the hosts on the network
  936.     successive calls are necessary to get all names
  937. SeeAlso: AX=D600h
  938. ----------6AD600DHFF-------------------------
  939. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - LAT SERVICE TABLE RESET
  940.     AX = D600h
  941.     DH = FFh
  942. Return: AX = number of service table entries
  943.     BX = 0000h service table has not overflowed
  944.        = FFFFh service table has overflowed
  945. SeeAlso: AX=D500h
  946. ---------------------------------------------
  947. INT 6B - DECnet DOS - PORT DRIVER
  948. Note:    the installation check consists of testing for a signature area
  949.       immediately preceding the interrupt handler
  950. SeeAlso: INT 6A"DECnet",INT 6C"DECnet"
  951.  
  952. Format of signature area:
  953. Offset    Size    Description
  954.  -5    BYTE    major version number
  955.  -4    BYTE    minor version number
  956.  -3   3 BYTEs    signature (ASCII "PDV")
  957. ----------6B0000-----------------------------
  958. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED WRITE
  959.     AX = 0000h
  960.     CX = length
  961.     ES:BX -> buffer
  962. Return: CX = number of bytes written
  963. Note:    also supported by NPC NCSI
  964. SeeAlso: AX=0100h,AH=18h,INT 14/AH=19h
  965. ----------6B0100-----------------------------
  966. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ
  967.     AX = 0100h
  968.     CX = length of buffer
  969.     ES:BX -> buffer
  970. Return: CX = number of bytes read
  971. Note:    also supported by NPC NCSI
  972. SeeAlso: AX=0000h,AH=19h,INT 14/AH=18h,INT 14/AX=FF02h
  973. ----------6B02-------------------------------
  974. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK
  975.     AH = 02h
  976.     AL nonzero
  977. Return: AL = 00h if present and OK
  978. Note:    also supported by NPC NCSI
  979. SeeAlso: AX=0700h
  980. ----------6B0600-----------------------------
  981. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL
  982.     AX = 0600h
  983.     CX = command
  984.         02h send break
  985.         04h disconnect
  986.         06h hold
  987. Note:    also supported by NPC NCSI
  988. ----------6B0700-----------------------------
  989. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS
  990.     AX = 0700h
  991. Return: CH <> 00h if connection active
  992. Note:    also supported by NPC NCSI
  993. SeeAlso: AH=02h,AH=10h
  994. ----------6B10-------------------------------
  995. INT 6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS
  996.     AH = 10h
  997.     ???
  998. Return: ???
  999. SeeAlso: AX=0700h,AH=12h,AH=1Fh
  1000. ----------6B11-------------------------------
  1001. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT
  1002.     AH = 11h
  1003.     ???
  1004. Return: ???
  1005. SeeAlso: AH=12h,AH=15h,AH=16h,AH=17h,AH=18h
  1006. ----------6B12-------------------------------
  1007. INT 6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS
  1008.     AH = 12h
  1009.     ???
  1010. Return: ???
  1011. SeeAlso: AH=10h,AH=15h,AH=1Ah,AH=1Bh,AH=1Fh
  1012. ----------6B13-------------------------------
  1013. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE REQUEST/REPLY SERVICE NAME
  1014.     AH = 13h
  1015.     ???
  1016. Return: ???
  1017. SeeAlso: AH=14h,AH=15h
  1018. ----------6B14-------------------------------
  1019. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE SERVICE ADDRESS
  1020.     AH = 14h
  1021.     ???
  1022. Return: ???
  1023. SeeAlso: AH=13h,AH=15h,AH=21h
  1024. ----------6B15-------------------------------
  1025. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE VIRTUAL CIRCUIT CONFIG
  1026.     AH = 15h
  1027.     ???
  1028. Return: ???
  1029. SeeAlso: AH=13h,AH=14h
  1030. ----------6B16-------------------------------
  1031. INT 6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT
  1032.     AH = 16h
  1033.     ???
  1034. Return: ???
  1035. SeeAlso: AH=11h,AH=12h,AH=17h
  1036. ----------6B17-------------------------------
  1037. INT 6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT
  1038.     AH = 17h
  1039.     ???
  1040. Return: ???
  1041. SeeAlso: AH=11h,AH=16h
  1042. ----------6B18-------------------------------
  1043. INT 6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT
  1044.     AH = 18h
  1045.     ???
  1046. Return: ???
  1047. SeeAlso: AX=0000h,AH=12h,AH=19h
  1048. ----------6B19-------------------------------
  1049. INT 6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT
  1050.     AH = 19h
  1051.     ???
  1052. Return: ???
  1053. SeeAlso: AX=0100h,AH=12h,AH=18h
  1054. ----------6B1A-------------------------------
  1055. INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS
  1056.     AH = 1Ah
  1057.     ???
  1058. Return: ???
  1059. SeeAlso: AH=12h,AH=1Bh
  1060. ----------6B1B-------------------------------
  1061. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS
  1062.     AH = 1Bh
  1063.     ???
  1064. Return: ???
  1065. SeeAlso: AH=12h,AH=1Ah
  1066. ----------6B1C-------------------------------
  1067. INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE BUFFER CONTROL
  1068.     AH = 1Ch
  1069.     ???
  1070. Return: ???
  1071. SeeAlso: AH=1Dh,AH=1Eh
  1072. ----------6B1D-------------------------------
  1073. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL
  1074.     AH = 1Dh
  1075.     ???
  1076. Return: ???
  1077. SeeAlso: AH=1Ch,AH=1Eh
  1078. ----------6B1E-------------------------------
  1079. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST
  1080.     AH = 1Eh
  1081.     ???
  1082. Return: ???
  1083. SeeAlso: AH=1Ch,AH=1Dh
  1084. ----------6B1F-------------------------------
  1085. INT 6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS
  1086.     AH = 1Fh
  1087.     ???
  1088. Return: ???
  1089. SeeAlso: AH=10h,AH=12h
  1090. ----------6B21-------------------------------
  1091. INT 6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE
  1092.     AH = 21h
  1093.     ???
  1094. Return: ???
  1095. SeeAlso: AH=14h
  1096. ----------6B6B-------------------------------
  1097. INT 6B - Tandy SCHOOLMATE PLUS - API
  1098.     AH = 6Bh
  1099.     AL = E0h to FFh
  1100. ----------6B---------------------------------
  1101. INT 6B - VIRUS - "Saddam" - ???
  1102. SeeAlso: INT 21/AX=FFFFh,INT 61"VIRUS",INT 70"VIRUS"
  1103. ----------6C---------------------------------
  1104. INT 6C - system resume vector (CONVERTIBLE)
  1105. ----------6C---------------------------------
  1106. INT 6C - DOS 3.2 Realtime Clock update
  1107. ----------6C---------------------------------
  1108. INT 6C - DECnet DOS network scheduler
  1109. Notes:    the installation check consists of testing for a signature area
  1110.       immediately preceding the interrupt handler
  1111.     also supported by DEC Pathworks for DOS
  1112. SeeAlso: INT 6B"DECnet",INT 6D"DECnet",INT 6E"DECnet"
  1113.  
  1114. Format of signature area:
  1115. Offset    Size    Description
  1116.  -5    BYTE    major version number
  1117.  -4    BYTE    minor version number
  1118.  -3   3 BYTEs    signature (ASCII "SCH")
  1119. ----------6D---------------------------------
  1120. INT 6D - VGA - internal
  1121. Note:    used by IBM, Paradise, Video7, and NCR
  1122. ----------6D---------------------------------
  1123. INT 6D - ATI VGA Wonder - VIDEO BIOS ENTRY POINT
  1124.    points at the original INT 10 entry point set up by the ATI BIOS
  1125. SeeAlso: INT 10
  1126. ----------6D---------------------------------
  1127. INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM
  1128.     AH = function
  1129.     ???
  1130. Return: ???
  1131. Note:    the installation check consists of testing for a signature area
  1132.       immediately preceding the interrupt handler
  1133. SeeAlso: INT 69/AH=0Ah,INT 6C"DECnet",INT 6E"DECnet"
  1134.  
  1135. Format of signature area:
  1136. Offset    Size    Description
  1137.  -5    BYTE    major version number
  1138.  -4    BYTE    minor version number
  1139.  -3   3 BYTEs    signature (ASCII "SCH")
  1140. ----------6E---------------------------------
  1141. INT 6E - DECnet DOS - DECnet NETWORK PROCESS API
  1142. Notes:    this is the main DECnet DOS access, and is described in Digital manual
  1143.       AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual")
  1144.     there is a signature/data area immediately prior to the interrupt
  1145.       handler which may be used as an installation check
  1146.  
  1147. Format of signature area:
  1148. Offset    Size    Description
  1149.  -5    BYTE    major version number
  1150.  -4    BYTE    minor version number
  1151.  -3   3 BYTEs    signature (ASCII "DNP")
  1152. ----------6F22--BP0012-----------------------
  1153. INT 6F - HP ES-12 EXTENDED BIOS - READ CMOS MEMORY
  1154.     AH = 22h
  1155.     BP = 0012h
  1156.     BL = address of CMOS byte to read
  1157. Return: AH = status
  1158.     AL = byte read
  1159.     BP, DS destroyed
  1160. SeeAlso: BP=0012h/AH=24h
  1161. ----------6F24--BP0012-----------------------
  1162. INT 6F - HP ES-12 EXTENDED BIOS - WRITE CMOS MEMORY
  1163.     AH = 24h
  1164.     BP = 0012h
  1165.     BL = address of CMOS byte to write
  1166.     AL = new value
  1167. Return: AH = status
  1168.     BP, DS destroyed
  1169. SeeAlso: BP=0012h/AH=22h
  1170. ----------6F---------------------------------
  1171. INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface)
  1172. ----------6F00-------------------------------
  1173. INT 6F - 10NET - LOGIN
  1174.     AH = 00h
  1175.     DS:DX -> login record (see below)
  1176. Return: CL = security level
  1177.     AX = status (see below)
  1178. SeeAlso: AH=01h,INT 21/AX=4402h"10MEMMGR"
  1179.  
  1180. Format of login record:
  1181. Offset    Size    Description
  1182.  00h  8 BYTEs    user name
  1183.  08h  8 BYTEs    password
  1184.  10h 12 BYTEs    name of SuperStation
  1185.  
  1186. Values for status:
  1187.         0000h successful
  1188.         01FFh time out on response
  1189.         02FFh network (hardware) error
  1190.         03FFh invalid password
  1191.         04FFh local resource not available
  1192.         05FFh server resource not available
  1193.         06FFh already logged in under different name
  1194.         07FFh login security failure (node)
  1195.         08FFh not logged in
  1196.         09FFh position calc error
  1197.         0AFFh receive subfunction not = send subfunction (i.e. read, write)
  1198.         0BFFh request function not in range
  1199.         0CFFh no more server file handle entries left
  1200.         0DFFh no more shared file table entries left
  1201.         0EFFh no more user file handle entries left
  1202.         0FFFh chat permit not on
  1203.         10FFh not a server on request
  1204.         11FFh no transporter board error
  1205.         12FFh time out on send
  1206.         13FFh item not found (spool item not on queue)
  1207.         14FFh DOS access incompatible
  1208.         15FFh record already locked
  1209.         16FFh invalid parameter
  1210.         17FFh record lock time out error
  1211.         18FFh currently spooling to named device
  1212.         19FFh dropped receive message (throttle)
  1213.         1AFFh open sharing violation
  1214.         1BFFh no more tuf entries left
  1215.         1CFFh not file owner on open
  1216.         1DFFh read security not passed
  1217.         1EFFh write security not passed
  1218.         1FFFh group security not passed
  1219.         20FFh security file failure
  1220.         21FFh activity file failure
  1221.         22FFh spool cntrl file failure
  1222.         23FFh device not mounted (spooling)
  1223.         24FFh spool file has not been terminated
  1224.         25FFh device not mounted or is not being shared
  1225.         26FFh duplicate node id
  1226.         27FFh file not found error
  1227.         28FFh no more files
  1228.         29FFh unknown internal system error
  1229.         2AFFh print queue is full or corrupted
  1230.         2BFFh invalid function
  1231.         2CFFh invalid handle
  1232.         2DFFh too many files opened
  1233.         2EFFh path not found
  1234.         2FFFh named file is active
  1235. /* I've gotten one submission which says FFxxh, and another with xxFFh */
  1236. /* I don't know which way around these should be, does somebody else know? */
  1237.         FF01h timeout
  1238.         FF02h network error
  1239.         FF03h invalid password
  1240.         FF04h no local buffer
  1241.         FF05h superstation not available
  1242.         FF06h node already logged in
  1243.         FF07h login not valid from this node
  1244.         FF08h node ID already in use
  1245.         FF16h invalid parameter (bad length, invalid node ID, etc)
  1246.         FF17h record locked by another user
  1247.         FF18h sent message has been dropped
  1248. ----------6F01-------------------------------
  1249. INT 6F - 10NET - LOGOFF
  1250.     AH = 01h
  1251.     DS:DX -> superstation ID or nulls (12 bytes)
  1252. Return: CX = number of files closed
  1253.     AX = status (see AH=00h)
  1254.         FF08h superstation ID not already logged in
  1255. SeeAlso: AH=00h
  1256. ----------6F02-------------------------------
  1257. INT 6F - 10NET - STATUS OF NODE
  1258.     AH = 02h
  1259.     DS:DX -> 512-byte status record (see below)
  1260. Return: CF set on error
  1261.         AX = error code (see AH=00h)
  1262.     CF clear if successful
  1263.  
  1264. Format of node status record:
  1265. Offset    Size    Description
  1266.  00h  8 BYTEs    user name (0 if none)
  1267.  08h    BYTE    station type
  1268.            00h workstation
  1269.            01h superstation
  1270.            02h gateway station
  1271.            03h gateway active
  1272.            04h logged into multiple superstations
  1273.            05h reserved
  1274.  09h 24 BYTEs    list of superstations logged into more than one superstation
  1275.  21h 12 BYTEs    node ID
  1276.  2Dh    WORD    message count for this station (send for user node, receive for
  1277.         superstations)
  1278. ---for superstations only---
  1279.  2Fh    WORD    drives allocated (bit 0=A:, bit 1=B:,...)
  1280.  31h    BYTE    user service flag
  1281.         bit 7: gate
  1282.             6: print permit on
  1283.             4: SUBMIT is on
  1284.             3: mail waiting for node
  1285.             2: calendar waiting for you
  1286.             1: news waiting for you
  1287.             0: mail waiting for you
  1288.  32h    BYTE    printers allocated (bit 0=LPT1,...)
  1289.  33h    BYTE    number of unprinted spool files
  1290.  34h    BYTE    number of opened files
  1291.  35h    BYTE    number of logged on nodes
  1292.  36h    BYTE    primary drive (1=A:)
  1293.  37h    BYTE    reserved
  1294.  38h  N BYTEs    list of logged on node IDs (each 12 bytes, max 37 IDs)
  1295. 1F4h  3 BYTEs    time: sec/min/hrs
  1296. 1F7h  3 BYTEs    date: day/mon/year-1980
  1297. ----------6F03-------------------------------
  1298. INT 6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE
  1299.     AH = 03h
  1300.     DS:DI -> node ID (optional)
  1301. Return: ES:BX -> configuration table 
  1302. SeeAlso: AH=13h
  1303.  
  1304. Format of configuration table:
  1305. Offset    Size    Description
  1306. -41    WORD    local device table address
  1307. -39    WORD    extended network error mapping table address
  1308. -37    WORD    shared device table address
  1309. -35    WORD    mounted device table address
  1310. -33    BYTE    receive buffer counter
  1311. -32    BYTE    collect buffer counter
  1312. -31    WORD    TUF address
  1313. -29    BYTE    enable flag
  1314. -28    BYTE    FCB keep flag
  1315. -27    WORD    reserved
  1316. ---up to here, 10NET v3.3---
  1317. -25    WORD    count of dropped Send6F
  1318. -23    WORD    buffer start address
  1319. -21    WORD    comm driver base address
  1320. -19    WORD    send/receive retry count
  1321. -17    BYTE    number of 550ms loops before timeout
  1322. -16    WORD    UFH address
  1323. -14    WORD    CDIR address
  1324. -12    WORD    LTAB address
  1325. -10    WORD    SFH address
  1326. -8    WORD    FTAB address
  1327. -6    WORD    RLTAB address
  1328. -4    WORD    SMI address
  1329. -2    WORD    NTAB address
  1330.  00h    WORD    address of first CT_DRV
  1331.  02h    BYTE    number of DRV entries
  1332.  03h  8 BYTEs    login name
  1333.  0Bh 12 BYTEs    node ID (blank-padded)
  1334.  17h  6 BYTEs    node address
  1335.  1Dh    BYTE    flag
  1336.  1Eh    BYTE    CT_CFLG (chat permit)
  1337.         bit 1: sound bell
  1338.         bit 0: CHAT permit
  1339.  1Fh    BYTE    CT_PSFLG
  1340.         bit 5: PRINT permit
  1341.         bit 4: KB initiated
  1342.         bit 3: CHAT called FOXPTRM
  1343.         bit 2: SUBMIT active
  1344.         bit 1: SUBMIT received
  1345.         bit 0: SUBMIT permit
  1346.  20h    BYTE    in 10Net flag
  1347.  21h    WORD    receive message count
  1348.  23h    WORD    send message count
  1349.  25h    WORD    retry count
  1350.  27h    WORD    failed count
  1351.  29h    WORD    driver errors
  1352.  2Bh    WORD    dropped responses/CHATs
  1353.  2Dh  9 BYTEs    LIST ID/NTAB address (3 entries--LPT1-3)
  1354.  36h  6 BYTEs    AUX ID/NTAB address (2 entries--COM1-2)
  1355.  3Ch    BYTE    active CB channel
  1356.  3Dh    BYTE    received 6F messages on queue
  1357.  3Eh  9 BYTEs    activity counters for channels 1-9
  1358. ---beyond here, 10NET v3.3---
  1359.  47h    BYTE    bit 0 = RS232 gate
  1360.             1 = Send6F gate (user set)
  1361.  48h    DWORD    pointer into gate (user set)
  1362.  4Ch    DWORD    pointer into 10Net send
  1363.  50h  N WORDs    addresses of timer blocks
  1364. ----------6F04-------------------------------
  1365. INT 6F - 10NET - SEND
  1366.     AH = 04h
  1367.     DS:BX -> record
  1368.         12 BYTEs receiving node's ID
  1369.             if first byte has high-order bit set, message is
  1370.                directed to the CT_RGATE vector at the receiver
  1371.             if second byte is 00h, first byte is taken as a CB
  1372.                channel number and delivered to all nodes on same
  1373.                channel
  1374.            WORD     length of data at DX
  1375.     DS:DX -> data (max 1024 bytes)
  1376. Return: CF set on error
  1377.         AX = error code (see AH=00h)
  1378.     CF clear if successful
  1379. SeeAlso: AH=05h
  1380. ----------6F05-------------------------------
  1381. INT 6F - 10NET - RECEIVE
  1382.     AH = 05h
  1383.     CX = number of seconds before timeout
  1384.     DS:DX -> receive buffer (see below)
  1385. Return: CF set on error
  1386.         AX = error code (see AH=00h)
  1387.     CF clear if successful
  1388.         AH = FEh if dequeued message is a CB message
  1389. SeeAlso: AH=04h
  1390.  
  1391. Format of receive buffer:
  1392. Offset    Size    Description
  1393.  00h 12 BYTEs    sending node's ID
  1394.  0Ch    WORD    length of message
  1395.  0Eh  N BYTEs    message (maximum 1024 bytes)
  1396. ----------6F07-------------------------------
  1397. INT 6F - 10NET - LOCK HANDLE
  1398.     AH = 07h
  1399.     BX = file handle
  1400.     CX:DX = starting offset in file
  1401.     SI = record length
  1402. Return: CF set on error
  1403.         AX = error code (see also AH=00h)
  1404.         0002h file not found
  1405.     CF clear if successful
  1406. SeeAlso: AH=08h,INT 21/AH=5Ch
  1407. ----------6F08-------------------------------
  1408. INT 6F - 10NET - UNLOCK HANDLE
  1409.     AH = 08h
  1410.     BX = file handle
  1411.     AL = mode
  1412.         00h unlock all
  1413.         01h unlock record at CX:DX
  1414. Return: CF set on error
  1415.         AX = error code (see also AH=00h)
  1416.         0002h file not found
  1417.     CF clear if successful
  1418. SeeAlso: AH=07h,INT 21/AH=5Ch
  1419. ----------6F09-------------------------------
  1420. INT 6F - 10NET - SUBMIT
  1421.     AH = 09h
  1422.     DS:BX -> submit record (see below)
  1423.  
  1424. Format of submit record:
  1425. Offset    Size    Description
  1426.  00h 12 BYTEs    destination node ID (must be logged in)
  1427.  0Ch    WORD    length+2 of following 'command line' text
  1428.  0Eh  N BYTEs    command line text (<=100 bytes), system adds CR
  1429. ----------6F0A-------------------------------
  1430. INT 6F - 10NET - CHAT
  1431.     AH = 0Ah
  1432.     DS:BX -> control parameters (see below)
  1433.     DS:DX -> chat message (see below)
  1434.  
  1435. Format of control parameters:
  1436. Offset    Size    Description
  1437.  00h  8 BYTEs    sender ID, defaults to node's userID if nulls
  1438.  08h  8 BYTEs    destination user ID, 'EVERYONE' may be used
  1439.  10h 12 BYTEs    destination node ID
  1440.  
  1441. Format of chat message:
  1442. Offset    Size    Description
  1443.  00h    WORD    length+2 of following text
  1444.  02h  N BYTEs    text, max 101 bytes
  1445. ----------6F0B-------------------------------
  1446. INT 6F - 10NET - LOCK SEMAPHORE, RETURN IMMEDIATELY
  1447.     AH = 0Bh
  1448.     AL = drive number or 0
  1449.     ES:SI = Ethernet address or 0
  1450.     DS:BX -> 31-byte ASCIZ semaphore name
  1451. Return: AL = status
  1452.         00h successful
  1453.         01h semaphore currently locked
  1454.         02h server not responding
  1455.         03h invalid semaphore name
  1456.         04h semaphore list is full
  1457.         05h invalid drive ID
  1458.         06h invalid Ethernet address
  1459.         07h not logged in
  1460.         08h write to network failed
  1461.         09h semaphore already logged in this CPU
  1462. Note:    same as INT 60/AH=12h
  1463. SeeAlso: AH=0Ch,INT 60/AH=12h
  1464. ----------6F0C-------------------------------
  1465. INT 6F - 10NET - UNLOCK SEMAPHORE
  1466.     AH = 0Ch
  1467.     AL = drive number or 0
  1468.     ES:SI = Ethernet address or 0
  1469.     DS:BX -> 31-byte ASCIZ semaphore name
  1470. Return: AL = status (see also AH=0Bh)
  1471.         01h semaphore not locked
  1472. Note:    same as INT 60/AH=13h
  1473. SeeAlso: AH=0Bh,INT 60/AH=13h
  1474. ----------6F0D-------------------------------
  1475. INT 6F - 10NET - WHO
  1476.     AH = 0Dh
  1477.     AL = type code
  1478.         01h return superstations only
  1479.         02h return non-superstations only
  1480.         otherwise return all
  1481.     CX = length of data
  1482.     DS:DX -> array of records to be filled (see below)
  1483. Return: CL = number of records returned (responding stations)
  1484.  
  1485. Format of station record:
  1486. Offset    Size    Description
  1487.  00h 12 BYTEs    node ID
  1488.  0Ch    BYTE    flags
  1489.         bit 1 = workstation
  1490.             2 = superstation
  1491.             3 = xgate
  1492.             4 = active gate
  1493. ---if AL = 01h---
  1494.  0Dh    BYTE    version number
  1495.     WORD    level number of 10Net software in responding node
  1496. ---if AL = 02h---
  1497.  0Dh  8 BYTEs    user ID
  1498.  15h    BYTE    version number
  1499.  16h    WORD    level number
  1500. ----------6F0E-------------------------------
  1501. INT 6F - 10NET - SPOOL/PRINT
  1502.     AH = 0Eh
  1503.     DS:DX -> spool/print record (see below)
  1504. Return: CF set on error
  1505.         AX = error code (see also AH=00h)
  1506.         FF17h device not mounted
  1507.         FF18h already spooling to named device
  1508.     CF clear if successful
  1509.  
  1510. Format of Spool/Print record:
  1511. Offset    Size    Description
  1512.  00h    WORD    operation code
  1513.            00h initiate spool
  1514.            01h abort print
  1515.            02h close spool
  1516.            03h delete spool
  1517.            04h print
  1518.            05h get report info
  1519.            06h set chat template
  1520.            07h queue
  1521.            08h return queue
  1522.            09h queue non-spooled file for printing
  1523.  02h 11 BYTEs    file name in FCB format
  1524. ---if operation code = 00h or 06h---
  1525.  0Dh    BYTE    notification
  1526.         bit 7: queue to top
  1527.         bit 6: do ID page
  1528.         bit 5: no form feed
  1529.         bit 4: reserved
  1530.         bit 3: explicity queuing only
  1531.         bit 2: notify at print completion
  1532.         bit 1: notify server operator/reply
  1533.         bit 0: notify at print start
  1534.  0Eh    BYTE    days to keep (FFh=forever)
  1535.  0Fh    BYTE    bits 0,1: device (1=LPT1)
  1536.         bits 4-7: remote drive to store spool file (1=A,...)
  1537.  10h    WORD    length of following data area
  1538.  12h  N BYTEs    up to 64 bytes of description
  1539. ---if operation code = 03h---
  1540.  0Dh  8 BYTEs    user ID to associate with filename
  1541. ---if operation code = 04h---
  1542.  0Dh    WORD    block number
  1543.  0Fh  8 BYTEs    user ID to associate with filename
  1544. ---if operation code = 05h---
  1545.  0Dh    BYTE    RRN to start retrieve
  1546.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  1547.         bit 3: if set, return entries for all users
  1548.  0Fh    WORD    length of following area
  1549.  11h  N BYTEs    up to 1500 bytes to receive $SCNTL records returned
  1550. ---if operation code = 07h---
  1551.  0Dh    BYTE    queue number
  1552.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  1553.  0Fh    WORD    number of bytes of test print to be done
  1554.  11h    BYTE    code: 01h print device
  1555.               02h test print count
  1556.               03h prn
  1557. ---if operation code = 08h---
  1558.  0Dh    BYTE    queue location or $SCNTL location to start access
  1559.             returns next item for access:
  1560.                 00h-7Fh queued items
  1561.                 80h-FEh non-queued, non-printed items
  1562.                 FFh    no more items
  1563.  0Eh    WORD    unused
  1564.  10h    WORD    length of following area
  1565.  12h  N BYTEs    up to 64 bytes to receive $SCNTL records
  1566. ---if operation code = 09h---
  1567.  0Dh  3 BYTEs    unused
  1568.  10h  N BYTEs    path to non-spooled file to be queued for printing
  1569.  
  1570. Format of $SCNTL record:
  1571. Offset    Size    Description
  1572.  00h  8 BYTEs    user ID
  1573.  08h 11 BYTEs    filename in FCB format
  1574.  13h  6 BYTEs    node ID
  1575.  19h  3 BYTEs    creation date
  1576.  1Ch    BYTE    flags
  1577.         bit 7: queue to top
  1578.             6: do ID page
  1579.             5: no form feed at end
  1580.             4: reserved
  1581.             3: explicit queueing only
  1582.             2: notify at completion
  1583.             1: notify server operator/reply
  1584.             0: notify at start
  1585.  1Dh    BYTE    retention time in days
  1586.  1Eh    BYTE    printing device (LPTx)
  1587.  1Fh  3 BYTEs    date last printed (0 = never)
  1588.  22h    BYTE    device containing spoolfile
  1589.  23h    WORD    bytes to print for test print
  1590.  25h    WORD    block number to start print
  1591.  27h    BYTE    reserved
  1592. ----------6F0F-------------------------------
  1593. INT 6F - 10NET v5.0 - "RM LOCK" - ???
  1594.     AH = 0Fh
  1595.     ???
  1596. Return: ???
  1597. ----------6F10-------------------------------
  1598. INT 6F - 10NET - ATTACH/DETACH PRINTER
  1599.     AH = 10h
  1600.     AL = subfunction
  1601.         00h initiate spooling if LPT1 is mounted
  1602.         01h terminate spooling if LPT1 is mounted
  1603. SeeAlso: INT 21/AX=5D08h
  1604. ----------6F11-------------------------------
  1605. INT 6F - 10NET - LOCK FCB
  1606.     AH = 11h
  1607.     AL = mode
  1608.         01h sequential
  1609.         02h random
  1610.         03h random block
  1611.         CX = number of records
  1612.     DS:DX -> FCB (see INT 21/AH=0Fh)
  1613. Return: CF set on error
  1614.         AX = error code (see also AH=00h)
  1615.         0002h file not found
  1616.     CF clear if successful
  1617. SeeAlso: AH=12h
  1618. ----------6F12-------------------------------
  1619. INT 6F - 10NET - UNLOCK FCB
  1620.     AH = 12h
  1621.     AL = mode
  1622.         00h sequential
  1623.         01h random
  1624.         02h random block
  1625.         CX = number of records
  1626.     DS:DX -> FCB (see INT 21/AH=0Fh)
  1627. Return: CF set on error
  1628.         AX = error code (see also AH=00h)
  1629.         0002h file not found
  1630.     CF clear if successful
  1631. SeeAlso: AH=11h
  1632. ----------6F13-------------------------------
  1633. INT 6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS
  1634.     AH = 13h
  1635.     DS:DX -> node ID, 12 bytes blank-padded
  1636. Return: CF set on error
  1637.         AX = error code (see AH=00h)
  1638.     CF clear if successful
  1639.         ES:BX = configuration table address on given machine
  1640. SeeAlso: AH=03h
  1641. ----------6F14-------------------------------
  1642. INT 6F - 10NET v3.3+ - GET REMOTE MEMORY
  1643.     AH = 14h
  1644.     BX:SI = address of remote memory
  1645.     CX = length (<=1024 bytes)
  1646.     DS:DX -> node ID, 12 bytes blank-padded
  1647.     DS:DI -> area to receive remote memory image
  1648. Return: CF set on error
  1649.         AX = error code (see AH=00h)
  1650.     CF clear if successful
  1651.         CX = amount of memory copied to DS:SI
  1652. ----------6F1501-----------------------------
  1653. INT 6F - 10NET v3.3+ - GET SHARED DEVICE ENTRY
  1654.     AX = 1501h
  1655.     BX = zero-based index
  1656.     DS:SI -> node ID, 12 bytes blank-padded
  1657.     ES:DI -> 85-byte buffer for shared device table entry (see below)
  1658. Return: CF set on error
  1659.         AX = error code (see AH=00h)
  1660.     CF clear if successful
  1661.         ES:DI buffer contains shared device table entry of BXth device:
  1662. SeeAlso: AX=1502h,AX=1503h
  1663.  
  1664. Format of shared device table entry:
  1665. Offset    Size    Description
  1666.  00h  8 BYTEs    device
  1667.  08h  8 BYTEs    alias
  1668.  10h 64 BYTEs    path
  1669.  50h  8 BYTEs    password
  1670.  58h    BYTE    access
  1671.  59h  4 BYTEs    mask
  1672. ----------6F1502-----------------------------
  1673. INT 6F - 10NET v3.3+ - SET SHARED DEVICE ENTRY
  1674.     AX = 1502h
  1675.     DS:SI -> node ID, 12 bytes blank-padded
  1676.     ES:DI -> valid shared device table entry
  1677. Return: CF set on error
  1678.         AX = error code (see AH=00h)
  1679.     CF clear if successful
  1680. SeeAlso: AX=1501h,AX=1503h
  1681. ----------6F1503-----------------------------
  1682. INT 6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY
  1683.     AX = 1503h
  1684.     BX = zero-based index
  1685.     DS:SI -> node ID, 12 bytes blank-padded
  1686. Return: CF set on error
  1687.         AX = error code (see AH=00h)
  1688.     CF clear if successful
  1689. SeeAlso: AX=1501h,AX=1502h
  1690. ----------6F16-------------------------------
  1691. INT 6F - 10NET v5.0 - "GL WHO" - ???
  1692.     AH = 16h
  1693.     ???
  1694. Return: ???
  1695. ----------6F17-------------------------------
  1696. INT 6F - 10NET v3.3+ - MOUNT
  1697.     AH = 17h
  1698.     AL = local drive number (0=A:)
  1699.     BL = remote drive letter or '1'..'3' for LPTn or '4' or '5' for COMx
  1700.     DS:DX -> node ID, 12 bytes blank-padded
  1701. Return: CF set on error
  1702.         AX = error code (see AH=00h)
  1703.     CF clear if successful
  1704. SeeAlso: AH=18h
  1705. ----------6F18-------------------------------
  1706. INT 6F - 10NET v3.3+ - UNMOUNT
  1707.     AH = 18h
  1708.     AL = local drive number (0=A:)
  1709.     BL = type
  1710.         00h        disk
  1711.         01h-03h LPTn
  1712.         04h,05h COMx
  1713. Return: CF set on error
  1714.         AX = error code (see AH=00h)
  1715.     CF clear if successful
  1716. SeeAlso: AH=17h
  1717. ----------6F19-------------------------------
  1718. INT 6F - 10NET v5.0 - "AUDIT" - ???
  1719.     AH = 19h
  1720.     ???
  1721. Return: ???
  1722. ----------6F1A-------------------------------
  1723. INT 6F - 10NET v5.0 - "BULL" - ???
  1724.     AH = 1Ah
  1725.     ???
  1726. Return: ???
  1727. ----------6F1B-------------------------------
  1728. INT 6F - 10NET v5.0 - "GMOUNT" - ???
  1729.     AH = 1Bh
  1730.     ???
  1731. Return: ???
  1732. ----------6F1C-------------------------------
  1733. INT 6F - 10NET v5.0 - "GLOGIN" - ???
  1734.     AH = 1Ch
  1735.     ???
  1736. Return: ???
  1737. ----------6F1D-------------------------------
  1738. INT 6F - 10NET v5.0 - "TABDATA" - ???
  1739.     AH = 1Dh
  1740.     ???
  1741. Return: ???
  1742. ----------6F1E-------------------------------
  1743. INT 6F - 10NET v5.0 - "SCHED" - ???
  1744.     AH = 1Eh
  1745.     ???
  1746. Return: ???
  1747. ----------6F1F-------------------------------
  1748. INT 6F - 10NET v5.0 - "WHOAMI" - ???
  1749.     AH = 1Fh
  1750.     ???
  1751. Return: ???
  1752. ----------6F20-------------------------------
  1753. INT 6F - 10NET v5.0 - ???
  1754.     AH = 20h
  1755.     ???
  1756. Return: ???
  1757. ----------6F21-------------------------------
  1758. INT 6F - 10NET v5.0 - ???
  1759.     AH = 21h
  1760.     ???
  1761. Return: ???
  1762. ----------6F22-------------------------------
  1763. INT 6F - 10NET v5.0 - ???
  1764.     AH = 22h
  1765.     ???
  1766. Return: ???
  1767. ----------70---------------------------------
  1768. INT 70 - IRQ8 - CMOS REAL-TIME CLOCK
  1769. Desc:    this interrupt is called when the real-time clock chip generates an
  1770.       alarm or periodic interrupt, among others.  The periodic interrupt
  1771.       occurs 1024 times per second.
  1772. Nots:    many BIOSes turn off the periodic interrupt in the INT 70h handler
  1773.       unless in an event wait (see INT 15/AH=83h or INT 15/AH=86h).
  1774.     may be masked by setting bit 0 on I/O port A1h
  1775. SeeAlso: INT 08,INT 0F"HP 95LX",INT 15/AH=01h"Amstrad",INT 15/AH=83h
  1776. SeeAlso: INT 15/AH=86h,INT 1A/AH=02h,INT 58"DESQview"
  1777. ----------70---------------------------------
  1778. INT 70 - VIRUS "Stupid" - ???
  1779. SeeAlso: INT 6B"VIRUS",INT E0"VIRUS"
  1780. ----------71---------------------------------
  1781. INT 71 - IRQ9 - REDIRECTED TO INT 0A BY BIOS
  1782. Notes:    may be masked by setting bit 1 on I/O port A1h
  1783.     the default BIOS handler invokes INT 0A for compatibility, since the
  1784.       pin for IRQ2 on the PC expansion bus became the pin for IRQ9 on the
  1785.       AT expansion bus.
  1786.     under DESQview, only the INT 15h vector and BASIC segment address (the
  1787.       word at 0000h:0510h) may be assumed to be valid for the handler's
  1788.       process
  1789. SeeAlso: INT 0A,INT 59
  1790. ----------72---------------------------------
  1791. INT 72 - IRQ10 - RESERVED
  1792. Note:    may be masked by setting bit 2 on I/O port A1h
  1793. SeeAlso: INT 5A
  1794. ----------73---------------------------------
  1795. INT 73 - IRQ11 - RESERVED
  1796. Note:    may be masked by setting bit 3 on I/O port A1h
  1797. SeeAlso: INT 5B
  1798. ----------74---------------------------------
  1799. INT 74 - IRQ12 - POINTING DEVICE (PS)
  1800. Notes:    may be masked by setting bit 4 on I/O port A1h
  1801.     under DESQview, only the INT 15h vector and BASIC segment address (the
  1802.       word at 0000h:0510h) may be assumed to be valid for the handler's
  1803.       process
  1804. SeeAlso: INT 33,INT 5C
  1805. ----------75---------------------------------
  1806. INT 75 - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up)
  1807.    redirected to INT 02 by the BIOS, for compatibility with the PC
  1808. Notes:    may be masked by setting bit 5 on I/O port A1h
  1809.     not all clones wire the coprocessor to generate this IRQ; some systems
  1810.       generate an NMI (see INT 02) or assert the -ERROR pin on the CPU
  1811.       (see INT 10"COPROCESSOR")
  1812.     under DESQview, only the INT 15h vector and BASIC segment address (the
  1813.       word at 0000h:0510h) may be assumed to be valid for the handler's
  1814.       process
  1815. SeeAlso: INT 10"COPROCESSOR",INT 5D
  1816. ----------76---------------------------------
  1817. INT 76 - IRQ14 - HARD DISK CONTROLLER (AT and later)
  1818. Note:    may be masked by setting bit 6 on I/O port A1h
  1819. SeeAlso: INT 0E"IRQ6",INT 5E
  1820. ----------77---------------------------------
  1821. INT 77 - IRQ15 - RESERVED (AT,PS)
  1822. Note:    may be masked by setting bit 7 on I/O port A1h
  1823. SeeAlso: INT 5F
  1824. ----------77---------------------------------
  1825. INT 77 - IRQ15 - POWER CONSERVATION (Compaq SLT/286)
  1826. Note:    may be masked by setting bit 7 on I/O port A1h
  1827. SeeAlso: INT 15/AX=4600h,INT 5F
  1828. ----------78---------------------------------
  1829. INT 78 - UofSalford DBOS DOS extender - API
  1830.     BYTE following INT instruction contains function code
  1831.         03h switch to protected mode
  1832.         1Eh set real-mode memory size (specify how much real-mode memory
  1833.           to leave free when running FTN77 programs)
  1834.         22h uninstall
  1835.     ???
  1836. Return: ???
  1837. Note:    DBOS supports functions 00h through 50h
  1838. ----------78---------------------------------
  1839. INT 78 - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ0
  1840. Note:    this vector is overwritten when GO32 starts but is not restored
  1841. SeeAlso: INT 08,INT 10/AH=FFh"GO32",INT 79"GO32"
  1842. ----------78---------------------------------
  1843. INT 78 - AutoCAD 10 ADI for Plotters
  1844.     AX = function
  1845.         0001h initialize comm port and reset plotter
  1846.         BX = ??? (comm port?)
  1847.         0002h close plotter
  1848.         0003h move (pen up)
  1849.         BX = new X position
  1850.         CX = new Y position
  1851.         0004h move (pen down)
  1852.         BX = new X position
  1853.         CX = new Y position
  1854.         0005h select pen
  1855.         BX = pen number
  1856.         0006h select drawing speed
  1857.         BX = drawing speed N
  1858.         0007h select line style
  1859.         BX = line style N
  1860.         0008h return pen to pen carrier??? (called before change-pen cmd)
  1861. Return: ???
  1862. SeeAlso: INT 7A"AutoCAD",INT 7B"AutoCAD"
  1863. ----------78---------------------------------
  1864. INT 78 - ADP-60 IDE controller - ORIGINAL INT 13
  1865. SeeAlso: INT 79"ADP-60"
  1866. ----------7800-------------------------------
  1867. INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT
  1868.     AH = 00h
  1869.     DX = interface board I/O port
  1870. Return:    CF set on error
  1871.         AL = error code
  1872.         00h illegal command given to SCSI code
  1873.         01h invalid I/O port specified (must be from 100H to 3F8H, and
  1874.             must be on an 8-port boundary)
  1875.         02h invalid DMA channel specified (must be from 1 to 3)
  1876.         03h invalid SCSI board number specified (must be from 0 to 7)
  1877.         04h error from data register test during self-test
  1878.         05h SCSI input signals not all 0 when SCSI RST activated
  1879.         06h SCSI input signals not all 0 before selecting a SCSI device
  1880.         07h BSY signal is active; SCSI bus is busy
  1881.         08h SCSI board not selected, BSY signal did not come on in
  1882.             response to raising SEL
  1883.         09h time-out waiting for status state, signifying end of DMA
  1884.             transfer
  1885. Note:    if this routine is not called, the port is the driver's default
  1886.       (usually 0280h or 0300h)
  1887.     an installation check is performed by TARGA.DEV upon initialization
  1888.       by checking for the string "SCSI" at offset 03h into the interrupt
  1889.       handler
  1890. SeeAlso: AH=01h,AH=02h
  1891. ----------7801-------------------------------
  1892. INT 78 - TARGA.DEV - GET I/O PORT
  1893.     AH = 01h
  1894. Return: DX = current interface board I/O port
  1895. SeeAlso: AH=00h,AH=03h"TARGA"
  1896. ----------7802-------------------------------
  1897. INT 78 - TARGA.DEV - SET DMA CHANNEL
  1898.     AH = 02h
  1899.     AL = interface board DMA channel
  1900. Return: CF set on error
  1901.     AL = error code (see AH=00h)
  1902. Note:    if this routine is not called, the DMA channel is the driver's default
  1903.       (usually 3)
  1904. SeeAlso: AH=00h,AH=03h"TARGA"
  1905. ----------7803-------------------------------
  1906. INT 78 - TARGA.DEV - GET DMA CHANNEL
  1907.     AH = 03h
  1908. Return: AL = current interface board DMA channel
  1909. SeeAlso: AH=01h,AH=02h
  1910. ----------7804-------------------------------
  1911. INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER
  1912.     AH = 04h
  1913.     AL = SCSI device number
  1914. Return: CF set on error
  1915.     AL = error code (see AH=00h)
  1916. Note:    if this routine is not called, the device number used is the driver's
  1917.       default (usually 0)
  1918. SeeAlso: AH=02h,AH=05h
  1919. ----------7805-------------------------------
  1920. INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER
  1921.     AH = 05h
  1922. Return: AL = current SCSI device number
  1923. SeeAlso: AH=03h"TARGA",AH=04h
  1924. ----------7806-------------------------------
  1925. INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE
  1926.     AH = 06h
  1927.     AL = 00h clear early return mode
  1928.        = 01h set early return mode
  1929. Note:    if early return mode is set then SCSI will return with no errors
  1930.       when the last DMA transfer is started in a call with AH=13h or AH=14h
  1931.     if this routine is not called, early return mode is cleared
  1932. SeeAlso: AH=13h,AH=14h,AH=15h
  1933. ----------7808-------------------------------
  1934. INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST
  1935.     AH = 08h
  1936. Return: CF set on error
  1937.     AL = error code (see AH=00h)
  1938. Note:    the SCSI bus is also reset
  1939. SeeAlso: AH=09h
  1940. ----------7809-------------------------------
  1941. INT 78 - TARGA.DEV - RESET SCSI BUS
  1942.     AH = 09h
  1943. Return: AL = error code if carry set (see AH=00h)
  1944. SeeAlso: AH=08h
  1945. ----------7810-------------------------------
  1946. INT 78 - TARGA.DEV - SEND SCSI COMMAND
  1947.     AH = 10h
  1948.     DS:SI -> command bytes
  1949. Return: AH = SCSI status byte
  1950.     CF clear if successful
  1951.         AL = SCSI message byte
  1952.     CF set on error
  1953.         AL = error code (see AH=00h)
  1954. SeeAlso: AH=11h,INT 21/AX=4403h"ST-01"
  1955.  
  1956. Format of SCSI Command:
  1957. Offset    Size    Description
  1958.  00h    BYTE    length of command
  1959.  01h    ???    command bytes
  1960. ----------7811-------------------------------
  1961. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)
  1962.     AH = 11h
  1963.     DS:SI -> command bytes
  1964.     ES:BX -> data storage area
  1965.     CX = number of data bytes to transfer
  1966. Return: AH = SCSI status byte
  1967.     CF clear if successful
  1968.         AL = SCSI message byte
  1969.     CF set on error
  1970.         AL = error code (see AH=00h)
  1971. Note:    this command receives data internally one byte at a time
  1972. SeeAlso: AH=10h,AH=13h
  1973.  
  1974. Format of SCSI Command:
  1975. Offset    Size    Description
  1976.  00h    BYTE    length of command
  1977.  01h    ???    command bytes
  1978. ----------7812-------------------------------
  1979. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)
  1980.     AH = 12h
  1981.     DS:SI -> command bytes
  1982.     ES:BX -> data storage area
  1983.     CX = number of data bytes to transfer
  1984. Return: AH = SCSI status byte
  1985.     CF clear if successful
  1986.         AL = SCSI message byte
  1987.     CF set on error
  1988.         AL = error code (see AH=00h)
  1989. Note:    this command sends data internally one byte at a time
  1990. SeeAlso: AH=14h
  1991.  
  1992. Format of SCSI Command:
  1993. Offset    Size    Description
  1994.  00h    BYTE    length of command
  1995.  01h    ???    command bytes
  1996. ----------7813-------------------------------
  1997. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)
  1998.     AH = 13h
  1999.     DS:SI -> command bytes
  2000.     ES:BX -> data storage area
  2001.     DX:CX = number of data bytes to transfer
  2002. Return: AH = SCSI status byte (if early return mode is clear)
  2003.     CF clear if successful
  2004.         AL = SCSI message byte (if early return mode is clear)
  2005.     CF set on error
  2006.         AL = error code (see AH=00h)
  2007. Note:    this command receives data using DMA
  2008. SeeAlso: AH=11h,AH=12h
  2009.  
  2010. Format of SCSI Command:
  2011. Offset    Size    Description
  2012.  00h    BYTE    length of command
  2013.  01h    ???    command bytes
  2014. ----------7814-------------------------------
  2015. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)
  2016.     AH = 14h
  2017.     DS:SI -> command bytes
  2018.     ES:BX -> data storage area
  2019.     DX:CX = number of data bytes to transfer
  2020. Return: AH = SCSI status byte (if early return mode is clear)
  2021.     CF clear if successful
  2022.         AL = SCSI message byte (if early return mode is clear)
  2023.     CF set on error
  2024.         AL = error code (see AH=00h)
  2025. Note:    this command sends data using DMA
  2026. SeeAlso: AH=12h,AH=13h
  2027.  
  2028. Format of SCSI Command:
  2029. Offset    Size    Description
  2030.  00h    BYTE    length of command
  2031.  01h    ???    command bytes
  2032. ----------7815-------------------------------
  2033. INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)
  2034.     AH = 15h
  2035. Return: AH = SCSI status byte
  2036.     CF clear if successful
  2037.         AL = SCSI message byte
  2038.     CF set on error
  2039.         AL = error code (see AH=00h)
  2040. Note:    if AH=06h was previously called to set the early return mode, this
  2041.       function finishes a command AH=13h or AH=14h which returned before
  2042.       the last DMA transfer was finished
  2043. SeeAlso: AH=06h,AH=13h,AH=14h
  2044. ----------79---------------------------------
  2045. INT 79 - AVATAR.SYS - FAST GET KEYSTROKE
  2046. Return: CF set if no keystroke available
  2047.         AX = FFFFh
  2048.     CF clear if key pressed
  2049.         AX = keystroke
  2050. Notes:    if a keystroke is available, it is removed from the keyboard buffer
  2051.       before being returned
  2052.     AVATAR.SYS is a CON driver by George Adam Stanislav which interprets
  2053.       AVATAR command codes just as ANSI.SYS interprets ANSI commands
  2054. SeeAlso: INT 29
  2055. ----------79---------------------------------
  2056. INT 79 - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ1
  2057. Note:    this vector is overwritten when GO32 starts but is not restored
  2058. SeeAlso: INT 09,INT 78"GO32",INT 7A"GO32"
  2059. ----------79---------------------------------
  2060. INT 79 U - ADP-60 IDE adapter - ???
  2061. SeeAlso: INT 78"ADP-60"
  2062. ----------790001-----------------------------
  2063. INT 79 U - AutoCAD Device Interface - DIGITIZER - INITIALIZE
  2064.     AX = 0001h
  2065. Return: AX = 0001h ??? self-test result???
  2066.     BX = 0001h
  2067. SeeAlso: AX=0002h,AX=0003h,INT 7A"AutoCAD"
  2068. ----------790002-----------------------------
  2069. INT 79 U - AutoCAD Device Interface - DIGITIZER - CLOSE
  2070.     AX = 0002h
  2071. SeeAlso: AX=0001h,AX=0003h
  2072. ----------790003-----------------------------
  2073. INT 79 U - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS
  2074.     AX = 0003h
  2075. Return: AX = button state
  2076.         0002h no button pressed
  2077.         BX = X coordinate
  2078.         CX = Y coordinate
  2079.         0003h Pick button (0,A,B,C,D) pressed
  2080.         BX = X coordinate
  2081.         CX = Y coordinate
  2082.         0005h other button (1-9) pressed
  2083.         BX = number of button - 1
  2084.         CX = X coordinate
  2085.         DX = Y coordinate
  2086. Note:    these return values are valid for the Houston Instruments HiPad Plus
  2087.       9236 digitizer with a 16-button cursor
  2088. SeeAlso: AX=0001h,AX=0002h
  2089. ----------7A---------------------------------
  2090. INT 7A U - Topware Network Operating System - ???
  2091.     AL = ???
  2092.     ???
  2093. Return: ???
  2094. SeeAlso: INT 21/AH=FFh"Topware",INT 2F/AX=FF00h
  2095. ----------7A---------------------------------
  2096. INT 7A - AutoCAD Device Interface
  2097.     ???
  2098. SeeAlso: INT 61/AX=0007h"OPTIMA",INT 78"AutoCAD",INT 79/AX=0001h
  2099. SeeAlso: INT 7B"AutoCAD"
  2100. ----------7A---------------------------------
  2101. INT 7A - X.PC Packet software interface
  2102.     ES:BX -> parameter block
  2103. SeeAlso: INT 60/AX=01FFh
  2104. ----------7A---------------------------------
  2105. INT 7A - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ2
  2106. Note:    this vector is overwritten when GO32 starts but is not restored
  2107. SeeAlso: INT 0A,INT 79"GO32",INT 7B"GO32"
  2108. ----------7A---------------------------------
  2109. INT 7A - Novell NetWare - LOW-LEVEL API - Notes
  2110. Note:    this interrupt is used for IPX/SPX access in NetWare versions through
  2111.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  2112.       entry point even though INT 7A still exists.    For both INT 7A and
  2113.       the FAR entry point, BX contains the function number; IPX is
  2114.       sometimes called internally with BX bit 15 set.
  2115. SeeAlso: INT 2F/AX=7A00h,INT 64"Novell",INT 7A/BX=0000h
  2116. ----------7A----BX0000-----------------------
  2117. INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET
  2118.     BX = 0000h
  2119.     AL = socket longevity
  2120.         00h open until close or terminate
  2121.         FFh open until close
  2122.     DX = socket number (high byte in DL)
  2123.         0000h dynamic allocation
  2124.         else  socket to open (see below)
  2125. Return: AL = return code
  2126.         00h success
  2127.         DX = socket number
  2128.         FEh socket table full
  2129.         FFh socket already open
  2130. Notes:    TSRs which need to use sockets should set AL to FFh, non-resident
  2131.       programs should normally use AL=00h
  2132.     IPX can be configured to support up to 150 open sockets on a
  2133.       workstation, and defaults to 20
  2134.     this function is supported by Advanced NetWare 1.02+
  2135. SeeAlso: BX=0001h,BX=0004h
  2136.  
  2137. Values for socket number:
  2138.  0451h File Service
  2139.  0452h Service Advertising Socket
  2140.  0453h Routing Information Packet
  2141.  0455h NetBIOS Packet
  2142.  0456h diagnostics
  2143.  0457h ??? (appears to be related to server serial numbers)
  2144.  4000h-7FFFh used for dynamic allocation
  2145.  4444h Brightwork Development's SiteLock server
  2146.  5555h Brightwork Development's SiteLock client (workstation)
  2147.  8000h-FFFFh assigned by Novell
  2148. Note:    SiteLock is an application metering product using IPX to communicate
  2149.       between the application and the license server
  2150. ----------7A----BX0001-----------------------
  2151. INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET
  2152.     BX = 0001h
  2153.     DX = socket number (high byte in DL)
  2154. Notes:    also cancels events set by any Event Control Blocks for the socket
  2155.     the program must close all open sockets before terminating
  2156.     this function is supported by Advanced NetWare 1.02+
  2157. SeeAlso: BX=0000h
  2158. ----------7A----BX0002-----------------------
  2159. INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET
  2160.     BX = 0002h
  2161.     ES:SI -> target internetwork address (see INT 7A/BX=000Bh)
  2162.     ES:DI -> 6-byte buffer for local target
  2163. Return: AL = return code
  2164.         00h success
  2165.            CX = expected one-way transfer time (clock ticks) for a 576-byte
  2166.             packet
  2167.            ES:DI -> local target
  2168.         FAh unsuccessful (no path to destination)
  2169. Notes:    the internetwork address consists of a 4-byte network address followed
  2170.       by a 6-byte node address.  The local target is only a 6-byte node
  2171.       address.  If the target is in the same network, the local target is
  2172.       just the node address of target; otherwise, the local target is the
  2173.       node address of the bridge that leads to the target.
  2174.     this function may be called from inside IPX and AES Event Service
  2175.       Routines, but not from other interrupt handlers
  2176.     this function is supported by Advanced NetWare 1.02+
  2177. SeeAlso: BX=0009h
  2178. ----------7A----BX0003-----------------------
  2179. INT 7A - Novell NetWare - IPX Driver - SEND PACKET
  2180.     BX = 0003h
  2181.     ES:SI -> Event Control Block (see below)
  2182. Notes:    returns immediately; IPX attempts to send the packet in the background
  2183.     this function is supported by Advanced NetWare 1.02+
  2184. SeeAlso: BX=0004h,BX=000Fh,INT 21/AH=EEh"Novell"
  2185.  
  2186. Format of Event Control Block:
  2187. Offset    Size    Description
  2188.  00h    DWORD    Link
  2189.  04h    DWORD    -> Event Service Routine (00000000h if none)
  2190.  08h    BYTE    in use flag
  2191.         00h available
  2192.         E0h AES temporary
  2193.         F6h \ special IPX/SPX processing for v3.02+
  2194.         F7h /
  2195.         F8h IPX in critical section
  2196.         F9h SPX listening
  2197.         FAh processing
  2198.         FBh holding
  2199.         FCh AES waiting
  2200.         FDh AES couting down delay time
  2201.         FEh awaiting packet reception
  2202.         FFh sending packet
  2203.  09h    BYTE    completion code (see below)
  2204.  0Ah    WORD    socket (big-endian)
  2205.         0452h Service Advertising Socket
  2206.         0456h diagnostics
  2207.         other
  2208.  0Ch  4 BYTES    IPX workspace
  2209.  10h 12 BYTES    driver workspace
  2210.  1Ch  6 BYTES    immediate local node address
  2211.  22h    WORD    fragment count
  2212.  24h    var    fragment descriptors
  2213.         Offset    Size    Description
  2214.          00h    DWORD    -> fragment data
  2215.          04h    WORD    size of fragment in bytes.
  2216. Notes:    ESR is a far procedure that is called when the ECB has been handled.
  2217.       On call, the in use flag is zero if the ECB has been handled,
  2218.       non-zero otherwise. If the flag is zero, the completion code holds
  2219.       the result of the event.
  2220.     the first fragment should start with an IPX header
  2221.     all fragments are concatenated and sent in one piece
  2222.     node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes
  2223.  
  2224. Values for ECB completion code:
  2225.  00h success
  2226.  ECh remote terminated connection without acknowledging packet
  2227.  EDh abnormal connection termination
  2228.  EEh invalid connection ID
  2229.  EFh SPX connection table full
  2230.  F9h event should not be cancelled
  2231.  FAh cannot establish connection with specified destination
  2232.  FCh cancelled
  2233.  FDh malformed packet
  2234.  FEh packet undeliverable
  2235.  FFh physical error
  2236.  
  2237. Event Service Routine called with:
  2238.     AL = caller's identity (00h = AES, FFh = IPX)
  2239.     ES:SI -> event control block
  2240.     interrupts disabled
  2241.  
  2242. Format of IPX header:
  2243. Offset    Size    Description
  2244.  00h    WORD    checksum (high byte first [big-endian])
  2245.  02h    WORD    length in bytes (high byte first) of total packet
  2246.  04h    BYTE    transport control
  2247.  05h    BYTE    packet type
  2248.         00h unknown packet type
  2249.         01h routing information packet
  2250.         02h echo packet
  2251.         03h error packet
  2252.         04h packet exchange packet (always use this one)
  2253.         05h SPX packet
  2254.         11h-1Eh experimental protocols
  2255.  06h 10 BYTES    destination internetwork address
  2256.  10h    WORD    destination socket (high byte first)
  2257.  12h 10 BYTES    source internetwork address
  2258.  1Ch    WORD    source socket (high byte first)
  2259.  
  2260. Format of Service Advertising Protocol Service Query Packet:
  2261. Offset    Size    Description
  2262.  00h 30 BYTEs    IPX header
  2263.  1Eh    WORD    query type (big-endian)
  2264.  20h    WORD    server type (big-endian) (see INT 21/AH=E3h"NetWare")
  2265.  
  2266. Format of Service Advertising Protocol Server Identification Packet:
  2267. Offset    Size    Description
  2268.  00h 30 BYTEs    IPX header
  2269.  1Eh    WORD    response type (big-endian)
  2270.         0002h general service
  2271.         0004h nearest service
  2272.  20h    WORD    server type (big-endian) (see INT 21/AH=E3h"NetWare")
  2273.  22h 48 BYTEs    ASCIZ server name
  2274.  52h  2 WORDs    network number (big-endian)
  2275.  54h  3 WORDs    node number (big-endian)
  2276.  5Ch    WORD    socket number (big-endian)
  2277.  5Eh    WORD    number of hops between caller and server (big-endian)
  2278. ----------7A----BX0004-----------------------
  2279. INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET
  2280.     BX = 0004h
  2281.     ES:SI -> Event Control Block (see BX=0003h)
  2282. Return: AL = status
  2283.         00h successful
  2284.         FFh no listening socket for packet
  2285. Desc:    this function provides IPX with an ECB for receiving an IPX packet, but
  2286.       does not wait for a packet to arrive
  2287. Notes:    the application must open a socket and initialize the ECB's ESR
  2288.       address, socket number, fragment count, and fragment descriptor
  2289.       fields before invoking this function
  2290.     there is no limit on the number of ECBs which may simultaneously be
  2291.       listening on a socket
  2292.     this function is supported by Advanced NetWare 1.02+
  2293. SeeAlso: BX=0000h,BX=0003h
  2294. ----------7A----BX0005-----------------------
  2295. INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT
  2296.     BX = 0005h
  2297.     AX = delay time in clock ticks
  2298.     ES:SI -> Event Control Block (see BX=0003h)
  2299. Note:    this function is supported by Advanced NetWare 1.02+
  2300. SeeAlso: BX=0006h,BX=0007h,BX=0008h
  2301. ----------7A----BX0006-----------------------
  2302. INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT
  2303.     BX = 0006h
  2304.     ES:SI -> Event Control Block (see BX=0003h)
  2305. Return: AL = return code
  2306.         00h success
  2307.         F9h event in use
  2308.         FCh event cancelled
  2309.         FFh unsuccessful, event not in use, or unrecognized ECB flag
  2310. Notes:    cannot cancel packets which the node's driver has already sent
  2311.     this function is supported by Advanced NetWare 1.02+
  2312. SeeAlso: BX=0005h
  2313. ----------7A----BX0007-----------------------
  2314. INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT
  2315.     BX = 0007h
  2316.     AX = delay time
  2317.     ES:SI -> Event Control Block (see BX=0003h)
  2318. Note:    this function is supported by Advanced NetWare 1.02+
  2319. SeeAlso: BX=0006h
  2320. ----------7A----BX0008-----------------------
  2321. INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER
  2322.     BX = 0008h
  2323. Return: AX = interval marker in clock ticks
  2324. Notes:    may be used to measure the time elapsed between two events, up to one
  2325.       hour
  2326.     this function is supported by Advanced NetWare 1.02+
  2327. SeeAlso: BX=0005h
  2328. ----------7A----BX0009-----------------------
  2329. INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS
  2330.     BX = 0009h
  2331.     ES:SI -> buffer for own internetwork address (see below)
  2332. Return: ES:SI buffer filled
  2333.     SI destroyed
  2334. Note:    this function is supported by Advanced NetWare 1.02+
  2335. SeeAlso: BX=0002h,BX=000Bh
  2336.  
  2337. Format of internetwork address:
  2338. Offset    Size    Description
  2339.  00h  4 BYTEs    network number (big-endian)
  2340.  04h  6 BYTEs    node number within network (big-endian)
  2341. ----------7A----BX000A-----------------------
  2342. INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL
  2343.     BX = 000Ah
  2344. Desc:    this call indicates that the application is idle and permits the IPX
  2345.       driver to do some work
  2346. Note:    this function is supported by Advanced NetWare 1.02+
  2347. SeeAlso: INT 15/AX=1000h,INT 21/AH=89h,INT 2F/AX=1680h
  2348. ----------7A----BX000B-----------------------
  2349. INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET
  2350.     BX = 000Bh
  2351.     ES:SI -> internetwork address (see below)
  2352. Notes:    this function permits the network software on the remote machine to
  2353.       remove any virtual connection with the calling machine
  2354.     only use in point-to-point networks
  2355.     should never be called from within an Event Service Routine
  2356.     this function is supported by Advanced NetWare 1.02+
  2357. SeeAlso: BX=0002h,BX=0009h
  2358.  
  2359. Format of internetwork address:
  2360. Offset    Size    Description
  2361.  00h  4 BYTEs    destination network (big-endian)
  2362.  04h  6 BYTEs    destination node (big-endian)
  2363.  0Ah  2 BYTEs    destination socket (big-endian)
  2364. ----------7A----BX000C-----------------------
  2365. INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS
  2366.     BX = 000Ch
  2367.     CX:DX = global network address (see INT 7A/BX=0002h)
  2368.     ES:DI -> "OSINCRITICALSECTION" flag
  2369.     DS:SI -> current mode for socket
  2370. Note:    the address cannot be changed once it has been initialized
  2371. ----------7A----BX000D-----------------------
  2372. INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE
  2373.     BX = 000Dh
  2374. Return: AX = maximum packet size
  2375.     CX = retry count
  2376. SeeAlso: BX=001Ah
  2377. ----------7A----BX000E-----------------------
  2378. INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS
  2379.     BX = 000Eh
  2380. Return: nothing
  2381. Note:    this function terminates all sockets opened with the current mode; this
  2382.       may be intended for future enhancements as the socket mode never
  2383.       changes in v2.15
  2384. ----------7A----BX000F-----------------------
  2385. INT 7A U - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET
  2386.     BX = 000Fh
  2387.     ES:SI -> Event Control Block (see BX=0003h)
  2388. Note:    similar to function 0003h, but apparently does not allow multiple
  2389.       fragments
  2390. SeeAlso: BX=0003h
  2391. ----------7A----BX0010-----------------------
  2392. INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK
  2393.     BX = 0010h
  2394.     AL = 00h
  2395. Return: AL = FFh if SPX loaded
  2396.         BH = SPX major version
  2397.         BL = SPX minor version
  2398.         CX = maximum SPX connections
  2399.         DX = SPX connections available
  2400. Note:    this function is supported by Advanced NetWare 2.1+
  2401. SeeAlso: BX=0015h
  2402. ----------7A----BX0011-----------------------
  2403. INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION
  2404.     BX = 0011h
  2405.     AL = retry count
  2406.     AH = watchdog flag
  2407.     ES:SI -> Event Control Block (see BX=0003h)
  2408. Return: AL = status
  2409.         00h attempting to contact destination socket
  2410.         EFh local connection table full
  2411.         FDh buffer size not 42 or fragment count not 1
  2412.         FFh sending socket not open
  2413.     DX = assigned connection ID number
  2414. Desc:    attempt to establish a connection with a listening socket
  2415. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  2416.       that NetWare can perform its internal packet exchanges
  2417.     the first fragment should start with a SPX header.  Fill in all
  2418.       destination addresses.
  2419.     this function is supported by Advanced NetWare 2.1+
  2420. SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h,BX=0015h
  2421.  
  2422. Format of SPX header:
  2423. Offset    Size    Description
  2424.  00h    WORD    checksum (big-endian)
  2425.  02h    WORD    length in bytes of total packet (big-endian)
  2426.  04h    BYTE    transport control
  2427.  05h    BYTE    packet type (see INT 7A/BX=0003h)
  2428.  06h 10 BYTEs    destination internet address
  2429.  10h    WORD    destination socket (big-endian)
  2430.  12h 10 BYTEs    source internet address
  2431.  1Ch    WORD    source socket (big-endian)
  2432.  1Eh    BYTE    connection control
  2433.  1Fh    BYTE    datastream type
  2434.  20h    WORD    source connection ID (big-endian)
  2435.  22h    WORD    destination connection ID (big-endian)
  2436.  24h    WORD    sequence number (big-endian)
  2437.  26h    WORD    acknowledge number (big-endian)
  2438.  28h    WORD    allocation number (big-endian)
  2439. ----------7A----BX0012-----------------------
  2440. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION
  2441.     BX = 0012h
  2442.     AH = watchdog flag
  2443.         00h disabled
  2444.         01h enabled
  2445.     AL = retry count (00h = default)
  2446.     ES:SI -> Event Control Block (see BX=0003h)
  2447. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  2448.       that NetWare can perform its internal packet exchanges
  2449.     this function is supported by Advanced NetWare 2.1+
  2450. SeeAlso: BX=0011h,BX=0013h,BX=0014h
  2451. ----------7A----BX0013-----------------------
  2452. INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION
  2453.     BX = 0013h
  2454.     DX = connection ID to terminate
  2455.     ES:SI -> Event Control Block (see BX=0003h)
  2456. Note:    this function is supported by Advanced NetWare 2.1+
  2457. SeeAlso: BX=0011h,BX=0012h,BX=0014h
  2458. ----------7A----BX0014-----------------------
  2459. INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION
  2460.     BX = 0014h
  2461.     DX = connection ID to terminate
  2462. Notes:    this function is supported by Advanced NetWare 2.1+
  2463.     this function does not tell the other side that the connection has been
  2464.       terminated
  2465.     also aborts any outstanding Establish Connection, Terminate Connection,
  2466.       and Send Sequenced Packet commands
  2467. SeeAlso: BX=0011h,BX=0013h
  2468. ----------7A----BX0015-----------------------
  2469. INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS
  2470.     BX = 0015h
  2471.     DX = connection ID
  2472.     ES:SI -> status buffer (see below)
  2473. Return: AL = return code
  2474.         00h connection still valid
  2475.         ES:SI -> status buffer filled
  2476.         EEh no such connection
  2477. Note:    this function is supported by Advanced NetWare 2.1+
  2478. SeeAlso: BX=0010h,BX=0011h
  2479.  
  2480. Format of status buffer:
  2481. Offset    Size    Description
  2482.  00h    BYTE    connection state
  2483.         01h waiting to establish connection
  2484.         02h starting (attempting to create connection)
  2485.         03h connection established
  2486.         04h terminating
  2487.  01h    BYTE    watchdog flag
  2488.         bit 0: used internally by SPX
  2489.         bit 1: SPX watchdog is monitoring connection
  2490.         bits 2-7: used internally by SPX
  2491.  02h    WORD    source connection ID (big-endian)
  2492.  04h    WORD    destination connection ID (big-endian)
  2493.  06h    WORD    sequence number of next packet sent (big-endian)
  2494.  08h    WORD    acknowledge number, expected sequence number of next received
  2495.         packet (big-endian)
  2496.  0Ah    WORD    maximum sequence number remote SPX may send without ACK from
  2497.         local SPX (big-endian)
  2498.  0Ch    WORD    remote acknowledge number, next sequence number remote SPX
  2499.         expects to receive (big-endian)
  2500.  0Eh    WORD    remote allocation number, maximum sequence number local SPX
  2501.         may send (big-endian)
  2502.  10h    WORD    connection socket (big-endian)
  2503.  12h  6 BYTEs    immediate node address--bridge on local network to destination
  2504.  18h 10 BYTEs    destination internetwork address (see INT 7A/BX=000Bh)
  2505.  22h    WORD    retransmit count (big-endian)
  2506.  24h    WORD    estimated roundtrip delay (big-endian)
  2507.  26h    WORD    retransmitted packets (big-endian)
  2508.  28h    WORD    suppressed packets (big-endian)
  2509.  2Ah 12 BYTEs    ??? (v2.15)
  2510. ----------7A----BX0016-----------------------
  2511. INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET
  2512.     BX = 0016h
  2513.     DX = connection ID
  2514.     ES:SI -> Event Control Block (see BX=0003h)
  2515. Notes:    this function is supported by Advanced NetWare 2.1+
  2516.     CX may need to be 0001h ???
  2517. SeeAlso: BX=0011h,BX=0017h
  2518. ----------7A----BX0017-----------------------
  2519. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET
  2520.     BX = 0017h
  2521.     DX = connection ID (unused in v2.15)
  2522.     ES:SI -> Event Control Block (see BX=0003h)
  2523. Notes:    this function is supported by Advanced NetWare 2.1+
  2524.     CX may need to be 0001h ???
  2525. SeeAlso: BX=0011h,BX=0016h
  2526. ----------7A----BX0018-----------------------
  2527. INT 7A U - Novell NetWare - SPX Driver - internal - ADD DIAGNOSTIC ELEMENT
  2528.     BX = 0018h
  2529.     ES:SI -> diagnostic element (see below) to be added to Diagnostic Queue
  2530. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2531.       supports it on workstations
  2532. SeeAlso: BX=0019h
  2533.  
  2534. Format of diagnostic element:
  2535. Offset    Size    Description
  2536.  00h    DWORD    pointer to next diagnostic element
  2537.  04h    DWORD    pointer to function for ???
  2538.  08h    DWORD    pointer to function for ???
  2539. ----------7A----BX0019-----------------------
  2540. INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT
  2541.     BX = 0019h
  2542.     ES:SI -> diagnostic element (see BX=0018h) to be removed
  2543. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2544.       supports it on workstations
  2545. SeeAlso: BX=0018h
  2546. ----------7A----BX001A-----------------------
  2547. INT 7A U - Novell NetWare - IPX Driver - internal - GET DRIVER PACKT SIZE LIMIT
  2548.     BX = 001Ah
  2549. Return: AX = packet size with preamble
  2550.     CX = IPX retry count
  2551. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2552.       supports it on workstations
  2553. SeeAlso: BX=000Dh
  2554. ----------7A----BX001B-----------------------
  2555. INT 7A U - Novell NetWare - IPX Driver - INTERNAL
  2556.     BX = 001Bh
  2557.     ???
  2558. Return: ???
  2559. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2560.       supports it on workstations
  2561. ----------7A04-------------------------------
  2562. INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE
  2563.     AH = 04h
  2564.     ???
  2565. Return: ???
  2566. SeeAlso: AH=06h
  2567. ----------7A06-------------------------------
  2568. INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE
  2569.     AH = 06h
  2570.     ???
  2571. Return: ???
  2572. SeeAlso: AH=04h
  2573. ----------7A09--BX8020-----------------------
  2574. INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES
  2575.     AH = 09h
  2576.     BX = 8020h (synchronous request)
  2577.     CX = 0000h
  2578.     DX = ID of session manager (SESSMGR)
  2579.     AL = service
  2580.         01h get session ID
  2581.         02h get session info
  2582.         04h dettach from session
  2583.         05h attach to session
  2584.         06h get list of windows available
  2585.         07h get environment of window
  2586.         08h get 'PIF' (program information file) info
  2587.         0Ah get base window ID
  2588.         0Bh get cursor info
  2589.     ES:DI -> control block
  2590. Return: ???
  2591. ----------7A09--BX8020-----------------------
  2592. INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES
  2593.     AH = 09h
  2594.     BX = 8020h (synchronous request)
  2595.     CX = 0000h
  2596.     DX = ID of keyboard manager
  2597.     AL = service
  2598.         01h connect to keyboard
  2599.         02h disconnect from keyboard
  2600.         03h read from keyboard
  2601.         04h send keystroke to session
  2602.         05h disable input
  2603.         06h enable input
  2604.         07h update status code
  2605.     ES:DI -> control block
  2606. Return: ???
  2607. ----------7A09--BX8020-----------------------
  2608. INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES
  2609.     AH = 09h
  2610.     BX = 8020h (synchronous request)
  2611.     CX = 00FFh
  2612.     DX = ID of window service controller (WSCTRL)
  2613.     AL = service
  2614.         01h connect to WS control
  2615.         02h disconnect from WS control
  2616.         03h add a window
  2617.         04h change window's position on screen
  2618.         05h change window's size
  2619.         06h change window's color
  2620.         07h change window's position in the presentation space
  2621.         08h hide/unhide toggle
  2622.         09h enlarge/reduce toggle
  2623.         0Ah change screen background color
  2624.         0Bh get window's position on screen
  2625.         0Ch get window's size
  2626.         0Dh get window's color
  2627.         0Eh get window's position in the presentation space
  2628.         0Fh determine whether hidden
  2629.         10h determine whether enlarged
  2630.         11h get background color
  2631.         12h get window names
  2632.         13h delete all windows from profile
  2633.         14h pick active window
  2634.         15h redraw screen
  2635.         16h redraw window
  2636.         17h delete a window from profile
  2637.         18h get active window
  2638.         19h get active screen
  2639.         1Ah get window data
  2640.         1Bh change window data
  2641.         1Ch select active screen
  2642.     ES:DI -> control block
  2643. Return: ???
  2644. ----------7A09--BX8020-----------------------
  2645. INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES
  2646.     AH = 09h
  2647.     BX = 8020h
  2648.     CX = 00FFh
  2649.     DX = ID of PCPSM
  2650.     AL = service
  2651.         01h define presentation space
  2652.         02h delete presentation space
  2653.         03h display presentation space
  2654.         04h position cursor in presentation space
  2655.         05h change default presentation space
  2656.     ES:DI -> control block
  2657. Return: ???
  2658. ----------7A09--BX8020-----------------------
  2659. INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION
  2660.     AH = 09h
  2661.     BX = 8020h
  2662.     CX = 00FFh
  2663.     DX = ID of 3270EML
  2664.     AL = service
  2665.         01h connect
  2666.         02h disconnect
  2667.     ES:DI -> control block
  2668. Return: ???
  2669. ----------7A09--BX8020-----------------------
  2670. INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA
  2671.     AH = 09h
  2672.     BX = 8020h
  2673.     CX = 00FFh
  2674.     DX = ID of OIAM
  2675.     AL = service
  2676.         01h read Operator Information Area
  2677.         02h read OIA subset
  2678.     ES:DI -> control block
  2679. Return: ???
  2680. Note: the OIA is the 25th line on the Host session
  2681. ----------7A09--BX8020-----------------------
  2682. INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA
  2683.     AH = 09h
  2684.     BX = 8020h
  2685.     CX = 00FFh
  2686.     DX = ID of XLATE
  2687.     AL = service
  2688.         01h translate from host characters to ASCII and vice versa
  2689.         (determined by control block byte 11)
  2690.     ES:DI -> control block
  2691. Return: ???
  2692. ----------7A09--BX8020-----------------------
  2693. INT 7A - IBM 3270 Workstation Program API - COPY SERVICE
  2694.     AH = 09h
  2695.     BX = 8020h
  2696.     CX = 00FFh
  2697.     DX = ID of copy service
  2698.     AL = service
  2699.         01h copy string from one presentation space to another
  2700.         02h copy block from one presentation space to another
  2701.         03h connect to PC session for copy
  2702.         04h disconnect PC session from copy
  2703.     ES:DI -> control block
  2704. Return: ???
  2705. ----------7A09--BX8020-----------------------
  2706. INT 7A - IBM 3270 Workstation Program API - Multi-DOS
  2707.     AH = 09h
  2708.     BX = 8020h
  2709.     CX = 00FFh
  2710.     ES:DI -> control block
  2711.     DX = ID of INDJQRY  
  2712.         get environment size
  2713.        = ID of INDJASY
  2714.         request DOS functions from workstation
  2715.        = ID of MEMORY
  2716.         AL = function
  2717.             01h allocate memory
  2718.             02h deallocate memory
  2719.             03h modify allocated size
  2720. Return: ???
  2721. ----------7A09-------------------------------
  2722. INT 7A - IBM 3270 Workstation Program API - HOST SERVICES
  2723.     AH = 09h
  2724.     BX = request type (4000h async, 8028h synchronous)
  2725.     CX = 0000h
  2726.     DX = ID of MFIC
  2727.     AL = service
  2728.        01h connect to host
  2729.        02h disconnect from host
  2730.        03h read DFT structured data from host
  2731.        04h write DFT structured data to host
  2732.        05h create a host buffer
  2733.     ES:DI -> control block
  2734. ----------7A13-------------------------------
  2735. INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE
  2736.     AH = 13h
  2737.     ???
  2738. Return: ???
  2739. ----------7A7A-------------------------------
  2740. INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE
  2741.     AH = 7Ah
  2742.     ???
  2743. Return: AX = 0000h success
  2744.          000Eh undefined function code
  2745. Note:    this interface is normally on INT 7A but can be changed via device
  2746.       driver command line arguments
  2747. ----------7A81-------------------------------
  2748. INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME
  2749.     AH = 81h
  2750.     ES:DI -> 8-char blank-padded gate name
  2751.         "SESSMGR ", "KEYBOARD", "WSCTRL     ", "MFIC    ", "PCPSM     ",
  2752.         "3270EML ", "COPY    ", "XLATE     ", "OIAM    ", "MEMORY     ",
  2753.         "INDJQRY ", or "INDJASY "
  2754. Return: DX = gate ID
  2755. ----------7A83-------------------------------
  2756. INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS
  2757.     AH = 83h
  2758.     ???
  2759. Return: ???
  2760. ----------7AFDCB-----------------------------
  2761. INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK
  2762.     AX = FDCBh
  2763. Return: DX:AX -> PCS/3270 signature block if loaded (see below)
  2764.  
  2765. Format of signature block:
  2766. Offset    Size    Description
  2767.  04h    WORD    PCS/3270 signature (5741h)
  2768.  06h    WORD    version (0501h = PCS/3270 v1.0)
  2769. ----------7AFE01-----------------------------
  2770. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  2771.     AX = FE01h
  2772.     ???
  2773. Return: ???
  2774. SeeAlso: AX=FE02h
  2775. ----------7AFE02-----------------------------
  2776. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  2777.     AX = FE02h
  2778.     ???
  2779. Return: ???
  2780. SeeAlso: AX=FE01h
  2781. ----------7AFF01-----------------------------
  2782. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  2783.     AX = FF01h
  2784.     ES:DI -> API function handler routine
  2785. Return: CX = 1200h
  2786. SeeAlso: AX=FF02h,AX=FF03h
  2787. ----------7AFF02-----------------------------
  2788. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION
  2789.     AX = FF02h
  2790. Return: CX = 1200h
  2791. SeeAlso: AX=FF01h
  2792. ----------7AFF03-----------------------------
  2793. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  2794.     AX = FF03h
  2795.     ES:DI -> send/receive function handler routine
  2796. Return: CX = 1200h
  2797. SeeAlso: AX=FF01h
  2798. ----------7AFF04-----------------------------
  2799. INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???
  2800.     AX = FF04h
  2801.     ES:DI -> ???
  2802. Return: CX = 1200h
  2803. ----------7B---------------------------------
  2804. INT 7B - Btrieve API (single user)
  2805.     DS:DX -> 38-byte parameter record (see below)
  2806. Return: return code field set
  2807. Note:    Btrieve sets low byte of vector to 33h; this serves as the installation
  2808.       check
  2809. SeeAlso: INT 2F/AX=AB01h,INT 7F/AX=0200h
  2810.  
  2811. Format of Btrieve parameter record:
  2812. Offset    Size    Description
  2813.  00h    DWORD    pointer to data buffer
  2814.  04h    WORD    data buffer length
  2815.  06h    DWORD    pointer to 90-byte record containing positioning info
  2816.         (should be same for all calls for same file)
  2817.  0Ah    DWORD    pointer to 38-byte FCB info buffer
  2818.         (should be same for all calls for same file)
  2819.  0Eh    WORD    function code (see below)
  2820.  10h    DWORD    pointer to file name/key buffer
  2821.  14h    BYTE    key length
  2822.  15h    BYTE    key number
  2823.  16h    DWORD    pointer to status code (see below)
  2824.  1Ah    WORD    interface code (version specific)
  2825.         6176h version 5.10
  2826.  
  2827. Values for function code:
  2828.  00h open
  2829.  01h close
  2830.  02h insert
  2831.  03h update
  2832.  04h delete
  2833.  05h get_equal
  2834.  06h get_next
  2835.  07h get_prev
  2836.  08h get_greater
  2837.  09h get_gr_eql
  2838.  0Ah get_less
  2839.  0Bh get_less_eq
  2840.  0Ch get_first
  2841.  0Dh get_last
  2842.  0Eh create
  2843.  0Fh stat
  2844.  10h extend
  2845.  11h set_dir: set directory information
  2846.  12h get_dir: get directory information
  2847.  13h begin_trans
  2848.  14h end_trans
  2849.  15h abort_trans
  2850.  16h get_pos: get record position number
  2851.  17h get_direct: get data by sending record position
  2852.  18h step_next
  2853.  19h stop
  2854.  1Ah version
  2855.  1Bh unlock
  2856.  1Ch reset
  2857.  1Dh set owner
  2858.  1Eh clear owner
  2859.  1Fh create supplemental index
  2860.  20h drop supplemental index
  2861.  21h step first
  2862.  22h step last
  2863.  23h step previous
  2864.  24h get next extended: get multiple records using a filter
  2865.  25h get previous extended: get multiple records using a filter
  2866.  26h step next extended: get multiple records using a filter
  2867.  27h step previous extended: get multiple records using a filter
  2868.  28h insert extended: insert one or more records
  2869.  31h ???
  2870.  add 50 (32h) to any "get" operation to just return the key data
  2871.  add 100 (64h) for a single-record wait lock (automatically released on next
  2872.         get)
  2873.  add 200 (C8h) for a single-record nowait lock (nowait lock returns error 54h
  2874.         or 55h if record already locked)
  2875.  add 300 (12Ch) for a multiple-record wait lock (not released until unlock
  2876.         called)
  2877.  add 400 (190h) for a multiple-record nowait lock (nowait lock returns error
  2878.         54h or 55h if record already locked)
  2879.  
  2880. Values for status code:
  2881.  00h successful
  2882.  01h invalid operation
  2883.  02h I/O error
  2884.  03h file not open
  2885.  04h key value not found
  2886.  05h duplicate key value
  2887.  06h invalid key number
  2888.  07h different key number
  2889.  08h invalid positioning
  2890.  09h end of file
  2891.  0Ah modifiable key value error
  2892.  0Bh invalid file name
  2893.  0Ch file not found
  2894.  0Dh extended file error
  2895.  0Eh pre-image open error
  2896.  0Fh pre-image I/O error
  2897.  10h expansion error
  2898.  11h close error
  2899.  12h disk full
  2900.  13h unrecoverable error
  2901.  14h record manager inactive
  2902.  15h key buffer too short
  2903.  16h data buffer length overrun
  2904.  17h position block length
  2905.  18h page size error
  2906.  19h create I/O error
  2907.  1Ah number of keys
  2908.  1Bh invalid key position
  2909.  1Ch invalid record length
  2910.  1Dh invalid key length
  2911.  1Eh not a Btrieve file
  2912.  1Fh file already extended
  2913.  20h extended I/O error
  2914.  22h invalid extension name
  2915.  23h directory error
  2916.  24h transaction error
  2917.  25h transaction is active
  2918.  26h transaction control file I/O error
  2919.  27h end/abort transaction error
  2920.  28h transaction max files
  2921.  29h operation not allowed
  2922.  2Ah incomplete accelerated access
  2923.  2Bh invalid record address
  2924.  2Ch null key path
  2925.  2Dh inconsistent key flags
  2926.  2Eh access to file denied
  2927.  2Fh maximum open files
  2928.  30h invalid alternate sequence definition
  2929.  31h key type error
  2930.  32h owner already set
  2931.  33h invalid owner
  2932.  34h error writing cache
  2933.  35h invalid interface
  2934.  36h variable page error
  2935.  37h autoincrement error
  2936.  38h incomplete index
  2937.  39h expanded memory error
  2938.  3Ah compression buffer too short
  2939.  3Bh file already exists
  2940.  3Ch reject count reached
  2941.  3Dh work space too small
  2942.  3Eh incorrect descriptor
  2943.  3Fh invalid extended insert
  2944.  40h filter limit reached
  2945.  41h incorrect field offset
  2946.  4Ah automatic transaction abort
  2947.  4Eh deadlock detected
  2948.  50h conflict
  2949.  51h lock error
  2950.  52h lost position
  2951.  53h read outside transaction
  2952.  54h record in use
  2953.  55h file in use
  2954.  56h file table full
  2955.  57h handle table full
  2956.  58h incompatible open mode
  2957.  5Ah redirected device table full
  2958.  5Bh server error
  2959.  5Ch transaction table full
  2960.  5Dh incompatible lock type
  2961.  5Eh permission error
  2962.  5Fh session no longer valid
  2963.  60h communications environment error
  2964.  61h data message too small
  2965.  62h internal transaction error
  2966. ----------7B---------------------------------
  2967. INT 7B - Eicon Access API (3270/5250 gateways)
  2968. ----------7B---------------------------------
  2969. INT 7B CU - AutoCAD ADI INTERFACE
  2970.     AX = function
  2971.         0000h output blank line
  2972.         other ???
  2973. Return: ???
  2974. Note:    called by AutoCAD to perform its output
  2975. SeeAlso: INT 78"AutoCAD",INT 7A"AutoCAD"
  2976. ----------7B---------------------------------
  2977. INT 7B - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ3
  2978. Note:    this vector is overwritten when GO32 starts but is not restored
  2979. SeeAlso: INT 0B,INT 10/AH=FFh"GO32",INT 7A"GO32",INT 7C"GO32"
  2980. ----------7C---------------------------------
  2981. INT 7C U - IBM REXX88PC command language
  2982.     ???
  2983. ----------7C---------------------------------
  2984. INT 7C - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ4
  2985. Note:    this vector is overwritten when GO32 starts but is not restored
  2986. SeeAlso: INT 0C,INT 7B"GO32",INT 7D"GO32"
  2987. ----------7D---------------------------------
  2988. INT 7D - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT
  2989. Note:    this interface proposal has been moved to INT 2D; there are no known
  2990.       implementations on INT 7D
  2991. SeeAlso: INT 2D, INT 2F
  2992. ----------7D---------------------------------
  2993. INT 7D U - YTERM 1.4 - CLOCK SUPPORT
  2994. SeeAlso: INT 7E"YTERM"
  2995. ----------7D---------------------------------
  2996. INT 7D - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ5
  2997. Note:    this vector is overwritten when GO32 starts but is not restored
  2998. SeeAlso: INT 0D,INT 7C"GO32",INT 7E"GO32"
  2999. ----------7D---------------------------------
  3000. INT 7D - HyperPAD v2.2 - API ACCESS
  3001. Note:    this vector is hooked but immediately passed on (without checking
  3002.       whether the previous handler was 0000h:0000h).  The sole purpose of
  3003.       this vector is to provide the address of the data area described
  3004.       below.
  3005.  
  3006. Format of HyperPAD data area:
  3007. Offset    Size    Description
  3008.  -16h    DWORD    pointer to ??? FAR function
  3009.  -12h    DWORD    pointer to callback setting function
  3010.         [C calling conventions, (*callback)(int (_loadds far *)()) ]
  3011.  -0Eh 6 BYTEs    signature "BRC001"
  3012.  -08h    DWORD    pointer to previous INT 7D handler
  3013.  -04h    DWORD    pointer to ??? data
  3014.  00h        HyperPAD INT 7D handler
  3015. ----------7E---------------------------------
  3016. INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY
  3017. ----------7E---------------------------------
  3018. INT 7E U - YTERM 1.4 - ???
  3019. SeeAlso: INT 7D"YTERM",INT 7F"YTERM"
  3020. ----------7E---------------------------------
  3021. INT 7E - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ6
  3022. Note:    this vector is overwritten when GO32 starts but is not restored
  3023. SeeAlso: INT 0E,INT 7D"GO32",INT 7F"GO32"
  3024. ----------7F---------------------------------
  3025. INT 7F - IBM XGA - ???
  3026. ----------7F---------------------------------
  3027. INT 7F - Halo88 - API
  3028.     BX = function
  3029.         64h arc
  3030.         65h bar
  3031.         66h box
  3032.         67h circle
  3033.         68h clr
  3034.         69h default hatch style
  3035.         6Ah default line style
  3036.         6Bh delhcur
  3037.         6Ch delln / deltcur
  3038.         6Dh ellipse
  3039.         6Eh fill
  3040.         6Fh flood
  3041.         70h flood2
  3042.         71h init graphics
  3043.         72h init hcur
  3044.         73h init marker
  3045.         74h init tcur
  3046.         75h inqarc
  3047.         76h inqbknd
  3048.         77h inqclr
  3049.         78h inqerr
  3050.         79h inqgcur
  3051.         7Ah inqhcur
  3052.         7Bh inqmarker
  3053.         7Dh inqtcur
  3054.         7Eh inqtext
  3055.         7Fh lnabs
  3056.         80h lnrel
  3057.         81h markerabs
  3058.         82h markerrel
  3059.         83h moveabs
  3060.         84h movehcurabs
  3061.         85h movehcurrel
  3062.         86h moverel
  3063.         87h movetcurabs
  3064.         88h movetcurrel
  3065.         89h movefrom
  3066.         8Ah moveto
  3067.         8Bh pie
  3068.         8Ch polylnabs
  3069.         8Dh polylnrel
  3070.         8Eh ptabs
  3071.         8Fh ptrel
  3072.         91h setasp
  3073.         92h set color
  3074.         93h set font
  3075.         94h set hatch style
  3076.         95h set line style
  3077.         97h settext
  3078.         98h set text color
  3079.         99h btext
  3080.         9Ah setseg
  3081.         9Bh display
  3082.         9Ch setscreen
  3083.         9Eh close graphics
  3084.         9Fh ftinit
  3085.         A0h ftlocate
  3086.         A1h ftext
  3087.         A5h set viewport
  3088.         A6h set window
  3089.         A7h set world
  3090.         AAh ftcolor
  3091.         ACh initlp
  3092.         ADh inqasp
  3093.         AEh inqdev
  3094.         AFh inqdisplay
  3095.         B0h inqft
  3096.         B1h inqftcolor
  3097.         B2h inqinterlace
  3098.         B3h inqlpa
  3099.         B4h inqlpg
  3100.         B5h inqmode
  3101.         B6h inqscreen
  3102.         B7h inqversion
  3103.         B8h roam
  3104.         B9h scroll
  3105.         BAh setieee
  3106.         BBh set interlace
  3107.         BCh shift
  3108.         BDh start graphics
  3109.         BEh vpan
  3110.         CBh gwrite
  3111.         CCh gread
  3112.         CDh setxor
  3113.         CEh rbox
  3114.         CFh rcir
  3115.         D0h rlnabs
  3116.         D1h rlnrel
  3117.         D2h delbox
  3118.         D3h delcir
  3119.         D5h setseg2
  3120.         DCh worldoff
  3121.         DDh mapwtod
  3122.         DEh mapdtow
  3123.         DFh mapwton
  3124.         E0h mapntow
  3125.         E1h mapdton
  3126.         E2h mapntod
  3127.         E3h inqworld
  3128.         E4h inqviewport
  3129.         E5h set line width
  3130.         E6h lnjoint
  3131.         E7h set locator
  3132.         E8h read locator
  3133.         E9h setdev
  3134.         EBh setstext
  3135.         ECh setstclr
  3136.         EDh setstang
  3137.         EEh stext
  3138.         EFh inqstext
  3139.         F0h setdegree
  3140.         F1h inqstsize
  3141.         F2h polyfabs
  3142.         F3h polyfrel
  3143.         F4h inqdrange
  3144.         F5h inqstang
  3145.         F6h orglocator
  3146.         F7h inqlocator
  3147.         F8h inqarea
  3148.         F9h setipal
  3149.         FAh setborder
  3150.         FBh inqcrange
  3151.         FEh setclip
  3152.         FFh fcir
  3153.            100h setcrange
  3154.            101h setdrange
  3155.            102h setlattr
  3156.            103h polycabs
  3157.            104h polycrel
  3158.            108h memcom
  3159.            109h memexp
  3160.            10Ah memmov
  3161.            10Eh movefx
  3162.            10Fh movetx
  3163.            110h inqrgb
  3164.            111h save image
  3165.            112h restore image
  3166.            113h setapal
  3167.            114h setxpal
  3168.            118h inqtsize
  3169.            12Eh gprint
  3170.            130h setprn
  3171.            131h setpattr
  3172.            133h setbattr
  3173.            135h pexpand
  3174.            136h ptnorm
  3175.            137h pfnorm
  3176.            13Bh inqprn
  3177.            13Ch lopen
  3178.            13Dh lclose
  3179.            13Eh lappend
  3180.            13Fh lrecord
  3181.            140h lswitch
  3182.            142h inqfun
  3183.            15Dh lsetup
  3184.            15Eh lrest
  3185.            15Fh lsave
  3186.     additional parameters on stack
  3187. Return: ???
  3188. Notes:    Halo88 is a suite of graphics routines
  3189.     according to Stuart Kemp, the code appears to make no provisions for
  3190.        chaining
  3191. ----------7F---------------------------------
  3192. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  3193.     AL = request ID
  3194.         01h "Request"/"RequestDirect"
  3195.         ES:BX -> pRq
  3196.         DX ignored
  3197.         04h "Wait"
  3198.         ES:BX -> ppMsgRet
  3199.         DX = exchange
  3200.         05h "AllocExch"
  3201.         ES:BX -> pExchRet
  3202.         06h "DeAllocExch"
  3203.         DX = exchange
  3204.         07h "Check"
  3205.         ES:BX -> ppMsgRet
  3206.         DX = exchange
  3207.     CX = 4354h ('CT')
  3208. Return: AX = status
  3209.         0000h successful
  3210. ----------7F---------------------------------
  3211. INT 7F - Telebit ACS SERIAL I/O
  3212.     ES:SI-> parameter block
  3213. Return: CF set on error
  3214.     CF clear on success
  3215. Notes:    the signature "PDGATEWRKSTNIF" appears just prior to the interrupt
  3216.       handler; this serves as the installation check
  3217.  
  3218. Format of Telebit ACS parameter block:
  3219. Offset    Size    Description
  3220.  00h    BYTE    command
  3221.             3Ch status
  3222.             3Dh connect
  3223.             3Eh disconnect
  3224.             3Fh read
  3225.             40h data/command write
  3226.             41h clear receive buffer
  3227.             42h get configuration
  3228.             43h get receiver status
  3229.             44h raw write
  3230.             45h search servers
  3231.             46h set transmit buffer size
  3232.  01h    BYTE    gateway number
  3233.  02h    BYTE    reserved
  3234.  03h    BYTE    port
  3235.  04h 17 BYTES    auxiliary buffer
  3236.  15h    BYTE    session
  3237.  16h    WORD    count of bytes passed to API
  3238.  18h    DWORD    buffer pointer passed to/from API
  3239.  1Ch    WORD    count of bytes passed from API
  3240.  1Eh    BYTE    return code (see below)
  3241.  
  3242. Values for return code:
  3243.  00h - success
  3244.  01h - invalid session
  3245.  05h - servername invalid
  3246.  06h - netware fileserver bindery is locked
  3247.  07h communication server not active
  3248.  08h general failure in netware fileserver
  3249.  09h not logged into a fileserver
  3250.  10h connection table full
  3251.  11h no response from communication server
  3252.  12h connection attempt terminated abnormally
  3253.  13h connection refused - no sessions available
  3254.  14h gw_no/port already in use
  3255.  15h invalid connection response
  3256.  16h port invalid
  3257.  17h incorrect version in server response
  3258.  18h gw_no/port combination not configured
  3259.  19h initialization has not been completed
  3260.  20h no more sockets are available
  3261.  21h no active poolname
  3262.  23h FATAL internal interface error
  3263.  24h registration of host workstation failed - name is already in used
  3264.  25h registration of host workstation failed - workstation name table full
  3265.  26h registration of host workstation failed - only one session may be
  3266.     registered for dial-in
  3267.  FFh telebit acs api is busy - retry later
  3268. ----------7F---------------------------------
  3269. INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
  3270. Notes:    the installation check consists of checking for the signature "Lynn"
  3271.       in the four bytes preceding the interrupt handler; if present, the
  3272.       current program is running as a DOS task on a non-dedicated NetWare
  3273.       2.x file server.
  3274.     Before placing the server into "console" mode, it is recommended that
  3275.       NetWare broadcast messages be disabled with INT 21/AX=DE00h.
  3276. SeeAlso: INT 21/AX=DE00h
  3277. ----------7F---------------------------------
  3278. INT 7F U - YTERM - ???
  3279. SeeAlso: INT 7E"YTERM"
  3280. ----------7F---------------------------------
  3281. INT 7F - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ7
  3282. Note:    this vector is overwritten when GO32 starts but is not restored
  3283. SeeAlso: INT 0F,INT 7E"GO32"
  3284. ----------7F---------------------------------
  3285. INT 7F - Canon IXHND2 Scanner Interface
  3286. ----------7F---------------------------------
  3287. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  3288. Notes:    the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  3289.       MW386 multitasking system is present (i.e. signature "NXNX")
  3290.     NTNX allows its API to be placed on a different interrupt than 7Fh at
  3291.       load time.  To determine the actual vector used, open the device
  3292.       "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  3293.       INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  3294.       be the actual interrupt number being used; the other interrupts may
  3295.       be found with INT 7F/AH=09h/CL=03h
  3296. ----------7F---------------------------------
  3297. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  3298. Note:    a program may determine that it is running on an ANSK Slave by checking
  3299.       the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  3300.       address is RAM, and should not be written.  However, the above check
  3301.       will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  3302.       device driver
  3303. ----------7F00-------------------------------
  3304. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  3305.     AH = 00h
  3306.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  3307. Return: AL = status
  3308.         00h successful
  3309.         01h invalid function
  3310.         02h semaphore already locked
  3311.         03h unable to lock semaphore
  3312.         04h semaphore space exhausted
  3313.         05h host/target PC did not respond (NTNX)
  3314.     AH = semaphore owner if status=02h
  3315. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  3316. ----------7F01-------------------------------
  3317. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  3318.     AH = 01h
  3319.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  3320. Return: AL = status (see AH=00h)
  3321.     AH = semaphore owner if status=02h
  3322. SeeAlso: AH=00h,AH=02h,AH=41h
  3323. ----------7F0104BX0000-----------------------
  3324. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  3325.     AX = 0104h (HLLAPI gate ID)
  3326.     BX = 0000h
  3327.     DS:SI -> parameter control block (see below)
  3328. Return: parameter control block updated
  3329. SeeAlso: AX=0105h,AX=ABCDh
  3330.  
  3331. Format of parameter control block:
  3332. Offset    Size    Description
  3333.  00h  3 BYTEs    signature = 'PCB'
  3334.  03h    BYTE    function number (see below)
  3335.  04h    WORD    segment of control string
  3336.  06h    WORD    offset of control string
  3337.  08h    WORD    length of control string, unless explicit end-of-str char set
  3338.  0Ah    BYTE    unused (IBM)
  3339.         ControlString[0] (Rabbit)
  3340.  0Bh    WORD    return code
  3341.  0Dh    WORD    maximum length of control string (IBM)
  3342.         unused (Rabbit)
  3343.  
  3344. Values for HLLAPI function number:
  3345.  00h    Query system (Attachmate implementation only)
  3346.  01h    Connect presentation space
  3347.  02h    Disconnect presentation space
  3348.  03h    Send string of keystrokes as if typed from keyboard
  3349.  04h    Wait ~60s, returns status of presentation space
  3350.  05h    Copy current presentation space into a user-defined buffer
  3351.  06h    Search presentation space for first occurrence of a specified string
  3352.  07h    Query cursor location in current presentation space
  3353.  08h    Copy part or all of current presentation space into user buffer
  3354.  09h    Set session parameters; parameters vary by vendor
  3355.  0Ah    Get info on sessions currently connected
  3356.  0Bh    Lock current presentation space
  3357.  0Ch    Unlock previously locked presentation space
  3358.  0Dh    Return copy of operator info area (OIA) of current presentation space
  3359.  0Eh    get attribute byte for given position in the current presentation space
  3360.  0Fh    copy string of characters to the current presentation space
  3361.  10h    workstation control functions
  3362.  11h    storage manager functions, intended primarily for BASIC applications
  3363.     (not implemented by Rabbit)
  3364.  12h    set delay period in half-second intervals
  3365.  14h    get info on level of workstation support used
  3366.  15h    reset session parameters to default values
  3367.  16h    get detailed info on the current session
  3368.  17h    start host notification to application on presentation sp or OIA update
  3369.  18h    check host update when host notification enabled
  3370.  19h    stop host notification
  3371.  1Eh    search field within current presentation space for string
  3372.  1Fh    get first positionof a selected field in the current presentation space
  3373.  20h    get length of specified field
  3374.  21h    copy string into a specified field
  3375.  22h    copy specified field into a user-defined buffer
  3376.  23h    create alternate presentation space (IBM only), don't use with BASIC
  3377.  24h    switch to alternate presentation space (IBM only), not with BASIC
  3378.  25h    display cursor in specified area (IBM only), don't use with BASIC
  3379.  26h    display alternate presentation space (IBM only), don't use with BASIC
  3380.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  3381.  32h    start intercepting keystrokes to allow filtering
  3382.  33h    get keystrokes after turning on interception
  3383.  34h    notify operator when keystroke rejected by filter subroutine
  3384.  35h    stop intercepting keystrokes
  3385.  5Ah    send file
  3386.  5Bh    receive file
  3387.  5Ch    run a program (not implemented by Rabbit)
  3388.  5Dh    execute DOS command (not implemented by Rabbit)
  3389.  63h    change presentation space position to PC display row/col or vice versa
  3390.  FFh    Get info on DCA implementation
  3391.  
  3392. Values for LLAPI function number:
  3393.  80h    initialize LLAPI (internal call)
  3394.  83h    set Session ID (one-character ID)
  3395.  84h    read Session ID (one-character ID)
  3396.  85h    lock 327x keyboard
  3397.  86h    unlock 327x keyboard
  3398.  87h    wait for Clear to Send
  3399.  88h    type ASCII character
  3400.  89h    type 327x key
  3401.  8Ah    read keyboard lock state
  3402.  8Fh    force screen update
  3403.  90h    view session
  3404.  91h    relinquish (suspend foreground until background becomes idle)
  3405.  92h    poke screen character
  3406.  93h    poke translated character
  3407.  94h    peek screen character
  3408.  95h    peek translated character
  3409.  96h    set cursor position
  3410.  97h    send scan code (Rabbit only)
  3411.  98h    synchronize (returns after keystroke queue empty)
  3412.  99h    type PC key (Rabbit only)
  3413.  
  3414. Session Parameters for function 09h:
  3415.  ASCII        ??? (Rabbit only)
  3416.  ATTRIB        return attributes in hex
  3417.  NOATTRIB    return attributes as blanks
  3418.  CONPHYS    make physical connection
  3419.  CONLOG        only make logical connection
  3420.  EAB        copy extended attribute bytes along with data 
  3421.  NOEAB        copy data only
  3422.  ESC=n        set escape character to "n" (default '@')
  3423.  EOT=n        set end of string character (default 00h)
  3424.  FPAUSE        full-duration pause
  3425.  FTNOWAIT    return immediately from functions 5Ah and 5Bh (Rabbit only)
  3426.  FTWAIT        wait for file transfer to complete (Rabbit only)
  3427.  IPAUSE        interruptible pause
  3428.  RABESC        ??? (Rabbit only)
  3429.  NORABESC    ??? (Rabbit only)
  3430.  SCANCODE    ??? (Rabbit only)
  3431.  STRLEN        use explicit string lengths
  3432.  STREOT        use terminated strings
  3433.  SRCHALL    search entire presentation space
  3434.  SRCHFROM    search from specified offset
  3435.  SRCHFRWD    search forward from position 1
  3436.  SRCHBKWD    search backward from last position in presentation space
  3437.  TIMEOUT=n    ??? (Rabbit only)
  3438.  TWAIT        wait specified time for keyboard ready
  3439.  LWAIT        wait until keyboard ready
  3440.  NWAIT        no wait
  3441.  TRON        enable tracing
  3442.  TROFF        disable tracing
  3443.  AUTORESET    send reset before sending keys with function 03h
  3444.  NORESET    don't send reset
  3445.  QUIET        don't display messages sent with INT 21/AH=09h
  3446.  NOQUIET    allow messages to be displayed
  3447.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  3448.  XLATE        translate extended attribute bytes
  3449.  NOXLATE    don't translate
  3450.  NEWRET        use HLLAPI v3.0 return code conventions
  3451.  OLDRET        use HLLAPI v2.0 return code conventions
  3452. ----------7F0105-----------------------------
  3453. INT 7F - HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE
  3454.     AX = 0105h
  3455. Return: CF set on error
  3456.     CF clear if successful
  3457.         CX:DX -> array of FAR pointers to entry points
  3458. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  3459.       and then performing a FAR call via the appropriate vector of the
  3460.       entry point array
  3461. SeeAlso: AX=0104h,AX=ABCDh
  3462.  
  3463. Function numbers: (do FAR call via entry_points+4*function)
  3464.  08h    HOPEN
  3465.  10h    HINT
  3466.  13h    HLDPAL
  3467.  15h    HBBW
  3468.  17h    HBBR
  3469.  18h    HBBCHN
  3470.  1Dh    HQMODE
  3471.  22h    HCLOSE
  3472.  30h    HINIT
  3473.  31h    HSYNC
  3474.  39h    HSPAL
  3475.  3Ah    HRPAL 
  3476. ----------7F02-------------------------------
  3477. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  3478.     AH = 02h
  3479.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  3480. Return: AL = status
  3481.         00h successful
  3482.         01h invalid function
  3483.         02h semaphore locked by other user
  3484.         AH = semaphore owner
  3485.         03h unable to unlock semaphore
  3486.         05h target PC did not respond
  3487. SeeAlso: AH=00h,AH=01h,AH=42h
  3488. ----------7F0200-----------------------------
  3489. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  3490.     AX = 0200h
  3491. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  3492. ----------7F03-------------------------------
  3493. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  3494.     AH = 03h
  3495. Return: AL = user number
  3496.     AH = machine number (MW386)
  3497. Note:    this function call is the recommended method for a CPU-bound process to
  3498.       prevent its priority from being lowered
  3499. SeeAlso: AH=04h,AH=05h,AH=A1h
  3500. ----------7F04-------------------------------
  3501. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  3502.     AH = 04h
  3503. Return: AL = total number of users on currrent machine (MW386)
  3504.     AL = number of slaves on system (NTNX)
  3505. SeeAlso: AH=03h
  3506. ----------7F05-------------------------------
  3507. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  3508.     AH = 05h
  3509.     AL = function
  3510.         00h lock system (disable slave services)
  3511.         01h unlock system
  3512.         02h enable spooler
  3513.         03h disable spooler
  3514.         04h enable slave timer update
  3515.         05h disable slave timer update
  3516.         06h enable form feeds
  3517.         07h disable form feeds
  3518. SeeAlso: INT 17/AH=A4h
  3519. ----------7F05-------------------------------
  3520. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  3521.     AH = 05h
  3522.     DX:DI -> buffer for user information record (see below)
  3523. Notes:    MW386 provides this function for backward compatibility only, and sets
  3524.       many of the fields to zero because they are meaningless under MW386
  3525.     this function has no effect when called by the host (user 0)
  3526. SeeAlso: AH=03h
  3527.  
  3528. Format of user information record:
  3529. Offset    Size    Description
  3530.  00h    WORD    segment of video RAM
  3531.  02h    WORD    segment of secondary copy of video RAM
  3532.  04h    WORD    offset of screen update flag (see INT 10/AH=8Bh)
  3533.         flag nonzero if update needed
  3534.  06h    WORD    video NMI enable port
  3535.         (not used by MW386, set to 0000h)
  3536.  08h    WORD    video NMI disable port
  3537.         (not used by MW386, set to 0000h)
  3538.  0Ah    BYTE    processor type
  3539.         00h 8088
  3540.         01h V20
  3541.         02h 8086
  3542.         03h V30
  3543.         06h 80386
  3544.  0Bh    WORD    multitasking flag (00h = single tasking, 01h = multitasking)
  3545.         (not used by MW386, set to 0000h)
  3546.  0Dh    WORD    offset of terminal driver
  3547.         (not used by MW386, set to 0000h)
  3548.  0Fh    BYTE    port for console I/O
  3549.         (not used by MW386, set to 0000h)
  3550.  10h    WORD    offset of processor communication busy flag
  3551.         bit 7 set when slave communicating with host
  3552.  12h    WORD    pointer to FAR NX system call
  3553.         (not used by MW386, set to 0000h)
  3554.  14h    WORD    offset of 16-byte user configuration record (see AH=38h)
  3555.  16h    WORD    offset of command/status word
  3556.  18h    WORD    offset of screen valid flag (see INT 10/AH=93h)
  3557.         nonzero if screen must be repainted
  3558.  1Ah    WORD    offset of screen repaint flag
  3559.  1Ch    WORD    pointer to NEAR NX system call
  3560.         (not used by MW386, set to 0000h)
  3561.  1Eh    WORD    offset for intercept flags
  3562.         (not used by MW386, set to 0000h)
  3563.         intercept flag = FFh if MSDOS intercepts should be disabled
  3564.  20h    WORD    offset of terminal lock flag (see INT 10/AH=92h)
  3565.         lock flag = FFh if backgrnd screen updates should be suspended
  3566.  22h 26 BYTEs    reserved
  3567. ----------7F06-------------------------------
  3568. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  3569.     AH = 06h
  3570.     AL = drive number (1=A:, 2=B:, etc)
  3571.     ES:DI -> drive info record (see below)
  3572. Return: AX = status
  3573.         0000h successful
  3574.         ES:DI buffer filled
  3575.         0001h not shared drive
  3576.  
  3577. Format of drive info record:
  3578. Offset    Size    Description
  3579.  00h    WORD    segment of drive IO-REQUEST structure (MSDOS DPB)
  3580.  02h    WORD    segment of allocation map (owner table)
  3581.         one byte per FAT entry, containing user ID owning that entry
  3582.  04h    WORD    segment of master FAT for drive (copy of FAT on disk)
  3583.  06h    WORD    pointer to configuration file
  3584.  08h    WORD    total number of clusters
  3585.  0Ah    WORD    bytes per sector
  3586.  0Ch    WORD    sectors per cluster
  3587.  0Eh    BYTE    FAT type (0Ch = 12-bit, 10h = 16-bit)
  3588. ----------7F06-------------------------------
  3589. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  3590.     AH = 06h
  3591.     DL = drive number (1=A:,2=B:,etc)
  3592.     CX = number of clusters to allocate
  3593. Return: AH = status
  3594.         00h successful
  3595.         CX = number of clusters still free
  3596.         10h invalid shared drive request
  3597.         CL = first and second shared drives
  3598.         11h invalid cluster count (must be 01h-FFh)
  3599. ----------7F07-------------------------------
  3600. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  3601.     AH = 07h
  3602. Return: ES:DI -> shared drive list (see below)
  3603. Note:    MW386 considers all fixed disks to be shared drives; only C and D will
  3604.       be returned as shared
  3605.  
  3606. Format of shared drive list:
  3607. Offset    Size    Description
  3608.  00h    BYTE    string length
  3609.  01h    BYTE    number of shared drives
  3610.  02h  N BYTEs    one byte per shared drive
  3611. ----------7F08-------------------------------
  3612. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  3613.     AH = 08h
  3614.     CL = function
  3615.         00h get original interrupt vector
  3616.         01h get Network Executive interrrupt
  3617.     AL = interrupt number
  3618.     DX:SI -> DWORD to hold interrupt vector
  3619. Return: AL = status
  3620.         00h successful
  3621.         01h interrupt vector not used by network executive
  3622.         02h invalid subfunction
  3623. Note:    the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  3624.       1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  3625. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  3626. ----------7F08--CL02-------------------------
  3627. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  3628.     AH = 08h
  3629.     CL = 02h
  3630.     DX = timeout in seconds
  3631. Return: AL = status
  3632.         00h successful
  3633.         02h invalid subfunction
  3634. ----------7F09-------------------------------
  3635. INT 7F - MultiLink Advanced - SET TASK PRIORITY
  3636.     AH = 09h
  3637.     AL = priority (0-7)
  3638. Note:    the installation check consists of ensuring that the interrupt vector
  3639.       is not pointing at segment 0000h, then checking whether the byte
  3640.       at offset 0000h in the interrupt handler's segment is E9h
  3641. ----------7F09-------------------------------
  3642. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  3643.     AH = 09h
  3644.     CL = function
  3645.         00h enable checking of RTNX.MUD file
  3646.         01h disable RTNX.MUD checking
  3647. ----------7F09--CL02-------------------------
  3648. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  3649.     AH = 09h
  3650.     CL = 02h
  3651. Note:    in dedicated mode, the host will only poll for I/O requests from the
  3652.       slave processors, and not provide workstation services
  3653. ----------7F09--CL03-------------------------
  3654. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  3655.     AH = 09h
  3656.     CL = 03h
  3657.     AL = default interrupt number (67h,7Fh,etc)
  3658. Return:    CL = actual interrupt which handles specified interrupt's calls
  3659. SeeAlso: AH=08h
  3660. ----------7F0A--CL00-------------------------
  3661. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  3662.     AH = 0Ah
  3663.     CL = 00h
  3664.     ES:DI -> buffer for system flags (see below)
  3665. Return: ES:DI buffer filled
  3666. Notes:    on a slave, only the NX_Busy flag is returned
  3667.     all three flags are at fixed positions, so this function only needs to
  3668.       be called once
  3669.     an interrupt handler should only perform DOS or device accesses when
  3670.       all three flags are 00h
  3671.  
  3672. Format of system flags:
  3673. Offset    Size    Description
  3674.  00h    DWORD    pointer to NX_Busy flag (nonzero when communicating with users)
  3675.  04h    DWORD    pointer to device driver busy flag
  3676.  08h    DWORD    pointer to InTimer flag
  3677. ----------7F0B--CL02-------------------------
  3678. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  3679.     AH = 0Bh
  3680.     CL = 02h
  3681.     AL = slave ID number
  3682.     CH = DOS to activate
  3683.         00h graphics DOS
  3684.         01h character DOS
  3685. Return: AL = status
  3686.         00h successful
  3687.         01h nothing done, proper DOS type already loaded
  3688. ----------7F10--CL00-------------------------
  3689. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  3690.     AH = 10h
  3691.     CL = 00h
  3692.     AL = channel number
  3693.     DX:DI -> channel buffer
  3694. Return: AL = status
  3695.         00h successful
  3696.         01h busy
  3697.         02h channel range error (not 00h-3Fh)
  3698.         03h invalid subfunction
  3699.         0Dh unable to open
  3700. Note:    may not be invoked from within a hardware interrupt handler
  3701. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  3702. ----------7F10--CL01-------------------------
  3703. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  3704.     AH = 10h
  3705.     CL = 01h
  3706.     AL = channel number
  3707. Return: AL = status
  3708.         00h successful
  3709.         01h busy
  3710.         02h channel range error (not 00h-3Fh)
  3711.         03h invalid subfunction
  3712.         0Ah channel not open
  3713. Note:    may not be invoked from within a hardware interrupt handler
  3714. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  3715. ----------7F10--CL02-------------------------
  3716. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  3717.     AH = 10h
  3718.     CL = 02h
  3719.     AL = channel number
  3720. Return: AL = status
  3721.         00h successful
  3722.         01h busy
  3723.         02h channel range error (not 00h-3Fh)
  3724.         03h invalid subfunction
  3725.         0Ah channel not open
  3726.         0Ch channel already locked
  3727. Note:    may not be invoked from within a hardware interrupt handler
  3728. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  3729. ----------7F10--CL03-------------------------
  3730. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  3731.     AH = 10h
  3732.     CL = 03h
  3733.     AL = channel number
  3734. Return: AL = status (see AH=10h/CL=02h)
  3735. Notes:    should only be used on channels locked with AH=10h/CL=02h, not on those
  3736.       locked by receipt of a datagram
  3737.     may not be invoked from within a hardware interrupt handler
  3738. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  3739. ----------7F10--CL04-------------------------
  3740. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  3741.     AH = 10h
  3742.     CL = 04h
  3743.     AL = channel number
  3744. Return: AL = status
  3745.         00h successful
  3746.         01h busy
  3747.         02h channel range error (not 00h-3Fh)
  3748.         03h invalid subfunction
  3749. Notes:    unlocks buffer after received datagram has been processed
  3750.     may not be invoked from within a hardware interrupt handler
  3751. SeeAlso: AH=10h/CL=00h
  3752. ----------7F10--CL05-------------------------
  3753. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  3754.     AH = 10h
  3755.     CL = 05h
  3756. Return: AL = status
  3757.         00h successful
  3758.         01h busy
  3759.         02h channel range error (not 00h-3Fh)
  3760.         03h invalid subfunction
  3761. Notes:    clears all pending datagrams and clears buffer pointers before closing
  3762.       the channels
  3763.     may not be invoked from within a hardware interrupt handler
  3764. SeeAlso: AH=10h/CL=01h
  3765. ----------7F10--CL06-------------------------
  3766. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  3767.     AH = 10h
  3768.     CL = 06h
  3769. Return: AL = status
  3770.         00h successful
  3771.         01h busy
  3772.         02h channel range error (not 00h-3Fh)
  3773.         03h invalid subfunction
  3774. Note:    may not be invoked from within a hardware interrupt handler
  3775. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  3776. ----------7F10--CL07-------------------------
  3777. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  3778.     AH = 10h
  3779.     CL = 07h
  3780. Return: AL = status
  3781.         00h successful
  3782.         01h busy
  3783.         02h channel range error (not 00h-3Fh)
  3784.         03h invalid subfunction
  3785. Notes:    unlocks all locked channels which have no pending datagrams
  3786.     may not be invoked from within a hardware interrupt handler
  3787. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  3788. ----------7F10--CL08-------------------------
  3789. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  3790.     AH = 10h
  3791.     CL = 08h
  3792.     DX = maximum channel number to lock
  3793. Return: AL = status
  3794.         00h successful
  3795.         01h busy
  3796.         02h channel range error (not 00h-3Fh)
  3797.         03h invalid subfunction
  3798. Notes:    locks channels numbered 00h through the value in DX
  3799.     may not be invoked from within a hardware interrupt handler
  3800. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  3801. ----------7F10--CL09-------------------------
  3802. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  3803.     AH = 10h
  3804.     CL = 09h
  3805.     DX = maximum channel number to unlock
  3806. Return: AL = status
  3807.         00h successful
  3808.         01h busy
  3809.         02h channel range error (not 00h-3Fh)
  3810.         03h invalid subfunction
  3811. Notes:    unlocks channels numbered 00h through the value in DX
  3812.     may not be invoked from within a hardware interrupt handler
  3813. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  3814. ----------7F11-------------------------------
  3815. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  3816.     AH = 11h
  3817.     DX:SI -> request block (see below)
  3818. Return: AL = status
  3819.         00h successful
  3820.         01h busy
  3821.         02h channel range error (not 00h-3Fh)
  3822.         03h invalid subfunction
  3823.         0Ah packet too large (or <2 bytes if NTNX)
  3824.         0Bh can't send packet to itself
  3825.         0Ch invalid number of destinations
  3826.         0Dh destination channel number out of range
  3827.         0Eh destination user is busy
  3828.         0Fh destination user has locked channel
  3829.         10h channel not open
  3830.         11h no datagram server on destination (NTNX)
  3831. Note:    if wildcard channel FFh used, actual channel number will be filled in
  3832. SeeAlso: AH=12h
  3833.  
  3834. Format of request block:
  3835. Offset    Size    Description
  3836.  00h    DWORD    pointer to packet to send
  3837.  04h    WORD    packet size in bytes (1-4096)
  3838.  06h    BYTE    number of destinations for packet (max 1Fh)
  3839.  07h 31 BYTEs    destination user IDs (FFh = broadcast to all except sender)
  3840.  26h 31 BYTEs    destination channels (FFh = first available channel)
  3841.  45h 31 BYTEs    return destination statuses
  3842. ----------7F12-------------------------------
  3843. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  3844.     AH = 12h
  3845.     AL = channel number being acknowledged
  3846.     DI:DX = 32-bit status to return to sender
  3847. Return: AL = status
  3848.         00h successful
  3849.         01h busy
  3850.         02h channel range error (not 00h-3Fh)
  3851.         03h invalid subfunction
  3852.         0Ah channel not open
  3853.         0Bh no message in channel
  3854.         0Ch destination slave busy--retry (NTNX)
  3855.         0Dh destination user not active
  3856.         0Eh destination slave not active (NTNX)
  3857.         0Fh destination disabled datagram service
  3858. Note:    also unlocks the channel, allowing the next datagram to be received
  3859. SeeAlso: AH=11h,AH=15h/CL=04h
  3860. ----------7F13--CL00-------------------------
  3861. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  3862.     AH = 13h
  3863.     CL = 00h
  3864. Note:    clears all pending datagrams and removes all channels opened in NTNX
  3865.       compatibility mode
  3866. ----------7F14--CL00-------------------------
  3867. INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR
  3868.     AH = 14h
  3869.     CL = 00h
  3870.     DX:DI -> application FAR receive service routine (see below)
  3871. Return: AL = status
  3872.         00h successful
  3873.         01h busy
  3874.         02h channel range error (not 00h-3Fh)
  3875.         03h invalid subfunction
  3876. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  3877.  
  3878. Service routine called with:
  3879.     DH = sender ID
  3880.     DL = channel with datagram
  3881.     interrupts disabled
  3882. Return: AL = response code
  3883.         00h leave buffer locked, set channel status, and repeat call later
  3884.         01h release channel buffer
  3885.         02h change buffer pointer to DX:DI
  3886.     AH,CX,DX,DI,SI may be destroyed
  3887. ----------7F14--CL01-------------------------
  3888. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  3889.     AH = 14h
  3890.     CL = 01h
  3891.     DX:DI -> application FAR acknowledge service routine (see below)
  3892. Return: AL = status
  3893.         00h successful
  3894.         01h busy
  3895.         02h channel range error (not 00h-3Fh)
  3896.         03h invalid subfunction
  3897. Note:    the service routine will be called as soon as an acknowledgment arrives
  3898. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15/CL=04h
  3899.  
  3900. Service routine called with:
  3901.     DS:SI -> acknowledge structure (see AH=15h/CL=04h)
  3902. Return: AL = response code
  3903.         00h application busy, network executive should call again later
  3904.         01h acknowledge accepted
  3905.     AH,DX,SI may be destroyed
  3906. ----------7F14--CL02-------------------------
  3907. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  3908.     AH = 14h
  3909.     CL = 02h
  3910.     AL = channel number
  3911.     DX:DI -> receive buffer
  3912. Return: AL = status
  3913.         00h successful
  3914.         01h busy
  3915.         02h channel range error (not 00h-3Fh)
  3916.         03h invalid subfunction
  3917. Note:    may be called from within a receive ISR or when a datagram is pending
  3918. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  3919. ----------7F14--CL03-------------------------
  3920. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  3921.     AH = 14h
  3922.     CL = 03h
  3923. Return: DX:DI -> current receive ISR
  3924. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  3925. ----------7F14--CL04-------------------------
  3926. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  3927.     AH = 14h
  3928.     CL = 04h
  3929. Return: DX:DI -> current acknowledge ISR
  3930. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  3931. ----------7F14--CL05-------------------------
  3932. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  3933.     AH = 14h
  3934.     CL = 05h
  3935.     DX:DI -> buffer for busy structure (see below)
  3936. Return: DX:DI buffer filled
  3937.  
  3938. Format of busy structure:
  3939. Offset    Size    Description
  3940.  00h    DWORD    pointer to busy flag byte
  3941.  04h    WORD    fixed port address (FF00h)
  3942. ----------7F15--CL00-------------------------
  3943. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  3944.     AH = 15h
  3945.     CL = 00h
  3946.     AL = channel number
  3947.     DX:DI -> status structure (see below)
  3948. Return: AL = status
  3949.         00h successful
  3950.         01h busy
  3951.         02h channel range error (not 00h-3Fh)
  3952.         03h invalid subfunction
  3953. SeeAlso: AH=15h/CL=01h
  3954.  
  3955. Format of status structure:
  3956. Offset    Size    Description
  3957.  00h    BYTE    channel status
  3958.         bit 0: channel open
  3959.             1: channel buffer contains received data
  3960.             7: channel locked
  3961.  01h    BYTE    sender ID
  3962. ----------7F15--CL01-------------------------
  3963. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  3964.     AH = 15h
  3965.     CL = 01h
  3966.     DX:DI -> full-channel structure
  3967. Return: AL = status
  3968.         00h successful
  3969.         01h busy
  3970.         0Ah no datagrams available
  3971. Note:    MW386 v1.0 returns the lowest channel with a datagram; newer versions
  3972.       and NTNX return the oldest datagram
  3973. SeeAlso: AH=15h/CL=00h
  3974.  
  3975. Format of full-channel structure:
  3976. Offset    Size    Description
  3977.  00h    BYTE    number of channel with oldest datagram
  3978.  01h    BYTE    sender ID
  3979. ----------7F15--CL02-------------------------
  3980. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  3981.     AH = 15h
  3982.     CL = 02h
  3983. Return: AH = number of channels available (40h for MW386)
  3984. Note:    the application may always assume at least 32 channels available
  3985. SeeAlso: AH=15h/CL=03h
  3986. ----------7F15--CL03-------------------------
  3987. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  3988.     AH = 15h
  3989.     CL = 03h
  3990.     DX:DI -> WORD for return value
  3991. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  3992. SeeAlso: AH=15h/CL=02h
  3993. ----------7F15--CL04-------------------------
  3994. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  3995.     AH = 15h
  3996.     CL = 04h
  3997.     DX:DI -> status structure (see below)
  3998. Return: AL = status
  3999.         00h successful
  4000.         DX:DI structure filled
  4001.         01h busy
  4002.         0Ah no acknowledgement has arrived
  4003. SeeAlso: AH=12h,AH=14h/CL=01h
  4004.  
  4005. Format of status structure:
  4006. Offset    Size    Description
  4007.  00h    BYTE    sender ID
  4008.  01h    BYTE    channel number
  4009.  02h  4 BYTEs    receiver status (see AH=12h)
  4010. ----------7F16-------------------------------
  4011. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  4012.     AH = 16h
  4013.     DX:SI -> transfer structure (see below)
  4014. Return: AL = status
  4015.         00h successful
  4016.         0Ah source or destination out of range
  4017.         0Bh transfer kernal busy--try again
  4018. Notes:    this call transfers memory contents directly between users; both source
  4019.       and destination user IDs may differ from the caller's ID
  4020.     no segment wrap is allowed
  4021.  
  4022. Format of transfer structure:
  4023. Offset    Size    Description
  4024.  00h    WORD    bytes to transfer
  4025.  02h    BYTE    source ID
  4026.         FEh = caller
  4027.  03h    DWORD    source address
  4028.  07h    BYTE    destination ID
  4029.         FFh = all slaves except caller
  4030.         FEh = caller
  4031.  08h    DWORD    destination address
  4032. ----------7F21-------------------------------
  4033. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  4034.     AH = 21h
  4035.     AL = sender's user ID
  4036.     DS:DX -> control packet (see below)
  4037. Note:    messages or commands are ignored if disabled by the destination user
  4038. SeeAlso: AH=22h
  4039.  
  4040. Format of control packet:
  4041. Offset    Size    Description
  4042.  00h    BYTE    packet type
  4043.         00h message
  4044.         01h NTNX command
  4045.         02h MW386 command
  4046.  01h    BYTE    destination user ID or 'A' for all users
  4047.  02h 62 BYTEs    ASCIZ message (packet type 00h)
  4048.         BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  4049. Note:    a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  4050. ----------7F22-------------------------------
  4051. INT 7F - Alloy NTNX - GET MESSAGE
  4052.     AH = 22h
  4053. Return: pending messages displayed on user's screen
  4054. SeeAlso: AH=21h
  4055. ----------7F24-------------------------------
  4056. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  4057.     AH = 24h
  4058.     CL = function
  4059.         00h attach
  4060.         01h release
  4061.     CH = drive (0=A:,1=B:,etc)
  4062. Return: AX = status
  4063.         00h successful
  4064.         01h invalid request
  4065.         02h already attached
  4066.         03h not attached
  4067.         04h lock table full
  4068. Note:    only drives on the current machine may be attached
  4069. ----------7F24-------------------------------
  4070. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  4071.     AH = 24h
  4072.     CL = function
  4073.         02h attach host
  4074.         03h release host
  4075. Return: AX = status
  4076.         00h successful
  4077.         01h invalid request
  4078.         02h already attached
  4079.         03h not attached
  4080.         04h lock table full
  4081. Note:    the host processor may be attached in order to perform I/O via the host
  4082. ----------7F25--CL00-------------------------
  4083. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  4084.     AH = 25h
  4085.     CL = 00h        
  4086. Return: AH = version suffix letter
  4087.     CH = major version number
  4088.     CL = minor version number
  4089. SeeAlso: AH=25h/CL=01h
  4090. ----------7F25--CL01-------------------------
  4091. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  4092.     AH = 25h
  4093.     CL = 01h
  4094. Return: CL = type
  4095.         00h RTNX
  4096.         01h ATNX
  4097.         02h NTNX
  4098.         03h BTNX
  4099.         04h MW386
  4100.         05h ANSK
  4101. SeeAlso: AH=25h/CL=00h
  4102. ----------7F26--CL00-------------------------
  4103. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  4104.     AH = 26h
  4105.     CL = 00h
  4106. Return: AX = file mode bits
  4107.         bit 0: directory protection enabled
  4108.         1: extended open enabled
  4109.         2: flush on every disk write
  4110.         3: flush on every disk write in locked interval
  4111.         4: flush on reads from simultaneously opened file
  4112. Note:    MW386 does not support file modes, and always returns AX=001Fh
  4113. SeeAlso: AH=26h,AH=26h/CL=06h
  4114. ----------7F26-------------------------------
  4115. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  4116.     AH = 26h
  4117.     CL = check type to set/reset
  4118.         01h directory protection
  4119.         02h extended open
  4120.         03h flush on every disk write
  4121.         04h flush on disk write if any lock set during write
  4122.         05h flush on all reads if file written
  4123.     AL = new state (00h off, 01h on)
  4124. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  4125. ----------7F26--CL06-------------------------
  4126. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  4127.     AH = 26h
  4128.     CL = 06h
  4129. Note:    cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  4130. SeeAlso: AH=26h/CL=00h
  4131. ----------7F30-------------------------------
  4132. INT 7F - Alloy MW386 - GET PORT INFORMATION
  4133.     AH = 30h
  4134.     CX = MW386 port number
  4135. Return: AL = FFh if port not found
  4136.        else     driver unit number
  4137.            BL = port mode
  4138.            BH = port type
  4139.            02h remote
  4140.            DH = owner's machine ID
  4141.            DL = owner's user ID
  4142. SeeAlso: INT 17/AH=8Bh
  4143. ----------7F31-------------------------------
  4144. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  4145.     AH = 31h
  4146.     ???
  4147. Return: ???
  4148. ----------7F37-------------------------------
  4149. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  4150.     AH = 37h
  4151. Return: ES:AX -> semaphore table
  4152. ----------7F37-------------------------------
  4153. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  4154.     AH = 37h
  4155.     DS:DX -> ASCIZ string to display
  4156. Note:    if the string is empty, a terminal update will be forced
  4157. ----------7F38-------------------------------
  4158. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  4159.     AH = 38h
  4160.     AL = new terminal driver number
  4161.         FFh dummy driver
  4162.         FEh current driver
  4163.         FDh load new driver
  4164.         DS:SI -> new driver
  4165. SeeAlso: AH=39h
  4166. ----------7F39-------------------------------
  4167. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  4168.     AH = 39h
  4169.     AL = new terminal driver number
  4170.     DL = user number (FFh = caller)
  4171.     DH = machine number if DL <> FFh
  4172. Return: CF set if invalid user number
  4173.     CF clear if successful
  4174. Notes:    only available to supervisors
  4175.     the new driver number will not take effect until the user is rebooted
  4176. SeeAlso: AH=38h
  4177. ----------7F3A-------------------------------
  4178. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  4179.     AH = 3Ah
  4180.     DL = user number (FFh = caller)
  4181.     DH = machine number
  4182. Return: CF clear if successful
  4183.         AH = terminal driver number
  4184.         AL = baud rate (00h = 38400, 01h = 19200, etc)
  4185.         CL = parity (00h none, 01h even, 02h odd)
  4186.         CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  4187.     CF set if invalid user number
  4188. SeeAlso: AH=3Bh
  4189. ----------7F3B-------------------------------
  4190. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  4191.     AH = 3Bh
  4192.     AL = baud rate (00h = 38400, 01h = 19200, etc)
  4193.     CL = parity (00h none, 01h even, 02h odd)
  4194.     CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  4195.     DL = user number (FFh = caller)
  4196.     DH = machine number for user
  4197. Return: CF set if invalid user number
  4198. Notes:    only available to supervisors
  4199.     the new parameters will take effect immediately if the user's terminal
  4200.       has not been started, else AH=3Dh must be called to post the changes
  4201. SeeAlso: AH=3Ah,AH=3Dh
  4202. ----------7F3C-------------------------------
  4203. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  4204.     AH = 3Ch
  4205.     AL = new state
  4206.          00h disabled, 01h enabled
  4207.     DL = user number (FFh = caller)
  4208.     DH = machine number for user
  4209. Return: CF set if invalid user number
  4210. Note:    only available to supervisors
  4211. SeeAlso: AH=3Dh
  4212. ----------7F3D-------------------------------
  4213. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  4214.     AH = 3Dh
  4215. Note:    should be called whenever a program changes the terminal type or its
  4216.       parameters
  4217. SeeAlso: AH=3Bh
  4218. ----------7F41-------------------------------
  4219. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  4220.     AH = 41h
  4221.     AL = user ID
  4222.     DS:DX -> ASCIZ filename
  4223. Return: AL = status
  4224.         00h successful
  4225.         01h invalid function
  4226.         02h already locked
  4227.         03h unable to lock
  4228.         04h lock table full
  4229. Note:    requests exclusive read/write access to file
  4230. SeeAlso: AH=00h,,AH=41h"MW386",AH=42h"NTNX"
  4231. ----------7F41-------------------------------
  4232. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  4233.     AH = 41h
  4234.     AL = user ID
  4235.     DS:DX -> ASCIZ semaphore name
  4236. Return: AL = status
  4237.         00h successful
  4238.         01h invalid function
  4239.         02h semaphore already locked
  4240.         03h unable to lock semaphore
  4241.         04h semaphore space exhausted
  4242. SeeAlso: AH=00h,AH=42h"MW386"
  4243. ----------7F42-------------------------------
  4244. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  4245.     AH = 42h
  4246.     AL = user ID
  4247.     DS:DX -> ASCIZ filename
  4248. Return: AL = status
  4249.         00h successful
  4250.         01h invalid function
  4251.         02h already locked
  4252.         03h unable to lock
  4253.         04h lock table full
  4254. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  4255. ----------7F42-------------------------------
  4256. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  4257.     AH = 42h
  4258.     AL = user ID
  4259.     DS:DX -> ASCIZ semaphore name
  4260. Return: AL = status
  4261.         00h successful
  4262.         01h invalid function
  4263.         03h unable to unlock semaphore
  4264. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  4265. ----------7F4E-------------------------------
  4266. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  4267.     AH = 4Eh
  4268.     AL = error mode flags
  4269.         bit 0: display critical disk errors
  4270.         1: display sharing errors
  4271.     DX = 4E58h ("NX")
  4272. Return: AL = status
  4273.         00h successful
  4274. SeeAlso: AH=4Fh
  4275. ----------7F4F-------------------------------
  4276. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  4277.     AH = 4Fh
  4278.     AL = FCB mode
  4279.         02h read/write compatibility
  4280.         42h read/write shared
  4281.     DX = 4E58h ("NX")
  4282. Return: AL = status
  4283.         00h successful
  4284. ----------7F81-------------------------------
  4285. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  4286.     AH = 81h
  4287.     AL = user ID
  4288.     DS:DX -> ASCIZ device name
  4289. SeeAlso: AH=82h
  4290. ----------7F82-------------------------------
  4291. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  4292.     AH = 82h
  4293.     AL = user ID
  4294.     DS:DX -> ASCIZ device name
  4295. SeeAlso: AH=81h
  4296. ----------7FA0-------------------------------
  4297. INT 7F - Alloy MW386 - GET USER NAME
  4298.     AH = A0h
  4299.     DL = user number (FFh = caller)
  4300.     DH = machine number for user
  4301.     ES:DI -> 17-byte buffer for ASCIZ user name
  4302. Return: CF set if invalid user number
  4303. SeeAlso: AH=03h,AH=A1h
  4304. ----------7FA1-------------------------------
  4305. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  4306.     AH = A1h
  4307. Return: AL = process number
  4308.     DL = user number
  4309.     DH = machine number
  4310. SeeAlso: AH=03h,AH=A0h,AH=A2h
  4311. ----------7FA2-------------------------------
  4312. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  4313.     AH = A2h
  4314.     DL = user number (FFh = caller)
  4315.     DH = machine number for user
  4316. Return: CF clear if successful
  4317.         AL = privilege level
  4318.         00h supervisor
  4319.         01h high
  4320.         02h medium
  4321.         03h low
  4322.     CF set if invalid user number
  4323. SeeAlso: AH=A1h,AH=A3h
  4324. ----------7FA3-------------------------------
  4325. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  4326.     AH = A3h
  4327.     DL = user number
  4328.     DH = machine number for user
  4329. Return: CF clear if successful
  4330.         AL = login state
  4331.         00h never logged in
  4332.         01h currently logged out
  4333.         03h currently logged in
  4334.     CF set if invalid user number or user not active
  4335. SeeAlso: AH=A2h
  4336. ----------7FA4-------------------------------
  4337. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  4338.     AH = A4h
  4339.     DS:DX -> ASCIZ password (null-padded to 16 bytes)
  4340. Return: AL = 00h if accepted
  4341.        else     invalid password
  4342. ----------7FA5-------------------------------
  4343. INT 7F - Alloy MW386 - GET/SET USER STATUS
  4344.     AH = A5h
  4345.     AL = function
  4346.         00h get status
  4347.         Return: BX = user flags
  4348.                 bit 5: allow messages
  4349.             CL = scan code for task manager hotkey
  4350.             CH = scan code for spooler hotkey
  4351.             DL = scan code for task swapper hotkey
  4352.             DH = modifier key status
  4353.         01h set status
  4354.         BX = user flags (see above)
  4355.         CL = scan code for task manager hotkey
  4356.         CH = scan code for spooler hotkey
  4357.         DL = scan code for task swapper hotkey
  4358.         DH = modifier key status
  4359.     DI = machine number and user number
  4360. Return: CF set if invalid user number
  4361. Note:    must have supervisor privilege to set another user's status
  4362. ----------7FABCDBX0000-----------------------
  4363. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  4364.     AX = ABCDh
  4365.     BX = 0000h
  4366. Return: AX = total number of functions available
  4367.     ES:BX -> entry point array
  4368. SeeAlso: AX=0104h,AX=0105h
  4369.  
  4370. Function numbers:
  4371.  00h    check initialization and reset
  4372.  14h    set user-defined subroutine
  4373. Notes:    each driver function takes two stack parameters using Pascal calling
  4374.       conventions: address of parameter block and address of results buffer
  4375.     all pointers are FAR pointers
  4376.     on return, AX contains the status of the call:
  4377.         AX = 0000h successful
  4378.          0001h invalid input
  4379.          0002h interface error
  4380.          0003h unable to perform function
  4381.  
  4382. Format of parameter block for function 00h:
  4383. Offset    Size    Description
  4384.  00h    WORD    0000h (function number)
  4385. Note:    this function should be called before any other device driver functions
  4386.  
  4387. Format of results buffer for function 00h:
  4388. Offset    Size    Description
  4389.  00h    WORD    touch screen status
  4390.         0000h unavailable
  4391.         0001h uncalibrated
  4392.         FFFFh available
  4393.  02h    WORD    aux mouse status (0000h not present, FFFFh present)
  4394. Notes:    the following driver parameters will have been reset to zero:
  4395.       touchdown counter, liftoff counter, position at last touch, position
  4396.       at last lift, int call mask, select on count, select off count,
  4397.       pos select on count, pos select off count.
  4398.     the following driver parameters will have been reset as listed:
  4399.       mouse emulation mode: left on
  4400.       thresholds: 46 on screen, 96 push harder, 80 push release
  4401.       x, y hysteresis: 400
  4402.       data repeat rate: 40/sec
  4403.       select mechanism: push-harder - first-touch
  4404.       coordinate origin: upper left corner
  4405.       filter frequency: medium
  4406.       data block mask: all enabled
  4407.       click lock: on
  4408. ----------7FB0-------------------------------
  4409. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  4410.     AH = B0h
  4411.     AL = user number
  4412.     DS = code segment
  4413. Note:    MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  4414.       or INT 7F locking functions
  4415. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  4416. ----------7FB1-------------------------------
  4417. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  4418.     AH = B1h
  4419.     AL = (bits 7-5) 000
  4420.          (bits 4-0) user ID
  4421. Note:    MW386 ignores AL; it releases all semaphores locked using INT 67 or
  4422.       INT 7F locking functions
  4423. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  4424. ----------7FB2-------------------------------
  4425. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  4426.     AH = B2h
  4427.     AL = (bits 7-5) 001
  4428.          (bits 4-0) user ID
  4429. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  4430. ----------7FB3-------------------------------
  4431. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  4432.     AH = B3h
  4433.     AL = (bits 7-5) 010
  4434.          (bits 4-0) user ID
  4435. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  4436. ----------7FB4-------------------------------
  4437. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  4438.     AH = B4h
  4439.     AL = user ID
  4440. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  4441. ----------7FC3-------------------------------
  4442. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  4443.     AH = C3h
  4444.     AL = byte to write
  4445. Return: CF clear if successful
  4446.     CF set on error
  4447. SeeAlso: AH=C6h
  4448. ----------7FC5-------------------------------
  4449. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  4450.     AH = C5h
  4451.     AL = new console mode
  4452.         00h keyboard indirect
  4453.         01h keyboard direct
  4454.         02h data handshake enforced
  4455.         03h no data handshake
  4456. Return: CF clear if successful
  4457.         AL = prior console mode
  4458.     CF set on error (caller is not remote user)
  4459. Note:    modes 2 and 3 may be used for input through the console port; no video
  4460.       output should be performed in these modes
  4461. ----------7FC6-------------------------------
  4462. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  4463.     AH = C6h
  4464.     AL = byte to write
  4465. Return: CF clear if successful
  4466.     CF set on error (caller is not remote user)
  4467. Note:    any terminal driver data translation will be bypassed
  4468. SeeAlso: AH=C3h,AH=C7h
  4469. ----------7FC7-------------------------------
  4470. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  4471.     AH = C7h
  4472. Return: CF clear if successful
  4473.         AL = byte read
  4474.     CF set on error (no data available or caller is not remote user)
  4475. Note:    used to read data after placing console in mode 2 or 3 (see AH=C5h)
  4476. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  4477. ----------7FC8-------------------------------
  4478. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  4479.     AH = C8h
  4480.     AL = maximum bytes to read
  4481.     ES:DI -> buffer for console data
  4482. Return: CF clear if successful
  4483.         CX = number of bytes read
  4484.     CF set on error (caller is not remote user)
  4485. SeeAlso: AH=C7h
  4486. ----------7FCF-------------------------------
  4487. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  4488.     AH = CFh
  4489.     DS:DX -> ASCIZ string containing user number to be reset
  4490. SeeAlso: AH=D6h
  4491. ----------7FD6-------------------------------
  4492. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  4493.     AH = D6h
  4494.     DS:DX -> reset packet (see below)
  4495. Return: never if succesful
  4496. Note:    all users will be shut down immediately if successful
  4497. SeeAlso: AH=CFh
  4498.  
  4499. Format of reset packet:
  4500. Offset    Size    Description
  4501.  00h    DWORD    reset code (60606060h)
  4502.  04h 16 BYTEs    ASCIZ supervisor password padded with nulls
  4503. ----------7FD7-------------------------------
  4504. INT 7F - Alloy MW386 - POST EVENT
  4505.     AH = D7h
  4506.     AL = user number (if local event)
  4507.     DX = event number
  4508. ----------7FD8-------------------------------
  4509. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  4510.     AH = D8h
  4511. Return: CF set on error
  4512. Note:    forces all disk buffers to be written out immediately
  4513. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  4514. ----------7FDB-------------------------------
  4515. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  4516.     AH = DBh
  4517. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  4518. ----------7FE0-------------------------------
  4519. INT 7F - Alloy MW386 - CREATE DOS TASK
  4520.     AH = E0h
  4521.     AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  4522.     DS:DX -> ASCIZ task name (max 16 bytes)
  4523. Return: CF clear if successful
  4524.         AL = task create ID
  4525.     CF set on error
  4526. Note:    only foreground DOS tasks can use this function
  4527. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  4528. ----------7FE1-------------------------------
  4529. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  4530.     AH = E1h
  4531.     AL = create ID (from AH=E0h)
  4532. Return: AL = DOS process number
  4533.     CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  4534. Note:    this function should not be called immediately after creating a new
  4535.       DOS task, since the new task is being initialized by a concurrent
  4536.       process
  4537. SeeAlso: AH=E0h,AH=E2h
  4538. ----------7FE2-------------------------------
  4539. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  4540.     AH = E2h
  4541.     AL = DOS process number (from AH=E1h)
  4542. Return: CF set on error (invalid process number or caller not foreground task)
  4543. Notes:    specified task becomes the foreground task and current task is placed
  4544.       in the background
  4545.     may only be called by a foreground task
  4546. SeeAlso: AH=E0h,AH=E1h
  4547. ----------7FE3-------------------------------
  4548. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  4549.     AH = E3h
  4550. ---v1.x---
  4551.     AL = user number
  4552. ---v2+---
  4553.     BH = user number
  4554.     BL = task number
  4555. ---
  4556.     DS:DX -> ASCIZ task name
  4557. Return: CF set on error (invalid process number)
  4558. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  4559. ----------7FE4-------------------------------
  4560. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  4561.     AH = E4h
  4562. ---v1.x---
  4563.     AL = user number
  4564. ---v2+---
  4565.     BH = user number
  4566.     BL = task number
  4567. ---
  4568.     ES:DI -> buffer for task name
  4569. Return: CF clear if successful
  4570.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  4571.         DX = task flags
  4572.         bit 7: MSDOS process
  4573.         ES:DI buffer filled
  4574.     CF set on error (invalid process number)
  4575. SeeAlso: AH=E3h,AH=E5h
  4576. ----------7FE5-------------------------------
  4577. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  4578.     AH = E5h
  4579.     DS:DX -> ASCIZ task name
  4580.     BH = user number
  4581. Return: CF clear if successful
  4582.         AL = DOS process number
  4583.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  4584.     CF set on error (no match for name)
  4585. SeeAlso: AH=E3h,AH=E4h
  4586. ----------7FE6-------------------------------
  4587. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  4588.     AH = E6h
  4589. Return: AX = number of processes available to current user
  4590. SeeAlso: AH=E0h
  4591. ----------7FE7-------------------------------
  4592. INT 7F - Alloy MW386 - REMOVE DOS TASK
  4593.     AH = E7h
  4594.     AL = DOS process number
  4595. Return: CF set on error (invalid process number or first process)
  4596. Note:    can only be called by a foreground task
  4597. SeeAlso: AH=E0h
  4598. ----------7FE8-------------------------------
  4599. INT 7F - Alloy MW386 - DOS TASK DELAY
  4600.     AH = E8h
  4601.     CX = delay time in milliseconds
  4602. Note:    a delay of 0 may be used to surrender the current time slice
  4603. SeeAlso: INT 15/AX=1000h,INT 21/AH=EEh"DoubleDOS",INT 2F/AX=1680h
  4604. ----------7FF0-------------------------------
  4605. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  4606.     AH = F0h
  4607.     AL = group number
  4608.     DS:DX -> ASCIZ directory name
  4609. Return: CF clear if successful
  4610.         AX = status
  4611.         0002h directory not found
  4612.         0003h directory not found
  4613.         0005h directory in use, cannot be restricted
  4614.         02xxh restricted to group xxh
  4615.     CF set on error
  4616. Note:    the restriction on the directory may be removed by calling this
  4617.       function with group 0, then using AH=F1h to assign the directory to
  4618.       group 0
  4619. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  4620. ----------7FF1-------------------------------
  4621. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  4622.     AH = F1h
  4623.     AL = group number
  4624.     DS:DX -> ASCIZ directory name
  4625. Notes:    performs permanent assignment to a group; no immediate action is taken
  4626.       unless the directory has been restricted with AH=F0h
  4627.     may be used to restrict a nonexistent directory
  4628. SeeAlso: AH=F0h
  4629. ----------7FF2-------------------------------
  4630. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  4631.     AH = F2h
  4632.     CX = entry number
  4633.     ES:DI -> 64-byte buffer
  4634. Return: CF clear if successful
  4635.         buffer filled with 63-byte directory info and 1-byte group number
  4636.     CF set on error (invalid entry)
  4637. SeeAlso: AH=F0h,AH=F3h
  4638. ----------7FF3-------------------------------
  4639. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  4640.     AH = F3h
  4641.     AL = group number
  4642.     CX = entry number
  4643.     ES:DI -> 64-byte buffer
  4644. Return: CF clear if successful
  4645.         CX = next entry number
  4646.         buffer filled with 63-byte directory info and 1-byte group number
  4647.     CF set on error (no more matching entries)
  4648. Note:    like AH=F2h, but only returns directories belonging to the specified
  4649.       group
  4650. SeeAlso: AH=F2h
  4651. ----------7FF8-------------------------------
  4652. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  4653.     AH = F8h
  4654.     AL = group number
  4655.     DL = user number
  4656.     DH = machine number (currently 00h)
  4657. Return: CF clear if successful
  4658.     CF set on error (user already in maximum number of groups)
  4659. Note:    each user is allowed eight group assignments
  4660. SeeAlso: AH=F9h,AH=FAh
  4661. ----------7FF9-------------------------------
  4662. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  4663.     AH = F9h
  4664.     AL = group number
  4665.     DL = user number
  4666.     DH = machine number (currently 00h)
  4667. Return: CF set if failed
  4668. SeeAlso: AH=F8h,AH=FAh
  4669. ----------7FFA-------------------------------
  4670. INT 7F - Alloy MW386 - GET USER GROUP LIST
  4671.     AH = FAh
  4672.     DL = user number
  4673.     DH = machine number (currently 00h)
  4674.     ES:DI -> 16-byte buffer for group list
  4675. Return: CX = number of groups
  4676.     ES:DI buffer filled with group numbers
  4677. SeeAlso: AH=F8h,AH=F9h
  4678. ----------7FFB-------------------------------
  4679. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  4680.     AH = FBh
  4681.     CL = group number
  4682.     ES:DI -> ASCIZ group name (max 17 bytes)
  4683. SeeAlso: AH=FCh
  4684. ----------7FFC-------------------------------
  4685. INT 7F - Alloy MW386 - GET GROUP NAME
  4686.     AH = FCh
  4687.     CL = group number
  4688.     ES:DI -> 17-byte buffer for ASCIZ name
  4689. Return: ES:DI buffer filled
  4690. Note:    if the group has not been named, "(unnamed)" is returned
  4691. SeeAlso: AH=FBh
  4692. ----------80---------------------------------
  4693. INT 80 - Q-PRO4 - ???
  4694. ----------80---------------------------------
  4695. INT 80 - reserved for BASIC
  4696. Note:    this vector and INT 81 through INT ED are modified but not restored by
  4697.       Direct Access v4.0, and may be left dangling by other programs
  4698.       written with the same version of compiled BASIC
  4699. SeeAlso: INT 81"BASIC"
  4700. ----------80----BX0000-----------------------
  4701. INT 80 - SoundBlaster SBFM driver - GET VERSION
  4702.     BX = 0000h
  4703. Return: ???
  4704. Note:    SBFM installs at a free interrupt in the range 80h through BFh
  4705. SeeAlso: BX=0008h,INT 2F/AX=FBFBh
  4706. ----------80----BX0001-----------------------
  4707. INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
  4708.     BX = 0001h
  4709.     DX:AX -> music status byte
  4710. SeeAlso: BX=0000h,BX=0002h,BX=0003h
  4711. ----------80----BX0002-----------------------
  4712. INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
  4713.     BX = 0002h
  4714.     CX = number of instruments
  4715.     DX:AX -> instrument table
  4716. SeeAlso: BX=0000h,BX=0001h,BX=0005h
  4717. ----------80----BX0003-----------------------
  4718. INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
  4719.     BX = 0003h
  4720.     AX = clock rate divisor (1193180 / desired frequency in Hertz)
  4721.         FFFFh to restore to 18.2 Hz
  4722. SeeAlso: BX=0000h,BX=0001h,BX=0004h
  4723. ----------80----BX0004-----------------------
  4724. INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
  4725.     BX = 0004h
  4726.     AX = driver clock rate divisor (1193180 / frequency in Hertz)
  4727. Note:    default frequency is 96 Hz
  4728. SeeAlso: BX=0000h,BX=0003h
  4729. ----------80----BX0005-----------------------
  4730. INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
  4731.     BX = 0005h
  4732.     AX = semi-tone offset
  4733. SeeAlso: BX=0000h,BX=0002h,BX=0006h
  4734. ----------80----BX0006-----------------------
  4735. INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
  4736.     BX = 0006h
  4737.     DX:AX -> music block
  4738. Return: AX = status
  4739.         0000h successful
  4740.         0001h music already active
  4741. SeeAlso: BX=0000h,BX=0007h,BX=000Ah
  4742. ----------80----BX0007-----------------------
  4743. INT 80 - SoundBlaster SBFM driver - STOP MUSIC
  4744.     BX = 0007h
  4745. Return: AX = status
  4746.         0000h successful
  4747.         0001h music not active
  4748. SeeAlso: BX=0000h,BX=0006h,BX=0009h
  4749. ----------80----BX0008-----------------------
  4750. INT 80 - SoundBlaster SBFM driver - RESET DRIVER
  4751.     BX = 0008h
  4752. Return: AX = status
  4753.         0000h successful
  4754.         0001h music is active
  4755. SeeAlso: BX=0000h
  4756. ----------80----BX0009-----------------------
  4757. INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
  4758.     BX = 0009h
  4759. Return: AX = status
  4760.         0000h successful
  4761.         0001h no music active
  4762. SeeAlso: BX=0000h,BX=0007h,BX=000Ah
  4763. ----------80----BX000A-----------------------
  4764. INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
  4765.     BX = 000Ah
  4766. Return: AX = status
  4767.         0000h successful
  4768.         0001h no music paused
  4769. SeeAlso: BX=0000h,BX=0006h,BX=0009h
  4770. ----------80----BX000B-----------------------
  4771. INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
  4772.     BX = 000Bh
  4773.     DX:AX -> trap routine
  4774. SeeAlso: BX=0000h
  4775. ----------8001-------------------------------
  4776. INT 80 - QPC Software PKTINT.COM - INITIALIZE
  4777.     AH = 01h
  4778. Return: AX = 0000h
  4779.     CX = FFFFh
  4780.     DX = FFFFh
  4781. Notes:    this interrupt is the WinQVTNet protected mode interface to Windows 3.0
  4782.     all buffer pointers are reset back to 0
  4783. ----------8002-------------------------------
  4784. INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES
  4785.     AH = 02h
  4786.     BX = extra bytes to allocate per packet
  4787. Return: AX = segment address of 10K buffer (for receives???)
  4788.     BX = segment address of 2K buffer (for sends???)
  4789. SeeAlso: AH=05h
  4790. ----------8003-------------------------------
  4791. INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT
  4792.     AH = 03h
  4793. Return: CX:DX -> receive call address
  4794. Note:    the returned address can be used in the packet driver calls since it
  4795.       will be a valid address in all DOS boxes
  4796. SeeAlso: AH=06h
  4797. ----------8004-------------------------------
  4798. INT 80 - QPC Software PKTINT.COM - ENABLE???
  4799.     AH = 04h
  4800.     BX = ???
  4801. Return: ???
  4802. ----------8005-------------------------------
  4803. INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS
  4804.     AH = 05h
  4805. Return: AX = amount of buffer currently in use
  4806.     BX = current offset in buffer
  4807.     CX = number of times receive has been called
  4808. SeeAlso: AH=02h
  4809. ----------8006-------------------------------
  4810. INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET
  4811.     AH = 06h
  4812. Return: BX = next packet offset
  4813.     CX = number of bytes still buffered
  4814.     DX = size of packet released back into buffer pool
  4815. SeeAlso: AH=03h
  4816. ----------81---------------------------------
  4817. INT 81 - reserved for BASIC
  4818. Note:    this vector is modified but not restored by Direct Access v4.0, and
  4819.       may be left dangling by other programs written with the same version
  4820.       of compiled BASIC
  4821. SeeAlso: INT 80"BASIC",INT 82"BASIC"
  4822. ----------81---------------------------------
  4823. INT 81 - IBM TOKEN RING ADAPTER - ???
  4824. ----------82---------------------------------
  4825. INT 82 - reserved for BASIC
  4826. SeeAlso: INT 81"BASIC",INT 83"BASIC"
  4827. ----------82---------------------------------
  4828. INT 82 - IBM TOKEN RING ADAPTER - ???
  4829.     AH = function
  4830.         00h display message???
  4831.         DS:BX -> string
  4832.     ???
  4833. Return: ???
  4834. ----------83---------------------------------
  4835. INT 83 - reserved for BASIC
  4836. SeeAlso: INT 82"BASIC",INT 84"BASIC"
  4837. ----------84---------------------------------
  4838. INT 84 - reserved for BASIC
  4839. SeeAlso: INT 83"BASIC",INT 85"BASIC"
  4840. ----------85---------------------------------
  4841. INT 85 - reserved for BASIC
  4842. Note:    INT 80 through INT ED are modified but not restored by Direct Access
  4843.       v4.0, and may be left dangling by other programs written with the
  4844.       same version of compiled BASIC
  4845. SeeAlso: INT 84"BASIC",INT 86"BASIC"
  4846. ----------86---------------------------------
  4847. INT 86 - NetBIOS - ORIGINAL INT 18
  4848. Note:    some implementations of NetBIOS reportedly relocate INT 18 here
  4849. SeeAlso: INT 18
  4850. ----------86---------------------------------
  4851. INT 86 - IBM ROM BASIC - used while in interpreter
  4852. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4853.     BASIC.COM/BASICA.COM do not restore vector on termination
  4854. SeeAlso: INT 85"BASIC",INT 87"BASIC"
  4855. ----------86---------------------------------
  4856. INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS
  4857. SeeAlso: INT 21/AH=4Ch,INT 87"APL"
  4858. ----------87---------------------------------
  4859. INT 87 - IBM ROM BASIC - used while in interpreter
  4860. Notes:    called by ROM BASIC
  4861.     BASIC.COM/BASICA.COM do not restore vector on termination
  4862. SeeAlso: INT 86"BASIC",INT 88"BASIC"
  4863. ----------87---------------------------------
  4864. INT 87 - APL*PLUS/PC - ???
  4865. SeeAlso: INT 86"APL",INT 88/AL=00h
  4866. ----------88---------------------------------
  4867. INT 88 - IBM ROM BASIC - used while in interpreter
  4868. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4869.     BASIC.COM/BASICA.COM do not restore vector on termination
  4870. SeeAlso: INT 87"BASIC",INT 89"BASIC"
  4871. ----------88--00-----------------------------
  4872. INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE
  4873.     AL = 00h
  4874.     BX = STPTR of the variable to be assigned
  4875.     ES:SI -> model of type, rank, and shape (see below)
  4876. Return: ES:DI -> first data byte of object
  4877.     DX:CX = number of elements in the object
  4878. SeeAlso: INT C8"APL"
  4879.  
  4880. Format of shape model:
  4881. Offset    Size    Description
  4882.  00h    BYTE    type
  4883.         01h character (2-byte dimension sizes)
  4884.         02h integer (2-byte dimension sizes)
  4885.         08h floating point (2-byte dimension sizes)
  4886.         11h character (4-byte dimension sizes)
  4887.         12h integer (4-byte dimension sizes)
  4888.         18h floating point (4-byte dimension sizes)
  4889.  01h    BYTE    rank
  4890.  02h    WORD/DWORD first dimension of shape
  4891.  N    WORD/DWORD second dimension of shape
  4892.     ...
  4893. ----------88--01-----------------------------
  4894. INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE
  4895.     AL = 01h
  4896.     AH = rank
  4897.     BX = STPTR of the variable to be assigned
  4898.     CX = first dimension (if any)
  4899.     DX = second dimension (if any)
  4900. Return: ES:DI -> object
  4901.     CX = number of elements in the object
  4902. Note:    each dimension must be 32767 or smaller
  4903. SeeAlso: AL=02h,AL=08h,INT C8"APL"
  4904. ----------88--02-----------------------------
  4905. INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE
  4906.     AL = 02h
  4907.     AH = rank
  4908.     BX = STPTR of the variable to be assigned
  4909.     CX = first dimension (if any)
  4910.     DX = second dimension (if any)
  4911. Return: ES:DI -> object
  4912.     CX = number of elements in the object
  4913. Note:    each dimension must be 32767 or smaller
  4914. SeeAlso: AL=01h,AL=08h,INT C8"APL"
  4915. ----------88--08-----------------------------
  4916. INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE
  4917.     AL = 08h
  4918.     AH = rank
  4919.     BX = STPTR of the variable to be assigned
  4920.     CX = first dimension (if any)
  4921.     DX = second dimension (if any)
  4922. Return: ES:DI -> object
  4923.     CX = number of elements in the object
  4924. Note:    each dimension must be 32767 or smaller
  4925. SeeAlso: AL=01h,AL=02h,INT C8"APL"
  4926. ----------88--F5-----------------------------
  4927. INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
  4928.     AL = F5h
  4929.     BX = STPTR of object
  4930. SeeAlso: INT C8"APL"
  4931. ----------88--F6-----------------------------
  4932. INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
  4933.     AL = F6h
  4934.     BX = STPTR of object
  4935. SeeAlso: AL=F7h,AL=F8h,INT C8"APL"
  4936. ----------88--F7-----------------------------
  4937. INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
  4938.     AL = F7h
  4939.     BX = STPTR of object
  4940. SeeAlso: AL=F6h,AL=F8h,INT C8"APL"
  4941. ----------88--F8-----------------------------
  4942. INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
  4943.     AL = F8h
  4944.     BX = STPTR of object
  4945. Return:     BX = 0000h eligible
  4946.           0001h not eligible
  4947. SeeAlso: AL=F6h,AL=F7h,INT C8"APL"
  4948. ----------88--F9-----------------------------
  4949. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  4950.     AL = F9h
  4951.     ES:SI -> name
  4952.     CX = length of name
  4953. Return: CF set if name ill-formed or already in use
  4954.         BX = STPTR if already in symbol table
  4955.     CF clear if name is available for use
  4956.         BX = 0000h
  4957. Note:    does not force the name into the workspace
  4958. SeeAlso: AL=FEh,AL=FFh,INT C8"APL"
  4959. ----------88--FC-----------------------------
  4960. INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION
  4961.     AL = FCh
  4962.     BX = amount of memory needed (paragraphs)
  4963. Return: CF clear if memory available
  4964.     CF set if a workspace compaction is required
  4965. SeeAlso: AL=FDh,INT C8"APL"
  4966. ----------88--FD-----------------------------
  4967. INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY
  4968.     AL = FDh
  4969. Return: BX = number of paragraphs available in workspace
  4970. SeeAlso: AL=FCh,INT C8"APL"
  4971. ----------88--FE-----------------------------
  4972. INT 88 - APL*PLUS/PC - CREATE NAME
  4973.     AL = FEh
  4974.     ES:SI -> name
  4975.     CX = length of name
  4976. Return: BX = STPTR of name
  4977.     DX = interpreter's data segment
  4978. SeeAlso: AL=F9h,AL=FFh,INT C8"APL"
  4979. ----------88--FF-----------------------------
  4980. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  4981.     AL = FFh
  4982.     ES:SI -> name
  4983.     CX = length of name
  4984. Return: CF set if name ill-formed or already in use
  4985.         BX = STPTR if already in symbol table
  4986.     CF clear if name is available for use
  4987.         BX = 0000h
  4988. Note:    forces the name into the workspace and makes it immune from outswapping
  4989. SeeAlso: AL=F9h,AL=FEh,INT C8"APL"
  4990. ----------89---------------------------------
  4991. INT 89 - IBM ROM BASIC - used while in interpreter
  4992. Notes:    called by ROM BASIC
  4993.     BASIC.COM/BASICA.COM do not restore vector on termination
  4994. SeeAlso: INT 88"BASIC",INT 8A"BASIC"
  4995. ----------8A---------------------------------
  4996. INT 8A - IBM ROM BASIC - used while in interpreter
  4997. Notes:    called by ROM BASIC
  4998.     BASIC.COM/BASICA.COM do not restore vector on termination
  4999. SeeAlso: INT 89"BASIC",INT 8B"BASIC"
  5000. ----------8A---------------------------------
  5001. INT 8A - APL*PLUS/PC - PRINT SCREEN
  5002. Note:    same as INT 05
  5003. SeeAlso: INT 05,INT 8C"APL",INT CA"APL"
  5004. ----------8B---------------------------------
  5005. INT 8B - IBM ROM BASIC - used while in interpreter
  5006. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5007.     BASIC.COM/BASICA.COM do not restore vector on termination
  5008. SeeAlso: INT 8A"BASIC",INT 8C"BASIC"
  5009. ----------8B---------------------------------
  5010. INT 8B - APL*PLUS/PC - BEEP
  5011. Note:    same as printing a ^G via INT 21/AH=02h
  5012. SeeAlso: INT 21/AH=02h,INT CB"APL"
  5013. ----------8C---------------------------------
  5014. INT 8C - IBM ROM BASIC - used while in interpreter
  5015. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5016.     BASIC.COM/BASICA.COM do not restore vector on termination
  5017. ----------8C---------------------------------
  5018. INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY
  5019.     AX = flag
  5020.         0000h do not save display attributes
  5021.         0001h save attributes
  5022. SeeAlso: INT CC"APL"
  5023. ----------8D---------------------------------
  5024. INT 8D - IBM ROM BASIC - used while in interpreter
  5025. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5026.     BASIC.COM/BASICA.COM do not restore vector on termination
  5027. ----------8E---------------------------------
  5028. INT 8E - IBM ROM BASIC - used while in interpreter
  5029. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5030.     BASIC.COM/BASICA.COM do not restore vector on termination
  5031. ----------8F---------------------------------
  5032. INT 8F - IBM ROM BASIC - used while in interpreter
  5033. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5034.     BASIC.COM/BASICA.COM do not restore vector on termination
  5035. ----------90---------------------------------
  5036. INT 90 - IBM ROM BASIC - used while in interpreter
  5037. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5038.     BASIC.COM/BASICA.COM do not restore vector on termination
  5039. ----------90---------------------------------
  5040. INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER
  5041. ----------91---------------------------------
  5042. INT 91 - IBM ROM BASIC - used while in interpreter
  5043. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5044.     BASIC.COM/BASICA.COM do not restore vector on termination
  5045. ----------91---------------------------------
  5046. INT 91 - IBM TOKEN RING ADAPTER - ???
  5047. ----------92---------------------------------
  5048. INT 92 - IBM ROM BASIC - used while in interpreter
  5049. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5050.     BASIC.COM/BASICA.COM do not restore vector on termination
  5051. ----------92---------------------------------
  5052. INT 92 - Sangoma X.25 INTERFACE PROGRAM
  5053.     BX:DX -> control block
  5054. SeeAlso: INT 68"Sangoma"
  5055. ----------92E1-------------------------------
  5056. INT 92 - Da Vinci eMail Dispatcher INTERFACE
  5057.     AH = E1h
  5058.     AL = function
  5059.     BX = stack count (number of words to push)
  5060.     CX:DX -> stack data (in word-reversed order ready to push)
  5061. Return: AX = status
  5062.         0001h success
  5063.         FF97h "ERS_NOT_AVAILABLE"
  5064.         FF99h "ERS_TOO_MANY_NAMES"
  5065.         FF9Ah "ERS_BAD_NAME_PASSWORD"
  5066.         FFE3h "ERS_NAME_NOT_FOUND"
  5067.         FFF8h "ERS_USE_STRING" (call NetGetError to get error string)
  5068.         FFFFh "ERS_NO_SUCH_FILE"
  5069. Note:    preserves BP, DS, SI, DI; other registers may be destroyed
  5070. ----------92E100BX000A-----------------------
  5071. INT 92 - Da Vinci eMail Dispatcher - "NetInitStart"
  5072.     AX = E100h
  5073.     BX = 000Ah
  5074.     CX:DX -> parameter block (see below)
  5075. Return: AX = 0001h success
  5076. Note:    this function is used to initialize the dispatcher
  5077. SeeAlso: AX=E101h,AX=E103h
  5078.  
  5079. Format of parameter block:
  5080. Offset    Size    Description
  5081.  00h    WORD    segment of ???
  5082.  02h    WORD    offset of ???
  5083.  04h    WORD    high part of long ???
  5084.  06h    WORD    low part of long ???
  5085.  08h    WORD    high part of long ???
  5086.  0Ah    WORD    low part of long ???
  5087.  0Ch    WORD    high part of long ???
  5088.  0Eh    WORD    low part of long ???
  5089.  10h    WORD    high part of long ???
  5090.  12h    WORD    low part of long ???
  5091. ----------92E101BX0000-----------------------
  5092. INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck"
  5093.     AX = E101h
  5094.     BX = 0000h
  5095.     CX:DX ignored
  5096. Return: AX = 0001h success
  5097. SeeAlso: AX=E100h
  5098. ----------92E102BX0000-----------------------
  5099. INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver"
  5100.     AX = E102h
  5101.     BX = 0000h
  5102.     CX:DX ignored
  5103. Return: AX = 0001h success
  5104. Note:    this function is used to determine if the dispatcher is loaded
  5105. SeeAlso: AX=E10Bh,AX=E180h
  5106. ----------92E103BX0000-----------------------
  5107. INT 92 - Da Vinci eMail Dispatcher - "NetTerminate"
  5108.     AX = E103h
  5109.     BX = 0000h
  5110.     CX:DX ignored
  5111. Return: AX = status (see AH=E1h)
  5112. SeeAlso: AX=E100h
  5113. ----------92E104BX0006-----------------------
  5114. INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs"
  5115.     AX = E104h
  5116.     BX = 0006h
  5117.     CX:DX -> parameter block (see below)
  5118. Return: AX = status (see AH=E1h)
  5119. Note:    this function is used to verify node address for usernames
  5120.  
  5121. Format of parameter block:
  5122. Offset    Size    Description
  5123.  00h    WORD    segment of node address buffer
  5124.  02h    WORD    offset of node address buffer
  5125.  04h    WORD    segment of uppercase username
  5126.  06h    WORD    offset of uppercase username
  5127.  08h    WORD    segment of "DVSEMAIL"
  5128.  0Ah    WORD    offset of "DVSEMAIL"
  5129. ----------92E105BX0007-----------------------
  5130. INT 92 - Da Vinci eMail Dispatcher - "NetOpen"
  5131.     AX = E105h
  5132.     BX = 0007h
  5133.     CX:DX -> parameter block (see below)
  5134. Return: AX = 0000h Error
  5135.     AX = handle
  5136. Note:    this function is used to open a submission channel
  5137. SeeAlso: AX=E10Ah
  5138.  
  5139. Format of parameter block:
  5140. Offset    Size    Description
  5141.  00h    WORD    operation (1 = read, 2 = write)
  5142.  02h    WORD    segment of uppercase To: username
  5143.  04h    WORD    offset of uppercase To: username
  5144.  06h    WORD    segment of "DVSEMAIL"
  5145.  08h    WORD    offset of "DVSEMAIL"
  5146.  0Ah    WORD    segment of node address
  5147.  0Ch    WORD    offset of node address
  5148. ----------92E106BX0004-----------------------
  5149. INT 92 - Da Vinci eMail Dispatcher - "NetRead"
  5150.     AX = E106h
  5151.     BX = 0004h
  5152.     CX:DX -> parameter block
  5153. Return: AX = 0001h
  5154. SeeAlso: AX=E108h
  5155. ----------92E107BX0002-----------------------
  5156. INT 92 - Da Vinci eMail Dispatcher - "NetGetError"
  5157.     AX = E107h
  5158.     BX = 0002h
  5159.     CX:DX -> parameter block
  5160. Return: AX = 0001h
  5161. ----------92E108BX0004-----------------------
  5162. INT 92 - Da Vinci eMail Dispatcher - "NetWrite"
  5163.     AX = E108h
  5164.     BX = 0004h
  5165.     CX:DX -> parameter block (see below)
  5166. Return: AX = amount written
  5167. Note:    this function is used to write transactions to the dispatcher.
  5168.       The command block is written first and then another call is used
  5169.       to write the associated data.
  5170. SeeAlso: AX=E106h
  5171.  
  5172. Format of parameter block:
  5173. Offset    Size    Description
  5174.  00h    WORD    buffer count
  5175.  02h    WORD    segment of command buffer
  5176.  04h    WORD    offset of command buffer
  5177.  06h    WORD    handle from NetOpen
  5178.  
  5179. Format of command buffer:
  5180. Offset    Size    Description
  5181.  00h    BYTE    command
  5182.         21h '!' Protocol commands for remote control
  5183.         41h 'A' Authorization protocol element
  5184.         42h 'B' Return(back) routing information
  5185.             Associated data is the From: username
  5186.         43h 'C' Carbon Copy list
  5187.             Associated data is a comma delimitted list of usernames
  5188.         44h 'D' Distribution list
  5189.             Associated data is a comma delimitted list of usernames
  5190.         45h 'E' Mail end marker
  5191.             No associated data
  5192.         48h 'H' Mail message header
  5193.             Associated data is a message header buffer
  5194.         4Dh 'M' Mail message
  5195.             Associated data is the body of the message
  5196.         4Fh 'O' Object
  5197.         50h 'P' Paperclip attachment
  5198.         52h 'R' Routing information
  5199.             Associated data is the To: username
  5200.         53h 'S' Subject
  5201.             Associated data is the subject of the message
  5202.         54h 'T' Trail of Reply/Forwards
  5203.  01h    BYTE    subcommand
  5204.  02h    DWORD    length of associated data
  5205.  
  5206. Format of message header buffer:
  5207. Offset    Size    Description
  5208.  00h 30 BYTEs    subject line
  5209.  1Eh 24 BYTEs    To
  5210.  36h 24 BYTEs    From
  5211.  4Eh    DWORD    Time
  5212.         BYTE    0
  5213.         BYTE    hour
  5214.         BYTE    minute
  5215.         BYTE    second
  5216.  52h    DWORD    Date
  5217.         BYTE    0
  5218.         BYTE    year
  5219.         BYTE    month
  5220.         BYTE    day
  5221.  56h    DWORD    serial number (0L)
  5222.  5Ah    WORD    mail types
  5223.         bit 7    blind carbon copy
  5224.         bit 6    carbon copy
  5225.         bit 5    priority
  5226.         bit 4    confidential
  5227.         bit 3    certified
  5228.         bit 2    bulk
  5229.         bits 1-0 class (first, second, third, bulk)
  5230.  5Ch    WORD    special types (0)
  5231. ----------92E109BX0001-----------------------
  5232. INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)
  5233.     AX = E109h
  5234.     BX = 0001h
  5235.     CX:DX -> ???
  5236. Return: AX = FF97h (ERS_NOT_AVAILABLE)
  5237. ----------92E10ABX0001-----------------------
  5238. INT 92 - Da Vinci eMail Dispatcher - "NetClose"
  5239.     AX = E10Ah
  5240.     BX = 0001h
  5241.     CX:DX -> parameter block (see below)
  5242. Return: AX = 0001h
  5243. Note:    this function is used to close a dispatcher handle
  5244. SeeAlso: AX=E105h
  5245.  
  5246. Format of parameter block:
  5247. Offset    Size    Description
  5248.  00h    WORD    handle from NetOpen
  5249. ----------92E10BBX0004-----------------------
  5250. INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue"
  5251.     AX = E10Bh
  5252.     BX = 0004h
  5253.     CX:DX -> parameter block (see below)
  5254. Return: AX = 0001h
  5255. SeeAlso: AX=E102h,AX=E10Ch
  5256.  
  5257. Format of parameter block:
  5258. Offset    Size    Description
  5259.  00h    WORD    segment of 24 byte username buffer
  5260.  02h    WORD    offset of 24 byte username buffer
  5261.  04h    WORD    segment of 24 byte protocol buffer
  5262.  06h    WORD    offset of 24 byte protocol buffer
  5263. ----------92E10CBX0002-----------------------
  5264. INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue"
  5265.     AX = E10Ch
  5266.     BX = 0002h
  5267.     CX:DX -> parameter block (see below)
  5268. Return: AX = 0001h
  5269. SeeAlso: AX=E10Bh
  5270.  
  5271. Format of parameter block:
  5272. Offset    Size    Description
  5273.  00h    WORD    Segment of 128 byte node address buffer
  5274.  02h    WORD    Offset of 128 byte node address buffer
  5275. ----------92E10DBX0006-----------------------
  5276. INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName"
  5277.     AX = E10Dh
  5278.     BX = 0006h
  5279.     CX:DX -> parameter block (see below)
  5280. Return: AX = status (see AH=E1h)
  5281. Note:    this function is used to verify username/password
  5282. SeeAlso: AX=E10Eh
  5283.  
  5284. Format of parameter block:
  5285. Offset    Size    Description
  5286.  00h    WORD    segment of uppercase password string
  5287.  02h    WORD    offset of uppercase password string
  5288.  04h    WORD    segment of uppercase username string
  5289.  06h    WORD    offset of uppercase username string
  5290.  08h    WORD    segment of "DVSEMAIL"
  5291.  0Ah    WORD    offset of "DVSEMAIL"
  5292. ----------92E10EBX0004-----------------------
  5293. INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName"
  5294.     AX = E10Eh
  5295.     BX = 0004h
  5296.     CX:DX -> parameter block (see below)
  5297. Return: AX = 0001h
  5298. Note:    this function is used to remove a username
  5299. SeeAlso: AX=E10Dh
  5300.  
  5301. Format of parameter block:
  5302. Offset    Type    Description
  5303.  00h    WORD    segment of uppercase username
  5304.  02h    WORD    offset of uppercase username
  5305.  04h    WORD    segment of "DVSEMAIL"
  5306.  06h    WORD    offset of "DVSEMAIL"
  5307. ----------92E10FBX0000-----------------------
  5308. INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY
  5309.     AX = E10Fh
  5310.     BX = 0000h
  5311.     CX:DX ignored
  5312. Return: AX = 0001h
  5313. ----------92E110BX0006-----------------------
  5314. INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"
  5315.     AX = E110h
  5316.     BX = 0006h
  5317.     CX:DX -> ???
  5318. Return: AX = 0001h
  5319. SeeAlso: AX=E111h,AX=E113h
  5320. ----------92E111BX0004-----------------------
  5321. INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"
  5322.     AX = E111h
  5323.     BX = 0004h
  5324.     CX:DX -> ???
  5325. Return: AX = 0001h
  5326. SeeAlso: AX=E110h,AX=E113h
  5327. ----------92E112BX0008-----------------------
  5328. INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword"
  5329.     AX = E112h
  5330.     BX = 0008h
  5331.     CX:DX -> ???
  5332. Return: AX = 0001h
  5333. ----------92E113BX0008-----------------------
  5334. INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"
  5335.     AX = E113h
  5336.     BX = 0008h
  5337.     CX:DX -> ???
  5338. Return: AX = 0001h
  5339. SeeAlso: AX=E110h,AX=E111h
  5340. ----------92E175-----------------------------
  5341. INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR
  5342.     AX = E175h
  5343. Return: AX = 0012h
  5344.     BX = PSP
  5345. ----------92E180-----------------------------
  5346. INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK
  5347.     AX = E180h
  5348. Return: AX = 0012h if installed
  5349.     ES:DX -> '$'-terminated driver information string
  5350. SeeAlso: AX=E102h
  5351. ----------93---------------------------------
  5352. INT 93 - IBM ROM BASIC - used while in interpreter
  5353. Notes:    called by ROM BASIC
  5354.     BASIC.COM/BASICA.COM do not restore vector on termination
  5355. ----------93---------------------------------
  5356. INT 93 - IBM TOKEN RING ADAPTER - ???
  5357. ----------94---------------------------------
  5358. INT 94 - IBM ROM BASIC - used while in interpreter
  5359. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5360.     BASIC.COM/BASICA.COM do not restore vector on termination
  5361. ----------95---------------------------------
  5362. INT 95 - IBM ROM BASIC - used while in interpreter
  5363. Notes:    called by ROM BASIC
  5364.     BASIC.COM/BASICA.COM do not restore vector on termination
  5365. ----------95---------------------------------
  5366. INT 95 - APL*PLUS/PC - DETERMINE R= SPACE
  5367. Note:    use only when the R= option is invoked on entering APL
  5368. ----------96---------------------------------
  5369. INT 96 - IBM ROM BASIC - used while in interpreter
  5370. Notes:    called by ROM BASIC
  5371.     BASIC.COM/BASICA.COM do not restore vector on termination
  5372. ----------97---------------------------------
  5373. INT 97 - IBM ROM BASIC - used while in interpreter
  5374. Notes:    called by ROM BASIC
  5375.     BASIC.COM/BASICA.COM do not restore vector on termination
  5376. ----------98---------------------------------
  5377. INT 98 - IBM ROM BASIC - used while in interpreter
  5378. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5379.     BASIC.COM/BASICA.COM do not restore vector on termination
  5380. ----------99---------------------------------
  5381. INT 99 - IBM ROM BASIC - used while in interpreter
  5382. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5383.     BASIC.COM/BASICA.COM do not restore vector on termination
  5384. ----------9A---------------------------------
  5385. INT 9A - IBM ROM BASIC - used while in interpreter
  5386. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5387.     BASIC.COM/BASICA.COM do not restore vector on termination
  5388. ----------9B---------------------------------
  5389. INT 9B - IBM ROM BASIC - used while in interpreter
  5390. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5391.     BASIC.COM/BASICA.COM do not restore vector on termination
  5392. ----------9C---------------------------------
  5393. INT 9C - IBM ROM BASIC - used while in interpreter
  5394. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5395.     BASIC.COM/BASICA.COM do not restore vector on termination
  5396. ----------9D---------------------------------
  5397. INT 9D - IBM ROM BASIC - used while in interpreter
  5398. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5399.     BASIC.COM/BASICA.COM do not restore vector on termination
  5400. ----------9E---------------------------------
  5401. INT 9E - IBM ROM BASIC - used while in interpreter
  5402. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5403.     BASIC.COM/BASICA.COM do not restore vector on termination
  5404. ----------9F---------------------------------
  5405. INT 9F - IBM ROM BASIC - used while in interpreter
  5406. Notes:    called by ROM BASIC
  5407.     BASIC.COM/BASICA.COM do not restore vector on termination
  5408. ----------A0---------------------------------
  5409. INT A0 - IBM ROM BASIC - used while in interpreter
  5410. Notes:    called by ROM BASIC
  5411.     BASIC.COM/BASICA.COM do not restore vector on termination
  5412. ----------A0---------------------------------
  5413. INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE
  5414. SeeAlso: INT 59
  5415. ----------A1---------------------------------
  5416. INT A1 - IBM ROM BASIC - used while in interpreter
  5417. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5418.     BASIC.COM/BASICA.COM do not restore vector on termination
  5419. ----------A2---------------------------------
  5420. INT A2 - IBM ROM BASIC - used while in interpreter
  5421. Notes:    called by ROM BASIC
  5422.     BASIC.COM/BASICA.COM do not restore vector on termination
  5423. ----------A3---------------------------------
  5424. INT A3 - IBM ROM BASIC - used while in interpreter
  5425. Notes:    called by ROM BASIC
  5426.     BASIC.COM/BASICA.COM do not restore vector on termination
  5427. ----------A4---------------------------------
  5428. INT A4 - IBM ROM BASIC - used while in interpreter
  5429. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5430.     BASIC.COM/BASICA.COM do not restore vector on termination
  5431. ----------A4---------------------------------
  5432. INT A4 U - Right Hand Man - API
  5433.     AH = function number (v3.3 supports functions 00h-52h)
  5434. Return: CF set on error
  5435.     CF clear if successful
  5436. Program: Right Hand Man is a TSR desk-top utility originally by Red E Products
  5437.       which has evolved into Futurus Team
  5438. Note:    this interrupt is only hooked while popped up
  5439. SeeAlso: INT 2F/AX=A4E0h
  5440. ----------A5---------------------------------
  5441. INT A5 - IBM ROM BASIC - used while in interpreter
  5442. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5443.     BASIC.COM/BASICA.COM do not restore vector on termination
  5444. ----------A6---------------------------------
  5445. INT A6 - IBM ROM BASIC - used while in interpreter
  5446. Notes:    called by ROM BASIC
  5447.     BASIC.COM/BASICA.COM do not restore vector on termination
  5448. ----------A7---------------------------------
  5449. INT A7 - IBM ROM BASIC - used while in interpreter
  5450. Notes:    called by ROM BASIC
  5451.     BASIC.COM/BASICA.COM do not restore vector on termination
  5452. ----------A8---------------------------------
  5453. INT A8 - IBM ROM BASIC - used while in interpreter
  5454. Notes:    called by ROM BASIC
  5455.     BASIC.COM/BASICA.COM do not restore vector on termination
  5456. ----------A9---------------------------------
  5457. INT A9 - IBM ROM BASIC - used while in interpreter
  5458. Notes:    called by ROM BASIC
  5459.     BASIC.COM/BASICA.COM do not restore vector on termination
  5460. ----------AA---------------------------------
  5461. INT AA - IBM ROM BASIC - used while in interpreter
  5462. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5463.     BASIC.COM/BASICA.COM do not restore vector on termination
  5464. ----------AB---------------------------------
  5465. INT AB - IBM ROM BASIC - used while in interpreter
  5466. Notes:    called by ROM BASIC
  5467.     BASIC.COM/BASICA.COM do not restore vector on termination
  5468. ----------AC---------------------------------
  5469. INT AC - IBM ROM BASIC - used while in interpreter
  5470. Notes:    called by ROM BASIC
  5471.     BASIC.COM/BASICA.COM do not restore vector on termination
  5472. ----------AD---------------------------------
  5473. INT AD - IBM ROM BASIC - used while in interpreter
  5474. Notes:    called by ROM BASIC
  5475.     BASIC.COM/BASICA.COM do not restore vector on termination
  5476. ----------AE---------------------------------
  5477. INT AE - IBM ROM BASIC - used while in interpreter
  5478. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5479.     BASIC.COM/BASICA.COM do not restore vector on termination
  5480. ----------AF---------------------------------
  5481. INT AF - IBM ROM BASIC - used while in interpreter
  5482. Notes:    called by ROM BASIC
  5483.     BASIC.COM/BASICA.COM do not restore vector on termination
  5484. ----------B0---------------------------------
  5485. INT B0 - IBM ROM BASIC - used while in interpreter
  5486. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5487.     BASIC.COM/BASICA.COM do not restore vector on termination
  5488. ----------B1---------------------------------
  5489. INT B1 - IBM ROM BASIC - used while in interpreter
  5490. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5491.     BASIC.COM/BASICA.COM do not restore vector on termination
  5492. ----------B2---------------------------------
  5493. INT B2 - IBM ROM BASIC - used while in interpreter
  5494. Notes:    called by ROM BASIC
  5495.     BASIC.COM/BASICA.COM do not restore vector on termination
  5496. ----------B3---------------------------------
  5497. INT B3 - IBM ROM BASIC - used while in interpreter
  5498. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5499.     BASIC.COM/BASICA.COM do not restore vector on termination
  5500. ----------B370-------------------------------
  5501. INT B3 - ZIPKEY - GET VERSION
  5502.     AH = 70h
  5503. Return: AH = major version
  5504.     AL = minor version
  5505.     CL = number of states and territories in current database
  5506.     DH = year of current database - 1900
  5507.     DL = month of current database's file date
  5508. Return: AX destroyed
  5509. Notes:    if installed, the string "ZIPKEY" is present at offset 75h in the
  5510.       interrupt handler's segment, and the byte at 7Bh contains the API
  5511.       version number (00h for v1.x, 01h for v2.0)
  5512.     ZIPKEY is a resident ZIPCODE database by Eric Isaacson
  5513. ----------B371-------------------------------
  5514. INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE
  5515.     AH = 71h
  5516.     BX = abbreviation, in either case (first letter in BL)
  5517. Return: CF set on error
  5518.         AL = FFh
  5519.     CF clear if successful
  5520.         AL = ZIPKEY state code
  5521. SeeAlso: AH=72h
  5522. ----------B372-------------------------------
  5523. INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION
  5524.     AH = 72h
  5525.     BL = ZIPKEY state code
  5526. Return: CF set on error
  5527.         AX destroyed
  5528.     CF clear if successful
  5529.         AX = abbreviation, in upper case
  5530. SeeAlso: AH=71h,AH=73h
  5531. ----------B373-------------------------------
  5532. INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME
  5533.     AH = 73h
  5534.     BL = ZIPKEY state code
  5535.     ES:DI -> buffer for name
  5536. Return: CF set on error
  5537.         AX destroyed
  5538.     CF clear if successful
  5539.         ES:DI points one byte beyond end of name
  5540. SeeAlso: AH=72h
  5541. ----------B374-------------------------------
  5542. INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS
  5543.     AH = 74h
  5544.     DX = zipcode region (0-999)
  5545.     CH = last two digits of zipcode (0-99)
  5546.     ES:DI -> buffer
  5547. Return: CF set on error
  5548.         AX destroyed
  5549.     CF clear if successful
  5550.         ES:DI points one byte beyond end of digit string
  5551. ----------B375-------------------------------
  5552. INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE
  5553.     AH = 75h
  5554.     DX = zipcode region (0-999)
  5555.     CH = last two digits of zipcode (0-99)
  5556. Return: CF set on error (zipcode not found)
  5557.         AL = suggested state code, FFh if none
  5558.     CF clear if successful
  5559.         AL = ZIPKEY state code
  5560.         BX = area code (v2.0+)
  5561. SeeAlso: AH=76h,AH=79h
  5562. ----------B376-------------------------------
  5563. INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE
  5564.     AH = 76h
  5565.     DX = zipcode region (0-999)
  5566.     CH = last two digits of zipcode (0-99)
  5567.     ES:DI -> buffer for name
  5568. Return: CF set on error
  5569.         AL = suggested state code, FFh if none
  5570.         ES:DI buffer filled with suggested city name
  5571.     CF clear if successful
  5572.         AL = ZIPKEY state code
  5573.         BX = area code (v2.0+)
  5574.         ES:DI points one byte beyond end of name
  5575. SeeAlso: AH=75h,AH=78h
  5576. ----------B377-------------------------------
  5577. INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE
  5578.     AH = 77h
  5579.     DX = zipcode region (0-999)
  5580.     CH = last two digits of zipcode (0-99)
  5581.     BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key
  5582. Return: CF set on error
  5583.         AX destroyed
  5584.     CF clear if successful    
  5585.         zipcode specification as defined by the BX keystroke is placed in
  5586.           keyboard buffer, as if the user had popped up ZIPKEY and exited
  5587.           by pressing the key specified by BX
  5588. ----------B378-------------------------------
  5589. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY
  5590.     AH = 78h
  5591.     BL = ZIPKEY state code
  5592.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  5593. Return: BH = number of matching entries (set to 51 if more than 50)
  5594.     DX = zipcode region of first match (0-999)
  5595.     CL = last two digits of first zipcode in the range (0-99)
  5596.     CH = last two digits of last zipcode in the range (0-99)
  5597.     AX destroyed
  5598. SeeAlso: AH=79h,AH=7Ah
  5599. ----------B379-------------------------------
  5600. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY
  5601.     AH = 79h
  5602.     BL = ZIPKEY state code of first state to search
  5603.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  5604. Return:    AL = ZIPKEY state code of first matching state
  5605.     BH = number of matching entries (set to 51 if more than 50)
  5606.     DX = zipcode region of first match (0-999)
  5607.     CL = last two digits of first zipcode in first range (0-99)
  5608.     CH = last two digits of last zipcode in first range (0-99)
  5609. Note:    to find all matching cities, repeat search with BL set to one more than
  5610.       the returned AL
  5611. SeeAlso: AH=78h,AH=7Ah
  5612. ----------B37A-------------------------------
  5613. INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP
  5614.     AH = 7Ah
  5615.     BL = case number (0 to one less than value returned in BH by lookup)
  5616. Return: AL = ZIPKEY state code
  5617.     DX = zipcode region (0-999)
  5618.     CL = last two digits of first zipcode in the range (0-99)
  5619.     CH = last two digits of last zipcode in the range (0-99)
  5620. SeeAlso: AH=78h,AH=79h
  5621. ----------B37B-------------------------------
  5622. INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT
  5623.     AH = 7Bh
  5624. Return: BL = maximum number of characters for a city name
  5625.     BH = ZIPKEY state code for last city-name search
  5626.         FFh if none
  5627.     CX:DX = internal code identifying last city search
  5628.     AX destroyed
  5629. SeeAlso: AH=7Ch
  5630. ----------B37C-------------------------------
  5631. INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT
  5632.     AH = 7Ch
  5633.     BL = maximum number of characters for a city name
  5634.     BH = ZIPKEY state code for last city-name search
  5635.         FFh if none
  5636.     CX:DX = internal code returned by AH=7Bh
  5637. Return: CF set on error
  5638.     CF clear if successful
  5639.     AX destroyed
  5640. SeeAlso: AH=7Bh
  5641. ----------B37D-------------------------------
  5642. INT B3 - ZIPKEY - REQUEST POP UP
  5643.     AH = 7Dh
  5644.     BL = index number to simulate pressing a hotkey
  5645.         FFh for immediate popup with no playback on return
  5646. Return: CF set on error
  5647.         AL = FDh already busy with another request
  5648.            = FEh illegal function
  5649.     CF clear if successful
  5650.         AX destroyed
  5651.         window popped up and was closed by the user
  5652. ----------B37E-------------------------------
  5653. INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION
  5654.     AH = 7Eh
  5655.     DX = zipcode region (0-999)
  5656.     ES:DI -> buffer for name
  5657. Return: CF set on error
  5658.         AL = FFh region does not exist
  5659.     CF clear if successful
  5660.         AL = ZIPKEY state code
  5661.         ES:DI points one byte beyond end of name
  5662. ----------B37F-------------------------------
  5663. INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS
  5664.     AH = 7Fh
  5665.     BL = function
  5666.         00h turn off hotkeys
  5667.         01h turn on hotkeys
  5668.         02h return hotkey status
  5669.         03h toggle hotkey status
  5670. Return: AL = hotkey status
  5671.         00h off
  5672.         01h on
  5673. ----------B380-------------------------------
  5674. INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE
  5675.     AH = 80h
  5676.     BX = telephone area code (decimal)
  5677. Return: CF clear if successful
  5678.         AL = ZIPKEY state code
  5679.         DX = first ZIP region for state (03E8h if Canada)
  5680.         CX = number of ZIP regions in state
  5681.     CF set on error
  5682.         AL = FFh
  5683.         DX = 03E9h
  5684. ----------B4---------------------------------
  5685. INT B4 - IBM ROM BASIC - used while in interpreter
  5686. Notes:    called by ROM BASIC
  5687.     BASIC.COM/BASICA.COM do not restore vector on termination
  5688. ----------B4---------------------------------
  5689. INT B4 - STACKMAN - REQUEST NEW STACK
  5690. Return: SS:SP -> new stack
  5691. Note:    the installation check consists of testing for the string "STACKXXX" at
  5692.       offset 0Ah from the interrupt handler
  5693. SeeAlso: INT 2F/AX=C9FFh,INT B5"STACKMAN"
  5694. ----------B5---------------------------------
  5695. INT B5 - IBM ROM BASIC - used while in interpreter
  5696. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5697.     BASIC.COM/BASICA.COM do not restore vector on termination
  5698. ----------B5---------------------------------
  5699. INT B5 - STACKMAN - RESTORE ORIGINAL STACK
  5700.     SS:SP -> stack returned by INT B4
  5701. Return: SS:SP restored to value before INT B4
  5702. SeeAlso: INT 2F/AX=C9FFh,INT B4"STACKMAN"
  5703. ----------B6---------------------------------
  5704. INT B6 - IBM ROM BASIC - used while in interpreter
  5705. Notes:    called by ROM BASIC
  5706.     BASIC.COM/BASICA.COM do not restore vector on termination
  5707. ----------B7---------------------------------
  5708. INT B7 - IBM ROM BASIC - used while in interpreter
  5709. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5710.     BASIC.COM/BASICA.COM do not restore vector on termination
  5711. ----------B8---------------------------------
  5712. INT B8 - IBM ROM BASIC - used while in interpreter
  5713. Notes:    called by ROM BASIC
  5714.     BASIC.COM/BASICA.COM do not restore vector on termination
  5715. ----------B9---------------------------------
  5716. INT B9 - IBM ROM BASIC - used while in interpreter
  5717. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5718.     BASIC.COM/BASICA.COM do not restore vector on termination
  5719. ----------BA---------------------------------
  5720. INT BA - IBM ROM BASIC - used while in interpreter
  5721. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5722.     BASIC.COM/BASICA.COM do not restore vector on termination
  5723. ----------BB---------------------------------
  5724. INT BB - IBM ROM BASIC - used while in interpreter
  5725. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5726.     BASIC.COM/BASICA.COM do not restore vector on termination
  5727. ----------BC---------------------------------
  5728. INT BC - IBM ROM BASIC - used while in interpreter
  5729. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5730.     BASIC.COM/BASICA.COM do not restore vector on termination
  5731. ----------BD---------------------------------
  5732. INT BD - IBM ROM BASIC - used while in interpreter
  5733. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5734.     BASIC.COM/BASICA.COM do not restore vector on termination
  5735. ----------BE---------------------------------
  5736. INT BE - IBM ROM BASIC - used while in interpreter
  5737. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5738.     BASIC.COM/BASICA.COM do not restore vector on termination
  5739. ----------BE---------------------------------
  5740. INT BE - DESQview/X - ???
  5741. Note:    points at an IRET
  5742. SeeAlso: INT 15/AX=BFDEh/BX=0006h,INT 63"DESQview"
  5743. ----------BF---------------------------------
  5744. INT BF - IBM ROM BASIC - used while in interpreter
  5745. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5746.     BASIC.COM/BASICA.COM do not restore vector on termination
  5747. ----------C0---------------------------------
  5748. INT C0 - IBM ROM BASIC - used while in interpreter
  5749. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5750.     BASIC.COM/BASICA.COM do not restore vector on termination
  5751. ----------C1---------------------------------
  5752. INT C1 - IBM ROM BASIC - used while in interpreter
  5753. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5754.     BASIC.COM/BASICA.COM do not restore vector on termination
  5755. ----------C2---------------------------------
  5756. INT C2 - IBM ROM BASIC - used while in interpreter
  5757. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5758.     BASIC.COM/BASICA.COM do not restore vector on termination
  5759. ----------C3---------------------------------
  5760. INT C3 - IBM ROM BASIC - used while in interpreter
  5761. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5762.     BASIC.COM/BASICA.COM do not restore vector on termination
  5763. ----------C4---------------------------------
  5764. INT C4 - IBM ROM BASIC - used while in interpreter
  5765. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5766.     BASIC.COM/BASICA.COM do not restore vector on termination
  5767. ----------C5---------------------------------
  5768. INT C5 - IBM ROM BASIC - used while in interpreter
  5769. Notes:    called by ROM BASIC
  5770.     BASIC.COM/BASICA.COM do not restore vector on termination
  5771. ----------C6---------------------------------
  5772. INT C6 - IBM ROM BASIC - used while in interpreter
  5773. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5774.     BASIC.COM/BASICA.COM do not restore vector on termination
  5775. ----------C6---------------------------------
  5776. INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86
  5777. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  5778.       the older interrupts
  5779. SeeAlso: INT 86"APL"
  5780. ----------C7---------------------------------
  5781. INT C7 - IBM ROM BASIC - used while in interpreter
  5782. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5783.     BASIC.COM/BASICA.COM do not restore vector on termination
  5784. ----------C7---------------------------------
  5785. INT C7 - APL*PLUS/PC - ???
  5786. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  5787.       the older interrupts
  5788. SeeAlso: INT 87"APL"
  5789. ----------C8---------------------------------
  5790. INT C8 - IBM ROM BASIC - used while in interpreter
  5791. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5792.     BASIC.COM/BASICA.COM do not restore vector on termination
  5793. ----------C8---------------------------------
  5794. INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88
  5795. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  5796.       the older interrupts
  5797. SeeAlso: INT 88"APL"
  5798. ----------C9---------------------------------
  5799. INT C9 - IBM ROM BASIC - used while in interpreter
  5800. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5801.     BASIC.COM/BASICA.COM do not restore vector on termination
  5802. ----------C9---------------------------------
  5803. INT C9 - APL*PLUS/PC - ???
  5804. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  5805.       the older interrupts
  5806. SeeAlso: INT 89"APL"
  5807. ----------CA---------------------------------
  5808. INT CA - IBM ROM BASIC - used while in interpreter
  5809. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5810.     BASIC.COM/BASICA.COM do not restore vector on termination
  5811. ----------CA---------------------------------
  5812. INT CA - APL*PLUS/PC - PRINT SCREEN
  5813. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  5814.       the older interrupts
  5815. SeeAlso: INT 8A"APL"
  5816. ----------CB---------------------------------
  5817. INT CB - IBM ROM BASIC - used while in interpreter
  5818. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5819.     BASIC.COM/BASICA.COM do not restore vector on termination
  5820. ----------CB---------------------------------
  5821. INT CB - APL*PLUS/PC - BEEP
  5822. Notes:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  5823.       the older interrupts
  5824.     same as printing a ^G via INT 21/AH=02h
  5825. SeeAlso: INT 8B"APL"
  5826. ----------CC---------------------------------
  5827. INT CC - IBM ROM BASIC - used while in interpreter
  5828. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5829.     BASIC.COM/BASICA.COM do not restore vector on termination
  5830. ----------CC---------------------------------
  5831. INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY
  5832.     AX = flag
  5833.         0000h do not save display attributes
  5834.         0001h save attributes
  5835. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  5836.       the older interrupts
  5837. SeeAlso: INT 8C"APL"
  5838. ----------CD---------------------------------
  5839. INT CD - IBM ROM BASIC - used while in interpreter
  5840. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5841.     BASIC.COM/BASICA.COM do not restore vector on termination
  5842. ----------CD---------------------------------
  5843. INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5844. ----------CE---------------------------------
  5845. INT CE - IBM ROM BASIC - used while in interpreter
  5846. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5847.     BASIC.COM/BASICA.COM do not restore vector on termination
  5848. ----------CE---------------------------------
  5849. INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5850. ----------CF---------------------------------
  5851. INT CF - IBM ROM BASIC - used while in interpreter
  5852. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5853.     BASIC.COM/BASICA.COM do not restore vector on termination
  5854. ----------CF---------------------------------
  5855. INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION
  5856. SeeAlso: INT E0"APL"
  5857. ----------D0---------------------------------
  5858. INT D0 - IBM ROM BASIC - used while in interpreter
  5859. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5860.     BASIC.COM/BASICA.COM do not restore vector on termination
  5861. ----------D0---------------------------------
  5862. INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5863. ----------D0---------------------------------
  5864. INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR
  5865. Notes:    NJFRERAM is a resident free-memory display utility by Mike "Nifty
  5866.       James" Blaszczak
  5867.     if NJFRERAM is installed, this vector points at the signature "NJ"
  5868. ----------D1---------------------------------
  5869. INT D1 - IBM ROM BASIC - used while in interpreter
  5870. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5871.     BASIC.COM/BASICA.COM do not restore vector on termination
  5872. ----------D1---------------------------------
  5873. INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5874. ----------D2---------------------------------
  5875. INT D2 - IBM ROM BASIC - used while in interpreter
  5876. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5877.     BASIC.COM/BASICA.COM do not restore vector on termination
  5878. ----------D2---------------------------------
  5879. INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5880. ----------D3---------------------------------
  5881. INT D3 - IBM ROM BASIC - used while in interpreter
  5882. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5883.     BASIC.COM/BASICA.COM do not restore vector on termination
  5884. ----------D3---------------------------------
  5885. INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5886. ----------D4---------------------------------
  5887. INT D4 - IBM ROM BASIC - used while in interpreter
  5888. Notes:    called by ROM BASIC
  5889.     BASIC.COM/BASICA.COM do not restore vector on termination
  5890. ----------D4---------------------------------
  5891. INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5892. ----------D4---------------------------------
  5893. INT D4 - PC-MOS/386 - API
  5894. ----------D5---------------------------------
  5895. INT D5 - IBM ROM BASIC - used while in interpreter
  5896. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5897.     BASIC.COM/BASICA.COM do not restore vector on termination
  5898. ----------D5---------------------------------
  5899. INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5900. ----------D6---------------------------------
  5901. INT D6 - IBM ROM BASIC - used while in interpreter
  5902. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5903.     BASIC.COM/BASICA.COM do not restore vector on termination
  5904. ----------D6---------------------------------
  5905. INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5906. ----------D7---------------------------------
  5907. INT D7 - IBM ROM BASIC - used while in interpreter
  5908. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5909.     BASIC.COM/BASICA.COM do not restore vector on termination
  5910. ----------D7---------------------------------
  5911. INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5912. ----------D8---------------------------------
  5913. INT D8 - IBM ROM BASIC - used while in interpreter
  5914. Notes:    called by ROM BASIC
  5915.     BASIC.COM/BASICA.COM do not restore vector on termination
  5916. ----------D8---------------------------------
  5917. INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5918. ----------D9---------------------------------
  5919. INT D9 - IBM ROM BASIC - used while in interpreter
  5920. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5921.     BASIC.COM/BASICA.COM do not restore vector on termination
  5922. ----------D9---------------------------------
  5923. INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5924. ----------DA---------------------------------
  5925. INT DA - IBM ROM BASIC - used while in interpreter
  5926. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5927.     BASIC.COM/BASICA.COM do not restore vector on termination
  5928. ----------DA---------------------------------
  5929. INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5930. ----------DB---------------------------------
  5931. INT DB - IBM ROM BASIC - used while in interpreter
  5932. Notes:    called by ROM BASIC
  5933.     BASIC.COM/BASICA.COM do not restore vector on termination
  5934. ----------DB---------------------------------
  5935. INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5936. ----------DC---------------------------------
  5937. INT DC - PC/370 v4.1- - API
  5938. SeeAlso: INT 60"PC/370"
  5939. ----------DC---------------------------------
  5940. INT DC - IBM ROM BASIC - used while in interpreter
  5941. Notes:    called by ROM BASIC
  5942.     BASIC.COM/BASICA.COM do not restore vector on termination
  5943. ----------DC---------------------------------
  5944. INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5945. ----------DD---------------------------------
  5946. INT DD - IBM ROM BASIC - used while in interpreter
  5947. Notes:    called by ROM BASIC
  5948.     BASIC.COM/BASICA.COM do not restore vector on termination
  5949. ----------DD---------------------------------
  5950. INT DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER
  5951.     BX = where to place keystrokes
  5952.         FFFFh insert before current buffer contents
  5953.         0000h replace current contents
  5954.         0001h insert after current contents
  5955.     CX = number of keystroke events to insert
  5956.     ES:SI -> data to be placed into buffer (list of WORD key codes)
  5957.         4000h + N = normal ASCII keystroke N (N = 00h to FFh)
  5958.         4100h + N = extended ASCII keystroke N (N = 03h to 84h)
  5959. SeeAlso: INT 16/AH=05h
  5960. ----------DE---------------------------------
  5961. INT DE - IBM ROM BASIC - used while in interpreter
  5962. Notes:    called by ROM BASIC
  5963.     BASIC.COM/BASICA.COM do not restore vector on termination
  5964. ----------DE---------------------------------
  5965. INT DE - APL*PLUS/PC - ???
  5966. Note:    appears to be the same as INT 16
  5967. ----------DF---------------------------------
  5968. INT DF - Victor 9000 - SuperBIOS
  5969. ----------DF---------------------------------
  5970. INT DF - IBM ROM BASIC - used while in interpreter
  5971. Notes:    called by ROM BASIC
  5972.     BASIC.COM/BASICA.COM do not restore vector on termination
  5973. ----------DF---------------------------------
  5974. INT DF - APL*PLUS/PC - SAME AS INT 10
  5975. SeeAlso: INT 10
  5976. ----------E0---------------------------------
  5977. INT E0 - IBM ROM BASIC - used while in interpreter
  5978. Notes:    called by ROM BASIC
  5979.     BASIC.COM/BASICA.COM do not restore vector on termination
  5980. ----------E0---------------------------------
  5981. INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION
  5982. SeeAlso: INT CF"APL"
  5983. ----------E0---------------------------------
  5984. INT E0 - VIRUS - "Micro-128" - ???
  5985. Note:    Micro-128 also overwrites the upper half of the interrupt table
  5986. SeeAlso: INT 70"VIRUS"
  5987. ----------E0---------------------------------
  5988. INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS
  5989.     CL = function number
  5990.     DS,DX = parameters
  5991. Return: as appropriate for function
  5992. Notes:    several functions are covered in more detail in following entries
  5993.     most of these calls are also supported by Digital Research's DOS Plus
  5994.       v2.1; the unsupported functions are 26h,29h-2Bh,3Ah,3Dh-62h,71h-8Ch,
  5995.       90h-92h,94h-97h,9Bh-ABh, and AEh-FFh
  5996. SeeAlso: INT 21/AX=4459h,INT 21/AH=E0h"DOS Plus"
  5997.  
  5998. Values for function number:
  5999.  00h    terminate calling process (see also INT 21/AH=00h)
  6000.  01h    read a character
  6001.  02h    write character to default console (see also INT 21/AH=02h)
  6002.  03h    read character from default AUX (see also INT 21/AH=03h)
  6003.  04h    write character to default AUX (see also INT 21/AH=04h)
  6004.  05h    write character to default list device (see also INT 21/AH=05h)
  6005.  06h    perform raw I/O on default console (see also INT 21/AH=06h)
  6006.  07h    return default AUX input status
  6007.  08h    return default AUX output status
  6008.  09h    write string to default console (see also INT 21/AH=09h)
  6009.  0Ah    read string from default console (see also INT 21/AH=0Ah)
  6010.  0Bh    return default console input status (see also INT 21/AH=0Bh)
  6011.  0Ch    get BDOS release ID
  6012.  0Dh    reset all disk drives (see also INT 21/AH=0Dh)
  6013.  0Eh    set default drive (see also INT 21/AH=0Eh)
  6014.  0Fh    open file via FCB (see also INT 21/AH=0Fh)
  6015.  10h    close file via FCB (see also INT 21/AH=10h)
  6016.  11h    search for first matching file with FCB (see also INT 21/AH=11h)
  6017.  12h    search for next matching file with FCB (see also INT 21/AH=12h)
  6018.  13h    delete file via FCB (see also INT 21/AH=13h)
  6019.  14h    sequential read via FCB (see also INT 21/AH=14h)
  6020.  15h    sequential write via FCB (see also INT 21/AH=15h)
  6021.  16h    create file via FCB (see also INT 21/AH=16h)
  6022.  17h    rename file via FCB (see also INT 21/AH=17h)
  6023.  18h    get bit map of logged drives
  6024.  19h    get default drive (see also INT 21/AH=19h)
  6025.  1Ah    set DMA address offset
  6026.  1Bh    get default disk allocation vector (see also INT 21/AH=1Bh)
  6027.  1Ch    set default drive to read-only
  6028.  1Dh    get bit map of read-only drives
  6029.  1Eh    set file attributes via FCB (see also INT 21/AX=4301h)
  6030.  1Fh    get address of disk parameter block (see also INT 21/AH=1Fh)
  6031.  20h    get/set default user number
  6032.  21h    read random record via FCB (see also INT 21/AH=21h)
  6033.  22h    write random record via FCB (see also INT 21/AH=22h)
  6034.  23h    compute file size with FCB (see also INT 21/AH=23h)
  6035.  24h    get FCB random record number (see also INT 21/AH=24h)
  6036.  25h    reset specified drives
  6037.  26h    access specified drives (not in DR DOS Plus v2.1)
  6038.  27h    free specified drives
  6039.  28h    write random with FCB, zero fill (see also also INT 21/AH=28h)
  6040.  2Ah    lock records in FCB file (see also INT 21/AH=5Ch)
  6041.  2Bh    unlock records in FCB file (see also INT 21/AH=5Ch)
  6042.  2Ch    set BDOS multisector count
  6043.  2Dh    set BDOS error mode
  6044.  2Eh    get free space on disk
  6045.  2Fh    load, initialize, and jump to process (see also INT 21/AH=4Bh)
  6046.  30h    flush write-deferred buffers
  6047.  31h    get/set system variable (DOS Plus v2.1)
  6048.  32h    call BIOS (XIOS) character routine (see below)
  6049.  33h    set DMA address segment
  6050.  34h    get DMA buffer address
  6051.  35h    CP/M-86 allocate maximum memory
  6052.  36h    allocate maximum memory at specified segment
  6053.  37h    CP/M-86 allocate memory segment (see also INT 21/AH=48h)
  6054.  38h    allocate memory at specified segment
  6055.  39h    CP/M-86 free specified memory segment (see also INT 21/AH=49h)
  6056.  3Ah    CP/M-86 free all memory (not in DOS Plus v2.1)
  6057.  3Bh    load .CMD file into memory
  6058.  3Ch    (DOS Plus v2.1) call RSX program
  6059.  40h    (DR-NET) log on a server
  6060.  41h    (DR-NET) log off a server
  6061.  42h    (DR-NET) send a message
  6062.  43h    (DR-NET) receive a message
  6063.  44h    (DR-NET) get network status
  6064.  45h    (DR-NET) get requestor configuration table
  6065.  46h    (DR-NET) set compatibility attributes
  6066.  47h    (DR-NET) get server configuration table
  6067.  48h    (DR-NET) set network error mode
  6068.  49h    (DR-NET) attach network
  6069.  4Ah    (DR-NET) detach network
  6070.  4Bh    (DR-NET) set default password
  6071.  4Ch    (DR-NET) get-set long timeout
  6072.  4Dh    (DR-NET) get parameter table
  6073.  50h    (DR-NET) get network information
  6074.  53h    get current time (see also INT 21/AH=2Ch)
  6075.  54h    set current time (see also INT 21/AH=2Dh)
  6076.  55h    get binary system date (see also INT 21/AH=2Ah)
  6077.  56h    set system date (see also INT 21/AH=2Bh)
  6078.  57h    allocate system flag
  6079.  58h    deallocate system flag
  6080.  59h    reserve memory in global area
  6081.  5Ah    lock physical drive
  6082.  5Bh    unlock physical drive
  6083.  5Ch    search path for executable file
  6084.  5Dh    load and execute command (see also INT 21/AH=4Bh)
  6085.  5Eh    get/set process exit code
  6086.  5Fh    set country information
  6087.  60h    get country information
  6088.  63h    truncate FCB file (see also INT 21/AH=28h)
  6089.  64h    create/update directory label
  6090.  65h    get directory label
  6091.  66h    get FCB date stamp and password mode
  6092.  67h    write extended FCB
  6093.  68h    set system date and time
  6094.  69h    get system date and time in binary
  6095.  6Ah    establish password for file access
  6096.  6Bh    get OS serial number
  6097.  6Ch    (DOS Plus v2.1) get/set program return code
  6098.  6Dh    get/set console mode
  6099.  6Eh    get/set string delimiter
  6100.  6Fh    write block to default console
  6101.  70h    write block to default list device
  6102.  71h    execute DOS-compatible function
  6103.  74h    set FCB time and date stamps
  6104.  80h    allocate memory
  6105.  82h    deallocate memory
  6106.  83h    poll I/O device
  6107.  84h    wait on system flag
  6108.  85h    set system flag
  6109.  86h    create message queue
  6110.  87h    open message queue
  6111.  88h    delete message queue
  6112.  89h    read from message queue
  6113.  8Ah    conditionally read from message queue
  6114.  8Bh    write to message queue
  6115.  8Ch    conditionally write to message queue
  6116.  8Dh    delay calling process
  6117.  8Eh    call process dispatcher (yield CPU)
  6118.  8Fh    terminate calling process (same as function 00h)
  6119.  90h    create a process
  6120.  91h    set calling process' priority
  6121.  92h    attach to default console
  6122.  93h    detach from default console
  6123.  95h    assign default console to process
  6124.  96h    interpret and execute commandline
  6125.  97h    resident procedure library
  6126.  98h    parse ASCII string into FCB (see also INT 21/AH=29h)
  6127.  99h    return default console
  6128.  9Ah    get address of system data (SYSDAT)
  6129.  9Bh    get system time and date
  6130.  9Ch    return calling process' descriptor
  6131.  9Dh    terminate process by name or PD address
  6132.  9Eh    attach to default list device
  6133.  9Fh    detach from default list device
  6134.  A0h    select default list device
  6135.  A1h    conditionally attach to default list device
  6136.  A2h    conditionally attach to default console
  6137.  A3h    get OS version number
  6138.  A4h    get default list device
  6139.  A5h    attach to default AUX
  6140.  A6h    detach from default AUX
  6141.  A7h    conditionally attach to default AUX
  6142.  A8h    set default AUX
  6143.  A9h    return default AUX
  6144.  ACh    read block from default AUX
  6145.  ADh    (DOS Plus v2.1) write block to default AUX
  6146.  B0h    configure default AUX
  6147.  B1h    get/set device control parameters
  6148.  B2h    send Break through default AUX
  6149.  B3h    allocate physical memory
  6150.  B4h    free physical memory
  6151.  B5h    map physical memory
  6152.  B6h    nondestructive message queue read
  6153.  B7h    timed wait on system flag
  6154.  B8h    get/set I/O port mapping
  6155.  B9h    set list device timeout
  6156.  BAh    set AUX timeout value
  6157.  BBh    execute XIOS service
  6158.  BDh    (DR Multiuser DOS) delay
  6159.  FFh    return 80386 to native mode
  6160.  
  6161. Values for DOS Plus v2.1 XIOS functions:
  6162.  00h    terminate program
  6163.  01h    ???
  6164.  02h    check for console input status
  6165.  03h    read character from console
  6166.  04h    write character to console
  6167.  05h    write character to list device
  6168.  06h    write character to auxiliary device
  6169.  07h    read cahracter from auxiliary device
  6170.  0Fh    get list device status
  6171.  10h-14h reserved
  6172.  15h    device initialization
  6173.  16h    check console output status
  6174.  17h-7Fh reserved
  6175. ---BBC Acorn---
  6176.  80h    get XIOS version
  6177.  81h    get Tube semaphore
  6178.  82h    release Tube semaphore
  6179.  83h    select text/graphics
  6180.  84h    update B&W graphics rectangle
  6181.  85h    update color graphics rectangle
  6182.  86h    get/release/update mouse
  6183.  87h    get system error info
  6184.  88h    entry in CLOCK called by WatchDog RSP
  6185.  89h    BBC OSBYTE function
  6186.  8Ah    BBC OSWORD function
  6187.  
  6188. DR Multiuser DOS Error Return Codes:
  6189.  00h no error
  6190.  01h system call not implmented
  6191.  02h illegal system call number
  6192.  03h cannot find memory
  6193.  04h illegal flag number
  6194.  05h flag overrun
  6195.  06h flag underrun
  6196.  07h no unused Queue Descriptors
  6197.  08h no free queue buffer
  6198.  09h cannot find queue
  6199.  0Ah queue in use
  6200.  0Ch no free Process Descriptors
  6201.  0Dh no queue access
  6202.  0Eh empty queue
  6203.  0Fh full queue
  6204.  10h CLI queue missing
  6205.  11h no 8087 in system
  6206.  12h no unused Memory Descriptors
  6207.  13h illegal console number
  6208.  14h no Process Descriptor match
  6209.  15h no console match
  6210.  16h no CLI process
  6211.  17h illegal disk number
  6212.  18h illegal filename
  6213.  19h illegal filetype
  6214.  1Ah character not ready
  6215.  1Bh illegal Memory Descriptor
  6216.  1Ch bad return from BDOS load
  6217.  1Dh bad return from BDOS read
  6218.  1Eh bad return from BDOS open
  6219.  1Fh null command
  6220.  20h not owner of resource
  6221.  21h no CSEG in load file
  6222.  22h process Descriptor exists on Thread Root
  6223.  23h could not terminate process
  6224.  24h cannot attach to process
  6225.  25h illegal list device number
  6226.  26h illegal password
  6227.  28h external termination occurred
  6228.  29h fixup error upon load
  6229.  2Ah flag set ignored
  6230.  2Bh illegal auxilliary device number
  6231. ----------E0----CL03-------------------------
  6232. INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM AUX DEVICE
  6233.     CL = 03h
  6234. Return:    AL = ASCII character
  6235. Notes:    A_READ reads the next 8-bit character from the logical auxilliary
  6236.       input device (AUXn:); control is not returned to the calling
  6237.       process until a character has been read. 
  6238.     if another process owns AUX, this call blocks until the device becomes
  6239.       available
  6240. SeeAlso: INT 21/AH=03h,INT E0/CL=04h,INT E0/CL=07h,INT E0/CL=A5h,INT E0/CL=ACh
  6241. ----------E0----CL04-------------------------
  6242. INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO AUX DEVICE
  6243.     CL = 04h
  6244.     DL = ASCII character
  6245. Return:    nothing
  6246. Note:    if another process owns AUX, this call blocks until the device becomes
  6247.       available
  6248. SeeAlso: INT 21/AH=04h,INT E0/CL=03h,INT E0/CL=08h,INT E0/CL=A5h,INT E0/CL=ADh
  6249. ----------E0----CL07-------------------------
  6250. INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE 
  6251.     CL = 07h
  6252. Return:    AL = status
  6253.         00h not ready
  6254.         FFh character available
  6255. SeeAlso: INT E0/CL=03h,INT E0/CL=08h
  6256. ----------E0----CL08-------------------------
  6257. INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE
  6258.     CL = 08h
  6259. Return:    AL = status
  6260.         00h not ready
  6261.         FFh ready for output
  6262. SeeAlso: INT E0/CL=04h,INT E0/CL=07h
  6263. ----------E0----CL59-------------------------
  6264. INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA
  6265.     CL = 59h
  6266.     DX = size in bytes
  6267. Return: AX = FFFFh if failed
  6268.     AX = other if successful
  6269.         ES:BX -> reserved memory
  6270. ----------E0----CL86-------------------------
  6271. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE
  6272.     CL = 86h
  6273.     DS:DX -> queue descriptor (see below)
  6274. Return: AX = status
  6275.         0000h success
  6276.         FFFFh failure
  6277.     CX = error code
  6278. SeeAlso: INT E0/CL=87h
  6279.  
  6280. Format of queue descriptor:
  6281. Offset    Size    Description
  6282.  00h  2 WORDs    internal use, initialize to zeros
  6283.  04h    WORD    flags
  6284.  06h  8 BYTEs    queue name
  6285.  0Eh    WORD    length of message
  6286.  10h    WORD    number of messages
  6287.  12h  4 WORDs    internal use, initialize to zeros
  6288.  1Ah    WORD    offset in system area of buffer for messages
  6289. ----------E0----CL87-------------------------
  6290. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE
  6291.     CL = 87h
  6292.     DS:DX -> queue parameter block (see below)
  6293. Return: AX = status
  6294.         0000h success
  6295.         FFFFh failure
  6296.     CX = error code
  6297. SeeAlso: INT E0/CL=86h,INT E0/CL=89h
  6298.  
  6299. Format of queue parameter block:
  6300. Offset    Size    Description
  6301.  00h    WORD    internal use, initialize to zero
  6302.  02h    WORD    queue ID (set by INT E0/CL=87h)
  6303.  04h    WORD    internal use, initialize to zero
  6304.  06h    WORD    offset of queue message buffer
  6305.  08h  8 BYTEs    queue name
  6306. ----------E0----CL89-------------------------
  6307. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE
  6308.     CL = 89h
  6309.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  6310. Return: AX = status
  6311.         0000h success
  6312.         FFFFh failure
  6313.     CX = error code
  6314. SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh
  6315. ----------E0----CL8A-------------------------
  6316. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE
  6317.     CL = 8Ah
  6318.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  6319. Return: AX = status
  6320.         0000h success
  6321.         FFFFh failure
  6322.     CX = error code
  6323. SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch
  6324. ----------E0----CL8B-------------------------
  6325. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE
  6326.     CL = 8Bh
  6327.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  6328. Return: AX = status
  6329.         0000h success
  6330.         FFFFh failure
  6331.     CX = error code
  6332. SeeAlso: INT E0/CL=89h,INT E0/CL=8Ch
  6333. ----------E0----CL8C-------------------------
  6334. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE
  6335.     CL = 8Ch
  6336.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  6337. Return: AX = status
  6338.         0000h success
  6339.         FFFFh failure
  6340.     CX = error code
  6341. SeeAlso: INT E0/CL=8Ah,INT E0/CL=8Bh
  6342. ----------E0----CL8E-------------------------
  6343. INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER
  6344.     CL = 8Eh
  6345.     DX = FFFFh (optional) to force dispatch
  6346. Return: nothing
  6347. Note:    if DX=FFFFh, a dispatch is forced even if no other process is ready
  6348. SeeAlso: INT E0/CL=91h
  6349. ----------E0----CL91-------------------------
  6350. INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY
  6351.     CL = 91h
  6352.     DL = new priority (00h highest to FFh lowest)
  6353. Note:    sets priority of calling process; transient processes are initialized
  6354.       to priority C8h
  6355. SeeAlso: INT E0/CL=8Eh
  6356. ----------E0----CL93-------------------------
  6357. INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE
  6358.     CL = 93h
  6359. Return: AX = status
  6360.         0000h successfully detached
  6361.         FFFFh detach failed
  6362. ----------E0----CLA5-------------------------
  6363. INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE
  6364.     CL = A5h
  6365. Desc:    attaches the default auxiliary device to the calling process unless
  6366.       it is already attached to another process, in which case the call
  6367.       blocks until the device becomes available
  6368. Note:    this call should be used before attempting to read or write from
  6369.       the AUX device; however, the I/O calls internally call this function
  6370.       to ensure device ownership
  6371. SeeAlso: INT E0/CL=03h,INT E0/CL=04h,INT E0/CL=A6h,INT E0/CL=A7h,INT E0/CL=A8h
  6372. SeeAlso: INT E0/CL=ACh,INT E0/CL=ADh,INT E0/CL=B0h
  6373. ----------E0----CLA6-------------------------
  6374. INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE
  6375.     CL = A6h
  6376. Return: AX = status
  6377.         0000h successfully detached
  6378.         FFFFh detach failed
  6379.     CX = error code
  6380. SeeAlso: INT E0/CL=A5h,INT E0/CL=A7h
  6381. ----------E0----CLA7-------------------------
  6382. INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE
  6383.     CL = A7h
  6384. Return: AX = status
  6385.         0000h attached
  6386.         FFFFh unable to attach
  6387. Desc:    attaches the default auxiliary device to the calling process if it is
  6388.       available
  6389. Note:    does not block if the device is already in use
  6390. SeeAlso: INT E0/CL=A5h,INT E0/CL=A6h,INT E0/CL=A8h,INT E0/CL=B0h
  6391. ----------E0----CLA8-------------------------
  6392. INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER
  6393.     CL = A8h
  6394.     DL = auxiliary device number
  6395. Return: AX = status
  6396.         0000h successful
  6397.         FFFFh failed
  6398.     CX = error code
  6399. SeeAlso: INT E0/CL=A5h,INT E0/CL=A9h
  6400. ----------E0----CLA9-------------------------
  6401. INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER
  6402.     CL = A9h
  6403. Return: AL = current default auxiliary device number
  6404. SeeAlso: INT E0/CL=A8h
  6405. ----------E0----CLAC-------------------------
  6406. INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE
  6407.     CL = ACh
  6408.     DS:DX -> character control block (CHCB) (see below)
  6409. Return: AX = number of characters read
  6410. Desc:    read characters from the default auxiliary (AUXn:) device into a buffer
  6411.       until the buffer is full or the device is no longer ready
  6412. Notes:    if the device is initially not ready, blocks until at least one
  6413.       character has been read
  6414.     if another process owns AUX, this call blocks until the device becomes
  6415.       available
  6416. SeeAlso: INT E0/CL=03h,INT E0/CL=A5h,INT E0/CL=ADh
  6417.  
  6418. Format of character control block (CHCB):
  6419. Offset    Size    Description
  6420.  00h    DWORD    pointer to character buffer
  6421.  04h    WORD    length of character buffer
  6422. ----------E0----CLAD-------------------------
  6423. INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE
  6424.     CL = ADh
  6425.     DS:DX -> character control block (see INT E0/CL=ACh)
  6426. Return: AX = number of characters written
  6427. Note:    does not return until at least one character has been written
  6428. SeeAlso: INT E0/CL=04h,INT E0/CL=A5h,INT E0/CL=ACh
  6429. ----------E0----CLB0-------------------------
  6430. INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS
  6431.     CL = B0h
  6432.     DX:DX -> AUX device parameter block (see below)
  6433. Return: AX = status
  6434.         0000h successful
  6435.         parameter block updated
  6436.         FFFFh failed
  6437.         CX = error code
  6438. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  6439.  
  6440. Format of AUX device parameter block:
  6441. Offset    Size    Description
  6442.  00h    BYTE    function (00h get, 01h set)
  6443.  01h    BYTE    baud rate (see below) FFh = don't change/unknown
  6444.  02h    BYTE    parity
  6445.         00h none
  6446.         01h odd
  6447.         02h none
  6448.         03h even
  6449.         04h stick parity bit
  6450.         FFh don't change/unknown
  6451.  03h    BYTE    stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change)
  6452.  04h    BYTE    data bits (05h-08h or FFh unknown/don't change)
  6453.  05h    BYTE    handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF,
  6454.         FFh unknown/don't change)
  6455.  06h    BYTE    XON character, FFh unknown/don't change
  6456.  07h    BYTE    XOFF character, FFh unknown/don't change
  6457.  
  6458. Values for baud rate:
  6459.  00h = 50 baud
  6460.  01h = 62.5 baud
  6461.  02h = 75 baud
  6462.  03h = 110 baud
  6463.  04h = 134.5 baud
  6464.  05h = 150 baud
  6465.  06h = 200 baud
  6466.  07h = 300 baud
  6467.  08h = 600 baud
  6468.  09h = 1200 baud
  6469.  0Ah = 1800 baud
  6470.  0Bh = 2000 baud
  6471.  0Ch = 2400 baud
  6472.  0Dh = 3600 baud
  6473.  0Eh = 4800 baud
  6474.  0Fh = 7200 baud
  6475.  10h = 9600 baud
  6476.  11h = 19200 baud
  6477.  12h = 38400 baud
  6478.  13h = 56000 baud
  6479.  14h = 76800 baud
  6480.  15h = 115200 baud
  6481. ----------E0----CLB1-------------------------
  6482. INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS
  6483.     CL = B1h
  6484.     DS:DX -> AUX device control block (see below)
  6485. Return: AX = status
  6486.         0000h successful
  6487.         control block updated
  6488.         FFFFh failed
  6489.         CX = error code
  6490. SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h
  6491.  
  6492. Format of AUX device control block:
  6493. Offset    Size    Description
  6494.  00h    BYTE    function (00h get, 01h set)
  6495.  01h    BYTE    DTR state (00h low, 01h high, FFh unknown/don't change)
  6496.  02h    BYTE    RTS state (00h low, 01h high, FFh unknown/don't change)
  6497.  03h    BYTE    DSR state (00h low, 01h high, FFh unknown/don't change)
  6498.  04h    BYTE    CTS state (00h low, 01h high, FFh unknown/don't change)
  6499.  05h    BYTE    DCD state (00h low, 01h high, FFh unknown/don't change)
  6500.  06h    BYTE    RI state (00h inactive, 01h active, FFh unknown/don't change)
  6501. ----------E0----CLB2-------------------------
  6502. INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE
  6503.     CL = B2h
  6504.     DX = duration of break in system ticks (0001h-FFFFh)
  6505. Return: AX = status
  6506.         0000h successful
  6507.         break signal completed
  6508.         FFFFh failed
  6509.         CX = error code
  6510. Note:    if the AUX device is currently owned by another process, this call will
  6511.       block until the device becomes available
  6512. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  6513. ----------E0----CLBD-------------------------
  6514. INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION
  6515.     CL = BDh
  6516.     DX = delay in system ticks
  6517. Return: after the delay elapses
  6518. Notes:    the length of a system tick is installation-dependent (typically
  6519.       1/50 or 1/60 second); the length may be determined by reading the
  6520.       TICKSPERSEC value from the system data segment
  6521.     the actual delay before the process is rescheduled to run may be up to
  6522.       one tick longer than requested; the delay between rescheduling and
  6523.       actual execution cannot be predicted if higher-priority processes
  6524.       are awaiting a turn at the CPU
  6525. ----------E1---------------------------------
  6526. INT E1 - IBM ROM BASIC - used while in interpreter
  6527. Notes:    called by ROM BASIC
  6528.     BASIC.COM/BASICA.COM do not restore vector on termination
  6529. ----------E1---------------------------------
  6530. INT E1 - PC Cluster Disk Server Information
  6531. SeeAlso: INT E2
  6532. ----------E2---------------------------------
  6533. INT E2 - IBM ROM BASIC - used while in interpreter
  6534. Notes:    called by ROM BASIC
  6535.     BASIC.COM/BASICA.COM do not restore vector on termination
  6536. ----------E2---------------------------------
  6537. INT E2 - PC Cluster Program
  6538. ----------E3---------------------------------
  6539. INT E3 - IBM ROM BASIC - used while in interpreter
  6540. Notes:    called by ROM BASIC
  6541.     BASIC.COM/BASICA.COM do not restore vector on termination
  6542. ----------E40005-----------------------------
  6543. INT E4 - Logitech Modula v2.0 - MonitorEntry
  6544.     AX = 0005h
  6545.     BX = priority
  6546. SeeAlso: AX=0006h
  6547. ----------E40006-----------------------------
  6548. INT E4 - Logitech Modula v2.0 - MonitorExit
  6549.     AX = 0006h
  6550. SeeAlso: AX=0005h
  6551. ----------E4---------------------------------
  6552. INT E4 - IBM ROM BASIC - used while in interpreter
  6553. Notes:    called by ROM BASIC
  6554.     BASIC.COM/BASICA.COM do not restore vector on termination
  6555. ----------E5---------------------------------
  6556. INT E5 - IBM ROM BASIC - used while in interpreter
  6557. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6558.     BASIC.COM/BASICA.COM do not restore vector on termination
  6559. ----------E6---------------------------------
  6560. INT E6 - IBM ROM BASIC - used while in interpreter
  6561. Notes:    called by ROM BASIC
  6562.     BASIC.COM/BASICA.COM do not restore vector on termination
  6563. ----------E7---------------------------------
  6564. INT E7 - IBM ROM BASIC - used while in interpreter
  6565. Notes:    called by ROM BASIC
  6566.     BASIC.COM/BASICA.COM do not restore vector on termination
  6567. ----------E8---------------------------------
  6568. INT E8 - IBM ROM BASIC - used while in interpreter
  6569. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6570.     BASIC.COM/BASICA.COM do not restore vector on termination
  6571. ----------E9---------------------------------
  6572. INT E9 - IBM ROM BASIC - used while in interpreter
  6573. Notes:    called by ROM BASIC
  6574.     BASIC.COM/BASICA.COM do not restore vector on termination
  6575. ----------EA---------------------------------
  6576. INT EA - IBM ROM BASIC - used while in interpreter
  6577. Notes:    called by ROM BASIC
  6578.     BASIC.COM/BASICA.COM do not restore vector on termination
  6579. ----------EB---------------------------------
  6580. INT EB - IBM ROM BASIC - used while in interpreter
  6581. Notes:    called by ROM BASIC
  6582.     BASIC.COM/BASICA.COM do not restore vector on termination
  6583. ----------EC---------------------------------
  6584. INT EC - IBM ROM BASIC - used while in interpreter
  6585. Notes:    called by ROM BASIC
  6586.     BASIC.COM/BASICA.COM do not restore vector on termination
  6587. ----------EC---------------------------------
  6588. INT EC - used by Alloy NTNX
  6589. ----------EC---------------------------------
  6590. INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR
  6591.     AX = function number (0000h to 0140h)
  6592.     STACK:    DWORD address to return to
  6593.         any arguments required by function
  6594. Return: STACK:    return address popped, but otherwise unchanged
  6595. Notes:    this is the interface from applications to the runtime system by Exact
  6596.       Automatisering B.V. of the Netherlands.  By using this interrupt,
  6597.       it can provide DLL-style capabilities under MSDOS.
  6598.     the interrupt handler removes the return address and flags placed on
  6599.       the stack by the INT EC, then jumps to the appropriate function
  6600. ----------ED---------------------------------
  6601. INT ED - IBM ROM BASIC - used while in interpreter
  6602. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6603.     BASIC.COM/BASICA.COM do not restore vector on termination
  6604.     INT 80 through INT ED are modified but not restored by Direct Access
  6605.       v4.0, and may be left dangling by other programs written with the
  6606.       same version of compiled BASIC
  6607. SeeAlso: INT EC"BASIC",INT EE"BASIC"
  6608. ----------EE---------------------------------
  6609. INT EE - IBM ROM BASIC - used while in interpreter
  6610. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6611.     BASIC.COM/BASICA.COM do not restore vector on termination
  6612. SeeAlso: INT ED"BASIC",INT EE"BASIC"
  6613. ----------EF---------------------------------
  6614. INT EF - BASIC - ORIGINAL INT 09 VECTOR
  6615. Note:    BASIC.COM/BASICA.COM do not restore vector on termination
  6616. SeeAlso: INT EE"BASIC",INT F0"BASIC"
  6617. ----------EF----CX0473-----------------------
  6618. INT EF - GEM - INTERFACE
  6619.     CX = 0473h
  6620.     DS:DX -> GEM parameter block
  6621. ----------F0---------------------------------
  6622. INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR
  6623. Note:    BASICA.COM does not restore vector on termination
  6624. SeeAlso: INT EF"BASIC"
  6625. ----------F1---------------------------------
  6626. INT F1 - reserved for user interrupt
  6627. ----------F1---------------------------------
  6628. INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
  6629.     DS:BX -> '$'-terminated text string
  6630. Note:    SPEECH.COM is a resident text-to-speech converter by Douglas Sisco
  6631. ----------F1---------------------------------
  6632. INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
  6633. SeeAlso: INT F2"SPEECH"
  6634. ----------F1---------------------------------
  6635. INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS
  6636. Return: AX:BX -> data area
  6637. Notes:    AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1
  6638.       and COM2 in software
  6639.     The installation check consists of testing for the following signature
  6640.       immediately preceding the interrupt handler: "JWBtvv" where 't' is
  6641.       either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit
  6642.       version number
  6643. ----------F2---------------------------------
  6644. INT F2 - reserved for user interrupt
  6645. ----------F2---------------------------------
  6646. INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
  6647. SeeAlso: INT F1"SPEECH"
  6648. ----------F2---------------------------------
  6649. INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API
  6650.     AH = function
  6651.         01h power up
  6652.         02h power down
  6653.         03h set controls
  6654.         04h capture image
  6655.         05h display image
  6656.         06h read file
  6657.         07h write file
  6658.         08h write array
  6659.         09h read pixel
  6660.         0Ah write pixel
  6661.         0Bh check if VGA present
  6662.         0Ch set video mode
  6663.         0Dh check for keystroke
  6664.         0Eh delay
  6665.     ???
  6666. Return: ???
  6667. Program: ImageCapture is a product of International Computers
  6668. SeeAlso: INT F3"ICCTSR"
  6669. ----------F3---------------------------------
  6670. INT F3 - reserved for user interrupt
  6671. ----------F3---------------------------------
  6672. INT F3 - SoundBlaster - POINTER TO ECHO VALUE
  6673. Note:    this is not a vector, but a pointer to a DWORD containing the echo
  6674.       value selected with SET-ECHO.EXE
  6675. SeeAlso: INT 2F/AX=FBFBh
  6676. ----------F3---------------------------------
  6677. INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR
  6678. Program: ImageCapture is a product of International Computers
  6679. SeeAlso: INT F2"ICCTSR"
  6680. ----------F4---------------------------------
  6681. INT F4 - reserved for user interrupt
  6682. ----------F4---------------------------------
  6683. INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK
  6684. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT FE"DoubleDOS"
  6685. ----------F5---------------------------------
  6686. INT F5 - reserved for user interrupt
  6687. ----------F5---------------------------------
  6688. INT F5 - DoubleDOS - ???
  6689. ----------F6---------------------------------
  6690. INT F6 - reserved for user interrupt
  6691. ----------F6---------------------------------
  6692. INT F6 - DoubleDOS - ???
  6693. ----------F7---------------------------------
  6694. INT F7 - reserved for user interrupt
  6695. ----------F7---------------------------------
  6696. INT F7 - DoubleDOS - ???
  6697. ----------F700-------------------------------
  6698. INT F7 - FSBBS 2.0 - CONFIGURATION RECORD
  6699.     AH = 00h
  6700.     AL = function
  6701.         00h get configuration record
  6702.         Return: DS:DX -> configuration record
  6703.         01h set configuration record
  6704.         02h get path for option
  6705.         DS:DX -> option name
  6706.         Return: DS:DX -> path
  6707.         03h determine whether configuration record set
  6708.         Return: AX = status
  6709.                 0000h set
  6710.                 0001h not yet set
  6711.         04h get link state
  6712.         Return: AX = state
  6713.                 0000h unlinked
  6714.                 0001h linked
  6715. Notes:    this information is preliminary and still subject to change
  6716.     all of the INT F7 calls for FSBBS are used for interprogram
  6717.       communication between the BBS kernel and the programs it spawns
  6718. SeeAlso: AH=01h
  6719. ----------F701-------------------------------
  6720. INT F7 - FSBBS 2.0 - USER RECORD
  6721.     AH = 01h
  6722.     AL = function
  6723.         00h get user record for user currently online
  6724.         Return: DS:DX -> user record
  6725.         01h set user record
  6726.         DS:DX -> user record
  6727. SeeAlso: AH=00h,AH=02h
  6728. ----------F702-------------------------------
  6729. INT F7 - FSBBS 2.0 - GET ACCOUNT NAME
  6730.     AH = 02h
  6731. Return: DS:DX -> 8-character blank-padded account name
  6732. SeeAlso: AH=01h
  6733. ----------F703-------------------------------
  6734. INT F7 - FSBBS 2.0 - TERMINAL NUMBER
  6735.     AH = 03h
  6736.     AL = function
  6737.         00h get terminal index number
  6738.         Return: DX = index number
  6739.         01h set terminal index number
  6740.         DX = terminal index
  6741. ----------F704-------------------------------
  6742. INT F7 - FSBBS 2.0 - PASSDATA BUFFER
  6743.     AH = 04h
  6744.     AL = function
  6745.         00h get PassData buffer contents
  6746.         DS:DX -> buffer for PassData contents
  6747.         01h set PassData contents
  6748.         DS:DX -> buffer containing new PassData
  6749.         CH = length of data in buffer
  6750. ----------F705-------------------------------
  6751. INT F7 - FSBBS 2.0 - TIMER FUNCTIONS
  6752.     AH = 05h
  6753.     AL = function
  6754.         00h get time remaining
  6755.         Return: DX = number of minutes remaining
  6756.         01h get current time
  6757.         Return: DS:DX -> 8-character time string
  6758.         02h increment time
  6759.         DX = number of additional minutes
  6760.         03h decrement time
  6761.         DX = number of minutes
  6762. SeeAlso: AH=06h
  6763. ----------F706-------------------------------
  6764. INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY
  6765.     AH = 06h
  6766.     AL = function
  6767.         00h determine whether function is available
  6768.         DX = index of function
  6769.         01h set function availability
  6770.         DX = index of function
  6771.         ???
  6772. SeeAlso: AH=05h,AH=07h
  6773. ----------F707-------------------------------
  6774. INT F7 - FSBBS 2.0 - DUMP FUNCTIONS
  6775.     AH = 07h
  6776.     AL = function
  6777.         00h get current dump mode
  6778.         Return: DL = mode
  6779.         01h set dump mode
  6780.         DL = mode
  6781. SeeAlso: AH=06h
  6782. ----------F8---------------------------------
  6783. INT F8 - TANDY??? - 100 HZ INTERRUPT
  6784. SeeAlso: INT FA"USART"
  6785. ----------F8---------------------------------
  6786. INT F8 - DoubleDOS - ???
  6787. ----------F9---------------------------------
  6788. INT F9 - reserved for user interrupt
  6789. ----------F9---------------------------------
  6790. INT F9 - DoubleDOS - ???
  6791. ----------FA---------------------------------
  6792. INT FA - TANDY??? - SERIAL PORT USART INTERRUPT
  6793. SeeAlso: INT F8"100 HZ",INT FB"USART"
  6794. ----------FA---------------------------------
  6795. INT FA - DoubleDOS - TURN OFF TIMESHARING
  6796. SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS"
  6797. ----------FB---------------------------------
  6798. INT FB - TANDY??? - KEYBOARD USART RECEIVE INTERRUPT
  6799. SeeAlso: INT FA"USART"
  6800. ----------FB---------------------------------
  6801. INT FB - DoubleDOS - TURN ON TIMESHARING
  6802. SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS"
  6803. ----------FC---------------------------------
  6804. INT FC - reserved for user interrupt
  6805. ----------FC---------------------------------
  6806. INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS
  6807. Return: ES = segment of display buffer
  6808. Note:    the display buffer may be moved if multitasking is enabled
  6809. SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS"
  6810. ----------FD---------------------------------
  6811. INT FD - reserved for user interrupt
  6812. ----------FD---------------------------------
  6813. INT FD - DoubleDOS - ???
  6814. ----------FE---------------------------------
  6815. INT FE - AT/XT286/PS50+ - destroyed by return from protected mode
  6816. SeeAlso: INT FF"XT286"
  6817. ----------FE---------------------------------
  6818. INT FE - DoubleDOS - GIVE UP TIME
  6819.     AL = number of 55ms time slices to give away
  6820. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS"
  6821. ----------FE---------------------------------
  6822. INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER
  6823. SeeAlso: INT 3F
  6824. ----------FF---------------------------------
  6825. INT FF - AT/XT286/PS50+ - destroyed by return from protected mode
  6826. SeeAlso: INT FE"XT286"
  6827. ----------FF---------------------------------
  6828. INT FF - Z100 - WARM BOOT
  6829. SeeAlso: INT 40"Z100"
  6830. ---------------------------------------------
  6831. Please redistribute the following files unmodified as a group, in a pair of
  6832. archives named INTER33A and INTER33B (preferably the original authenticated
  6833. PKZIP archives):
  6834.     INTERRUP.1ST    the read-me file, containing credits, availability info
  6835.     INTERRUP.A    INT 00 through INT 14
  6836.     INTERRUP.B    INT 15 through INT 1F
  6837.     INTERRUP.C    INT 20 through INT 21/7F
  6838.     INTERRUP.D    INT 21/80 through INT 2E
  6839.     INTERRUP.E    INT 2F through INT 2F/BF
  6840.     INTERRUP.F    INT 2F/C0 through INT 4F
  6841.     INTERRUP.G    INT 50 through INT 67
  6842.     INTERRUP.H    INT 68 through INT FF
  6843.     INTERRUP.PRI    a brief introduction to interrupts
  6844.     INTPRINT.COM    a simple formatter that also generates a list summary
  6845.     INTPRINT.DOC    instructions for INTPRINT
  6846.     GLOSSARY.LST    a glossary of terms, abbreviations, and acronyms
  6847.     MEMORY.LST    format of the BIOS data area
  6848. The following files should be distributed in an archive called INTER33C:
  6849.     INT.COM        invoke interrupts from commandline
  6850.     INT2HLP.BAT    Perl script to convert list into QuickHelp database
  6851.     INT2GUID.*    convert list into TurboPower GUIDE or POPHELP database
  6852.     INT2QH.*    program to convert list into QuickHelp database
  6853.     INTHELP.*    convert list into TurboPower GUIDE database
  6854.     INTLIST.E    Epsilon extension for handling list
  6855.     INTPRINT.C    source code for INTPRINT
  6856. This compilation is Copyright (c) 1989,1990,1991,1992,1993 Ralf Brown
  6857. ---------------------------------------------
  6858. ARPA: ralf@cs.cmu.edu
  6859. UUCP: {ucbvax,harvard}!cs.cmu.edu!ralf
  6860. BIT:  ralf%cs.cmu.edu@carnegie
  6861. FIDO: Ralf Brown 1:129/26.1
  6862.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  6863.     unless you address it to me)
  6864. CIS:  >INTERNET:ralf@cs.cmu.edu
  6865.