home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / TEXT / INFO / INTER30B.ZIP / INTERRUP.G < prev    next >
Encoding:
Text File  |  1992-04-26  |  212.9 KB  |  6,124 lines

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