home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 24 / CD_ASCQ_24_0995.iso / dos / tools / inter47 / interrup.m < prev    next >
Text File  |  1995-08-13  |  191KB  |  4,729 lines

  1. Interrupt List, part 13 of 13
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
  3. ----------80---------------------------------
  4. INT 80 - Q-PRO4 - ???
  5. --------r-80---------------------------------
  6. INT 80 - reserved for BASIC
  7. Note:    this vector and INT 81 through INT ED are modified but not restored by
  8.       Direct Access v4.0, and may be left dangling by other programs
  9.       written with the same version of compiled BASIC
  10. SeeAlso: INT 81"BASIC",INT 86"BASIC",INT EF"BASIC"
  11. --------E-80---------------------------------
  12. INT 80 - Phar Lap 386|DOS-Extender - RELOCATED PRINT-SCREEN
  13. Note:    the extender relocates INT 05 to here by default, but can be told to
  14.       leave INT 05 alone with the commandline (or DOSX= environment
  15.       variable) flag -PRIVEC 5
  16. SeeAlso: INT 05
  17. --------d-80---------------------------------
  18. INT 80 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!)
  19. Note:    the factory-default location for the eight bytes of scratchpad RAM
  20.       needed by the SCSI adapter is 0000h:0200h, which is interrupt
  21.       vectors 80h and 81h
  22. SeeAlso: INT 81"BusLogic"
  23. --------s-80----BL00-------------------------
  24. INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER
  25.     BL = 00h
  26.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  27. Return: AX = initialization result (see #2555)
  28. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  29.       which provides access to multiple drivers for the SoundBlaster
  30.       board through a single interface
  31. Range:    INT 80h to INT BFh, selected automatically
  32. Note:    the SBSIM installation check consists of testing for the signature
  33.       "SBSIM" at offset 103h in the interrupt handler's segment.
  34. SeeAlso: INT 80/BL=01h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=03h"SBSIM"
  35. SeeAlso: INT 80/BX=0000h"SBSIM"
  36.  
  37. (Table 2555)
  38. Values for SBSIM error code:
  39.  01h    busy--currently in use
  40.  02h    bad driver specified
  41.  03h    invalid function
  42.  04h    voice process already active
  43.  05h    couldn't start CT-VOICE
  44.  06h    couldn't start CTVDSK
  45.  07h    invalid SBSIM handle
  46.  08h    buffer not initialized yet
  47.  09h    bad filename
  48.  0Ah    bad file handle
  49.  0Bh    driver not started yet
  50.  0Ch    XMS driver not installed
  51.  0Dh    no free SBSIM handles
  52.  0Eh    bad file type
  53.  0Fh    couldn't free XMS block
  54.  10h    invalid source selected
  55.  11h    get pan position failed
  56.  12h    set pan position failed
  57.  13h    set volume failed
  58.  14h    couldn't start fade/pan
  59.  15h    couldn't stop fade/pan
  60.  16h    couldn't pause fade/pan
  61.  17h    not a fade/pan operation
  62.  18h    bad mode for fade/pan
  63.  19h    couldn't start fade/pan
  64.  1Ah    source not fading/panning
  65.  1Bh    FM or MIDI already playing
  66.  1Ch    bad MIDI mapper format
  67. --------s-80----BL01-------------------------
  68. INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER
  69.     BL = 01h
  70.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  71. Return: AX = result (see #2555)
  72. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  73. --------s-80----BL02-------------------------
  74. INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER
  75.     BL = 02h
  76.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  77. Return: nothing
  78. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  79. --------s-80----BL03-------------------------
  80. INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER
  81.     BL = 03h
  82.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  83. Return: nothing
  84. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  85. SeeAlso: INT 80/BL=05h
  86. --------s-80----BL04-------------------------
  87. INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER
  88.     BL = 04h
  89.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  90. Return: nothing
  91. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=03h"SBSIM",INT 80/BL=05h"SBSIM"
  92. --------s-80----BL05-------------------------
  93. INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS
  94.     BL = 05h
  95.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  96. Return: AX = status
  97. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  98. --------s-80----BX0000-----------------------
  99. INT 80 - SoundBlaster SBFM driver - GET VERSION
  100.     BX = 0000h
  101. Return: ???
  102. Note:    SBFM installs at a free interrupt in the range 80h through BFh
  103. SeeAlso: BX=0008h"SBFM",INT 2F/AX=FBFBh
  104. --------s-80----BX0000-----------------------
  105. INT 80 - SBSIM - "QUERYVERSION" - GET VERSION
  106.     BX = 0000h
  107. Return: AX = version (AH = major, AL = minor)
  108. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  109.       which provides access to multiple drivers for the SoundBlaster
  110.       board through a single interface
  111. Range:    INT 80h to INT BFh, selected automatically
  112. Note:    the SBSIM installation check consists of testing for the signature
  113.       "SBSIM" at offset 103h in the interrupt handler's segment.
  114. SeeAlso: BX=0001h"SBSIM",BX=0005h"SBSIM",INT 21/AX=4402h"CTMMSYS"
  115. SeeAlso: INT 80/BL=00h"SBSIM"
  116. Index:    installation check;SBSIM|installation check;SoundBlaster
  117. --------s-80----BX0001-----------------------
  118. INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
  119.     BX = 0001h
  120.     DX:AX -> music status byte
  121. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0003h"SBFM"
  122. --------s-80----BX0001-----------------------
  123. INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED
  124.     BX = 0001h
  125. Return: AX = bit flags for loaded drivers (see #2556)
  126. SeeAlso: BX=0000h"SBSIM",BX=0002h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  127.  
  128. Bitfields for SBSIM loaded drivers:
  129. Bit(s)    Description    (Table 2556)
  130.  0    FM
  131.  1    double disk-buffered voice driver (DDBV)
  132.  2    memory voice driver
  133.  3    auxiliary driver (mixer)
  134.  4    MIDI
  135. --------s-80----BX0002-----------------------
  136. INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
  137.     BX = 0002h
  138.     CX = number of instruments
  139.     DX:AX -> instrument table
  140. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0005h"SBFM"
  141. --------s-80----BX0002-----------------------
  142. INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT
  143.     BX = 0002h
  144.     AX = driver (00h = FM,01h = DDBV,02h = memvoice,03h = mixer,04h = MIDI)
  145. Return: CF clear if successful
  146.         DX:AX -> entry point
  147.     CF set on error
  148. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  149. --------s-80----BX0003-----------------------
  150. INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
  151.     BX = 0003h
  152.     AX = clock rate divisor (1193180 / desired frequency in Hertz)
  153.         FFFFh to restore to 18.2 Hz
  154. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0004h"SBFM"
  155. --------s-80----BX0004-----------------------
  156. INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
  157.     BX = 0004h
  158.     AX = driver clock rate divisor (1193180 / frequency in Hertz)
  159. Note:    default frequency is 96 Hz
  160. SeeAlso: BX=0000h"SBFM",BX=0003h"SBFM"
  161. --------s-80----BX0005-----------------------
  162. INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
  163.     BX = 0005h
  164.     AX = semi-tone offset
  165. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0006h"SBFM"
  166. --------s-80----BX0005-----------------------
  167. INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS
  168.     BX = 0005h
  169.     AX = driver (00h = FM, 01h = DDB Voice, 04h = MIDI)
  170. Return: CF clear if successful
  171.         DX:AX -> buffer
  172.         CX = buffer size in K
  173.     CF set on error
  174. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  175.       which provides access to multiple drivers for the SoundBlaster
  176.       board through a single interface
  177. Range:    INT 80h to INT BFh, selected automatically
  178. Note:    the SBSIM installation check consists of testing for the signature
  179.       "SBSIM" at offset 103h in the interrupt handler's segment.
  180. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0002h"SBSIM",INT 80/BL=00h"SBSIM"
  181. --------s-80----BX0006-----------------------
  182. INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
  183.     BX = 0006h
  184.     DX:AX -> music block
  185. Return: AX = status
  186.         0000h successful
  187.         0001h music already active
  188. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF04h
  189. --------s-80----BX0007-----------------------
  190. INT 80 - SoundBlaster SBFM driver - STOP MUSIC
  191.     BX = 0007h
  192. Return: AX = status
  193.         0000h successful
  194.         0001h music not active
  195. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM",INT 1A/AX=FF05h
  196. --------s-80----BX0008-----------------------
  197. INT 80 - SoundBlaster SBFM driver - RESET DRIVER
  198.     BX = 0008h
  199. Return: AX = status
  200.         0000h successful
  201.         0001h music is active
  202. SeeAlso: BX=0000h"SBFM"
  203. --------s-80----BX0009-----------------------
  204. INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
  205.     BX = 0009h
  206. Return: AX = status
  207.         0000h successful
  208.         0001h no music active
  209. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF01h
  210. --------s-80----BX000A-----------------------
  211. INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
  212.     BX = 000Ah
  213. Return: AX = status
  214.         0000h successful
  215.         0001h no music paused
  216. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM"
  217. --------s-80----BX000B-----------------------
  218. INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
  219.     BX = 000Bh
  220.     DX:AX -> trap routine
  221. SeeAlso: BX=0000h"SBFM"
  222. --------s-80----BX0400-----------------------
  223. INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME
  224.     BX = 0400h
  225.     AX = sound source (see #2557)
  226. Return: CF clear if successful
  227.         AX = volume
  228.     CF set on error
  229.         AX = error code (see #2555 at INT 80/BL=00h)
  230. SeeAlso: BX=0401h"SBSIM"
  231.  
  232. (Table 2557)
  233. Values for SBSIM sound source:
  234.  00h    master volume
  235.  01h    voice
  236.  02h    FM
  237.  03h    CD
  238.  04h    line in
  239.  05h    microphone
  240. --------s-80----BX0401-----------------------
  241. INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME
  242.     BX = 0401h
  243.     AX = sound source (see #2557)
  244.     DX = new volume
  245. Return: AX = result (0000h = success) (see also INT 80/BL=00h)
  246. SeeAlso: BX=0400h"SBSIM"
  247. --------N-8001-------------------------------
  248. INT 80 - QPC Software PKTINT.COM - INITIALIZE
  249.     AH = 01h
  250. Return: AX = 0000h
  251.     CX = FFFFh
  252.     DX = FFFFh
  253. Notes:    this interrupt is the WinQVTNet protected mode interface to Windows 3.0
  254.     all buffer pointers are reset back to 0
  255. --------N-8002-------------------------------
  256. INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES
  257.     AH = 02h
  258.     BX = extra bytes to allocate per packet
  259. Return: AX = segment address of 10K buffer (for receives???)
  260.     BX = segment address of 2K buffer (for sends???)
  261. SeeAlso: AH=05h
  262. --------N-8003-------------------------------
  263. INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT
  264.     AH = 03h
  265. Return: CX:DX -> receive call address
  266. Note:    the returned address can be used in the packet driver calls since it
  267.       will be a valid address in all DOS boxes
  268. SeeAlso: AH=06h
  269. --------N-8004-------------------------------
  270. INT 80 - QPC Software PKTINT.COM - ENABLE???
  271.     AH = 04h
  272.     BX = ???
  273. Return: ???
  274. SeeAlso: AH=01h
  275. --------N-8005-------------------------------
  276. INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS
  277.     AH = 05h
  278. Return: AX = amount of buffer currently in use
  279.     BX = current offset in buffer
  280.     CX = number of times receive has been called
  281. SeeAlso: AH=02h
  282. --------N-8006-------------------------------
  283. INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET
  284.     AH = 06h
  285. Return: BX = next packet offset
  286.     CX = number of bytes still buffered
  287.     DX = size of packet released back into buffer pool
  288. SeeAlso: AH=03h
  289. --------r-81---------------------------------
  290. INT 81 - reserved for BASIC
  291. Note:    this vector is modified but not restored by Direct Access v4.0, and
  292.       may be left dangling by other programs written with the same version
  293.       of compiled BASIC
  294. SeeAlso: INT 80"BASIC",INT 82"BASIC"
  295. --------N-81---------------------------------
  296. INT 81 - IBM TOKEN RING ADAPTER - ???
  297. SeeAlso: INT 82"TOKEN RING",INT 91"TOKEN RING"
  298. --------d-81---------------------------------
  299. INT 81 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!)
  300. Note:    the factory-default location for the eight bytes of scratchpad RAM
  301.       needed by the SCSI adapter is 0000h:0200h, which is interrupt
  302.       vectors 80h and 81h
  303. SeeAlso: INT 80"BusLogic"
  304. --------b-81---------------------------------
  305. INT 81 - AMI WinBIOS - SECOND HARD DRIVE AUTODETECTION
  306. Notes:    used by WinBIOS with core version of July 1994 or later
  307.     QEMM 7.5 began using this interrupt internally after the QPAT3
  308.       maintenance release when searching for "ROM holes", causing a
  309.       lengthy delay during bootup.  Adding the QEMM parameter RH:N will
  310.       avoid the QEMM call to INT 81 and speed up the boot process
  311. --------s-810200---------------------------
  312. INT 81 - Gravis UltraSound - MegaEm - PROCESS COMMAND LINE
  313.     AX = 0200h
  314.     BX = PSP segment
  315.     SI = ??? (data area)
  316. Return:    AX = status (see #2558)
  317.     BL = emulation state
  318.         bit 1   Emulation is on
  319.         bit 2   Emulation is off
  320. Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
  321.       emulator for the Gravis UltraSound
  322. Range:    INT ??? to INT ??? (see INT 21/AX=FD12h)
  323. SeeAlso: AX=0202h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  324.  
  325. (Table 2558)
  326. Values for MegaEm status:
  327.  0000h    successful
  328.  0001h    invalid command line optie
  329.  0002h    display options
  330.  0003h    ???
  331.  0004h    invalid number of voices specified
  332.  0005h    could not load enough patches to provide acceptable emulation
  333.  0006h    to many warnings on patch loading
  334.  0007h    ??? (not used anymore)
  335.  0008h    /CO and SCSI don't work together
  336.  0009h    invalid music volume
  337.  000Ah    invalid master volume
  338.  000Bh    /SC switch is no longer valid
  339.  0100h    ??? (some error on patch loading)
  340. --------s-810202---------------------------
  341. INT 81 - Gravis UltraSound - MegaEm - ???
  342.     AX = 0202h
  343. Return:    AX = ???
  344. SeeAlso: AX=0200h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  345. --------s-810300---------------------------
  346. INT 81 - Gravis UltraSound - MegaEm - LOAD SAMPLE ???
  347.     AX = 0300h
  348. Return:    AX = ???
  349. SeeAlso: AX=0200h,AX=0202h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  350. --------s-810400---------------------------
  351. INT 81 - Gravis UltraSound - MegaEm - ???
  352.     AX = 0400h
  353.     BX = ??? (segment)
  354. Return:    AX = ???
  355.     BX = ???
  356. Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
  357.       emulator for the Gravis UltraSound
  358. SeeAlso: AX=0200h,AX=0202h,AX=0300h,INT 21/AX=FD12h/BX=3457h
  359. --------s-812010------------------------
  360. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - ???
  361.     AX = 2010h
  362.     ???
  363. Return: ???
  364. --------s-812011------------------------
  365. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - ???
  366.     AX = 2011h
  367.     ???
  368. Return: ???
  369. --------s-812012------------------------
  370. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - ???
  371.     AX = 2012h
  372.     ???
  373. Return: ???
  374. --------s-812015------------------------
  375. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - ???
  376.     AX = 2015h
  377.     ???
  378. Return: ???
  379. --------r-82---------------------------------
  380. INT 82 - reserved for BASIC
  381. SeeAlso: INT 81"BASIC",INT 83"BASIC"
  382. --------N-82---------------------------------
  383. INT 82 - IBM TOKEN RING ADAPTER - ???
  384.     AH = function
  385.         00h display message???
  386.         DS:BX -> string
  387.     ???
  388. Return: ???
  389. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  390. --------r-83---------------------------------
  391. INT 83 - reserved for BASIC
  392. SeeAlso: INT 82"BASIC",INT 84"BASIC"
  393. --------s-8300-------------------------------
  394. INT 83 - JM Pro Tracker v5.0 - ???
  395.     AH = 00h
  396.     ???
  397. Return: CF clear (successful)
  398.     AX = ??? (0302h)
  399. Program: JM Pro Tracker is a public-domain resident .MOD (digital music)
  400.       player by Josha Munnik
  401.  
  402. (Table 2559)
  403. Values for JM Pro Tracker error code:
  404.  000Ah    ???
  405.  000Bh    ???
  406.  0014h    ???
  407.  001Eh    some required parameters have not yet been set
  408.  001Fh    already playing???
  409.  FExxh    busy (API call already in progress)
  410.  FFxxh    invalid function number
  411. --------s-8301-------------------------------
  412. INT 83 - JM Pro Tracker v5.0 - ???
  413.     AH = 01h
  414.     DX = ??? or FFFFh
  415.     ???
  416. Return: CF clear if successful
  417.     CF set on error
  418.         AX = error code (see #2559)
  419. --------s-8302-------------------------------
  420. INT 83 - JM Pro Tracker v5.0 - ???
  421.     AH = 02h
  422.     BX = ???
  423.     ???
  424. Return: CF clear if successful
  425.         AX = ???
  426.         BX = ???
  427.         CX = ???
  428.         DX = ???
  429.         SI = ???
  430.     CF set on error
  431.         AX = error code (000Ah,000Bh,other) (see #2559)
  432. --------s-8303-------------------------------
  433. INT 83 - JM Pro Tracker v5.0 - ???
  434.     AH = 03h
  435.     BX = ??? (only low four bits, must be nonzero)
  436.     CX = ???
  437.     ???
  438. Return: CF clear if successful
  439.     CF set on error
  440.         AX = error code (0014h) (see #2559)
  441. --------s-8304-------------------------------
  442. INT 83 - JM Pro Tracker v5.0 - SET DMA BUFFER???
  443.     AH = 04h
  444.     CX = number of bytes in suggested buffer
  445.     ES:DI -> suggested buffer for DMA transfers???
  446. Return: CF clear if successful
  447.         ES:AX -> actual buffer (filled with bytes of 80h)
  448.         CX = actual length (multiple of 4)
  449.     CF set on error
  450.         AX = error code (see #2559)
  451. Note:    the buffer must not cross a 64K DMA page boundary
  452. --------s-8305-------------------------------
  453. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  454.     AH = 05h
  455.     CX = length of buffer
  456.     ES:DI -> buffer for/containing ???
  457. Return: CF clear (successful)
  458. SeeAlso: AH=06h,AH=07h,AH=18h
  459. --------s-8306-------------------------------
  460. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  461.     AH = 06h
  462.     CX = length of buffer
  463.     ES:DI -> buffer for/containing ???
  464. Return: CF clear (successful)
  465. SeeAlso: AH=05h,AH=07h,AH=18h
  466. --------s-8307-------------------------------
  467. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  468.     AH = 07h
  469.     BX = ???
  470.     CX = length of buffer
  471.     ES:DI -> buffer for/containing ???
  472. Return: CF clear (successful)
  473. SeeAlso: AH=05h,AH=06h,AH=18h
  474. --------s-8308-------------------------------
  475. INT 83 - JM Pro Tracker v5.0 - START PLAYING???
  476.     AH = 08h
  477.     ???
  478. Return: CF clear if successful
  479.        ???
  480.     CF set on error
  481.         AX = error code (001Eh,001Fh) (see #2559)
  482. SeeAlso: AH=09h,AH=0Ah
  483. --------s-8309-------------------------------
  484. INT 83 - JM Pro Tracker v5.0 - PAUSE???
  485.     AH = 09h
  486.     ???
  487. Return: CF clear if successful
  488.     CF set on error
  489.         AX = error code (see #2559)
  490. SeeAlso: AH=08h,AH=0Ah
  491. --------s-830A-------------------------------
  492. INT 83 - JM Pro Tracker v5.0 - RESUME???
  493.     AH = 0Ah
  494.     ???
  495. Return: CF clear if successful
  496.     CF set on error
  497.         AX = error code (001Fh) (see #2559)
  498. SeeAlso: AH=08h,AH=09h
  499. --------s-830B-------------------------------
  500. INT 83 - JM Pro Tracker v5.0 - ???
  501.     AH = 0Bh
  502.     BX = ???
  503.     ???
  504. Return: CF clear if successful
  505.     CF set on error
  506. --------s-830C-------------------------------
  507. INT 83 - JM Pro Tracker v5.0 - ???
  508.     AH = 0Ch
  509.     DX bit 5 = ???
  510.     ???
  511. Return: CF clear if successful
  512.         BX = ??? (FFFFh)
  513.         CX = ??? (0000h)
  514.         DX = ???
  515.     CF set on error
  516.         AX = error code (see #2559)
  517. --------s-830D-------------------------------
  518. INT 83 - JM Pro Tracker v5.0 - ???
  519.     AH = 0Dh
  520.     BX = ???
  521.     ???
  522. Return: CF clear (successful)
  523. --------s-830E-------------------------------
  524. INT 83 - JM Pro Tracker v5.0 - ???
  525.     AH = 0Eh
  526.     BX = ??? (ignored if ES:DI = 0000h:0000h)
  527.     ES:DI -> ??? or 0000h:0000h
  528. Return: CF clear (successful)
  529. --------s-830F-------------------------------
  530. INT 83 - JM Pro Tracker v5.0 - ???
  531.     AH = 0Fh
  532.     ???
  533. Return: CF clear if successful
  534.         AX = ???
  535.     CF set on error
  536.         AX = error code (see #2559)
  537. --------s-8310-------------------------------
  538. INT 83 - JM Pro Tracker v5.0 - ???
  539.     AH = 10h
  540.     BL = subfunction???
  541.     CX = ???
  542.     DX = ???
  543.     ???
  544. Return: CF clear if successful
  545.         CX = DX = ???
  546.     CF set on error
  547.         AX = error code (see #2559)
  548. SeeAlso: AH=18h
  549. --------s-8311-------------------------------
  550. INT 83 - JM Pro Tracker v5.0 - ???
  551.     AH = 11h
  552.     BL = ???
  553.     CX = ???
  554. Return: CF clear (successful)
  555. --------s-8312-------------------------------
  556. INT 83 - JM Pro Tracker v5.0 - CLEAR ???
  557.     AH = 12h
  558. Return: nothing
  559. --------s-8313-------------------------------
  560. INT 83 - JM Pro Tracker v5.0 - ???
  561.     AH = 13h
  562.     BX = ???
  563. Return: CF clear (successful)
  564. --------s-8314-------------------------------
  565. INT 83 - JM Pro Tracker v5.0 - ???
  566.     AH = 14h
  567.     ???
  568. Return: CF clear (successful)
  569.     BX = ???
  570. --------s-8315-------------------------------
  571. INT 83 - JM Pro Tracker v5.0 - GET ???
  572.     AH = 15h
  573.     BX = what to get (zero/nonzero)
  574. Return: CF clear if successful
  575.         BX = ???
  576.         DX = ???
  577.     CF set on error
  578.         AX = error code (see #2559)
  579. --------s-8316-------------------------------
  580. INT 83 - JM Pro Tracker v5.0 - ???
  581.     AH = 16h
  582.     AL = subfunction
  583.         00h ???
  584.         Return: BX = ???
  585.             CX = ???
  586.             DX = ???
  587.             ES:DI -> ???
  588.             CF indicates ???
  589.         01h ???
  590.         Return: BX = ???
  591.             CX = ???
  592.             DX = ???
  593. Return: CF clear if successful
  594.     CF set on error
  595.         AX = error code (FFxxh) (see #2559)
  596. --------s-8317-------------------------------
  597. INT 83 - JM Pro Tracker v5.0 - UNHOOK API INTERRUPT
  598.     AH = 17h
  599. Return: CF clear if successful
  600.     CF set on error (hooked by another program)
  601. --------s-8318-------------------------------
  602. INT 83 - JM Pro Tracker v5.0 - SET BUFFERS
  603.     AH = 18h
  604.     ES:DI -> buffer-pointer structure (see #2560)
  605. Return: nothing
  606. SeeAlso: AH=05h,AH=06h,AH=07h,AH=10h
  607.  
  608. Format of JM Pro Tracker buffer-pointer structure:
  609. Offset    Size    Description    (Table 2560)
  610.  00h    WORD    length of ??? buffer (see AH=05h)
  611.  02h    DWORD    -> ??? buffer (see AH=05h)
  612.  06h    WORD    length of ??? buffer (see AH=06h)
  613.  08h    DWORD    -> ??? buffer (see AH=06h)
  614.  0Ch    WORD    length of ??? buffer (see AH=07h)
  615.  0Eh    DWORD    -> ??? buffer (see AH=07h)
  616.  12h    WORD    ??? (see AH=07h)
  617.  14h    WORD    ??? (see AH=10h) (subfunction 01h)
  618.  16h    WORD    ??? (see AH=10h) (subfunction 01h)
  619.  18h    WORD    ??? (see AH=10h) (subfunction 00h)
  620.  1Ah    WORD    ??? (see AH=10h) (subfunction 01h)
  621. --------r-84---------------------------------
  622. INT 84 - reserved for BASIC
  623. SeeAlso: INT 83"BASIC",INT 85"BASIC"
  624. --------r-85---------------------------------
  625. INT 85 - reserved for BASIC
  626. Note:    INT 80 through INT ED are modified but not restored by Direct Access
  627.       v4.0, and may be left dangling by other programs written with the
  628.       same version of compiled BASIC
  629. SeeAlso: INT 84"BASIC",INT 86"BASIC"
  630. --------N-86---------------------------------
  631. INT 86 - NetBIOS - ORIGINAL INT 18
  632. Note:    some implementations of NetBIOS reportedly relocate INT 18 here
  633. SeeAlso: INT 18
  634. --------r-86---------------------------------
  635. INT 86 - IBM ROM BASIC - used while in interpreter
  636. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  637.     BASIC.COM/BASICA.COM do not restore vector on termination
  638. SeeAlso: INT 85"BASIC",INT 87"BASIC"
  639. --------r-86---------------------------------
  640. INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS
  641. SeeAlso: INT 21/AH=4Ch,INT 87"APL"
  642. --------r-87---------------------------------
  643. INT 87 - IBM ROM BASIC - used while in interpreter
  644. Notes:    called by ROM BASIC
  645.     BASIC.COM/BASICA.COM do not restore vector on termination
  646. SeeAlso: INT 86"BASIC",INT 88"BASIC"
  647. --------r-87---------------------------------
  648. INT 87 - APL*PLUS/PC - ???
  649. SeeAlso: INT 86"APL",INT 88/AL=00h
  650. --------v-87---------------------------------
  651. INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!)
  652. Note:    the ZeroHunt virus copies its resident code down to 0000h:021Ch and
  653.       following
  654. SeeAlso: INT 8B"VIRUS"
  655. --------r-88---------------------------------
  656. INT 88 - IBM ROM BASIC - used while in interpreter
  657. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  658.     BASIC.COM/BASICA.COM do not restore vector on termination
  659. SeeAlso: INT 87"BASIC",INT 89"BASIC"
  660. --------r-88--00-----------------------------
  661. INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE
  662.     AL = 00h
  663.     BX = STPTR of the variable to be assigned
  664.     ES:SI -> model of type, rank, and shape (see #2561)
  665. Return: ES:DI -> first data byte of object
  666.     DX:CX = number of elements in the object
  667. SeeAlso: INT C8"APL"
  668.  
  669. Format of APL*PLUS/PC shape model:
  670. Offset    Size    Description    (Table 2561)
  671.  00h    BYTE    type
  672.         01h character (2-byte dimension sizes)
  673.         02h integer (2-byte dimension sizes)
  674.         08h floating point (2-byte dimension sizes)
  675.         11h character (4-byte dimension sizes)
  676.         12h integer (4-byte dimension sizes)
  677.         18h floating point (4-byte dimension sizes)
  678.  01h    BYTE    rank
  679.  02h    (D)WORD first dimension of shape
  680.  N    (D)WORD second dimension of shape
  681.     ...
  682. --------r-88--01-----------------------------
  683. INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE
  684.     AL = 01h
  685.     AH = rank
  686.     BX = STPTR of the variable to be assigned
  687.     CX = first dimension (if any)
  688.     DX = second dimension (if any)
  689. Return: ES:DI -> object
  690.     CX = number of elements in the object
  691. Note:    each dimension must be 32767 or smaller
  692. SeeAlso: AL=02h,AL=08h,INT C8"APL"
  693. --------r-88--02-----------------------------
  694. INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE
  695.     AL = 02h
  696.     AH = rank
  697.     BX = STPTR of the variable to be assigned
  698.     CX = first dimension (if any)
  699.     DX = second dimension (if any)
  700. Return: ES:DI -> object
  701.     CX = number of elements in the object
  702. Note:    each dimension must be 32767 or smaller
  703. SeeAlso: AL=01h,AL=08h,INT C8"APL"
  704. --------r-88--08-----------------------------
  705. INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE
  706.     AL = 08h
  707.     AH = rank
  708.     BX = STPTR of the variable to be assigned
  709.     CX = first dimension (if any)
  710.     DX = second dimension (if any)
  711. Return: ES:DI -> object
  712.     CX = number of elements in the object
  713. Note:    each dimension must be 32767 or smaller
  714. SeeAlso: AL=01h,AL=02h,INT C8"APL"
  715. --------r-88--F5-----------------------------
  716. INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
  717.     AL = F5h
  718.     BX = STPTR of object
  719. SeeAlso: INT C8"APL"
  720. --------r-88--F6-----------------------------
  721. INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
  722.     AL = F6h
  723.     BX = STPTR of object
  724. SeeAlso: AL=F7h,AL=F8h,INT C8"APL"
  725. --------r-88--F7-----------------------------
  726. INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
  727.     AL = F7h
  728.     BX = STPTR of object
  729. SeeAlso: AL=F6h,AL=F8h,INT C8"APL"
  730. --------r-88--F8-----------------------------
  731. INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
  732.     AL = F8h
  733.     BX = STPTR of object
  734. Return: BX = name's outswapping status
  735.         0000h eligible
  736.         0001h not eligible
  737. SeeAlso: AL=F6h,AL=F7h,INT C8"APL"
  738. --------r-88--F9-----------------------------
  739. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  740.     AL = F9h
  741.     ES:SI -> name
  742.     CX = length of name
  743. Return: CF set if name ill-formed or already in use
  744.         BX = STPTR if already in symbol table
  745.     CF clear if name is available for use
  746.         BX = 0000h
  747. Note:    does not force the name into the workspace
  748. SeeAlso: AL=FEh,AL=FFh,INT C8"APL"
  749. --------r-88--FC-----------------------------
  750. INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION
  751.     AL = FCh
  752.     BX = amount of memory needed (paragraphs)
  753. Return: CF clear if memory available
  754.     CF set if a workspace compaction is required
  755. SeeAlso: AL=FDh,INT C8"APL"
  756. --------r-88--FD-----------------------------
  757. INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY
  758.     AL = FDh
  759. Return: BX = number of paragraphs available in workspace
  760. SeeAlso: AL=FCh,INT C8"APL"
  761. --------r-88--FE-----------------------------
  762. INT 88 - APL*PLUS/PC - CREATE NAME
  763.     AL = FEh
  764.     ES:SI -> name
  765.     CX = length of name
  766. Return: BX = STPTR of name
  767.     DX = interpreter's data segment
  768. SeeAlso: AL=F9h,AL=FFh,INT C8"APL"
  769. --------r-88--FF-----------------------------
  770. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  771.     AL = FFh
  772.     ES:SI -> name
  773.     CX = length of name
  774. Return: CF set if name ill-formed or already in use
  775.         BX = STPTR if already in symbol table
  776.     CF clear if name is available for use
  777.         BX = 0000h
  778. Note:    forces the name into the workspace and makes it immune from outswapping
  779. SeeAlso: AL=F9h,AL=FEh,INT C8"APL"
  780. --------r-89---------------------------------
  781. INT 89 - IBM ROM BASIC - used while in interpreter
  782. Notes:    called by ROM BASIC
  783.     BASIC.COM/BASICA.COM do not restore vector on termination
  784. SeeAlso: INT 88"BASIC",INT 8A"BASIC"
  785. --------r-8A---------------------------------
  786. INT 8A - IBM ROM BASIC - used while in interpreter
  787. Notes:    called by ROM BASIC
  788.     BASIC.COM/BASICA.COM do not restore vector on termination
  789. SeeAlso: INT 89"BASIC",INT 8B"BASIC"
  790. --------r-8A---------------------------------
  791. INT 8A - APL*PLUS/PC - PRINT SCREEN
  792. Note:    same as INT 05
  793. SeeAlso: INT 05,INT 8C"APL",INT CA"APL"
  794. --------r-8B---------------------------------
  795. INT 8B - IBM ROM BASIC - used while in interpreter
  796. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  797.     BASIC.COM/BASICA.COM do not restore vector on termination
  798. SeeAlso: INT 8A"BASIC",INT 8C"BASIC"
  799. --------r-8B---------------------------------
  800. INT 8B - APL*PLUS/PC - BEEP
  801. Note:    same as printing a ^G via INT 21/AH=02h
  802. SeeAlso: INT 21/AH=02h,INT CB"APL"
  803. --------v-8B---------------------------------
  804. INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!)
  805. Note:    if the ZeroHunt virus is resident, this vector will contain either
  806.       EE83h:019Bh (ZH-411) or EE83h:019Fh (ZH-415)
  807. SeeAlso: INT 70"VIRUS",INT 87"VIRUS",INT 9C"VIRUS"
  808. --------r-8C---------------------------------
  809. INT 8C - IBM ROM BASIC - used while in interpreter
  810. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  811.     BASIC.COM/BASICA.COM do not restore vector on termination
  812. --------r-8C---------------------------------
  813. INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY
  814.     AX = flag
  815.         0000h do not save display attributes
  816.         0001h save attributes
  817. SeeAlso: INT CC"APL"
  818. --------r-8D---------------------------------
  819. INT 8D - IBM ROM BASIC - used while in interpreter
  820. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  821.     BASIC.COM/BASICA.COM do not restore vector on termination
  822. --------r-8E---------------------------------
  823. INT 8E - IBM ROM BASIC - used while in interpreter
  824. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  825.     BASIC.COM/BASICA.COM do not restore vector on termination
  826. --------r-8F---------------------------------
  827. INT 8F - IBM ROM BASIC - used while in interpreter
  828. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  829.     BASIC.COM/BASICA.COM do not restore vector on termination
  830. --------r-90---------------------------------
  831. INT 90 - IBM ROM BASIC - used while in interpreter
  832. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  833.     BASIC.COM/BASICA.COM do not restore vector on termination
  834. --------r-90---------------------------------
  835. INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER
  836. --------r-91---------------------------------
  837. INT 91 - IBM ROM BASIC - used while in interpreter
  838. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  839.     BASIC.COM/BASICA.COM do not restore vector on termination
  840. --------N-91---------------------------------
  841. INT 91 - IBM TOKEN RING ADAPTER - ???
  842. SeeAlso: INT 81"TOKEN RING",INT 82"TOKEN RING",INT 93"TOKEN RING"
  843. --------r-92---------------------------------
  844. INT 92 - IBM ROM BASIC - used while in interpreter
  845. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  846.     BASIC.COM/BASICA.COM do not restore vector on termination
  847. --------N-92---------------------------------
  848. INT 92 - Sangoma X.25 INTERFACE PROGRAM
  849.     BX:DX -> control block
  850. SeeAlso: INT 68"Sangoma"
  851. --------e-92E1-------------------------------
  852. INT 92 - Da Vinci eMail Dispatcher INTERFACE
  853.     AH = E1h
  854.     AL = function
  855.     BX = stack count (number of words to push)
  856.     CX:DX -> stack data (in word-reversed order ready to push)
  857. Return: AX = status (see #2562)
  858. Note:    preserves BP, DS, SI, DI; other registers may be destroyed
  859.  
  860. (Table 2562)
  861. Values for Da Vinci eMail function status:
  862.  0001h    success
  863.  FF97h    "ERS_NOT_AVAILABLE"
  864.  FF99h    "ERS_TOO_MANY_NAMES"
  865.  FF9Ah    "ERS_BAD_NAME_PASSWORD"
  866.  FFE3h    "ERS_NAME_NOT_FOUND"
  867.  FFF8h    "ERS_USE_STRING" (call NetGetError to get error string)
  868.  FFFFh    "ERS_NO_SUCH_FILE"
  869. --------e-92E100-----------------------------
  870. INT 92 - Da Vinci eMail Dispatcher - "NetInitStart"
  871.     AX = E100h
  872.     BX = size of parameter block in words (000Ah)
  873.     CX:DX -> parameter block (see #2563)
  874. Return: AX = 0001h success
  875. Desc:    this function is used to initialize the dispatcher
  876. SeeAlso: AX=E101h,AX=E103h
  877.  
  878. Format of Da Vinci eMail "NetInitStart" parameter block:
  879. Offset    Size    Description    (Table 2563)
  880.  00h    WORD    segment of ???
  881.  02h    WORD    offset of ???
  882.  04h    WORD    high part of long ???
  883.  06h    WORD    low part of long ???
  884.  08h    WORD    high part of long ???
  885.  0Ah    WORD    low part of long ???
  886.  0Ch    WORD    high part of long ???
  887.  0Eh    WORD    low part of long ???
  888.  10h    WORD    high part of long ???
  889.  12h    WORD    low part of long ???
  890. --------e-92E101BX0000-----------------------
  891. INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck"
  892.     AX = E101h
  893.     BX = 0000h
  894.     CX:DX ignored
  895. Return: AX = 0001h success
  896. SeeAlso: AX=E100h,AX=E180h
  897. --------e-92E102BX0000-----------------------
  898. INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver"
  899.     AX = E102h
  900.     BX = 0000h
  901.     CX:DX ignored
  902. Return: AX = 0001h success
  903. Desc:    this function is used to determine if the dispatcher is loaded
  904. SeeAlso: AX=E10Bh,AX=E180h
  905. --------e-92E103BX0000-----------------------
  906. INT 92 - Da Vinci eMail Dispatcher - "NetTerminate"
  907.     AX = E103h
  908.     BX = 0000h
  909.     CX:DX ignored
  910. Return: AX = status (see #2562)
  911. SeeAlso: AX=E100h
  912. --------e-92E104-----------------------------
  913. INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs"
  914.     AX = E104h
  915.     BX = size of parameter block in words (0006h)
  916.     CX:DX -> parameter block (see #2564)
  917. Return: AX = status (see #2562)
  918. Desc:    this function is used to verify node address for usernames
  919. SeeAlso: AX=E180h
  920.  
  921. Format of Da Vinci eMail "NetWhereIs" parameter block:
  922. Offset    Size    Description    (Table 2564)
  923.  00h    WORD    segment of node address buffer
  924.  02h    WORD    offset of node address buffer
  925.  04h    WORD    segment of uppercase username
  926.  06h    WORD    offset of uppercase username
  927.  08h    WORD    segment of "DVSEMAIL"
  928.  0Ah    WORD    offset of "DVSEMAIL"
  929. --------e-92E105-----------------------------
  930. INT 92 - Da Vinci eMail Dispatcher - "NetOpen"
  931.     AX = E105h
  932.     BX = size of parameter block in words (0007h)
  933.     CX:DX -> parameter block (see #2565)
  934. Return: AX = 0000h Error
  935.     AX = handle
  936. Desc:    this function is used to open a submission channel
  937. SeeAlso: AX=E10Ah,AX=E106h,AX=E108h
  938.  
  939. Format of Da Vinci eMail "NetOpen" parameter block:
  940. Offset    Size    Description    (Table 2565)
  941.  00h    WORD    operation (1 = read, 2 = write)
  942.  02h    WORD    segment of uppercase To: username
  943.  04h    WORD    offset of uppercase To: username
  944.  06h    WORD    segment of "DVSEMAIL"
  945.  08h    WORD    offset of "DVSEMAIL"
  946.  0Ah    WORD    segment of node address
  947.  0Ch    WORD    offset of node address
  948. --------e-92E106BX0004-----------------------
  949. INT 92 - Da Vinci eMail Dispatcher - "NetRead"
  950.     AX = E106h
  951.     BX = 0004h
  952.     CX:DX -> parameter block
  953. Return: AX = 0001h
  954. SeeAlso: AX=E108h
  955. --------e-92E107BX0002-----------------------
  956. INT 92 - Da Vinci eMail Dispatcher - "NetGetError"
  957.     AX = E107h
  958.     BX = 0002h
  959.     CX:DX -> parameter block
  960. Return: AX = 0001h
  961. SeeAlso: AX=E109h,AX=E180h
  962. --------e-92E108-----------------------------
  963. INT 92 - Da Vinci eMail Dispatcher - "NetWrite"
  964.     AX = E108h
  965.     BX = size of parameter block in words (0004h)
  966.     CX:DX -> parameter block (see #2566)
  967. Return: AX = amount written
  968. Desc:    This function is used to write transactions to the dispatcher.
  969.       The command block is written first and then another call is used
  970.       to write the associated data.
  971. SeeAlso: AX=E106h
  972.  
  973. Format of Da Vinci eMail "NetWrite" parameter block:
  974. Offset    Size    Description    (Table 2566)
  975.  00h    WORD    buffer count (see #2568)
  976.  02h    WORD    segment of command buffer (see #2567)
  977.  04h    WORD    offset of command buffer
  978.  06h    WORD    handle from NetOpen
  979.  
  980. Format of Da Vinci eMail command buffer:
  981. Offset    Size    Description    (Table 2567)
  982.  00h    BYTE    command
  983.         21h '!' Protocol commands for remote control
  984.         41h 'A' Authorization protocol element
  985.         42h 'B' Return(back) routing information
  986.             Associated data is the From: username
  987.         43h 'C' Carbon Copy list
  988.             Associated data is a comma delimitted list of usernames
  989.         44h 'D' Distribution list
  990.             Associated data is a comma delimitted list of usernames
  991.         45h 'E' Mail end marker
  992.             No associated data
  993.         48h 'H' Mail message header
  994.             Associated data is a message header buffer
  995.         4Dh 'M' Mail message
  996.             Associated data is the body of the message
  997.         4Fh 'O' Object
  998.         50h 'P' Paperclip attachment
  999.         52h 'R' Routing information
  1000.             Associated data is the To: username
  1001.         53h 'S' Subject
  1002.             Associated data is the subject of the message
  1003.         54h 'T' Trail of Reply/Forwards
  1004.  01h    BYTE    subcommand
  1005.  02h    DWORD    length of associated data
  1006.  
  1007. Format of Da Vinci eMail message header buffer:
  1008. Offset    Size    Description    (Table 2568)
  1009.  00h 30 BYTEs    subject line
  1010.  1Eh 24 BYTEs    To
  1011.  36h 24 BYTEs    From
  1012.  4Eh    DWORD    Time
  1013.         BYTE    00h
  1014.         BYTE    hour
  1015.         BYTE    minute
  1016.         BYTE    second
  1017.  52h    DWORD    Date
  1018.         BYTE    00h
  1019.         BYTE    year
  1020.         BYTE    month
  1021.         BYTE    day
  1022.  56h    DWORD    serial number (00000000h)
  1023.  5Ah    WORD    mail types (see #2569)
  1024.  5Ch    WORD    special types (0)
  1025.  
  1026. Bitfields for Da Vinci eMail mail types:
  1027. Bit(s)    Description    (Table 2569)
  1028.  7    blind carbon copy
  1029.  6    carbon copy
  1030.  5    priority
  1031.  4    confidential
  1032.  3    certified
  1033.  2    bulk
  1034.  1-0    class (first, second, third, bulk)
  1035. --------e-92E109-----------------------------
  1036. INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)
  1037.     AX = E109h
  1038.     BX = size of parameter block in words (0001h)
  1039.     CX:DX -> parameter block (see #2570)
  1040. Return: AX = FF97h (ERS_NOT_AVAILABLE)
  1041. SeeAlso: AX=E107h,AX=E180h
  1042.  
  1043. Format of Da Vinci eMail "NetErrorFix" parameter block:
  1044. Offset    Size    Description    (Table 2570)
  1045.  00h    WORD    ???
  1046. --------e-92E10A-----------------------------
  1047. INT 92 - Da Vinci eMail Dispatcher - "NetClose"
  1048.     AX = E10Ah
  1049.     BX = size of parameter block in words (0001h)
  1050.     CX:DX -> parameter block (see #2571)
  1051. Return: AX = 0001h
  1052. Desc:    this function is used to close a dispatcher handle
  1053. SeeAlso: AX=E105h
  1054.  
  1055. Format of Da Vinci eMail "NetClose" parameter block:
  1056. Offset    Size    Description    (Table 2571)
  1057.  00h    WORD    handle from NetOpen
  1058. --------e-92E10B-----------------------------
  1059. INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue"
  1060.     AX = E10Bh
  1061.     BX = size of parameter block in words (0004h)
  1062.     CX:DX -> parameter block (see #2572)
  1063. Return: AX = 0001h
  1064. SeeAlso: AX=E102h,AX=E10Ch
  1065.  
  1066. Format of Da Vinci eMail "NetCheckQueue" parameter block:
  1067. Offset    Size    Description    (Table 2572)
  1068.  00h    WORD    segment of 24-byte username buffer
  1069.  02h    WORD    offset of 24-byte username buffer
  1070.  04h    WORD    segment of 24-byte protocol buffer
  1071.  06h    WORD    offset of 24-byte protocol buffer
  1072. --------e-92E10C-----------------------------
  1073. INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue"
  1074.     AX = E10Ch
  1075.     BX = size of parameter block in words (0002h)
  1076.     CX:DX -> parameter block (see #2573)
  1077. Return: AX = 0001h
  1078. SeeAlso: AX=E10Bh
  1079.  
  1080. Format of Da Vinci eMail "NetReadQueue" parameter block:
  1081. Offset    Size    Description    (Table 2573)
  1082.  00h    WORD    Segment of 128 byte node address buffer
  1083.  02h    WORD    Offset of 128 byte node address buffer
  1084. --------e-92E10D-----------------------------
  1085. INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName"
  1086.     AX = E10Dh
  1087.     BX = size of parameter block in words (0006h)
  1088.     CX:DX -> parameter block (see #2574)
  1089. Return: AX = status (see #2562)
  1090. Desc:    this function is used to verify username/password
  1091. SeeAlso: AX=E10Eh
  1092.  
  1093. Format of Da Vinci eMail "NetSubmitName" parameter block:
  1094. Offset    Size    Description    (Table 2574)
  1095.  00h    WORD    segment of uppercase password string
  1096.  02h    WORD    offset of uppercase password string
  1097.  04h    WORD    segment of uppercase username string
  1098.  06h    WORD    offset of uppercase username string
  1099.  08h    WORD    segment of "DVSEMAIL"
  1100.  0Ah    WORD    offset of "DVSEMAIL"
  1101. --------e-92E10E-----------------------------
  1102. INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName"
  1103.     AX = E10Eh
  1104.     BX = size of parameter block in words (0004h)
  1105.     CX:DX -> parameter block (see #2575)
  1106. Return: AX = 0001h
  1107. Desc:    this function is used to remove a username
  1108. SeeAlso: AX=E10Dh
  1109.  
  1110. Format of Da Vinci eMail "NetRemoveName" parameter block:
  1111. Offset    Type    Description    (Table 2575)
  1112.  00h    WORD    segment of uppercase username
  1113.  02h    WORD    offset of uppercase username
  1114.  04h    WORD    segment of "DVSEMAIL"
  1115.  06h    WORD    offset of "DVSEMAIL"
  1116. --------e-92E10FBX0000-----------------------
  1117. INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY
  1118.     AX = E10Fh
  1119.     BX = 0000h
  1120.     CX:DX ignored
  1121. Return: AX = 0001h
  1122. SeeAlso: AX=E180h
  1123. --------e-92E110-----------------------------
  1124. INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"
  1125.     AX = E110h
  1126.     BX = size of parameter block in words (0006h)
  1127.     CX:DX -> parameter block (see #2576)
  1128. Return: AX = 0001h
  1129. SeeAlso: AX=E111h,AX=E113h
  1130.  
  1131. Format of Da Vinci eMail "NetGetAltRoute" parameter block:
  1132. Offset    Size    Description    (Table 2576)
  1133.  00h  6 WORDs    ???
  1134. --------e-92E111-----------------------------
  1135. INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"
  1136.     AX = E111h
  1137.     BX = size of parameter block in words (0004h)
  1138.     CX:DX -> parameter block (see #2577)
  1139. Return: AX = 0001h
  1140. SeeAlso: AX=E110h,AX=E113h
  1141.  
  1142. Format of Da Vinci eMail "NetDeleteAltRoutes" parameter block:
  1143. Offset    Size    Description    (Table 2577)
  1144.  00h  4 WORDs    ???
  1145. --------e-92E112-----------------------------
  1146. INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword"
  1147.     AX = E112h
  1148.     BX = size of parameter block in words (0008h)
  1149.     CX:DX -> parameter block (see #2578)
  1150. Return: AX = 0001h
  1151. SeeAlso: AX=E180h
  1152.  
  1153. Format of Da Vinci eMail "NetChangePassword" parameter block:
  1154. Offset    Size    Description    (Table 2578)
  1155.  00h  8 WORDs    ???
  1156. --------e-92E113-----------------------------
  1157. INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"
  1158.     AX = E113h
  1159.     BX = size of parameter block in words (0008h)
  1160.     CX:DX -> parameter block (see #2579)
  1161. Return: AX = 0001h
  1162. SeeAlso: AX=E110h,AX=E111h
  1163.  
  1164. Format of Da Vinci eMail "NetSetAltRoute" parameter block:
  1165. Offset    Size    Description    (Table 2579)
  1166.  00h  8 WORDs    ???
  1167. --------e-92E175-----------------------------
  1168. INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR
  1169.     AX = E175h
  1170. Return: AX = 0012h
  1171.     BX = PSP
  1172. SeeAlso: AX=E180h
  1173. --------e-92E180-----------------------------
  1174. INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK
  1175.     AX = E180h
  1176. Return: AX = 0012h if installed
  1177.     ES:DX -> '$'-terminated driver information string
  1178. SeeAlso: AX=E102h,AX=E105h,AX=E10Fh,AX=E175h
  1179. --------r-93---------------------------------
  1180. INT 93 - IBM ROM BASIC - used while in interpreter
  1181. Notes:    called by ROM BASIC
  1182.     BASIC.COM/BASICA.COM do not restore vector on termination
  1183. --------N-93---------------------------------
  1184. INT 93 - IBM TOKEN RING ADAPTER - ???
  1185. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  1186. --------r-94---------------------------------
  1187. INT 94 - IBM ROM BASIC - used while in interpreter
  1188. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1189.     BASIC.COM/BASICA.COM do not restore vector on termination
  1190. --------s-94----SI0000-----------------------
  1191. INT 94 u - PCM driver - INITIALIZE SOUND
  1192.     SI = 0000h
  1193.     ES:BX -> parameters
  1194. Return: ???
  1195. Program: PCM.COM is a sound driver for Media Vision's Pro Audio Spectrum
  1196.       sound boards
  1197. Note:    the installation check consists of testing for the signature string
  1198.       "PCMDRIVER" immediately preceding the interrupt handler; the word
  1199.       preceding the signature gives the PCM driver's version
  1200. SeeAlso: SI=0001h,SI=0002h,SI=0003h,SI=0004h,SI=0005h,SI=000Ah
  1201. Index:    installation check;PCM driver|PCM.COM;installation check
  1202. Index:    PCM driver;installation check
  1203. --------s-94----SI0001-----------------------
  1204. INT 94 u - PCM driver - INITIALIZE PCM
  1205.     SI = 0001h
  1206.     ES:BX -> parameters
  1207. Return: ???
  1208. SeeAlso: SI=0000h,SI=0002h,SI=0003h,SI=000Ah
  1209. --------s-94----SI0002-----------------------
  1210. INT 94 u - PCM driver - INITIALIZE PCM INFO
  1211.     SI = 0002h
  1212.     ES:BX -> parameters (see #2580)
  1213. Return: ???
  1214. SeeAlso: SI=0000h,SI=0001h,SI=0003h,SI=000Ah
  1215.  
  1216. Format of PCM driver function 0002h parameters:
  1217. Offset    Size    Description    (Table 2580)
  1218.  00h    DWORD    rate
  1219.  04h    WORD    channel number
  1220.  06h    WORD    "comp"
  1221.  08h    WORD    "dsize"
  1222. --------s-94----SI0003-----------------------
  1223. INT 94 u - PCM driver - INITIALIZE DMA BUFFER
  1224.     SI = 0003h
  1225.     ES:BX -> parameters (see #2581)
  1226. Return: ???
  1227. SeeAlso: SI=0000h,SI=000Ah,SI=000Bh
  1228.  
  1229. Format of PCM driver function 0003h parameters:
  1230. Offset    Size    Description    (Table 2581)
  1231.  00h    DWORD    -> DMA buffer
  1232.  04h    WORD    size of DMA buffer
  1233.  06h    WORD    number of divisions
  1234. --------s-94----SI0004-----------------------
  1235. INT 94 u - PCM driver - INITIALIZE USER FUNCTION
  1236.     SI = 0004h
  1237.     ES:BX -> parameters (see #2582)
  1238. Return: ???
  1239. SeeAlso: SI=0000h,SI=0001h
  1240.  
  1241. Format of PCM driver function 0004h parameters:
  1242. Offset    Size    Description    (Table 2582)
  1243.  00h    DWORD    -> user function
  1244. --------s-94----SI0005-----------------------
  1245. INT 94 u - PCM driver - BEGIN AUDIO PLAY
  1246.     SI = 0005h
  1247. Return: ???
  1248. SeeAlso: SI=0000h,SI=0006h,SI=0007h,SI=0009h
  1249. --------s-94----SI0006-----------------------
  1250. INT 94 u - PCM driver - BEGIN AUDIO RECORD
  1251.     SI = 0006h
  1252. Return: ???
  1253. SeeAlso: SI=0005h,SI=0007h,SI=0009h
  1254. --------s-94----SI0007-----------------------
  1255. INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
  1256.     SI = 0007h
  1257. Return: ???
  1258. SeeAlso: SI=0005h,SI=0006h,SI=0008h
  1259. --------s-94----SI0008-----------------------
  1260. INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
  1261.     SI = 0008h
  1262. Return: ???
  1263. SeeAlso: SI=0007h
  1264. --------s-94----SI0009-----------------------
  1265. INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
  1266.     SI = 0009h
  1267. Return: ???
  1268. SeeAlso: SI=0005h,SI=0006h,SI=0007h
  1269. --------s-94----SI000A-----------------------
  1270. INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
  1271.     SI = 000Ah
  1272. Return: ???
  1273. SeeAlso: SI=0000h,SI=0001h,SI=0003h
  1274. Index:    uninstall;PCM driver
  1275. --------s-94----SI000B-----------------------
  1276. INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
  1277.     SI = 000Bh
  1278.     ES:BX -> parameters (see #2583)
  1279. Return: ???
  1280. SeeAlso: SI=0003h
  1281.  
  1282. Format of PCM driver functio 000Bh parameters:
  1283. Offset    Size    Description    (Table 2583)
  1284.  00h    DWORD    -> memory block to contain DMA buffer
  1285.  04h    WORD    desired size of DMA buffer
  1286. --------s-94----SI000D-----------------------
  1287. INT 94 u - Media Vision PCM.COM - GET STATUS
  1288.     SI = 000Dh
  1289. Return: AX = status (0000h = waiting) (see #2584)
  1290.  
  1291. Bitfields for PCM.COM status:
  1292. Bit(s)    Description    (Table 2584)
  1293.  0    playing
  1294.  1    recording
  1295.  2    SBplaying
  1296.  3    SBrecording
  1297.  14    SBpaused
  1298.  15    paused
  1299. --------s-94----SI8000-----------------------
  1300. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
  1301.     SI = 8000h
  1302. Return: DX:AX -> DMA buffer
  1303. Program: PCM.COM is a superset of the standard PCM driver which provides
  1304.       additional functions for fine control of the driver
  1305. Note:    the installation check for the Media Vision PCM.COM "shark" functions
  1306.       consists of testing for the signature "PCM-SHARK" at offset 107h in
  1307.       the INT 94 handler's segment
  1308. SeeAlso: SI=8001h,SI=8004h
  1309. Index:    installation check;Media Vision PCM.COM|PCM.COM;installation check
  1310. Index:    Media Vision PCM.COM;"shark" functions
  1311. --------s-94----SI8001-----------------------
  1312. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS
  1313.     SI = 8001h
  1314. Return: AX = DMA buffer size
  1315.     DX = divisions
  1316. SeeAlso: SI=8000h
  1317. --------s-94----SI8002-----------------------
  1318. INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS
  1319.     SI = 8002h
  1320. Return: AX = status
  1321.         0000h if board not at specified I/O address
  1322.         other if board found
  1323. Note:    the I/O address is specified by ORing the base I/O port shifted left
  1324.       four bits into SI before calling INT 94
  1325. SeeAlso: SI=8000h
  1326. --------s-94----SI8004-----------------------
  1327. INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER
  1328.     SI = 8004h
  1329. Return: AX = offset of note buffer (segment = segment of internal DMA buffer)
  1330.     DX = size of buffer in note structures
  1331. SeeAlso: SI=8000h
  1332. --------s-94----SI8005-----------------------
  1333. INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE
  1334.     SI = 8005h
  1335. Return: ???
  1336. --------s-94----SI8011-----------------------
  1337. INT 94 u - Media Vision PCM.COM - INITIALIZE
  1338.     SI = 8011h
  1339.     ES:BX -> "iobf91" structure
  1340. Return: ???
  1341. --------s-94----SI8012-----------------------
  1342. INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD
  1343.     SI = 8012h
  1344.     ES:BX -> "i94f92buf" structure
  1345. Return: ???
  1346. SeeAlso: SI=8013h,SI=8014h
  1347. --------s-94----SI8013-----------------------
  1348. INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE
  1349.     SI = 8013h
  1350. Return: AX = number of sounds used
  1351.     DX = maximum handles
  1352. --------s-94----SI8014-----------------------
  1353. INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND
  1354.     SI = 8014h
  1355.     ES:BX -> "i94f92buf" structure to be filled in
  1356.         sound number field set to desired sound
  1357. Return: AX = status
  1358.         0000h successful
  1359.         FFFFh sound number out of range
  1360. SeeAlso: SI=8012h,SI=8013h
  1361. --------s-94----SI8015-----------------------
  1362. INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER
  1363.     SI = 8015h
  1364.     ES:BX -> DMA info structure (see #2585)
  1365. Return: ???
  1366.  
  1367. Format of PCM.COM DMA info structure:
  1368. Offset    Size    Description    (Table 2585)
  1369.  00h    DWORD    -> DMA buffer (offset FFFFh = return current buffer info)
  1370.  04h    WORD    DMA buffer size
  1371.  06h    WORD    divisions
  1372. --------s-94----SI8016-----------------------
  1373. INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY
  1374.     SI = 8016h
  1375.     AX = hotkey number (01h-08h)
  1376. Return: ???
  1377. SeeAlso: AL=02h/SI=8017h
  1378. --------s-94--01SI8017-----------------------
  1379. INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT
  1380.     AL = 01h
  1381.     SI = 8017h
  1382.     AH = new state (00h off, 01h on)
  1383. Return: ???
  1384. SeeAlso: AL=02h/SI=8017h
  1385. --------s-94--02SI8017-----------------------
  1386. INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE
  1387.     AL = 02h
  1388.     SI = 8017h
  1389.     AH = new state (00h off, 01h on)
  1390. Return: ???
  1391. --------s-94--04SI8017-----------------------
  1392. INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE
  1393.     AL = 04h
  1394.     SI = 8017h
  1395.     AH = new state
  1396.         00h off
  1397.         01h on
  1398.         CX = minimum delay
  1399.         DX = maximum delay
  1400. Return: ???
  1401. --------s-94--08SI8017-----------------------
  1402. INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE
  1403.     AL = 08h
  1404.     SI = 8017h
  1405.     AH = new state
  1406.         00h off
  1407.         01h on
  1408.         DX:CX = delay
  1409. Return: ???
  1410. SeeAlso: AL=10h/SI=8017h
  1411. --------s-94--10SI8017-----------------------
  1412. INT 94 u - Media Vision PCM.COM - TIMER CONTROL
  1413.     AL = 10h
  1414.     SI = 8017h
  1415.     AH = timer options (see #2586)
  1416.     DX:CX = delay if AH bit 7 set (one-shot if DX bit 15 set)
  1417. Return: ???
  1418. SeeAlso: AL=08h/SI=8017h
  1419.  
  1420. Bitfields for PCM.COM timer options:
  1421. Bit(s)    Description    (Table 2586)
  1422.  7    set timer
  1423.  6    timer active (timer turned off if clear)
  1424.  5-0    timer number
  1425. --------s-94----SI8018-----------------------
  1426. INT 94 u - Media Vision PCM.COM - GET INFO
  1427.     SI = 8018h
  1428.     AL = what to get
  1429.         00h "F92state"
  1430.         01h "F92bkgd"
  1431.         02h "I10timer"
  1432.         03h "I08state"
  1433. Return: DX:AX -> desired information
  1434. --------r-95---------------------------------
  1435. INT 95 - IBM ROM BASIC - used while in interpreter
  1436. Notes:    called by ROM BASIC
  1437.     BASIC.COM/BASICA.COM do not restore vector on termination
  1438. --------r-95---------------------------------
  1439. INT 95 - APL*PLUS/PC - DETERMINE R= SPACE
  1440. Note:    use only when the R= option is invoked on entering APL
  1441. --------r-96---------------------------------
  1442. INT 96 - IBM ROM BASIC - used while in interpreter
  1443. Notes:    called by ROM BASIC
  1444.     BASIC.COM/BASICA.COM do not restore vector on termination
  1445. --------r-97---------------------------------
  1446. INT 97 - IBM ROM BASIC - used while in interpreter
  1447. Notes:    called by ROM BASIC
  1448.     BASIC.COM/BASICA.COM do not restore vector on termination
  1449. --------r-98---------------------------------
  1450. INT 98 - IBM ROM BASIC - used while in interpreter
  1451. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1452.     BASIC.COM/BASICA.COM do not restore vector on termination
  1453. --------r-99---------------------------------
  1454. INT 99 - IBM ROM BASIC - used while in interpreter
  1455. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1456.     BASIC.COM/BASICA.COM do not restore vector on termination
  1457. --------r-9A---------------------------------
  1458. INT 9A - IBM ROM BASIC - used while in interpreter
  1459. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1460.     BASIC.COM/BASICA.COM do not restore vector on termination
  1461. SeeAlso: INT 80"BASIC",INT 99,INT 9B
  1462. --------r-9B---------------------------------
  1463. INT 9B - IBM ROM BASIC - used while in interpreter
  1464. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1465.     BASIC.COM/BASICA.COM do not restore vector on termination
  1466. SeeAlso: INT 80"BASIC",INT 9A,INT 9C"BASIC"
  1467. --------r-9C---------------------------------
  1468. INT 9C - IBM ROM BASIC - used while in interpreter
  1469. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1470.     BASIC.COM/BASICA.COM do not restore vector on termination
  1471. SeeAlso: INT 80"BASIC",INT 9B,INT 9D"BASIC"
  1472. --------v-9C---------------------------------
  1473. INT 9C - VIRUS - "INT13" - ORIGINAL INT 13h VECTOR
  1474. SeeAlso: INT 8B"VIRUS",INT 9D"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  1475. --------r-9D---------------------------------
  1476. INT 9D - IBM ROM BASIC - used while in interpreter
  1477. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1478.     BASIC.COM/BASICA.COM do not restore vector on termination
  1479. SeeAlso: INT 80"BASIC",INT 9C"BASIC",INT 9E"BASIC"
  1480. --------v-9D---------------------------------
  1481. INT 9D - VIRUS - "INT13" - ROM INT 13h ENTRY POINT
  1482. Note:    this vector is used by the virus to store the result of a call to
  1483.       INT 2F/AH=13h
  1484. SeeAlso: INT 2F/AH=13h,INT 9C"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  1485. --------r-9E---------------------------------
  1486. INT 9E - IBM ROM BASIC - used while in interpreter
  1487. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1488.     BASIC.COM/BASICA.COM do not restore vector on termination
  1489. SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT 9F"BASIC"
  1490. --------v-9E---------------------------------
  1491. INT 9E - VIRUS - "INT13" - ORIGINAL INT 21h VECTOR
  1492. SeeAlso: INT 70"VIRUS",INT 9C"VIRUS",INT 9D"VIRUS",INT E0"VIRUS"
  1493. --------r-9F---------------------------------
  1494. INT 9F - IBM ROM BASIC - used while in interpreter
  1495. Notes:    called by ROM BASIC
  1496.     BASIC.COM/BASICA.COM do not restore vector on termination
  1497. SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT A0"BASIC"
  1498. --------v-9F---------------------------------
  1499. INT 9F - VIRUS - "INT13" - STORAGE FOR USER INT 13h VECTOR
  1500. Note:    while it is infecting a file, the INT13 virus grabs INT 13 and uses
  1501.       this interrupt to store the existing INT 13 vector for later
  1502.       restoration
  1503. SeeAlso: INT 9C"VIRUS",INT 9D"VIRUS",INT D3"VIRUS"
  1504. --------r-A0---------------------------------
  1505. INT A0 - IBM ROM BASIC - used while in interpreter
  1506. Notes:    called by ROM BASIC
  1507.     BASIC.COM/BASICA.COM do not restore vector on termination
  1508. SeeAlso: INT 80"BASIC",INT 9F"BASIC",INT A1"BASIC"
  1509. --------r-A0---------------------------------
  1510. INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE
  1511. SeeAlso: INT 59
  1512. --------r-A1---------------------------------
  1513. INT A1 - IBM ROM BASIC - used while in interpreter
  1514. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1515.     BASIC.COM/BASICA.COM do not restore vector on termination
  1516. SeeAlso: INT 80"BASIC",INT A0"BASIC",INT A2"BASIC"
  1517. --------r-A2---------------------------------
  1518. INT A2 - IBM ROM BASIC - used while in interpreter
  1519. Notes:    called by ROM BASIC
  1520.     BASIC.COM/BASICA.COM do not restore vector on termination
  1521. SeeAlso: INT 80"BASIC",INT A1"BASIC",INT A3"BASIC"
  1522. --------r-A3---------------------------------
  1523. INT A3 - IBM ROM BASIC - used while in interpreter
  1524. Notes:    called by ROM BASIC
  1525.     BASIC.COM/BASICA.COM do not restore vector on termination
  1526. SeeAlso: INT 80"BASIC",INT A2"BASIC",INT A4"BASIC"
  1527. --------r-A4---------------------------------
  1528. INT A4 - IBM ROM BASIC - used while in interpreter
  1529. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1530.     BASIC.COM/BASICA.COM do not restore vector on termination
  1531. SeeAlso: INT 80"BASIC",INT A3"BASIC",INT A5"BASIC"
  1532. --------U-A4---------------------------------
  1533. INT A4 U - Right Hand Man - API
  1534.     AH = function number (v3.3 supports functions 00h-52h)
  1535. Return: CF set on error
  1536.     CF clear if successful
  1537. Program: Right Hand Man is a TSR desk-top utility originally by Red E Products
  1538.       which has evolved into Futurus Team
  1539. Note:    this interrupt is only hooked while popped up
  1540. SeeAlso: INT 2F/AX=A4E0h
  1541. --------r-A5---------------------------------
  1542. INT A5 - IBM ROM BASIC - used while in interpreter
  1543. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1544.     BASIC.COM/BASICA.COM do not restore vector on termination
  1545. SeeAlso: INT 80"BASIC",INT A4"BASIC",INT A6"BASIC"
  1546. --------r-A6---------------------------------
  1547. INT A6 - IBM ROM BASIC - used while in interpreter
  1548. Notes:    called by ROM BASIC
  1549.     BASIC.COM/BASICA.COM do not restore vector on termination
  1550. SeeAlso: INT 80"BASIC",INT A5"BASIC",INT A7"BASIC"
  1551. --------r-A7---------------------------------
  1552. INT A7 - IBM ROM BASIC - used while in interpreter
  1553. Notes:    called by ROM BASIC
  1554.     BASIC.COM/BASICA.COM do not restore vector on termination
  1555. --------r-A8---------------------------------
  1556. INT A8 - IBM ROM BASIC - used while in interpreter
  1557. Notes:    called by ROM BASIC
  1558.     BASIC.COM/BASICA.COM do not restore vector on termination
  1559. --------r-A9---------------------------------
  1560. INT A9 - IBM ROM BASIC - used while in interpreter
  1561. Notes:    called by ROM BASIC
  1562.     BASIC.COM/BASICA.COM do not restore vector on termination
  1563. --------r-AA---------------------------------
  1564. INT AA - IBM ROM BASIC - used while in interpreter
  1565. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1566.     BASIC.COM/BASICA.COM do not restore vector on termination
  1567. --------r-AB---------------------------------
  1568. INT AB - IBM ROM BASIC - used while in interpreter
  1569. Notes:    called by ROM BASIC
  1570.     BASIC.COM/BASICA.COM do not restore vector on termination
  1571. --------r-AC---------------------------------
  1572. INT AC - IBM ROM BASIC - used while in interpreter
  1573. Notes:    called by ROM BASIC
  1574.     BASIC.COM/BASICA.COM do not restore vector on termination
  1575. --------r-AD---------------------------------
  1576. INT AD - IBM ROM BASIC - used while in interpreter
  1577. Notes:    called by ROM BASIC
  1578.     BASIC.COM/BASICA.COM do not restore vector on termination
  1579. --------r-AE---------------------------------
  1580. INT AE - IBM ROM BASIC - used while in interpreter
  1581. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1582.     BASIC.COM/BASICA.COM do not restore vector on termination
  1583. --------r-AF---------------------------------
  1584. INT AF - IBM ROM BASIC - used while in interpreter
  1585. Notes:    called by ROM BASIC
  1586.     BASIC.COM/BASICA.COM do not restore vector on termination
  1587. --------r-B0---------------------------------
  1588. INT B0 - IBM ROM BASIC - used while in interpreter
  1589. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1590.     BASIC.COM/BASICA.COM do not restore vector on termination
  1591. --------r-B1---------------------------------
  1592. INT B1 - IBM ROM BASIC - used while in interpreter
  1593. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1594.     BASIC.COM/BASICA.COM do not restore vector on termination
  1595. --------r-B2---------------------------------
  1596. INT B2 - IBM ROM BASIC - used while in interpreter
  1597. Notes:    called by ROM BASIC
  1598.     BASIC.COM/BASICA.COM do not restore vector on termination
  1599. --------r-B3---------------------------------
  1600. INT B3 - IBM ROM BASIC - used while in interpreter
  1601. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1602.     BASIC.COM/BASICA.COM do not restore vector on termination
  1603. --------U-B370-------------------------------
  1604. INT B3 - ZIPKEY - GET VERSION
  1605.     AH = 70h
  1606. Return: AH = major version
  1607.     AL = minor version
  1608.     CL = number of states and territories in current database
  1609.     DH = year of current database - 1900
  1610.     DL = month of current database's file date
  1611. Program: ZIPKEY is a resident ZIPCODE database by Eric Isaacson
  1612. Note:    if installed, the string "ZIPKEY" is present at offset 75h in the
  1613.       interrupt handler's segment, and the byte at 7Bh contains the API
  1614.       version number (00h for v1.x, 01h for v2.0)
  1615. --------U-B371-------------------------------
  1616. INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE
  1617.     AH = 71h
  1618.     BX = abbreviation, in either case (first letter in BL)
  1619. Return: CF set on error
  1620.         AL = FFh
  1621.     CF clear if successful
  1622.         AL = ZIPKEY state code
  1623. SeeAlso: AH=72h
  1624. --------U-B372-------------------------------
  1625. INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION
  1626.     AH = 72h
  1627.     BL = ZIPKEY state code
  1628. Return: CF set on error
  1629.         AX destroyed
  1630.     CF clear if successful
  1631.         AX = abbreviation, in upper case
  1632. SeeAlso: AH=71h,AH=73h
  1633. --------U-B373-------------------------------
  1634. INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME
  1635.     AH = 73h
  1636.     BL = ZIPKEY state code
  1637.     ES:DI -> buffer for name
  1638. Return: CF set on error
  1639.         AX destroyed
  1640.     CF clear if successful
  1641.         ES:DI points one byte beyond end of name
  1642. SeeAlso: AH=72h
  1643. --------U-B374-------------------------------
  1644. INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS
  1645.     AH = 74h
  1646.     DX = zipcode region (0-999)
  1647.     CH = last two digits of zipcode (0-99)
  1648.     ES:DI -> buffer
  1649. Return: CF set on error
  1650.         AX destroyed
  1651.     CF clear if successful
  1652.         ES:DI points one byte beyond end of digit string
  1653. --------U-B375-------------------------------
  1654. INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE
  1655.     AH = 75h
  1656.     DX = zipcode region (0-999)
  1657.     CH = last two digits of zipcode (0-99)
  1658. Return: CF set on error (zipcode not found)
  1659.         AL = suggested state code, FFh if none
  1660.     CF clear if successful
  1661.         AL = ZIPKEY state code
  1662.         BX = area code (v2.0+)
  1663. SeeAlso: AH=76h,AH=79h
  1664. --------U-B376-------------------------------
  1665. INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE
  1666.     AH = 76h
  1667.     DX = zipcode region (0-999)
  1668.     CH = last two digits of zipcode (0-99)
  1669.     ES:DI -> buffer for name
  1670. Return: CF set on error
  1671.         AL = suggested state code, FFh if none
  1672.         ES:DI buffer filled with suggested city name
  1673.     CF clear if successful
  1674.         AL = ZIPKEY state code
  1675.         BX = area code (v2.0+)
  1676.         ES:DI points one byte beyond end of name
  1677. SeeAlso: AH=75h,AH=78h,AH=7Eh
  1678. --------U-B377-------------------------------
  1679. INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE
  1680.     AH = 77h
  1681.     DX = zipcode region (0-999)
  1682.     CH = last two digits of zipcode (0-99)
  1683.     BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key
  1684. Return: CF set on error
  1685.         AX destroyed
  1686.     CF clear if successful
  1687.         zipcode specification as defined by the BX keystroke is placed in
  1688.           keyboard buffer, as if the user had popped up ZIPKEY and exited
  1689.           by pressing the key specified by BX
  1690. --------U-B378-------------------------------
  1691. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY
  1692.     AH = 78h
  1693.     BL = ZIPKEY state code
  1694.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  1695. Return: BH = number of matching entries (set to 51 if more than 50)
  1696.     DX = zipcode region of first match (0-999)
  1697.     CL = last two digits of first zipcode in the range (0-99)
  1698.     CH = last two digits of last zipcode in the range (0-99)
  1699.     AX destroyed
  1700. SeeAlso: AH=79h,AH=7Ah
  1701. --------U-B379-------------------------------
  1702. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY
  1703.     AH = 79h
  1704.     BL = ZIPKEY state code of first state to search
  1705.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  1706. Return: AL = ZIPKEY state code of first matching state
  1707.     BH = number of matching entries (set to 51 if more than 50)
  1708.     DX = zipcode region of first match (0-999)
  1709.     CL = last two digits of first zipcode in first range (0-99)
  1710.     CH = last two digits of last zipcode in first range (0-99)
  1711. Note:    to find all matching cities, repeat search with BL set to one more than
  1712.       the returned AL
  1713. SeeAlso: AH=78h,AH=7Ah
  1714. --------U-B37A-------------------------------
  1715. INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP
  1716.     AH = 7Ah
  1717.     BL = case number (0 to one less than value returned in BH by lookup)
  1718. Return: AL = ZIPKEY state code
  1719.     DX = zipcode region (0-999)
  1720.     CL = last two digits of first zipcode in the range (0-99)
  1721.     CH = last two digits of last zipcode in the range (0-99)
  1722. SeeAlso: AH=78h,AH=79h
  1723. --------U-B37B-------------------------------
  1724. INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT
  1725.     AH = 7Bh
  1726. Return: BL = maximum number of characters for a city name
  1727.     BH = ZIPKEY state code for last city-name search, or FFh if none
  1728.     CX:DX = internal code identifying last city search
  1729.     AX destroyed
  1730. SeeAlso: AH=7Ch
  1731. --------U-B37C-------------------------------
  1732. INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT
  1733.     AH = 7Ch
  1734.     BL = maximum number of characters for a city name
  1735.     BH = ZIPKEY state code for last city-name search, or FFh if none
  1736.     CX:DX = internal code returned by AH=7Bh
  1737. Return: CF set on error
  1738.     CF clear if successful
  1739.     AX destroyed
  1740. SeeAlso: AH=7Bh
  1741. --------U-B37D-------------------------------
  1742. INT B3 - ZIPKEY - REQUEST POP UP
  1743.     AH = 7Dh
  1744.     BL = index number to simulate pressing a hotkey
  1745.         FFh for immediate popup with no playback on return
  1746. Return: CF set on error
  1747.         AL = error code
  1748.         FDh already busy with another request
  1749.         FEh illegal function
  1750.     CF clear if successful
  1751.         AX destroyed
  1752.         window popped up and was closed by the user
  1753. SeeAlso: AH=70h
  1754. --------U-B37E-------------------------------
  1755. INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION
  1756.     AH = 7Eh
  1757.     DX = zipcode region (0-999)
  1758.     ES:DI -> buffer for name
  1759. Return: CF set on error
  1760.         AL = FFh region does not exist
  1761.     CF clear if successful
  1762.         AL = ZIPKEY state code
  1763.         ES:DI points one byte beyond end of name
  1764. SeeAlso: AH=76h
  1765. --------U-B37F-------------------------------
  1766. INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS
  1767.     AH = 7Fh
  1768.     BL = function
  1769.         00h turn off hotkeys
  1770.         01h turn on hotkeys
  1771.         02h return hotkey status
  1772.         03h toggle hotkey status
  1773. Return: AL = hotkey status
  1774.         00h off
  1775.         01h on
  1776. --------U-B380-------------------------------
  1777. INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE
  1778.     AH = 80h
  1779.     BX = telephone area code (decimal)
  1780. Return: CF clear if successful
  1781.         AL = ZIPKEY state code
  1782.         DX = first ZIP region for state (03E8h if Canada)
  1783.         CX = number of ZIP regions in state
  1784.     CF set on error
  1785.         AL = FFh
  1786.         DX = 03E9h
  1787. --------r-B4---------------------------------
  1788. INT B4 - IBM ROM BASIC - used while in interpreter
  1789. Notes:    called by ROM BASIC
  1790.     BASIC.COM/BASICA.COM do not restore vector on termination
  1791. --------r-B4---------------------------------
  1792. INT B4 - StackMan - REQUEST NEW STACK
  1793. Return: SS:SP -> new stack
  1794. Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V.
  1795.       which functions as a replacement for the DOS STACK= command as well
  1796.       as permitting multiple TSRs to share a pool of stack space
  1797. Note:    the installation check consists of testing for the string "STACKXXX" at
  1798.       offset 0Ah from the interrupt handler
  1799. SeeAlso: INT 2F/AX=C9FFh,INT B5"STACKMAN"
  1800. Index:    installation check;STACKMAN
  1801. --------r-B5---------------------------------
  1802. INT B5 - IBM ROM BASIC - used while in interpreter
  1803. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1804.     BASIC.COM/BASICA.COM do not restore vector on termination
  1805. SeeAlso: INT 80"BASIC",INT B4"BASIC",INT B6"BASIC"
  1806. --------r-B5---------------------------------
  1807. INT B5 - StackMan - RESTORE ORIGINAL STACK
  1808.     SS:SP -> stack returned by INT B4
  1809. Return: SS:SP restored to value before INT B4
  1810. SeeAlso: INT 2F/AX=C9FFh,INT B4"StackMan"
  1811. --------m-B5---------------------------------
  1812. INT B5 U - Netroom NETSWAP4 - ???
  1813.     ???
  1814. Return: ???
  1815. SeeAlso: INT 31/AH=57h
  1816. --------r-B6---------------------------------
  1817. INT B6 - IBM ROM BASIC - used while in interpreter
  1818. Notes:    called by ROM BASIC
  1819.     BASIC.COM/BASICA.COM do not restore vector on termination
  1820. SeeAlso: INT 80"BASIC",INT B5"BASIC",INT B7"BASIC"
  1821. --------y-B6---------------------------------
  1822. INT B6 - (NOT A VECTOR!) - USED BY TBFENCE
  1823. Program: TBFence is a security program by ESaSS B.V. which transparently
  1824.       encrypts floppies and optionally allows only encrypted diskettes to
  1825.       be accessed
  1826. Note:    the low word of this vector (0000h:02D8h) contains the segment of the
  1827.       TBFence INT 13h code, which starts with the signature word E487h;
  1828.       this forms the installation check
  1829.     the highest byte of this vector contains the start of a FAR JMP
  1830.       instruction to ???
  1831. SeeAlso: INT B7"TBFENCE"
  1832. Index:    installation check;TBFence
  1833. --------r-B7---------------------------------
  1834. INT B7 - IBM ROM BASIC - used while in interpreter
  1835. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1836.     BASIC.COM/BASICA.COM do not restore vector on termination
  1837. SeeAlso: INT 80"BASIC",INT B6"BASIC",INT B8"BASIC"
  1838. --------y-B7---------------------------------
  1839. INT B7 - TBFENCE - ???
  1840. SeeAlso: INT B6"TBFENCE"
  1841. --------r-B8---------------------------------
  1842. INT B8 - IBM ROM BASIC - used while in interpreter
  1843. Notes:    called by ROM BASIC
  1844.     BASIC.COM/BASICA.COM do not restore vector on termination
  1845. SeeAlso: INT 80"BASIC",INT B7"BASIC",INT B9"BASIC"
  1846. --------r-B9---------------------------------
  1847. INT B9 - IBM ROM BASIC - used while in interpreter
  1848. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1849.     BASIC.COM/BASICA.COM do not restore vector on termination
  1850. --------r-BA---------------------------------
  1851. INT BA - IBM ROM BASIC - used while in interpreter
  1852. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1853.     BASIC.COM/BASICA.COM do not restore vector on termination
  1854. --------r-BB---------------------------------
  1855. INT BB - IBM ROM BASIC - used while in interpreter
  1856. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1857.     BASIC.COM/BASICA.COM do not restore vector on termination
  1858. --------r-BC---------------------------------
  1859. INT BC - IBM ROM BASIC - used while in interpreter
  1860. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1861.     BASIC.COM/BASICA.COM do not restore vector on termination
  1862. --------r-BD---------------------------------
  1863. INT BD - IBM ROM BASIC - used while in interpreter
  1864. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1865.     BASIC.COM/BASICA.COM do not restore vector on termination
  1866. --------r-BE---------------------------------
  1867. INT BE - IBM ROM BASIC - used while in interpreter
  1868. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1869.     BASIC.COM/BASICA.COM do not restore vector on termination
  1870. SeeAlso: INT 80"BASIC",INT BD"BASIC",INT BF"BASIC"
  1871. --------Q-BE---------------------------------
  1872. INT BE - DESQview/X - ???
  1873. Note:    points at an IRET
  1874. SeeAlso: INT 15/AX=BFDEh/BX=0006h,INT 63"DESQview"
  1875. --------r-BF---------------------------------
  1876. INT BF - IBM ROM BASIC - used while in interpreter
  1877. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1878.     BASIC.COM/BASICA.COM do not restore vector on termination
  1879. SeeAlso: INT 80"BASIC",INT BE"BASIC",INT C0"BASIC"
  1880. --------r-C0---------------------------------
  1881. INT C0 - IBM ROM BASIC - used while in interpreter
  1882. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1883.     BASIC.COM/BASICA.COM do not restore vector on termination
  1884. SeeAlso: INT 80"BASIC",INT BF"BASIC",INT C1"BASIC"
  1885. --------d-C0---------------------------------
  1886. INT C0 - AMI BIOS - DRIVE 0 DATA
  1887. Note:    this vector is used by some AMI BIOSes to store the first four bytes
  1888.       of the hard disk parameter table
  1889. SeeAlso: INT 41,INT 60"Adaptec",INT C1"AMI",INT C2"AMI",INT C3"AMI",INT C4"AMI"
  1890. --------r-C1---------------------------------
  1891. INT C1 - IBM ROM BASIC - used while in interpreter
  1892. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1893.     BASIC.COM/BASICA.COM do not restore vector on termination
  1894. SeeAlso: INT 80"BASIC",INT C0"BASIC",INT C2"BASIC"
  1895. --------d-C1---------------------------------
  1896. INT C1 - AMI BIOS - DRIVE 0 DATA
  1897. Note:    this vector is used by some AMI BIOSes to store the second four bytes
  1898.       of the hard disk parameter table
  1899. SeeAlso: INT 41,INT 60"Adaptec",INT C0"AMI",INT C2"AMI",INT C3"AMI"
  1900. --------r-C2---------------------------------
  1901. INT C2 - IBM ROM BASIC - used while in interpreter
  1902. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1903.     BASIC.COM/BASICA.COM do not restore vector on termination
  1904. SeeAlso: INT 80"BASIC",INT C1"BASIC",INT C3"BASIC"
  1905. --------d-C2---------------------------------
  1906. INT C2 - AMI BIOS - DRIVE 0 DATA
  1907. Note:    this vector is used by some AMI BIOSes to store the third four bytes
  1908.       of the hard disk parameter table
  1909. SeeAlso: INT 41,INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C3"AMI"
  1910. --------r-C3---------------------------------
  1911. INT C3 - IBM ROM BASIC - used while in interpreter
  1912. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1913.     BASIC.COM/BASICA.COM do not restore vector on termination
  1914. SeeAlso: INT 80"BASIC",INT C2"BASIC",INT C4"BASIC"
  1915. --------d-C3---------------------------------
  1916. INT C3 - AMI BIOS - DRIVE 0 DATA
  1917. Note:    this vector is used by some AMI BIOSes to store the final four bytes
  1918.       of the hard disk parameter table
  1919. SeeAlso: INT 41,INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C2"AMI"
  1920. --------r-C4---------------------------------
  1921. INT C4 - IBM ROM BASIC - used while in interpreter
  1922. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1923.     BASIC.COM/BASICA.COM do not restore vector on termination
  1924. SeeAlso: INT 80"BASIC",INT C3"BASIC",INT C5"BASIC"
  1925. --------d-C4---------------------------------
  1926. INT C4 - AMI BIOS - DRIVE 1 DATA
  1927. Note:    this vector is used by some AMI BIOSes to store the first four bytes
  1928.       of the second hard disk's parameter table
  1929. SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C5"AMI",INT C6"AMI",INT C7"AMI"
  1930. --------r-C5---------------------------------
  1931. INT C5 - IBM ROM BASIC - used while in interpreter
  1932. Notes:    called by ROM BASIC
  1933.     BASIC.COM/BASICA.COM do not restore vector on termination
  1934. SeeAlso: INT 80"BASIC",INT C4"BASIC",INT C6"BASIC"
  1935. --------d-C5---------------------------------
  1936. INT C5 - AMI BIOS - DRIVE 1 DATA
  1937. Note:    this vector is used by some AMI BIOSes to store the second four bytes
  1938.       of the second hard disk's parameter table
  1939. SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C4"AMI",INT C6"AMI",INT C7"AMI"
  1940. --------r-C6---------------------------------
  1941. INT C6 - IBM ROM BASIC - used while in interpreter
  1942. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1943.     BASIC.COM/BASICA.COM do not restore vector on termination
  1944. SeeAlso: INT 80"BASIC",INT C5"BASIC",INT C7"BASIC"
  1945. --------r-C6---------------------------------
  1946. INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86
  1947. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  1948.       the older interrupts
  1949. SeeAlso: INT 86"APL"
  1950. --------d-C6---------------------------------
  1951. INT C6 - AMI BIOS - DRIVE 1 DATA
  1952. Note:    this vector is used by some AMI BIOSes to store the third four bytes
  1953.       of the second hard disk's parameter table
  1954. SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C4"AMI",INT C5"AMI",INT C7"AMI"
  1955. --------r-C7---------------------------------
  1956. INT C7 - IBM ROM BASIC - used while in interpreter
  1957. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1958.     BASIC.COM/BASICA.COM do not restore vector on termination
  1959. SeeAlso: INT 80"BASIC",INT C6"BASIC",INT C8"BASIC"
  1960. --------r-C7---------------------------------
  1961. INT C7 - APL*PLUS/PC - ???
  1962. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  1963.       the older interrupts
  1964. SeeAlso: INT 87"APL"
  1965. --------d-C7---------------------------------
  1966. INT C7 - AMI BIOS - DRIVE 1 DATA
  1967. Note:    this vector is used by some AMI BIOSes to store the final four bytes
  1968.       of the second hard disk's parameter table
  1969. SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C4"AMI",INT C5"AMI",INT C6"AMI"
  1970. --------r-C8---------------------------------
  1971. INT C8 - IBM ROM BASIC - used while in interpreter
  1972. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1973.     BASIC.COM/BASICA.COM do not restore vector on termination
  1974. SeeAlso: INT 80"BASIC",INT C7"BASIC",INT C9"BASIC"
  1975. --------r-C8---------------------------------
  1976. INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88
  1977. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  1978.       the older interrupts
  1979. SeeAlso: INT 88"APL"
  1980. --------r-C9---------------------------------
  1981. INT C9 - IBM ROM BASIC - used while in interpreter
  1982. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1983.     BASIC.COM/BASICA.COM do not restore vector on termination
  1984. SeeAlso: INT 80"BASIC",INT C8"BASIC",INT CA"BASIC"
  1985. --------r-C9---------------------------------
  1986. INT C9 - APL*PLUS/PC - ???
  1987. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  1988.       the older interrupts
  1989. SeeAlso: INT 89"APL"
  1990. --------r-CA---------------------------------
  1991. INT CA - IBM ROM BASIC - used while in interpreter
  1992. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  1993.     BASIC.COM/BASICA.COM do not restore vector on termination
  1994. SeeAlso: INT 80"BASIC",INT C9"BASIC",INT CB"BASIC"
  1995. --------r-CA---------------------------------
  1996. INT CA - APL*PLUS/PC - PRINT SCREEN
  1997. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  1998.       the older interrupts
  1999. SeeAlso: INT 8A"APL"
  2000. --------r-CB---------------------------------
  2001. INT CB - IBM ROM BASIC - used while in interpreter
  2002. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  2003.     BASIC.COM/BASICA.COM do not restore vector on termination
  2004. SeeAlso: INT 80"BASIC",INT CA"BASIC",INT CC"BASIC"
  2005. --------r-CB---------------------------------
  2006. INT CB - APL*PLUS/PC - BEEP
  2007. Notes:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  2008.       the older interrupts
  2009.     same as printing a ^G via INT 21/AH=02h
  2010. SeeAlso: INT 8B"APL"
  2011. --------r-CC---------------------------------
  2012. INT CC - IBM ROM BASIC - used while in interpreter
  2013. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  2014.     BASIC.COM/BASICA.COM do not restore vector on termination
  2015. SeeAlso: INT 80"BASIC",INT CB"BASIC",INT CD"BASIC"
  2016. --------r-CC---------------------------------
  2017. INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY
  2018.     AX = flag
  2019.         0000h do not save display attributes
  2020.         0001h save attributes
  2021. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  2022.       the older interrupts
  2023. SeeAlso: INT 8C"APL"
  2024. --------r-CD---------------------------------
  2025. INT CD - IBM ROM BASIC - used while in interpreter
  2026. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  2027.     BASIC.COM/BASICA.COM do not restore vector on termination
  2028. SeeAlso: INT 80"BASIC",INT CC"BASIC",INT CE"BASIC"
  2029. --------r-CD---------------------------------
  2030. INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  2031. --------r-CE---------------------------------
  2032. INT CE - IBM ROM BASIC - used while in interpreter
  2033. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  2034.     BASIC.COM/BASICA.COM do not restore vector on termination
  2035. SeeAlso: INT 80"BASIC",INT CD"BASIC",INT CF"BASIC"
  2036. --------r-CE---------------------------------
  2037. INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  2038. --------r-CF---------------------------------
  2039. INT CF - IBM ROM BASIC - used while in interpreter
  2040. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  2041.     BASIC.COM/BASICA.COM do not restore vector on termination
  2042. SeeAlso: INT 80"BASIC",INT CE"BASIC",INT D0"BASIC"
  2043. --------r-CF---------------------------------
  2044. INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION
  2045. SeeAlso: INT E0"APL"
  2046. --------r-D0---------------------------------
  2047. INT D0 - IBM ROM BASIC - used while in interpreter
  2048. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  2049.     BASIC.COM/BASICA.COM do not restore vector on termination
  2050. SeeAlso: INT 80"BASIC",INT CF"BASIC",INT D1"BASIC"
  2051. --------r-D0---------------------------------
  2052. INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  2053. --------U-D0---------------------------------
  2054. INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR
  2055. Program: NJFRERAM is a resident free-memory display utility by Mike "Nifty
  2056.       James" Blaszczak
  2057. Note:    if NJFRERAM is installed, this vector points at the signature "NJ"
  2058. Index:    installation check;NJFRERAM
  2059. --------r-D1---------------------------------
  2060. INT D1 - IBM ROM BASIC - used while in interpreter
  2061. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  2062.     BASIC.COM/BASICA.COM do not restore vector on termination
  2063. SeeAlso: INT 80"BASIC",INT D0"BASIC",INT D2"BASIC"
  2064. --------r-D1---------------------------------
  2065. INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  2066. --------r-D2---------------------------------
  2067. INT D2 - IBM ROM BASIC - used while in interpreter
  2068. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  2069.     BASIC.COM/BASICA.COM do not restore vector on termination
  2070. SeeAlso: INT 80"BASIC",INT D1"BASIC",INT D3"BASIC"
  2071. --------r-D2---------------------------------
  2072. INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  2073. --------r-D3---------------------------------
  2074. INT D3 - IBM ROM BASIC - used while in interpreter
  2075. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  2076.     BASIC.COM/BASICA.COM do not restore vector on termination
  2077. SeeAlso: INT 80"BASIC",INT D2"BASIC",INT D4"BASIC"
  2078. --------r-D3---------------------------------
  2079. INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  2080. --------v-D3---------------------------------
  2081. INT D3 - VIRUS - "Antiexe" - RELOCATED INT 13
  2082. SeeAlso: INT 9F"VIRUS"
  2083. --------r-D4---------------------------------
  2084. INT D4 - IBM ROM BASIC - used while in interpreter
  2085. Notes:    called by ROM BASIC
  2086.     BASIC.COM/BASICA.COM do not restore vector on termination
  2087. SeeAlso: INT 80"BASIC",INT D3"BASIC",INT D5"BASIC"
  2088. --------r-D4---------------------------------
  2089. INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  2090. --------O-D400-------------------------------
  2091. INT D4 O - PC-MOS/386 v5.01 - OBSOLETE FUNCTIONS
  2092.     AH = 00h and 01h
  2093. Return: nothing
  2094. Desc:    PC-MOS/386 v5.01 reports that these functions are no longer supported
  2095.       and enters an endless loop
  2096. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  2097.       system by The Software Link, Inc.
  2098. --------O-D402-------------------------------
  2099. INT D4 - PC-MOS/386 v3.0+ - GET SYSTEM CONTROL BLOCK POINTER
  2100.     AH = 02h
  2101. Return: AX = 0000h
  2102.     ES:BX -> System Control Block in V86 mode (see #2587)
  2103.     ES:EBX -> System Control Block in native mode (see #2587)
  2104. Note:    superseded by AH=26h
  2105. SeeAlso: AH=04h,AH=10h,AH=26h,AH=28h,AH=29h,AH=2Ah,INT 21/AX=3000h,INT 38
  2106.  
  2107. Format of PC-MOS/386 System Control Block:
  2108. Offset    Size    Description    (Table 2587)
  2109.  00h    WORD    pointer to first TCB in chain
  2110.  02h 17 BYTEs    reserved
  2111.  13h    WORD    pointer to current task's TCB
  2112.  15h    WORD    pointer to TCB of visible (console) task
  2113. --------O-D403-------------------------------
  2114. INT D4 - PC-MOS/386 v5.01 - GET/SET EXTENDED DIRECTORY INFORMATION
  2115.     AH = 03h
  2116.     AL = subfunction (00h get, 01h set)
  2117.     DS:(E)DX -> pathname
  2118.     ES:(E)BX -> 10-byte buffer for directory information (see #2588)
  2119. Return: CF clear if successful
  2120.         AL = permitted access level for file (00h-03h)
  2121.         ES:(E)BX -> modified buffer (AL=01h on entry)
  2122.     CF set on error
  2123.         AX = error code (see #0885 at INT 21/AH=59h)
  2124. Notes:    BX/DX are used in V86 mode, EBX/EDX in native mode
  2125.     the file class cannot be changed for files because it affects the
  2126.       encryption method, but directories can have their classes changed
  2127.  
  2128. Format of PC-MOS/386 directory information:
  2129. Offset    Size    Description    (Table 2588)
  2130.  00h    BYTE    reserved (0)
  2131.  01h    BYTE    file class ('A'-'Z' or 00h)
  2132.  02h    DWORD    user ID of file creator
  2133.  06h    WORD    file creation time (see #0876 at INT 21/AX=5700h)
  2134.  08h    WORD    file creation date (see #0877 at INT 21/AX=5700h)
  2135. --------O-D404-------------------------------
  2136. INT D4 - PC-MOS/386 v3.0+ - GET TASK CONTROL BLOCK
  2137.     AH = 04h
  2138.     BX = task ID or FFFFh for calling task
  2139. Return: CF clear if successful
  2140.         ES = segment of Task Control Block (TCB) (see #2589)
  2141.     CF set on error
  2142.         AX = error code (see #0885 at INT 21/AH=59h)
  2143. Note:    superseded by AH=27h
  2144. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah,INT 38
  2145.  
  2146. Format of PC-MOS/386 Task Control Block:
  2147. Offset    Size    Description    (Table 2589)
  2148.  00h    BYTE    signature byte "H" if allocated from system memory pool
  2149.  01h    BYTE    header block ID, "T" = TCB
  2150.  02h    WORD    length of block in paragraphs
  2151.  04h    WORD    segment address of next header block (0000h if last)
  2152.  06h    WORD    segment address of previous header block (0000h if first)
  2153.  08h    WORD    pointer to next TCB
  2154.  0Ah    WORD    pointer to previous TCB
  2155.  0Ch    WORD    pointer to associated TCB (if applicable)
  2156.  0Eh    WORD    reserved
  2157. ---TCB---
  2158.  10h    WORD    TCB task ID
  2159.  12h    WORD    native context save area
  2160.  14h    WORD    start address of task
  2161.  16h    WORD    end address of task
  2162.  18h    BYTE    task priority
  2163.  19h    BYTE    task time slice
  2164.  1Ah    BYTE    "TCBWAIT" run status of task
  2165.  1Bh    BYTE    "TCBSTAT" what the task is waiting for
  2166.  1Ch    DWORD    address of polling routine
  2167.  20h    BYTE    error code from last function call
  2168.  21h 11 BYTEs    name of currently executing task
  2169.  2Ch  4 BYTEs    ???
  2170.  30h    BYTE    keyboard disabled if bit 1 set
  2171.  31h    BYTE    current shift state and toggles
  2172.  32h  2 BYTEs    ???
  2173.  34h    BYTE    current video mode
  2174.  35h    BYTE    current video page
  2175.  36h    BYTE    number of text columns per screen
  2176.  37h    BYTE    number of text rows per screen
  2177.  38h    WORD    length of video buffer
  2178.  3Ah    WORD    video page length
  2179.  3Ch    WORD    apge start address in video RAM
  2180.  3Eh  4 WORDs    current cursor positions for four screen pages
  2181.  46h  8 BYTEs    ???
  2182.  4Eh    WORD    current cursor type
  2183.  50h    BYTE    current palette setting
  2184.  51h    BYTE    original video mode
  2185.  52h    BYTE    start CRT row (00h or 01h)
  2186.  53h    BYTE    video RAM in task active
  2187.  54h    WORD    handle of video save area
  2188.  56h    WORD    page count of video save area
  2189.  58h    WORD    segment address of video save area
  2190.  5Ah    WORD    poitner to first Task File Block (see #2592)
  2191.  5Ch    WORD    pointer to first Current Directory Block (see #2595)
  2192.  5Eh    WORD    pointer to active Current Directory Block (see #2595)
  2193.  60h    BYTE    number of drives
  2194.  61h    BYTE    current drive (0=A:, etc.)
  2195.  62h    DWORD    disk transfer address
  2196.  66h  4 BYTEs    ???
  2197.  6Ah    BYTE    verify flag (nonzero = on)
  2198.  6Bh    BYTE    break flag (nonzero = on)
  2199.  6Ch    WORD    share/lock retry count
  2200.  6Eh    WORD    ticks between share/lock retries
  2201.  70h    BYTE    remote printer flags (see #2590)
  2202.  71h    BYTE    ETX/ACK delay count
  2203.  72h    WORD    spooler segment address
  2204.  74h  2 BYTEs    ???
  2205.  76h  3 BYTEs    remote printer redirection for LPT1 through LPT3 (see #2591)
  2206.  79h  2 BYTEs    ???
  2207.  7Bh    DWORD    offset of username in TCB
  2208.  7Fh    BYTE    current output class
  2209.  80h  7 BYTEs    protection access rights, 2 bits per class (writeable!)
  2210.  87h 122 BYTEs    ???
  2211. 101h    BYTE    TCB sleep downcounter value
  2212. 102h 20 BYTEs    ???
  2213. 116h    BYTE    last scan code
  2214.     ...
  2215. 5D0h    DWORD    far pointer to Device Driver Terminal's entry point
  2216. 5D4h    WORD    offset of logical screen
  2217. 5D6h    WORD    segment of logical screen
  2218. 5D8h    WORD    cursor offset within page
  2219. 5DAh    BYTE    screen columns
  2220. 5DBh    WORD    async port number (0000h = none)
  2221. 5DDh    DWORD    physical baudrate
  2222. 5E1h 19 BYTEs    reserved for Device Driver Terminal (DDT)
  2223.     ...
  2224. 7A6h    DWORD    far pointer to unregister calling chain
  2225.  
  2226. Bitfields for PC-MOS/386 remote printer flags:
  2227. Bit(s)    Description    (Table 2590)
  2228.  0    LPT1 to terminal
  2229.  1    LPT2 to terminal
  2230.  2    LPT3 to terminal
  2231.  3    escape to printer pending
  2232.  4    use XON/XOFF
  2233.  5    use ETX/ACK
  2234.  6    waiting for ACK or XON
  2235.  7    transparent printing on
  2236.  
  2237. (Table 2591)
  2238. Values for PC-MOS/386 remote printer redirection:
  2239.  00h    not redirected
  2240.  01h    redirected to COM1
  2241.  ...
  2242.  18h    redirected to COM24
  2243.  51h    redirected to LPT1
  2244.  52h    redirected to LPT2
  2245.  53h    redirected to LPT3
  2246.  
  2247. Format of PC-MOS/386 Task File Block:
  2248. Offset    Size    Description    (Table 2592)
  2249.  00h    BYTE    signature byte "H" if allocated from system memory pool
  2250.  01h    BYTE    header block ID, "F" = task file block
  2251.  02h    WORD    length of block in paragraphs
  2252.  04h    WORD    segment address of next header block (0000h if last)
  2253.  06h    WORD    segment address of previous header block (0000h if first)
  2254.  08h    WORD    pointer to next TCB
  2255.  0Ah    WORD    pointer to previous TCB
  2256.  0Ch    WORD    pointer to associated TCB (if applicable)
  2257.  0Eh    WORD    reserved
  2258. ---TFB---
  2259.  10h    WORD    segment address of next TFB
  2260.  12h    WORD    segment address of previous TFB
  2261.  14h    WORD    segment address of TFB's Global File Block (see #2594)
  2262.  16h    WORD    segment address of owner's PSP
  2263.  18h    WORD    file handle
  2264.  1Ah  3 BYTEs    ???
  2265.  1Dh    DWORD    file position
  2266.  21h  4 BYTEs    ???
  2267.  25h    BYTE    IOCTL flags (see #2593)
  2268.  26h  2 BYTEs    ???
  2269.  
  2270. Bitfields for PC-MOS/386 IOCTL flags:
  2271. Bit(s)    Description    (Table 2593)
  2272.  0    stdin
  2273.  1    stdout
  2274.  2    null device
  2275.  3    clock device
  2276.  4    reserved
  2277.  5    ASCII mode instead of binary
  2278.  6    EOF encountered on input
  2279.  7    device rather than file
  2280.  
  2281. Format of PC-MOS/386 Global File Block:
  2282. Offset    Size    Description    (Table 2594)
  2283.  00h    BYTE    signature byte "H" if allocated from system memory pool
  2284.  01h    BYTE    header block ID, "G" = global file block
  2285.  02h    WORD    length of block in paragraphs
  2286.  04h    WORD    segment address of next header block (0000h if last)
  2287.  06h    WORD    segment address of previous header block (0000h if first)
  2288.  08h    WORD    pointer to next TCB
  2289.  0Ah    WORD    pointer to previous TCB
  2290.  0Ch    WORD    pointer to associated TCB (if applicable)
  2291.  0Eh    WORD    reserved
  2292. ---GFB---
  2293.  10h 10 BYTEs    ???
  2294.  1Ah    WORD    file attribute
  2295.  1Ch    BYTE    ???
  2296.  1Dh    DWORD    address of device driver
  2297.  21h    WORD    first cluster
  2298.  23h    WORD    time of last modification
  2299.  25h    WORD    date of last modification
  2300.  27h    DWORD    size of file in bytes
  2301.  2Bh 11 BYTEs    ???
  2302.  36h 11 BYTEs    device name or FCB-format filename
  2303.  41h    WORD    segment address of TFB list
  2304.  43h    WORD    segment address of first RLB (see #2597) (0000h = none)
  2305.  45h    BYTE    flag: nonzero if GFB refers to character device
  2306.  46h    WORD    address of Block Device Block (see #2596)
  2307.  48h    WORD    sector of file's directory entry
  2308.  4Ah    WORD    high word of file's directory entry
  2309.  4Ch    WORD    ofsset of directory entry within sector
  2310.  
  2311. Format of PC-MOS/386 Current Directory Block:
  2312. Offset    Size    Description    (Table 2595)
  2313.  00h    BYTE    signature byte "H" if allocated from system memory pool
  2314.  01h    BYTE    header block ID, "C" = current directory block
  2315.  02h    WORD    length of block in paragraphs
  2316.  04h    WORD    segment address of next header block (0000h if last)
  2317.  06h    WORD    segment address of previous header block (0000h if first)
  2318.  08h    WORD    pointer to next TCB
  2319.  0Ah    WORD    pointer to previous TCB
  2320.  0Ch    WORD    pointer to associated TCB (if applicable)
  2321.  0Eh    WORD    reserved
  2322. ---CDB---
  2323.  10h    BYTE    drive number
  2324.  11h    BYTE    ???
  2325.  12h 64 BYTEs    directory name
  2326.  52h    WORD    first directory cluster (0000h = root)
  2327.  
  2328. Format of PC-MOS/386 Block Device Block:
  2329. Offset    Size    Description    (Table 2596)
  2330.  00h    BYTE    signature byte "H" if allocated from system memory pool
  2331.  01h    BYTE    header block ID, "B" = block device block
  2332.  02h    WORD    length of block in paragraphs
  2333.  04h    WORD    segment address of next header block (0000h if last)
  2334.  06h    WORD    segment address of previous header block (0000h if first)
  2335.  08h    WORD    pointer to next TCB
  2336.  0Ah    WORD    pointer to previous TCB
  2337.  0Ch    WORD    pointer to associated TCB (if applicable)
  2338.  0Eh    WORD    reserved
  2339. ---BDB---
  2340.  10h    BYTE    logical drive
  2341.  11h    BYTE    unit passed to driver
  2342.  12h    WORD    sector size
  2343.  14h    BYTE    cluster mask
  2344.  15h    BYTE    cluster shift count
  2345.  16h    WORD    starting sector of first FAT
  2346.  18h    BYTE    number of FATs
  2347.  19h    WORD    number of root directories
  2348.  1Bh    WORD    sector number of first data sector (cluster 0002h)
  2349.  1Dh    WORD    number of clusters + 1 (number of highest data cluster)
  2350.  1Fh    BYTE    number of sectors in FAT
  2351.  20h    WORD    beginning root directory sector number
  2352.  22h    DWORD    device driver address
  2353.  26h    BYTE    media descriptor byte
  2354.  27h  5 BYTEs    ???
  2355.  2Ch    BYTE    flag: volume > 32MB
  2356.  2Dh    BYTE    ???
  2357.  2Eh    BYTE    number of sectors per cluster
  2358.  2Fh    WORD    number of clusters on device
  2359.  31h    WORD    number of free clusters (FFFFh = unknown)
  2360.  33h    WORD    root directory cluster number
  2361.  35h    WORD    pointer to alias/subst string
  2362.  37h    WORD    TCB segment address of owner (0000h = none)
  2363.  
  2364. Format of PC-MOS/386 Record Lock Block:
  2365. Offset    Size    Description    (Table 2597)
  2366.  00h    BYTE    signature byte "H" if allocated from system memory pool
  2367.  01h    BYTE    header block ID, "R" = record lock block
  2368.  02h    WORD    length of block in paragraphs
  2369.  04h    WORD    segment address of next header block (0000h if last)
  2370.  06h    WORD    segment address of previous header block (0000h if first)
  2371.  08h    WORD    pointer to next TCB
  2372.  0Ah    WORD    pointer to previous TCB
  2373.  0Ch    WORD    pointer to associated TCB (if applicable)
  2374.  0Eh    WORD    reserved
  2375. ---RLB---
  2376.  10h    WORD    segment address of owner's PSP
  2377.  12h    WORD    segment address of Global File Block (see #2594)
  2378.  14h    WORD    segment address of owner's Task File Block (see #2592)
  2379.  16h    DWORD    file offset of locked region start
  2380.  1Ah    DWORD    length of locked region
  2381.  1Eh    WORD    owner's handle for file
  2382. --------O-D407-------------------------------
  2383. INT D4 - PC-MOS/386 v3.0+ - WAIT FOR EVENT
  2384.     AH = 07h
  2385.     AL = events to monitor (see #2598)
  2386.     BX = number of timer ticks until timeout if AL bit 1 set
  2387.     CX = bitmap of IRQs to monitor if AL bit 2 set
  2388.         (bit 0 = IRQ0 .. bit 15 = IRQ15)
  2389.     DX = port to monitor if AL bit 3 set
  2390. Return: CF clear if successful
  2391.         AL = type of event which woke up task (see #2598)
  2392.         CX = IRQ (if any) which awakened task
  2393.         DX = port (if any) which awakened task
  2394.     CF set on error
  2395.         AX = error code (see #0885 at INT 21/AH=59h)
  2396. Note:    a device driver may make this call with AL=00h, which indicates that
  2397.       the driver is responsible for setting and clearing the TCBWAIT field
  2398.       in the TCB.  To put task to sleep, set TCBWAIT bits 2-0 to 001; to
  2399.       reawaken it, set bit 1 (leaving other bits unchanged)
  2400. SeeAlso: AH=04h,INT 16/AH=00h,INT 38
  2401.  
  2402. Bitfields for PC-MOS/386 events to monitor:
  2403. Bit(s)    Description    (Table 2598)
  2404.  0    keystroke
  2405.  1    timeout
  2406.  2    IRQ
  2407.  3    port access
  2408.  7    return status of user poll routine (other ignored if set)
  2409. --------O-D410-------------------------------
  2410. INT D4 - PC-MOS/386 v3.0+ - ENTER/LEAVE NATIVE 386 EXECUTION MODE
  2411.     AH = 10h
  2412.     AL = direction (00h return to V86 mode, 01h enter native mode)
  2413.     CX = length in bytes of Native Context Area ( >=1024 )
  2414.     DX = segment of Native Context Area
  2415. Return: CF clear if successful
  2416.         running in desired mode at instruction following INT D4 call
  2417.         all segment registers converted to appropriate selectors/segments
  2418.     CF set on error
  2419.         AX = error code (see #0885 at INT 21/AH=59h)
  2420. Note:    MS-DOS calls are available in protected mode
  2421. SeeAlso: AH=11h,AH=12h,AH=13h,INT 2F/AX=1687h,INT 67/AX=DE0Ch,INT 38
  2422. --------O-D411-------------------------------
  2423. INT D4 - PC-MOS/386 v3.0+ - ALLOCATE NATIVE MODE MEMORY BLOCK
  2424.     AH = 11h
  2425.     EBX = block length in bytes
  2426. Return: CF clear if successful
  2427.         EBX = number of bytes actually allocated
  2428.         ES = selector for allocated block
  2429.     CF set on error
  2430.         AX = error code (see #0885 at INT 21/AH=59h)
  2431. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  2432.       system by The Software Link, Inc.
  2433. Note:    the memory must be released before the program terminates
  2434. SeeAlso: AH=10h,AH=12h,INT 38
  2435. --------O-D412-------------------------------
  2436. INT D4 - PC-MOS/386 v3.0+ - FREE NATIVE MODE MEMORY BLOCK
  2437.     AH = 12h
  2438.     ES = selector for block to free
  2439. Return: CF clear if successful
  2440.     CF set on error
  2441.         AX = error code (see #0885 at INT 21/AH=59h)
  2442. SeeAlso: AH=10h,AH=11h,AH=13h,INT 38
  2443. --------O-D413-------------------------------
  2444. INT D4 - PC-MOS/386 v5.01 - GET ALIAS FOR SELECTOR (NATIVE MODE ONLY)
  2445.     AH = 13h
  2446.     AL = type of alias selector (00h data, 01h stack, 02h code)
  2447.     BX = selector
  2448. Return: CF clear if successful
  2449.         AX = new selector or 0000h if BX selector not found
  2450.     CF set on error
  2451.         AX = error code (see #0885 at INT 21/AH=59h)
  2452. SeeAlso: AH=11h,AH=12h
  2453. --------O-D416-------------------------------
  2454. INT D4 - PC-MOS/386 v5.01 - SET/CLEAR IRQ RESERVATION
  2455.     AH = 16h
  2456.     AL = function (00h clear, 01h set reservation)
  2457.     CX = IRQ number
  2458. Return: AX = status
  2459.         (0000h successful, 0001h currently reserved by another task)
  2460. SeeAlso: AH=07h,INT 14/AH=11h"PC-MOS"
  2461. --------O-D419-------------------------------
  2462. INT D4 - PC-MOS/386 v5.01 - GET TASK ID
  2463.     AH = 19h
  2464. Return: BX = caller's task ID
  2465. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  2466.       system by The Software Link, Inc.
  2467. SeeAlso: AH=1Dh,AH=1Eh
  2468. --------O-D41A-------------------------------
  2469. INT D4 - PC-MOS/386 v5.01 - GET/SET TASK PRIORITY
  2470.     AH = 1Ah
  2471.     AL = subfunction (00h read, 01h set, 02h get and set)
  2472.     BX = task ID (FFFFh for current task)
  2473.     CL = new priority value
  2474. Return: CF clear if successful
  2475.         CL = current priority value
  2476.     CF set on error
  2477.         AX = error code (see #0885 at INT 21/AH=59h)
  2478. SeeAlso: AH=1Bh,AH=1Ch
  2479. --------O-D41B-------------------------------
  2480. INT D4 - PC-MOS/386 v5.01 - GET/SET TIME SLICE
  2481.     AH = 1Bh
  2482.     AL = subfunction (00h read, 01h set, 02h get and set)
  2483.     BX = task ID (FFFFh for current task) (see AH=19h)
  2484.     CL = new time slice value
  2485. Return: CF clear if successful
  2486.         CL = current time slice value
  2487.     CF set on error
  2488.         AX = error code (see #0885 at INT 21/AH=59h)
  2489. SeeAlso: AH=1Ah,AH=1Ch
  2490. --------O-D41C-------------------------------
  2491. INT D4 - PC-MOS/386 v5.01 - GET/SET KEYBOARD MODE
  2492.     AH = 1Ch
  2493.     AL = subfunction (00h enable, 01h disable, 02h get mode)
  2494.     BX = task ID (FFFFh for current task)
  2495. Return: CF clear if successful
  2496.         CL = current keyboard state
  2497.     CF set on error
  2498.         AX = error code (INT 21/AH=59h)
  2499. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  2500.       system by The Software Link, Inc.
  2501. SeeAlso: AH=1Ah,AH=1Bh
  2502. --------O-D41D-------------------------------
  2503. INT D4 - PC-MOS/386 v5.01 - GET CURRENT PROGRAM NAME
  2504.     AH = 1Dh
  2505.     BX = task ID (FFFFh for current task) (see AH=19h)
  2506.     ES:DI -> buffer for program name (see #2599)
  2507. Return: CF clear if successful
  2508.         ES:DI buffer filled
  2509.     CF set on error
  2510.         AX = error code (see #0885 at INT 21/AH=59h)
  2511. SeeAlso: AH=19h,AH=1Eh
  2512.  
  2513. Format of PC-MOS/386 program name buffer:
  2514. Offset    Size    Description    (Table 2599)
  2515.  00h  8 BYTEs    filename
  2516.  08h  3 BYTEs    extension
  2517. --------O-D41E-------------------------------
  2518. INT D4 - PC-MOS/386 v5.01 - GET CURRENT USERNAME AND SECURITY CLASS
  2519.     AH = 1Eh
  2520.     BX = task ID (FFFFh for current task)
  2521.     ES:DI -> 4-byte buffer for username
  2522. Return: CF clear if successful
  2523.         CL = security class
  2524.         20h (' ') none
  2525.         41h-5Ah ('A'-'Z') security level
  2526.         ES:DI buffer filled
  2527.     CF set on error
  2528.         AX = error code (see #0885 at INT 21/AH=59h)
  2529. SeeAlso: AH=19h,AH=1Dh
  2530. --------O-D41F-------------------------------
  2531. INT D4 - PC-MOS/386 v5.01 - GET TASK PARTITION INFORMATION
  2532.     AH = 1Fh
  2533.     BX = task ID (FFFFh for current task) (see AH=19h)
  2534. Return: CF clear if successful
  2535.         CX = start segment of task
  2536.         DX = ending segment of task
  2537.     CF set on error
  2538.         AX = error code (see #0885 at INT 21/AH=59h)
  2539. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  2540.       system by The Software Link, Inc.
  2541. SeeAlso: AH=2Dh
  2542. --------O-D420-------------------------------
  2543. INT D4 - PC-MOS/386 v5.01 - GET PORT AND BAUDRATE INFORMATION
  2544.     AH = 20h
  2545.     BX = task ID (FFFFh for current task) (see AH=19h)
  2546. Return: CF clear if successful
  2547.         CX = port number (0000h if none)
  2548.         DI:SI = baudrate (if CX nonzero)
  2549.     CF set on error
  2550.         AX = error code (see #0885 at INT 21/AH=59h)
  2551. SeeAlso: INT 14/AH=0Ch"FOSSIL"
  2552. --------O-D421-------------------------------
  2553. INT D4 - PC-MOS/386 v5.01 - REMOVE A TASK
  2554.     AH = 21h
  2555.     BX = task ID (FFFFh for current task) (see AH=19h)
  2556. Return: CF clear if successful
  2557.         AX = ASCII percentage of System Memory Pool used
  2558.         (AH = tens digit, AL = ones digit)
  2559.         DS,SI destroyed
  2560.     CF set on error
  2561.         AX = error code (see #0885 at INT 21/AH=59h)
  2562. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  2563.       system by The Software Link, Inc.
  2564. SeeAlso: AH=22h
  2565. --------O-D422-------------------------------
  2566. INT D4 - PC-MOS/386 v5.01 - ADD A TASK TO THE SYSTEM
  2567.     AH = 22h
  2568.     DS:SI -> addtask data structure (see #2601)
  2569. Return: CF clear if successful
  2570.         ES = segment address of the new task's TCB data structure
  2571.     CF set on error
  2572.         AX = error code (see #2600)
  2573. SeeAlso: AH=21h
  2574.  
  2575. (Table 2600)
  2576. Values for PC-MOS/386 error code:
  2577.  08h    insufficient memory
  2578.  0Bh    invalid addtask structure format
  2579.  12h    insufficient available space in system memory pool
  2580.  1Fh    general failure
  2581.  55h    already allocated
  2582.  57h    if task already in use or invalid parameter
  2583.  
  2584. Format of PC-MOS/386 addtask data structure:
  2585. Offset    Size    Description    (Table 2601)
  2586.  00h    WORD    task size in KB (min 16KB)
  2587.  02h    WORD    task ID (0000h for automatic selection)
  2588.  04h    BYTE    task class (' ' or 'A'-'Z')
  2589.  05h    DWORD    -> ASCIZ name of task startup batchfile
  2590.  09h    DWORD    -> task's terminal driver (0000000h = background task)
  2591.  0Dh    WORD    task port
  2592.  0Fh    DWORD    task baud rate
  2593.  13h    DWORD    (ret) total extended memory
  2594.  17h    DWORD    (ret) number of 4K extended memory pages allocated
  2595.  1Bh    WORD    (ret) paragraphs of system memory pool allocated
  2596.  1Dh    WORD    (ret) system memory pool size in paragraphs
  2597.  1Fh    WORD    (ret) ASCII task percentage of system memory pool
  2598.  21h  3 BYTEs    reserved
  2599. --------O-D423-------------------------------
  2600. INT D4 - PC-MOS/386 v5.01 - CHANGE TERMINAL DRIVER
  2601.     AH = 23h
  2602.     BX = task ID (FFFFh for current task)
  2603.     DS:SI -> entry point of the new Device Driver Terminal
  2604. Return: CF clear if successful
  2605.     CF set on error
  2606.         AX = error code (see #0885 at INT 21/AH=59h)
  2607. --------O-D424-------------------------------
  2608. INT D4 U - PC-MOS/386 v5.01 - GET OPERATING SYSTEM SERIAL NUMBER
  2609.     AH = 24h
  2610. Return: DS:DX -> '$'-terminated string containing the serial number
  2611. --------O-D425-------------------------------
  2612. INT D4 - PC-MOS/386 v5.01 - IDENTIFY LOAD ADDRESS OF DEVICE DRIVER LOCATION
  2613.     AH = 25h
  2614.     DX = driver's CS value
  2615. Return: AX = segment address of driver in system memory pool
  2616.         (0000h if the driver is not within the system memory pool)
  2617. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  2618.       system by The Software Link, Inc.
  2619. --------O-D426-------------------------------
  2620. INT D4 - PC-MOS/386 v5.01 - GET SYSTEM CONTROL BLOCK SEGMENT/SELECTOR
  2621.     AH = 26h
  2622. Return: DX = segment/selector of the System Control Block (see #2587)
  2623. Note:    this function supersedes AH=02h
  2624. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah
  2625. --------O-D427-------------------------------
  2626. INT D4 - PC-MOS/386 v5.01 - GET TASK CONTROL BLOCK SEGMENT/SELECTOR
  2627.     AH = 27h
  2628.     BX = task ID (FFFFh if current task) (see AH=19h)
  2629. Return: CF clear if successful
  2630.         DX = segment/selector for the Task Control Block (see #2589)
  2631.     CF set on error
  2632.         AX = error code (INT 21/AH=59h)
  2633. Note:    this function supersedes AH=04h
  2634. SeeAlso: AH=26h,AH=28h,AH=29h,AH=2Ah
  2635. --------O-D428-------------------------------
  2636. INT D4 - PC-MOS/386 v5.01 - GET CONTROL BLOCK DATA FROM SCB OR TCB
  2637.     AH = 28h
  2638.     BX = offset into control block at which to start reading
  2639.     CX = number of bytes to read
  2640.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  2641.     ES:DI -> buffer for data
  2642. Return: CF clear if successful
  2643.     CF set on error
  2644.         AX = error code (see also INT 21/AH=59h)
  2645.         05h access denied due to an invalid segment/selector
  2646. SeeAlso: AH=26h,AH=27h,AH=29h,AH=2Ah
  2647. --------O-D429-------------------------------
  2648. INT D4 - PC-MOS/386 v5.01 - WRITE CONTROL BLOCK DATA INTO SCB OR TCB
  2649.     AH = 29h
  2650.     BX = offset into control block at which to start writing
  2651.     CX = number of bytes to write
  2652.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  2653.     DS:SI -> buffer containing data to be written
  2654. Return: CF clear if successful
  2655.     CF set on errro
  2656.         AX = error code (see also INT 21/AH=59h)
  2657.         05h access denied due to an invalid segment/selector
  2658. Note:     this function performs no bounds checking
  2659. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  2660.       system by The Software Link, Inc.
  2661. SeeAlso: AH=26h,AH=27h,AH=28h,AH=2Ah
  2662. --------O-D42A-------------------------------
  2663. INT D4 - PC-MOS/386 v5.01 - SWAP CONTROL BLOCK DATA OF SCB OR TCB
  2664.     AH = 2Ah
  2665.     BX = offset into control block at which to start swap
  2666.     CX = number of bytes to swap
  2667.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  2668.     DS:SI -> buffer containing new data and to receive current data
  2669. Return: CF clear if successful
  2670.     CF set on error
  2671.         AX = error code (see also INT 21/AH=59h)
  2672.         05h access denied due to an invalid segment/selector
  2673. Note:    the interrupts are disabled during the swap to prevent corruption
  2674. SeeAlso: AH=26h,AH=27h,AH=28h,AH=29h
  2675. --------O-D42C-------------------------------
  2676. INT D4 - PC-MOS/386 v5.01 - GET/SET SPOOLER PARAMETERS
  2677.     AH = 2Ch
  2678.     AL = function
  2679.         00h set spooler timeout
  2680.         CX = timout value in seconds
  2681.         01h get spooler timeout
  2682.         Return: CX = current timeout in seconds
  2683.         02h get spooler parameters
  2684.         Return: CH = priority (00h-09h)
  2685.             CL = disposition (d, h, i, n, s)
  2686.             SI = class (a - z)
  2687.         03h set spooler parameters
  2688.         CH = priority (00h-09h)
  2689.         CL = disposition (d, h, i, n, s)
  2690.         SI = class (a - z)
  2691.         BX = task ID (FFFFh for current task)
  2692.         DX = LPT number
  2693. Return: CF clear if successful
  2694.     CF set on error
  2695.         AX = error code (see #0885 at INT 21/AH=59h)
  2696. SeeAlso: AH=00h,AH=02h,AH=03h
  2697. --------O-D42D-------------------------------
  2698. INT D4 - PC-MOS/386 v5.01 - GET MAXIMUM TASK SIZE
  2699.     AH = 2Dh
  2700. Return: DX = maximum task size in paragraphs
  2701.     BX = start address of task space
  2702. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  2703.       system by The Software Link, Inc.
  2704. SeeAlso: AH=1Fh,AH=22h
  2705. --------r-D5---------------------------------
  2706. INT D5 - IBM ROM BASIC - used while in interpreter
  2707. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  2708.     BASIC.COM/BASICA.COM do not restore vector on termination
  2709. SeeAlso: INT 80"BASIC",INT D4"BASIC",INT D6"BASIC"
  2710. --------r-D5---------------------------------
  2711. INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  2712. --------r-D6---------------------------------
  2713. INT D6 - IBM ROM BASIC - used while in interpreter
  2714. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  2715.     BASIC.COM/BASICA.COM do not restore vector on termination
  2716. SeeAlso: INT 80"BASIC",INT D5"BASIC",INT D7"BASIC"
  2717. --------r-D6---------------------------------
  2718. INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  2719. --------r-D7---------------------------------
  2720. INT D7 - IBM ROM BASIC - used while in interpreter
  2721. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  2722.     BASIC.COM/BASICA.COM do not restore vector on termination
  2723. SeeAlso: INT 80"BASIC",INT D6"BASIC",INT D8"BASIC"
  2724. --------r-D7---------------------------------
  2725. INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  2726. --------r-D8---------------------------------
  2727. INT D8 - IBM ROM BASIC - used while in interpreter
  2728. Notes:    called by ROM BASIC
  2729.     BASIC.COM/BASICA.COM do not restore vector on termination
  2730. SeeAlso: INT 80"BASIC",INT D7"BASIC",INT D9"BASIC"
  2731. --------r-D8---------------------------------
  2732. INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  2733. --------H-D8---------------------------------
  2734. INT D8 - Screen Thief v1.00 - RELOCATED IRQ0
  2735. Range:    INT 78h to INT E0h, selected by commandline switch
  2736. Note:    Screen Thief relocates IRQs 0 through 7 to INT D8 to INT DF by default,
  2737.       but may be directed via a commandline switch to use any range
  2738.       starting at a multiple of 8 between 78h and E0h
  2739. SeeAlso: INT 08"IRQ0",INT 2D/AL=10h"Screen Thief",INT 50"DESQview"
  2740. SeeAlso: INT D9"Screen Thief"
  2741. --------r-D9---------------------------------
  2742. INT D9 - IBM ROM BASIC - used while in interpreter
  2743. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  2744.     BASIC.COM/BASICA.COM do not restore vector on termination
  2745. SeeAlso: INT 80"BASIC",INT D8"BASIC",INT DA"BASIC"
  2746. --------r-D9---------------------------------
  2747. INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  2748. --------H-D9---------------------------------
  2749. INT D9 - Screen Thief v1.00 - RELOCATED IRQ1
  2750. Range:    INT 79h to INT E1h, selected by commandline switch
  2751. Note:    (see INT D8"Screen Thief")
  2752. SeeAlso: INT 09"IRQ1",INT D8"Screen Thief",INT DA"Screen Thief"
  2753. --------r-DA---------------------------------
  2754. INT DA - IBM ROM BASIC - used while in interpreter
  2755. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  2756.     BASIC.COM/BASICA.COM do not restore vector on termination
  2757. SeeAlso: INT 80"BASIC",INT D9"BASIC",INT DB"BASIC"
  2758. --------r-DA---------------------------------
  2759. INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  2760. --------H-DA---------------------------------
  2761. INT DA - Screen Thief v1.00 - RELOCATED IRQ2
  2762. Range:    INT 7Ah to INT E2h, selected by commandline switch
  2763. Note:    (see INT D8"Screen Thief")
  2764. SeeAlso: INT 0A"IRQ2",INT D9"Screen Thief",INT DB"Screen Thief"
  2765. --------r-DB---------------------------------
  2766. INT DB - IBM ROM BASIC - used while in interpreter
  2767. Notes:    called by ROM BASIC
  2768.     BASIC.COM/BASICA.COM do not restore vector on termination
  2769. SeeAlso: INT 80"BASIC",INT DA"BASIC",INT DC"BASIC"
  2770. --------r-DB---------------------------------
  2771. INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  2772. --------H-DB---------------------------------
  2773. INT DB - Screen Thief v1.00 - RELOCATED IRQ3
  2774. Range:    INT 7Bh to INT E3h, selected by commandline switch
  2775. Note:    (see INT D8"Screen Thief")
  2776. SeeAlso: INT 0B"IRQ3",INT DA"Screen Thief",INT DC"Screen Thief"
  2777. --------u-DC---------------------------------
  2778. INT DC - PC/370 v4.1- - API
  2779. SeeAlso: INT 60"PC/370"
  2780. --------r-DC---------------------------------
  2781. INT DC - IBM ROM BASIC - used while in interpreter
  2782. Notes:    called by ROM BASIC
  2783.     BASIC.COM/BASICA.COM do not restore vector on termination
  2784. SeeAlso: INT 80"BASIC",INT DB"BASIC",INT DD"BASIC"
  2785. --------r-DC---------------------------------
  2786. INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  2787. --------H-DC---------------------------------
  2788. INT DC - Screen Thief v1.00 - RELOCATED IRQ4
  2789. Range:    INT 7Ch to INT E4h, selected by commandline switch
  2790. Note:    (see INT D8"Screen Thief")
  2791. SeeAlso: INT 0C"IRQ4",INT DB"Screen Thief",INT DD"Screen Thief"
  2792. --------r-DD---------------------------------
  2793. INT DD - IBM ROM BASIC - used while in interpreter
  2794. Notes:    called by ROM BASIC
  2795.     BASIC.COM/BASICA.COM do not restore vector on termination
  2796. SeeAlso: INT 80"BASIC",INT DC"BASIC",INT DE"BASIC"
  2797. --------r-DD---------------------------------
  2798. INT DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER
  2799.     BX = where to place keystrokes
  2800.         FFFFh insert before current buffer contents
  2801.         0000h replace current contents
  2802.         0001h insert after current contents
  2803.     CX = number of keystroke events to insert
  2804.     ES:SI -> data to be placed into buffer (list of WORD key codes)
  2805.         4000h + N = normal ASCII keystroke N (N = 00h to FFh)
  2806.         4100h + N = extended ASCII keystroke N (N = 03h to 84h)
  2807. SeeAlso: INT 16/AH=05h
  2808. --------H-DD---------------------------------
  2809. INT DD - Screen Thief v1.00 - RELOCATED IRQ5
  2810. Range:    INT 7Dh to INT E5h, selected by commandline switch
  2811. Note:    (see INT D8"Screen Thief")
  2812. SeeAlso: INT 0D"IRQ5",INT DC"Screen Thief",INT DE"Screen Thief"
  2813. --------r-DE---------------------------------
  2814. INT DE - IBM ROM BASIC - used while in interpreter
  2815. Notes:    called by ROM BASIC
  2816.     BASIC.COM/BASICA.COM do not restore vector on termination
  2817. SeeAlso: INT 80"BASIC",INT DD"BASIC",INT DF"BASIC"
  2818. --------r-DE---------------------------------
  2819. INT DE - APL*PLUS/PC - ???
  2820. Note:    appears to be the same as INT 16
  2821. --------H-DE---------------------------------
  2822. INT DE - Screen Thief v1.00 - RELOCATED IRQ6
  2823. Range:    INT 7Eh to INT E6h, selected by commandline switch
  2824. Note:    (see INT D8"Screen Thief")
  2825. SeeAlso: INT 0E"IRQ6",INT DD"Screen Thief",INT DF"Screen Thief"
  2826. --------b-DF---------------------------------
  2827. INT DF - Victor 9000/Sirius 1 - SuperBIOS
  2828. --------r-DF---------------------------------
  2829. INT DF - IBM ROM BASIC - used while in interpreter
  2830. Notes:    called by ROM BASIC
  2831.     BASIC.COM/BASICA.COM do not restore vector on termination
  2832. SeeAlso: INT 80"BASIC",INT DE"BASIC",INT E0"BASIC"
  2833. --------r-DF---------------------------------
  2834. INT DF - APL*PLUS/PC - SAME AS INT 10
  2835. SeeAlso: INT 10
  2836. --------H-DF---------------------------------
  2837. INT DF - Screen Thief v1.00 - RELOCATED IRQ7
  2838. Range:    INT 7Fh to INT E7h, selected by commandline switch
  2839. Note:    (see INT D8"Screen Thief")
  2840. SeeAlso: INT 0F"IRQ7",INT DE"Screen Thief"
  2841. --------r-E0---------------------------------
  2842. INT E0 - IBM ROM BASIC - used while in interpreter
  2843. Notes:    called by ROM BASIC
  2844.     BASIC.COM/BASICA.COM do not restore vector on termination
  2845. SeeAlso: INT 80"BASIC",INT DF"BASIC",INT E1"BASIC"
  2846. --------r-E0---------------------------------
  2847. INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION
  2848. SeeAlso: INT CF"APL"
  2849. --------v-E0---------------------------------
  2850. INT E0 - VIRUS - "Micro-128" - ???
  2851. Note:    Micro-128 also overwrites the upper half of the interrupt table
  2852. SeeAlso: INT 9E"VIRUS",INT F1"VIRUS"
  2853. ----------E0---------------------------------
  2854. INT E0 - DeskMate (Tandy) - DESK EXECUTIVE API
  2855.     AX = function code (numerous)
  2856.     parameters passed in BX, DX, ES, DI, and/or BP
  2857. Return: AX = return from function
  2858. Program: DeskMate is a proprietary GUI from Tandy distributed with several
  2859.       models of the Tandy 1000's, 2500's, 3000's, and laptops.  Retail
  2860.       and runtime versions also exist.  Some Tandy's are designed to
  2861.       boot directly into DeskMate.
  2862. SeeAlso: INT 15/AX=7002h,INT E1"DeskMate"
  2863. --------O-E0---------------------------------
  2864. INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS
  2865.     CL = function number (see #2602,#2603)
  2866.     DS,DX = parameters
  2867. Return: as appropriate for function
  2868.     CX is often the error code (see #2604)
  2869. Notes:    several functions are covered in more detail in following entries
  2870.     most of these calls are also supported by Digital Research's DOS Plus
  2871.       v2.1; the unsupported functions are 26h,29h-2Bh,3Ah,3Dh-62h,71h-8Ch,
  2872.       90h-92h,94h-97h,9Bh-ABh, and AEh-FFh
  2873. SeeAlso: INT 21/AX=4459h,INT 21/AH=E0h"DOS Plus"
  2874.  
  2875. (Table 2602)
  2876. Values for CP/M-86,DR Multiuser DOS function number:
  2877.  00h    terminate calling process (see also INT 21/AH=00h)
  2878.  01h    read a character
  2879.  02h    write character to default console (see also INT 21/AH=02h)
  2880.  03h    read character from default AUX (see also INT 21/AH=03h)
  2881.  04h    write character to default AUX (see also INT 21/AH=04h)
  2882.  05h    write character to default list device (see also INT 21/AH=05h)
  2883.  06h    perform raw I/O on default console (see also INT 21/AH=06h)
  2884.  07h    return default AUX input status
  2885.  08h    return default AUX output status
  2886.  09h    write string to default console (see also INT 21/AH=09h)
  2887.  0Ah    read string from default console (see also INT 21/AH=0Ah)
  2888.  0Bh    return default console input status (see also INT 21/AH=0Bh)
  2889.  0Ch    get BDOS release ID
  2890.  0Dh    reset all disk drives (see also INT 21/AH=0Dh)
  2891.  0Eh    set default drive (see also INT 21/AH=0Eh)
  2892.  0Fh    open file via FCB (see also INT 21/AH=0Fh,#0574)
  2893.  10h    close file via FCB (see also INT 21/AH=10h)
  2894.  11h    search for first matching file with FCB (see also INT 21/AH=11h)
  2895.  12h    search for next matching file with FCB (see also INT 21/AH=12h)
  2896.  13h    delete file via FCB (see also INT 21/AH=13h)
  2897.  14h    sequential read via FCB (see also INT 21/AH=14h)
  2898.  15h    sequential write via FCB (see also INT 21/AH=15h)
  2899.  16h    create file via FCB (see also INT 21/AH=16h)
  2900.  17h    rename file via FCB (see also INT 21/AH=17h)
  2901.  18h    get bit map of logged drives
  2902.  19h    get default drive (see also INT 21/AH=19h)
  2903.  1Ah    set DMA address offset
  2904.  1Bh    get default disk allocation vector (see also INT 21/AH=1Bh)
  2905.  1Ch    set default drive to read-only
  2906.  1Dh    get bit map of read-only drives
  2907.  1Eh    set file attributes via FCB (see also INT 21/AX=4301h)
  2908.  1Fh    get address of disk parameter block (see also INT 21/AH=1Fh)
  2909.  20h    get/set default user number
  2910.  21h    read random record via FCB (see also INT 21/AH=21h)
  2911.  22h    write random record via FCB (see also INT 21/AH=22h)
  2912.  23h    compute file size with FCB (see also INT 21/AH=23h)
  2913.  24h    get FCB random record number (see also INT 21/AH=24h)
  2914.  25h    reset specified drives
  2915.  26h    access specified drives (not in DR DOS Plus v2.1)
  2916.  27h    free specified drives
  2917.  28h    write random with FCB, zero fill (see also also INT 21/AH=28h)
  2918.  2Ah    lock records in FCB file (see also INT 21/AH=5Ch)
  2919.  2Bh    unlock records in FCB file (see also INT 21/AH=5Ch)
  2920.  2Ch    set BDOS multisector count
  2921.  2Dh    set BDOS error mode
  2922.  2Eh    get free space on disk
  2923.  2Fh    load, initialize, and jump to process (see also INT 21/AH=4Bh)
  2924.  30h    flush write-deferred buffers
  2925.  31h    get/set system variable (DOS Plus v2.1)
  2926.  32h    call BIOS (XIOS) character routine (see #2603)
  2927.  33h    set DMA address segment
  2928.  34h    get DMA buffer address
  2929.  35h    CP/M-86 allocate maximum memory
  2930.  36h    allocate maximum memory at specified segment
  2931.  37h    CP/M-86 allocate memory segment (see also INT 21/AH=48h)
  2932.  38h    allocate memory at specified segment
  2933.  39h    CP/M-86 free specified memory segment (see also INT 21/AH=49h)
  2934.  3Ah    CP/M-86 free all memory (not in DOS Plus v2.1)
  2935.  3Bh    load .CMD file into memory
  2936.  3Ch    (DOS Plus v2.1) call RSX program
  2937.  40h    (DR-NET) log on a server
  2938.  41h    (DR-NET) log off a server
  2939.  42h    (DR-NET) send a message
  2940.  43h    (DR-NET) receive a message
  2941.  44h    (DR-NET) get network status
  2942.  45h    (DR-NET) get requestor configuration table
  2943.  46h    (DR-NET) set compatibility attributes
  2944.  47h    (DR-NET) get server configuration table
  2945.  48h    (DR-NET) set network error mode
  2946.  49h    (DR-NET) attach network
  2947.  4Ah    (DR-NET) detach network
  2948.  4Bh    (DR-NET) set default password
  2949.  4Ch    (DR-NET) get-set long timeout
  2950.  4Dh    (DR-NET) get parameter table
  2951.  50h    (DR-NET) get network information
  2952.  53h    get current time (see also INT 21/AH=2Ch)
  2953.  54h    set current time (see also INT 21/AH=2Dh)
  2954.  55h    get binary system date (see also INT 21/AH=2Ah)
  2955.  56h    set system date (see also INT 21/AH=2Bh)
  2956.  57h    allocate system flag
  2957.  58h    deallocate system flag
  2958.  59h    reserve memory in global area
  2959.  5Ah    lock physical drive
  2960.  5Bh    unlock physical drive
  2961.  5Ch    search path for executable file
  2962.  5Dh    load and execute command (see also INT 21/AH=4Bh)
  2963.  5Eh    get/set process exit code
  2964.  5Fh    set country information
  2965.  60h    get country information
  2966.  63h    truncate FCB file (see also INT 21/AH=28h)
  2967.  64h    create/update directory label
  2968.  65h    get directory label
  2969.  66h    get FCB date stamp and password mode
  2970.  67h    write extended FCB
  2971.  68h    set system date and time
  2972.  69h    get system date and time in binary
  2973.  6Ah    establish password for file access
  2974.  6Bh    get OS serial number
  2975.  6Ch    (DOS Plus v2.1) get/set program return code
  2976.  6Dh    get/set console mode
  2977.  6Eh    get/set string delimiter
  2978.  6Fh    write block to default console
  2979.  70h    write block to default list device
  2980.  71h    execute DOS-compatible function
  2981.  74h    set FCB time and date stamps
  2982.  80h    allocate memory
  2983.  82h    deallocate memory
  2984.  83h    poll I/O device
  2985.  84h    wait on system flag
  2986.  85h    set system flag
  2987.  86h    create message queue
  2988.  87h    open message queue
  2989.  88h    delete message queue
  2990.  89h    read from message queue
  2991.  8Ah    conditionally read from message queue
  2992.  8Bh    write to message queue
  2993.  8Ch    conditionally write to message queue
  2994.  8Dh    delay calling process
  2995.  8Eh    call process dispatcher (yield CPU)
  2996.  8Fh    terminate calling process (same as function 00h)
  2997.  90h    create a process
  2998.  91h    set calling process' priority
  2999.  92h    attach to default console
  3000.  93h    detach from default console
  3001.  95h    assign default console to process
  3002.  96h    interpret and execute commandline
  3003.  97h    resident procedure library
  3004.  98h    parse ASCII string into FCB (see also INT 21/AH=29h)
  3005.  99h    return default console
  3006.  9Ah    get address of system data (SYSDAT)
  3007.  9Bh    get system time and date
  3008.  9Ch    return calling process' descriptor
  3009.  9Dh    terminate process by name or PD address
  3010.  9Eh    attach to default list device
  3011.  9Fh    detach from default list device
  3012.  A0h    select default list device
  3013.  A1h    conditionally attach to default list device
  3014.  A2h    conditionally attach to default console
  3015.  A3h    get OS version number
  3016.  A4h    get default list device
  3017.  A5h    attach to default AUX
  3018.  A6h    detach from default AUX
  3019.  A7h    conditionally attach to default AUX
  3020.  A8h    set default AUX
  3021.  A9h    return default AUX
  3022.  ACh    read block from default AUX
  3023.  ADh    (DOS Plus v2.1) write block to default AUX
  3024.  B0h    configure default AUX
  3025.  B1h    get/set device control parameters
  3026.  B2h    send Break through default AUX
  3027.  B3h    allocate physical memory
  3028.  B4h    free physical memory
  3029.  B5h    map physical memory
  3030.  B6h    nondestructive message queue read
  3031.  B7h    timed wait on system flag
  3032.  B8h    get/set I/O port mapping
  3033.  B9h    set list device timeout
  3034.  BAh    set AUX timeout value
  3035.  BBh    execute XIOS service
  3036.  BDh    (DR Multiuser DOS) delay
  3037.  FFh    return 80386 to native mode
  3038.  
  3039. (Table 2603)
  3040. Values for DOS Plus v2.1 XIOS functions:
  3041.  00h    terminate program
  3042.  01h    ???
  3043.  02h    check for console input status
  3044.  03h    read character from console
  3045.  04h    write character to console
  3046.  05h    write character to list device
  3047.  06h    write character to auxiliary device
  3048.  07h    read cahracter from auxiliary device
  3049.  0Fh    get list device status
  3050.  10h-14h reserved
  3051.  15h    device initialization
  3052.  16h    check console output status
  3053.  17h-7Fh reserved
  3054. ---BBC Acorn---
  3055.  80h    get XIOS version
  3056.  81h    get Tube semaphore
  3057.  82h    release Tube semaphore
  3058.  83h    select text/graphics
  3059.  84h    update B&W graphics rectangle
  3060.  85h    update color graphics rectangle
  3061.  86h    get/release/update mouse
  3062.  87h    get system error info
  3063.  88h    entry in CLOCK called by WatchDog RSP
  3064.  89h    BBC OSBYTE function
  3065.  8Ah    BBC OSWORD function
  3066.  
  3067. (Table 2604)
  3068. Values for DR Multiuser DOS Error Return Code:
  3069.  00h    no error
  3070.  01h    system call not implemented
  3071.  02h    illegal system call number
  3072.  03h    cannot find memory
  3073.  04h    illegal flag number
  3074.  05h    flag overrun
  3075.  06h    flag underrun
  3076.  07h    no unused Queue Descriptors
  3077.  08h    no free queue buffer
  3078.  09h    cannot find queue
  3079.  0Ah    queue in use
  3080.  0Ch    no free Process Descriptors
  3081.  0Dh    no queue access
  3082.  0Eh    empty queue
  3083.  0Fh    full queue
  3084.  10h    CLI queue missing
  3085.  11h    no 8087 in system
  3086.  12h    no unused Memory Descriptors
  3087.  13h    illegal console number
  3088.  14h    no Process Descriptor match
  3089.  15h    no console match
  3090.  16h    no CLI process
  3091.  17h    illegal disk number
  3092.  18h    illegal filename
  3093.  19h    illegal filetype
  3094.  1Ah    character not ready
  3095.  1Bh    illegal Memory Descriptor
  3096.  1Ch    bad return from BDOS load
  3097.  1Dh    bad return from BDOS read
  3098.  1Eh    bad return from BDOS open
  3099.  1Fh    null command
  3100.  20h    not owner of resource
  3101.  21h    no CSEG in load file
  3102.  22h    process Descriptor exists on Thread Root
  3103.  23h    could not terminate process
  3104.  24h    cannot attach to process
  3105.  25h    illegal list device number
  3106.  26h    illegal password
  3107.  28h    external termination occurred
  3108.  29h    fixup error upon load
  3109.  2Ah    flag set ignored
  3110.  2Bh    illegal auxilliary device number
  3111. --------O-E0----CL03-------------------------
  3112. INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM AUX DEVICE
  3113.     CL = 03h
  3114. Return: AL = ASCII character
  3115. Notes:    A_READ reads the next 8-bit character from the logical auxilliary
  3116.       input device (AUXn:); control is not returned to the calling
  3117.       process until a character has been read.
  3118.     if another process owns AUX, this call blocks until the device becomes
  3119.       available
  3120. SeeAlso: INT 21/AH=03h,INT E0/CL=04h,INT E0/CL=07h,INT E0/CL=A5h,INT E0/CL=ACh
  3121. --------O-E0----CL04-------------------------
  3122. INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO AUX DEVICE
  3123.     CL = 04h
  3124.     DL = ASCII character
  3125. Return: nothing
  3126. Note:    if another process owns AUX, this call blocks until the device becomes
  3127.       available
  3128. SeeAlso: INT 21/AH=04h,INT E0/CL=03h,INT E0/CL=08h,INT E0/CL=A5h,INT E0/CL=ADh
  3129. --------O-E0----CL07-------------------------
  3130. INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE
  3131.     CL = 07h
  3132. Return: AL = status
  3133.         00h not ready
  3134.         FFh character available
  3135. Desc:    determine whether the current AUX device has input available
  3136. SeeAlso: INT E0/CL=03h,INT E0/CL=08h
  3137. --------O-E0----CL08-------------------------
  3138. INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE
  3139.     CL = 08h
  3140. Return: AL = status
  3141.         00h not ready
  3142.         FFh ready for output
  3143. Desc:    determine whether the current AUX device is able to accept more output
  3144. SeeAlso: INT E0/CL=04h,INT E0/CL=07h
  3145. --------O-E0----CL59-------------------------
  3146. INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA
  3147.     CL = 59h
  3148.     DX = size in bytes
  3149. Return: AX = status
  3150.         FFFFh failed
  3151.         other successful
  3152.         ES:BX -> reserved memory
  3153. --------O-E0----CL86-------------------------
  3154. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE
  3155.     CL = 86h
  3156.     DS:DX -> queue descriptor (see #2605)
  3157. Return: AX = status (0000h success, FFFFh failure)
  3158.     CX = error code (see #2604)
  3159. SeeAlso: INT E0/CL=87h
  3160.  
  3161. Format of DR Multiuser DOS queue descriptor:
  3162. Offset    Size    Description    (Table 2605)
  3163.  00h  2 WORDs    internal use, initialize to zeros
  3164.  04h    WORD    flags
  3165.  06h  8 BYTEs    queue name
  3166.  0Eh    WORD    length of message
  3167.  10h    WORD    number of messages
  3168.  12h  4 WORDs    internal use, initialize to zeros
  3169.  1Ah    WORD    offset in system area of buffer for messages
  3170. --------O-E0----CL87-------------------------
  3171. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE
  3172.     CL = 87h
  3173.     DS:DX -> queue parameter block (see #2606)
  3174. Return: AX = status (0000h success, FFFFh failure)
  3175.     CX = error code (see #2604)
  3176. SeeAlso: INT E0/CL=86h,INT E0/CL=89h
  3177.  
  3178. Format of DR Multiuser DOS queue parameter block:
  3179. Offset    Size    Description    (Table 2606)
  3180.  00h    WORD    internal use, initialize to zero
  3181.  02h    WORD    queue ID (set by INT E0/CL=87h)
  3182.  04h    WORD    internal use, initialize to zero
  3183.  06h    WORD    offset of queue message buffer
  3184.  08h  8 BYTEs    queue name
  3185. --------O-E0----CL89-------------------------
  3186. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE
  3187.     CL = 89h
  3188.     DS:DX -> queue parameter block (see #2606)
  3189. Return: AX = status (0000h success, FFFFh failure)
  3190.     CX = error code (see #2604)
  3191. SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh
  3192. --------O-E0----CL8A-------------------------
  3193. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE
  3194.     CL = 8Ah
  3195.     DS:DX -> queue parameter block (see #2606)
  3196. Return: AX = status (0000h success, FFFFh failure)
  3197.     CX = error code (see #2604)
  3198. SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch
  3199. --------O-E0----CL8B-------------------------
  3200. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE
  3201.     CL = 8Bh
  3202.     DS:DX -> queue parameter block (see #2606)
  3203. Return: AX = status (0000h success, FFFFh failure)
  3204.     CX = error code (see #2604)
  3205. SeeAlso: INT E0/CL=89h,INT E0/CL=8Ch
  3206. --------O-E0----CL8C-------------------------
  3207. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE
  3208.     CL = 8Ch
  3209.     DS:DX -> queue parameter block (see #2606)
  3210. Return: AX = status (0000h success, FFFFh failure)
  3211.     CX = error code (see #2604)
  3212. SeeAlso: INT E0/CL=8Ah,INT E0/CL=8Bh
  3213. --------O-E0----CL8E-------------------------
  3214. INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER
  3215.     CL = 8Eh
  3216.     DX = FFFFh (optional) to force dispatch
  3217. Return: nothing
  3218. Desc:    allow other processes of the same or higher priority to run if they
  3219.       are ready
  3220. Note:    if DX=FFFFh, a dispatch is forced even if no other process is ready
  3221. SeeAlso: INT E0/CL=91h
  3222. --------O-E0----CL91-------------------------
  3223. INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY
  3224.     CL = 91h
  3225.     DL = new priority (00h highest to FFh lowest)
  3226. Note:    sets priority of calling process; transient processes are initialized
  3227.       to priority C8h
  3228. SeeAlso: INT E0/CL=8Eh
  3229. --------O-E0----CL93-------------------------
  3230. INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE
  3231.     CL = 93h
  3232. Return: AX = status
  3233.         0000h successfully detached
  3234.         FFFFh detach failed
  3235. SeeAlso: INT E0/CL=A6h
  3236. --------O-E0----CLA5-------------------------
  3237. INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE
  3238.     CL = A5h
  3239. Desc:    attaches the default auxiliary device to the calling process unless
  3240.       it is already attached to another process, in which case the call
  3241.       blocks until the device becomes available
  3242. Note:    this call should be used before attempting to read or write from
  3243.       the AUX device; however, the I/O calls internally call this function
  3244.       to ensure device ownership
  3245. SeeAlso: INT E0/CL=03h,INT E0/CL=04h,INT E0/CL=A6h,INT E0/CL=A7h,INT E0/CL=A8h
  3246. SeeAlso: INT E0/CL=ACh,INT E0/CL=ADh,INT E0/CL=B0h
  3247. --------O-E0----CLA6-------------------------
  3248. INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE
  3249.     CL = A6h
  3250. Return: AX = status
  3251.         0000h successfully detached
  3252.         FFFFh detach failed
  3253.     CX = error code
  3254. SeeAlso: INT E0/CL=93h,INT E0/CL=A5h,INT E0/CL=A7h
  3255. --------O-E0----CLA7-------------------------
  3256. INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE
  3257.     CL = A7h
  3258. Return: AX = status
  3259.         0000h attached
  3260.         FFFFh unable to attach
  3261. Desc:    attaches the default auxiliary device to the calling process if it is
  3262.       available
  3263. Note:    does not block if the device is already in use
  3264. SeeAlso: INT E0/CL=A5h,INT E0/CL=A6h,INT E0/CL=A8h,INT E0/CL=B0h
  3265. --------O-E0----CLA8-------------------------
  3266. INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER
  3267.     CL = A8h
  3268.     DL = auxiliary device number
  3269. Return: AX = status
  3270.         0000h successful
  3271.         FFFFh failed
  3272.     CX = error code
  3273. Desc:    specify which physical device will become AUX
  3274. SeeAlso: INT E0/CL=A5h,INT E0/CL=A9h
  3275. --------O-E0----CLA9-------------------------
  3276. INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER
  3277.     CL = A9h
  3278. Return: AL = current default auxiliary device number
  3279. Desc:    determine which physical device is currently AUX
  3280. SeeAlso: INT E0/CL=A8h
  3281. --------O-E0----CLAC-------------------------
  3282. INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE
  3283.     CL = ACh
  3284.     DS:DX -> character control block (CHCB) (see #2607)
  3285. Return: AX = number of characters read
  3286. Desc:    read characters from the default auxiliary (AUXn:) device into a buffer
  3287.       until the buffer is full or the device is no longer ready
  3288. Notes:    if the device is initially not ready, blocks until at least one
  3289.       character has been read
  3290.     if another process owns AUX, this call blocks until the device becomes
  3291.       available
  3292. SeeAlso: INT E0/CL=03h,INT E0/CL=A5h,INT E0/CL=ADh
  3293.  
  3294. Format of DR Multiuser DOS character control block (CHCB):
  3295. Offset    Size    Description    (Table 2607)
  3296.  00h    DWORD    pointer to character buffer
  3297.  04h    WORD    length of character buffer
  3298. --------O-E0----CLAD-------------------------
  3299. INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE
  3300.     CL = ADh
  3301.     DS:DX -> character control block (see #2607)
  3302. Return: AX = number of characters written
  3303. Note:    does not return until at least one character has been written
  3304. SeeAlso: INT E0/CL=04h,INT E0/CL=A5h,INT E0/CL=ACh
  3305. --------O-E0----CLB0-------------------------
  3306. INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS
  3307.     CL = B0h
  3308.     DX:DX -> AUX device parameter block (see #2608)
  3309. Return: AX = status
  3310.         0000h successful
  3311.         parameter block updated
  3312.         FFFFh failed
  3313.         CX = error code
  3314. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  3315.  
  3316. Format of DR Multiuser DOS AUX device parameter block:
  3317. Offset    Size    Description    (Table 2608)
  3318.  00h    BYTE    function (00h get, 01h set)
  3319.  01h    BYTE    baud rate (see #2610) FFh = don't change/unknown
  3320.  02h    BYTE    parity (see #2609)
  3321.  03h    BYTE    stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change)
  3322.  04h    BYTE    data bits (05h-08h or FFh unknown/don't change)
  3323.  05h    BYTE    handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF,
  3324.         FFh unknown/don't change)
  3325.  06h    BYTE    XON character, FFh unknown/don't change
  3326.  07h    BYTE    XOFF character, FFh unknown/don't change
  3327.  
  3328. (Table 2609)
  3329. Values for DR Multiuser DOS AUX parity:
  3330.  00h    none
  3331.  01h    odd
  3332.  02h    none
  3333.  03h    even
  3334.  04h    stick parity bit
  3335.  FFh    don't change/unknown
  3336.  
  3337. (Table 2610)
  3338. Values for DR Multiuser DOS AUX baud rate:
  3339.  00h    50 baud
  3340.  01h    62.5 baud
  3341.  02h    75 baud
  3342.  03h    110 baud
  3343.  04h    134.5 baud
  3344.  05h    150 baud
  3345.  06h    200 baud
  3346.  07h    300 baud
  3347.  08h    600 baud
  3348.  09h    1200 baud
  3349.  0Ah    1800 baud
  3350.  0Bh    2000 baud
  3351.  0Ch    2400 baud
  3352.  0Dh    3600 baud
  3353.  0Eh    4800 baud
  3354.  0Fh    7200 baud
  3355.  10h    9600 baud
  3356.  11h    19200 baud
  3357.  12h    38400 baud
  3358.  13h    56000 baud
  3359.  14h    76800 baud
  3360.  15h    115200 baud
  3361. --------O-E0----CLB1-------------------------
  3362. INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS
  3363.     CL = B1h
  3364.     DS:DX -> AUX device control block (see #2611)
  3365. Return: AX = status
  3366.         0000h successful
  3367.         control block updated
  3368.         FFFFh failed
  3369.         CX = error code
  3370. SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h
  3371.  
  3372. Format of DR Multiuser DOS AUX device control block:
  3373. Offset    Size    Description    (Table 2611)
  3374.  00h    BYTE    function (00h get, 01h set)
  3375.  01h    BYTE    DTR state (00h low, 01h high, FFh unknown/don't change)
  3376.  02h    BYTE    RTS state (00h low, 01h high, FFh unknown/don't change)
  3377.  03h    BYTE    DSR state (00h low, 01h high, FFh unknown/don't change)
  3378.  04h    BYTE    CTS state (00h low, 01h high, FFh unknown/don't change)
  3379.  05h    BYTE    DCD state (00h low, 01h high, FFh unknown/don't change)
  3380.  06h    BYTE    RI state (00h inactive, 01h active, FFh unknown/don't change)
  3381. --------O-E0----CLB2-------------------------
  3382. INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE
  3383.     CL = B2h
  3384.     DX = duration of break in system ticks (0001h-FFFFh)
  3385. Return: AX = status
  3386.         0000h successful
  3387.         break signal completed
  3388.         FFFFh failed
  3389.         CX = error code
  3390. Note:    if the AUX device is currently owned by another process, this call will
  3391.       block until the device becomes available
  3392. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  3393. --------O-E0----CLBD-------------------------
  3394. INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION
  3395.     CL = BDh
  3396.     DX = delay in system ticks
  3397. Return: after the delay elapses
  3398. Notes:    the length of a system tick is installation-dependent (typically
  3399.       1/50 or 1/60 second); the length may be determined by reading the
  3400.       TICKSPERSEC value from the system data segment
  3401.     the actual delay before the process is rescheduled to run may be up to
  3402.       one tick longer than requested; the delay between rescheduling and
  3403.       actual execution cannot be predicted if higher-priority processes
  3404.       are awaiting a turn at the CPU
  3405. SeeAlso: INT 15/AH=86h,INT 1A/AX=FF01h,INT 2F/AX=1224h,INT 62/AX=0096h
  3406. --------g-E00000-----------------------------
  3407. INT E0 - PCROBOTS v1.41 - "SWAPTASK" - END CURRENT ROBOT'S TURN
  3408.     AX = 0000h
  3409. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  3410.       which specially-written .COM or .EXE programs form robots battling
  3411.       each other in a user-defined arena
  3412. --------g-E00001-----------------------------
  3413. INT E0 - PCROBOTS v1.41 - "MOVEMENT" - START MOVING
  3414.     AX = 0001h
  3415.     BX = speed (0-maximum for robot)
  3416.     CX = direction (0-359 degrees)
  3417. Notes:    the speed will change to the specified value at the maximum
  3418.       acceleration the robot is capable of; if the robot is already moving
  3419.       faster than its maximum maneuverability speed, it will not be able
  3420.       to change direction
  3421.     this call also terminates the current robot's turn
  3422. SeeAlso: AX=0000h,AX=0002h,AX=0003h
  3423. --------g-E00002-----------------------------
  3424. INT E0 - PCROBOTS v1.41 - "SCAN" - SCAN FOR OTHER ROBOTS IN THE GIVEN DIRECTION
  3425.     AX = 0002h
  3426.     BX = direction (0-359 degrees)
  3427.     CX = resolution (0-45 degrees)
  3428. Return: AX = status
  3429.         FFFFh if nothing detected
  3430.         else robot ID (0-19)
  3431.         BX = range to detected robot
  3432. Notes:    the scan searches within CX degrees to either side of the specified
  3433.       direction
  3434.     the scanner will see right through walls, but shells will not pass
  3435.       through walls
  3436.     this call also terminates the current robot's turn
  3437. SeeAlso: AX=0000h,AX=0001h,AX=0003h
  3438. --------g-E00003-----------------------------
  3439. INT E0 - PCROBOTS v1.41 - "SHOOT" - FIRE A SHELL AT ANOTHER ROBOT
  3440.     AX = 0003h
  3441.     BX = direction (0-359 degrees)
  3442.     CX = range (0-700)
  3443. Return: AX = status (0000h not fired, else ID of shell fired)
  3444. Notes:    up to seven shells may be in flight for a robot at one time; the cannon
  3445.       takes 50 ticks to reload
  3446.     this call also terminates the current robot's turn
  3447. SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=002Ch
  3448. --------g-E00010-----------------------------
  3449. INT E0 - PCROBOTS v1.41 - "GETXY" - GET ROBOT'S CURRENT POSITION
  3450.     AX = 0010h
  3451. Return: BX = current X coordinate (0-999)
  3452.     CX = current Y coordinate (0-999)
  3453. --------g-E00011-----------------------------
  3454. INT E0 - PCROBOTS v1.41 - "TRANSMIT" - SEND DATA TO ANOTHER ROBOT
  3455.     AX = 0011h
  3456.     BX = target robot ID
  3457.     CX = data to be sent
  3458. Return: AX = status (0000h data could not be sent, 0001h data sent)
  3459. Note:    this call costs one unit of battery power
  3460. --------g-E00012-----------------------------
  3461. INT E0 - PCROBOTS v1.41 - "RECEIVE" - GET DATA FROM OTHER ROBOTS
  3462.     AX = 0012h
  3463. Return: AX = status
  3464.         0000h no data available
  3465.         0001h data retrieved
  3466.         BX = sender's ID
  3467.         CX = data
  3468. Note:    each robot has a 20-word receive FIFO; if the FIFO is full, other
  3469.       robots will be unable to send more data until some is read
  3470. --------g-E00013-----------------------------
  3471. INT E0 - PCROBOTS v1.41 - "DAMAGE" - DETERMINE HOW MUCH DAMAGE SUSTAINED
  3472.     AX = 0013h
  3473. Return: BX = damage status
  3474. Note:    the initial value depends on configuration, but is typically 100; as
  3475.       the robot is damaged, it decreases
  3476. --------g-E00014-----------------------------
  3477. INT E0 - PCROBOTS v1.41 - "SPEED" - DETERMINE HOW FAST ROBOT IS MOVING
  3478.     AX = 0014h
  3479. Return: BX = current speed
  3480. --------g-E00015-----------------------------
  3481. INT E0 - PCROBOTS v1.41 - "BATTERY" - DETERMINE HOW MUCH BATTERY POWER LEFT
  3482.     AX = 0015h
  3483. Return: BX = current battery charge
  3484. Note:    the battery starts off with 1000 units of charge, and is constantly
  3485.       being charged by solar panels and constantly discharged by motion;
  3486.       the battery is charged at 4 units per turn and discharged at
  3487.       0.1*speed units per turn.
  3488. --------g-E00016-----------------------------
  3489. INT E0 - PCROBOTS v1.41 - "TICKS" - DETERMINE HOW LONG SINCE GAME STARTED
  3490.     AX = 0016h
  3491. Return: BX:CX = number of game ticks elapsed (not related to real time)
  3492. --------g-E00017-----------------------------
  3493. INT E0 - PCROBOTS v1.41 - "L_SIN" - GET SCALED SINE OF AN ANGLE
  3494.     AX = 0017h
  3495.     BX = angle (0-359 degrees)
  3496. Return: BX:CX = 100000*sine of angle
  3497. SeeAlso: AX=0018h,AX=0019h,AX=001Ah,AX=001Bh
  3498. --------g-E00018-----------------------------
  3499. INT E0 - PCROBOTS v1.41 - "L_COS" - GET SCALED COSINE OF AN ANGLE
  3500.     AX = 0018h
  3501.     BX = angle (0-359 degrees)
  3502. Return: BX:CX = 100000*cosine of angle
  3503. SeeAlso: AX=0017h,AX=0019h,AX=001Ah
  3504. --------g-E00019-----------------------------
  3505. INT E0 - PCROBOTS v1.41 - "L_TAN" - GET SCALED TANGENT OF AN ANGLE
  3506.     AX = 0019h
  3507.     BX = angle (0-359 degrees)
  3508. Return: BX:CX = 100000*tangent of angle
  3509. SeeAlso: AX=0017h,AX=0018h,AX=001Ah
  3510. --------g-E0001A-----------------------------
  3511. INT E0 - PCROBOTS v1.41 - "L_ATAN" - GET ANGLE GIVEN SCALED TANGENT
  3512.     AX = 001Ah
  3513.     BX:CX = 100000*tangent of an angle
  3514. Return: AX = angle (-90 to +90 degrees)
  3515. SeeAlso: AX=0017h,AX=0018h,AX=0019h
  3516. --------g-E0001B-----------------------------
  3517. INT E0 - PCROBOTS v1.41 - "SQRT" - DETERMINE SQUARE ROOT OF A NUMBER
  3518.     AX = 001Bh
  3519.     BX:CX = value
  3520. Return: BX:CX = square root
  3521. SeeAlso: AX=0017h
  3522. --------g-E0001C-----------------------------
  3523. INT E0 - PCROBOTS v1.41 - "SET_PATTERN" - SPECIFY ROBOT'S DISPLAY IMAGE
  3524.     AX = 001Ch
  3525.     BX:CX -> pattern array
  3526. Note:    the pattern array consists of five bytes, the low five bits of each
  3527.       specifying the bit pattern for one line of the robot's screen display
  3528. --------g-E0001D-----------------------------
  3529. INT E0 - PCROBOTS v1.41 - "DEBUG_FLAG" - SET/CLEAR MARKERS NEXT TO ROBOT'S NAME
  3530.     AX = 001Dh
  3531.     BX = flag number (0 or 1)
  3532.     CX = new value (0 reset, 1 set)
  3533. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  3534.       which specially-written .COM or .EXE programs form robots battling
  3535.       each other in a user-defined arena
  3536. Note:    the two flag markers may be used for any purpose, typically for
  3537.       debugging to provide a visual display of progress
  3538. --------g-E0001E-----------------------------
  3539. INT E0 - PCROBOTS v1.41 - "BUY_ARMOUR" - BUY OR SELL ARMOR FOR ROBOT
  3540.     AX = 001Eh
  3541.     BX = number of armor units to buy (negative to sell)
  3542. Note:    each armor unit is worth 50 battery units; the robot's armor rating
  3543.       will not go above its initial rating, so attempts to purchase more
  3544.       will waste battery units
  3545. SeeAlso: AX=001Fh
  3546. --------g-E0001F-----------------------------
  3547. INT E0 - PCROBOTS v1.41 - "BUY_SHELLS" - BUY ADDITIONAL CANNON SHELLS
  3548.     AX = 001Fh
  3549.     BX = number of shells to buy
  3550. Note:    each shell costs ten battery units
  3551. SeeAlso: AX=001Eh,AX=0020h
  3552. --------g-E00020-----------------------------
  3553. INT E0 - PCROBOTS v1.41 - "SHELLS LEFT" - DETERMINE HOW MANY SHELLS ROBOT HAS
  3554.     AX = 0020h
  3555. Return: BX = number of shells remaining
  3556. SeeAlso: AX=001Fh
  3557. --------g-E00021-----------------------------
  3558. INT E0 - PCROBOTS v1.41 - "GET LOCAL MAP"
  3559.     AX = 0021h
  3560.     BX:CX -> 81-byte buffer for map (see #2612)
  3561. Return: buffer filled with 9x9 area of map centered on robot's position
  3562.  
  3563. (Table 2612)
  3564. Values for PCROBOTS map squares:
  3565.  2Eh '.' empty square
  3566.  44h 'D' damaging trap
  3567.  52h 'R' refueling point
  3568.  58h 'X' wall
  3569. --------g-E00022-----------------------------
  3570. INT E0 - PCROBOTS v1.41 - "INVISIBILITY" - CONTROL ROBOT'S INVISIBILITY DEVICE
  3571.     AX = 0022h
  3572.     BX = new state (0000h become visible, 0001h become invisible)
  3573. Notes:    this function has no effect if the robot is not capable of invisibility
  3574.     the robot can only stay invisible for 100 turns, after which it will
  3575.       automatically become visible; it must also be remain visible for
  3576.       as many turns as it was invisible before it can turn invisible
  3577.       again
  3578. SeeAlso: AX=0024h,AX=0080h
  3579. --------g-E00023-----------------------------
  3580. INT E0 - PCROBOTS v1.41 - "GET_SHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
  3581.     AX = 0023h
  3582. Return: BX = status of last shell to land
  3583.         0000h missed completely
  3584.         0001h hit a wall
  3585.         0002h hit a robot within 50-square radius
  3586.         0003h hit a robot within 25-square radius
  3587.         0004h hit a robot within 5-square radius
  3588. --------g-E00024-----------------------------
  3589. INT E0 - PCROBOTS v1.41 - "IS_INVISIBLE" - DETERMINE WHETHER ROBOT IS INVISIBLE
  3590.     AX = 0024h
  3591. Return: BX = visibility (0000h visible, 0001h invisible)
  3592. SeeAlso: AX=0022h,AX=0080h
  3593. --------g-E00025-----------------------------
  3594. INT E0 - PCROBOTS v1.41 - "L_ATAN2" - GET ARCTANGENT
  3595.     AX = 0025h
  3596.     BX = Y
  3597.     CX = X
  3598. Return: AX = angle (arctangent of Y/X)
  3599. --------g-E00026-----------------------------
  3600. INT E0 - PCROBOTS v1.41 - "GET_ROBOT_ID" - DETERMINE CURRENT ROBOT'S IDENTIFIER
  3601.     AX = 0026h
  3602. Return: AX = robot ID
  3603. --------g-E00027-----------------------------
  3604. INT E0 - PCROBOTS v1.41 - "REGISTER_IFF" - REGISTER FRIEND/FOE IDENT STRING
  3605.     AX = 0027h
  3606.     BX:CX = ASCIZ IFF string
  3607. Note:    the IFF string may only be set once
  3608. SeeAlso: AX=0028h,AX=0029h
  3609. --------g-E00028-----------------------------
  3610. INT E0 - PCROBOTS v1.41 - "CHECK_IFF" - QUERY FRIEND/FOE IDENTIFICATION STRING
  3611.     AX = 0028h
  3612.     BX = robot ID to test
  3613. Return: AX = status
  3614.         0000h IFF strings match
  3615.         0001h IFF strings differ or invalid robot ID
  3616. SeeAlso: AX=0027h
  3617. --------g-E00029-----------------------------
  3618. INT E0 - PCROBOTS v1.41 - "REGISTER_NAME" - SPECIFY ROBOT'S NAME
  3619.     AX = 0029h
  3620.     BX:CX -> ASCIZ name string
  3621. Note:    the name may only be set once
  3622. SeeAlso: AX=0027h,AX=002Ah
  3623. --------g-E0002A-----------------------------
  3624. INT E0 - PCROBOTS v1.41 - "FIND_NAME" - SEARCH FOR ROBOT WITH GIVEN NAME
  3625.     AX = 002Ah
  3626.     BX:CX -> ASCIZ name string
  3627.     DX = first ID to check
  3628. Return: AX = robot ID or FFFFh if no robot with specified name
  3629. SeeAlso: AX=0028h,AX=0029h,AX=002Bh
  3630. --------g-E0002B-----------------------------
  3631. INT E0 - PCROBOTS v1.41 - "GET_TEAM_ID" - DETERMINE TEAM MEMBERSHIP OF ROBOT
  3632.     AX = 002Bh
  3633. Return: AX = team ID (0-2) or FFFFh if 'loner'
  3634. SeeAlso: AX=0029h
  3635. --------g-E0002C-----------------------------
  3636. INT E0 - PCROBOTS v1.41 - "GET_ASHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
  3637.     AX = 002Ch
  3638.     BX = shell ID
  3639. Return: AX = status
  3640.         0000h missed completely
  3641.         0001h hit a wall
  3642.         0002h hit a robot within a 50-square radius
  3643.         0003h hit a robot within a 25-square radius
  3644.         0004h hit a robot within a 5-square radius
  3645.         0005h shell not known (too old or not yet fired)
  3646.         0006h shell still in flight
  3647. SeeAlso: AX=0003h
  3648. --------g-E0002D-----------------------------
  3649. INT E0 - PCROBOTS v1.41 - "REGISTER_X" - SELECT AUTOMATIC X POSITION UPDATES
  3650.     AX = 002Dh
  3651.     BX:CX -> X word variable
  3652. Return: AX = status (0001h OK, 0000h problem with address)
  3653. Note:    after this call, PCROBOTS will automatically update the specified
  3654.       word whenever the robot moves
  3655. SeeAlso: AX=002Eh
  3656. --------g-E0002E-----------------------------
  3657. INT E0 - PCROBOTS v1.41 - "REGISTER_Y" - SELECT AUTOMATIC Y POSITION UPDATES
  3658.     AX = 002Eh
  3659.     BX:CX -> Y word variable
  3660. Return: AX = status (0001h OK, 0000h problem with address)
  3661. Note:    after this call, PCROBOTS will automatically update the specified
  3662.       word whenever the robot moves
  3663. SeeAlso: AX=002Dh
  3664. --------g-E00080-----------------------------
  3665. INT E0 - PCROBOTS v1.41 - "CONFIGURE" - CUSTOMIZE ROBOT
  3666.     AX = 0080h
  3667.     BX = basic configuration (see #2613)
  3668.     CX = advanced configuration (see #2614)
  3669. Return: AX = status (0001h OK, 0000h not first call in program)
  3670. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  3671.       which specially-written .COM or .EXE programs form robots battling
  3672.       each other in a user-defined arena
  3673. Notes:    a maximum of ten points may be allocated to the robot; if you attempt
  3674.       to allocate more, some items will be given a value of zero.  If this
  3675.       function is not called, each attribute is set to the default value
  3676.       of 2.
  3677.     if the invisibility option is chosen, the robot will start with only
  3678.       900 cannon shells instead of the default 1000
  3679.  
  3680. Bitfields for PCROBOTS basic configuration:
  3681. Bit(s)    Description    (Table 2613)
  3682.  0-3    maximum speed (0-4 = 50,75,100,150,200)
  3683.  4-7    maneuverability (0-4 = 20%,35%,50%,75%,100%)
  3684.  8-11    cannon range (0-4 = 300,500,700,1000,1500)
  3685.  12-15    robot armor (0-4 = 50,75,100,150,200)
  3686.  
  3687. Bitfields for PCROBOTS advanced configuration:
  3688. Bit(s)    Description    (Table 2614)
  3689.  0-2    robot acceleration (0-4 = 5,7,10,15,20)
  3690.  3    capable of invisibility
  3691. --------r-E1---------------------------------
  3692. INT E1 - IBM ROM BASIC - used while in interpreter
  3693. Notes:    called by ROM BASIC
  3694.     BASIC.COM/BASICA.COM do not restore vector on termination
  3695. --------N-E1---------------------------------
  3696. INT E1 - PC Cluster Disk Server Information (NOT A VECTOR!)
  3697. Desc:    points at a data table
  3698. SeeAlso: INT E2
  3699. --------O-E1---------------------------------
  3700. INT E1 - MP/M-86, - ALTERNATE CP/M-86 FUNCTION CALLS
  3701.     CL = function number (see #2602,#2603 at INT E0"CP/M")
  3702.     DS,DX = parameters
  3703. Return: as appropriate for function
  3704.     CX is often the error code (see #2604 at INT E0"CP/M")
  3705. Desc:    used by some applications which alter CP/M functions while running a
  3706.       child program, to store the original INT E0 vector before
  3707.       intercepting INT E0
  3708. SeeAlso: INT E0"CP/M"
  3709. ----------E1---------------------------------
  3710. INT E1 - DeskMate (Tandy) - TASK DATA SEGMENTS (NOT A VECTOR!)
  3711. Desc:    used to store data; the    low word of the vector is the data segment for
  3712.       the first task; the high word is the data segment of the second task
  3713.       (DeskMate supports 2-way task switching between small- or
  3714.       medium-model applications)
  3715. Program: DeskMate is a proprietary GUI from Tandy distributed with several
  3716.       models of the Tandy 1000's, 2500's, 3000's, and laptops.  Retail
  3717.       and runtime versions also exist.  Some Tandy's are designed to
  3718.       boot directly into DeskMate.
  3719. SeeAlso: INT E0"DeskMate"
  3720. --------r-E2---------------------------------
  3721. INT E2 - IBM ROM BASIC - used while in interpreter
  3722. Notes:    called by ROM BASIC
  3723.     BASIC.COM/BASICA.COM do not restore vector on termination
  3724. --------N-E2---------------------------------
  3725. INT E2 - PC Cluster Program - RELOCATED INT 1C
  3726. SeeAlso: INT 1C
  3727. --------r-E3---------------------------------
  3728. INT E3 - IBM ROM BASIC - used while in interpreter
  3729. Notes:    called by ROM BASIC
  3730.     BASIC.COM/BASICA.COM do not restore vector on termination
  3731. --------r-E40005-----------------------------
  3732. INT E4 - Logitech Modula v2.0 - MonitorEntry
  3733.     AX = 0005h
  3734.     BX = priority
  3735. SeeAlso: AX=0006h
  3736. --------r-E40006-----------------------------
  3737. INT E4 - Logitech Modula v2.0 - MonitorExit
  3738.     AX = 0006h
  3739. SeeAlso: AX=0005h
  3740. --------r-E4---------------------------------
  3741. INT E4 - IBM ROM BASIC - used while in interpreter
  3742. Notes:    called by ROM BASIC
  3743.     BASIC.COM/BASICA.COM do not restore vector on termination
  3744. --------r-E5---------------------------------
  3745. INT E5 - IBM ROM BASIC - used while in interpreter
  3746. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3747.     BASIC.COM/BASICA.COM do not restore vector on termination
  3748. --------r-E6---------------------------------
  3749. INT E6 - IBM ROM BASIC - used while in interpreter
  3750. Notes:    called by ROM BASIC
  3751.     BASIC.COM/BASICA.COM do not restore vector on termination
  3752. --------O-E600-------------------------------
  3753. INT E6 - Linux DOSEMU - INSTALLATION CHECK
  3754.     AH = 00h
  3755. Return: AX = AA55h if installed
  3756.         BX = DOSEMU version number * 100 (decimal)
  3757.         CX = patchlevel
  3758. SeeAlso: AH=FFh
  3759. --------O-E601-------------------------------
  3760. INT E6 - Linux DOSEMU - REGISTER DUMP
  3761.     AH = 01h
  3762. SeeAlso: AH=00h
  3763. --------O-E602-------------------------------
  3764. INT E6 - Linux DOSEMU - SET I/O PORT PERMISSIONS
  3765.     AH = 02h
  3766.     BX = base I/O port address
  3767.     CX = number of consecutive I/O ports
  3768.     CF set to allow DOS to use ports
  3769.     CF clear if DOS should not be allowed to use ports
  3770. SeeAlso: AH=00h
  3771. --------O-E605-------------------------------
  3772. INT E6 - Linux DOSEMU - STARTUP BANNER
  3773.     AH = 05h
  3774. SeeAlso: AH=00h
  3775. --------O-E612-------------------------------
  3776. INT E6 - Linux DOSEMU - SET "HOGTHRESHOLD"
  3777.     AH = 12h
  3778.     BX = new "hogthreshold" (00h-99h)
  3779. Desc:    specify how much CPU time DOSEMU may use
  3780. SeeAlso: AH=00h
  3781. --------O-E622-------------------------------
  3782. INT E6 - Linux DOSEMU - GET EMS STATUS
  3783.     AH = 22h
  3784. SeeAlso: AH=00h
  3785. --------O-E630-------------------------------
  3786. INT E6 - Linux DOSEMU - SET BOOTDISK FLAG
  3787.     AH = 30h
  3788.     BX = new flag state (0 = false, 1 = true)
  3789. SeeAlso: AH=00h
  3790. --------O-E650-------------------------------
  3791. INT E6 - Linux DOSEMU - EXECUTE UNIX COMMAND
  3792.     AH = 50h
  3793.     ES:DX -> ASCIZ Unix command
  3794. SeeAlso: AH=00h,AH=51h
  3795. --------O-E651-------------------------------
  3796. INT E6 - Linux DOSEMU - EXECUTE DOS COMMAND FROM UNIX
  3797.     AH = 51h
  3798.     ES:DX -> ASCIZ DOS command
  3799. SeeAlso: AH=00h,AH=50h
  3800. --------O-E680-------------------------------
  3801. INT E6 - Linux DOSEMU - GET CURRENT UNIX DIRECTORY
  3802.     AH = 80h
  3803. Return: ES:DX -> current Unix directory
  3804.     AX = length of current directory name
  3805. SeeAlso: AH=00h,AH=81h
  3806. --------O-E681-------------------------------
  3807. INT E6 - Linux DOSEMU - CHANGE CURRENT UNIX DIRECTORY
  3808.     AH = 81h
  3809.     ES:DX -> ASCIZ directory name
  3810. SeeAlso: AH=00h,AH=80h
  3811. --------O-E6FF-------------------------------
  3812. INT E6 - Linux DOSEMU - TERMINATE
  3813.     AH = FFh
  3814. SeeAlso: AH=00h
  3815. --------r-E7---------------------------------
  3816. INT E7 - IBM ROM BASIC - used while in interpreter
  3817. Notes:    called by ROM BASIC
  3818.     BASIC.COM/BASICA.COM do not restore vector on termination
  3819. --------r-E8---------------------------------
  3820. INT E8 - IBM ROM BASIC - used while in interpreter
  3821. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3822.     BASIC.COM/BASICA.COM do not restore vector on termination
  3823. --------r-E9---------------------------------
  3824. INT E9 - IBM ROM BASIC - used while in interpreter
  3825. Notes:    called by ROM BASIC
  3826.     BASIC.COM/BASICA.COM do not restore vector on termination
  3827. --------r-EA---------------------------------
  3828. INT EA - IBM ROM BASIC - used while in interpreter
  3829. Notes:    called by ROM BASIC
  3830.     BASIC.COM/BASICA.COM do not restore vector on termination
  3831. --------r-EB---------------------------------
  3832. INT EB - IBM ROM BASIC - used while in interpreter
  3833. Notes:    called by ROM BASIC
  3834.     BASIC.COM/BASICA.COM do not restore vector on termination
  3835. --------r-EC---------------------------------
  3836. INT EC - IBM ROM BASIC - used while in interpreter
  3837. Notes:    called by ROM BASIC
  3838.     BASIC.COM/BASICA.COM do not restore vector on termination
  3839. --------N-EC---------------------------------
  3840. INT EC - used by Alloy NTNX
  3841. --------r-EC---------------------------------
  3842. INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR
  3843.     AX = function number (0000h to 0140h)
  3844.     STACK:    DWORD address to return to
  3845.         any arguments required by function
  3846. Return: STACK:    return address popped, but otherwise unchanged
  3847. Desc:    this is the interface from applications to the runtime system by Exact
  3848.       Automatisering B.V. of the Netherlands.  By using this interrupt,
  3849.       it can provide DLL-style capabilities under MS-DOS.
  3850. Note:    the interrupt handler removes the return address and flags placed on
  3851.       the stack by the INT EC, then jumps to the appropriate function
  3852. --------r-ED---------------------------------
  3853. INT ED - IBM ROM BASIC - used while in interpreter
  3854. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3855.     BASIC.COM/BASICA.COM do not restore vector on termination
  3856.     INT 80 through INT ED are modified but not restored by Direct Access
  3857.       v4.0, and may be left dangling by other programs written with the
  3858.       same version of compiled BASIC
  3859. SeeAlso: INT EC"BASIC",INT EE"BASIC"
  3860. --------r-EE---------------------------------
  3861. INT EE - IBM ROM BASIC - used while in interpreter
  3862. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3863.     BASIC.COM/BASICA.COM do not restore vector on termination
  3864. SeeAlso: INT ED"BASIC",INT EE"BASIC"
  3865. --------r-EF---------------------------------
  3866. INT EF - BASIC - ORIGINAL INT 09 VECTOR
  3867. Note:    BASIC.COM/BASICA.COM do not restore vector on termination
  3868. SeeAlso: INT EE"BASIC",INT F0"BASIC"
  3869. --------O-EF----CX0473-----------------------
  3870. INT EF - GEM - INTERFACE
  3871.     CX = 0473h
  3872.     DS:DX -> GEM parameter block
  3873. --------r-F0---------------------------------
  3874. INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR
  3875. Note:    BASICA.COM does not restore vector on termination
  3876. SeeAlso: INT EF"BASIC"
  3877. --------*-F1---------------------------------
  3878. INT F1 - reserved for user interrupt
  3879. --------s-F1---------------------------------
  3880. INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
  3881.     DS:BX -> '$'-terminated text string
  3882. Program: SPEECH.COM is a resident text-to-speech converter by Douglas Sisco
  3883. --------s-F1---------------------------------
  3884. INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
  3885. SeeAlso: INT F2"SPEECH"
  3886. --------U-F1---------------------------------
  3887. INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS
  3888. Return: AX:BX -> data area
  3889. Program: AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1
  3890.       and COM2 in software
  3891. Note:    The installation check consists of testing for the following signature
  3892.       immediately preceding the interrupt handler: "JWBtvv" where 't' is
  3893.       either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit
  3894.       version number
  3895. Index:    installation check;AQUEDUCT|installation check;PIPELINE
  3896. --------N-F1---------------------------------
  3897. INT F1 - NetWare Remote Boot - INSTALLATION CHECK (NOT A VECTOR!)
  3898. Note:    if this vector contains the value 5774654Eh ("NetW"), the remote boot
  3899.       BIOS extension is active, and access to the floppy disk is redirected
  3900.       to an image file in the server's SYS:LOGIN directory
  3901. SeeAlso: INT F2"NetWare",INT F3"NetWare",INT F4"NetWare"
  3902. --------v-F1---------------------------------
  3903. INT F1 - VIRUS - "Violetta" - ???
  3904. Note:    used but not chained by virus
  3905. SeeAlso: INT E0"VIRUS",INT FF"VIRUS"
  3906. ----------F101-------------------------------
  3907. INT F1 - Common ISDN API (CAPI) v1.1 - "API-REGISTER" - INITIALIZE CAPI
  3908.     AH = 01h
  3909.     ES:BX -> buffer for CAPI's use (see note)
  3910.     CX = minimum number of pending messages
  3911.     DX = maximum simultaneous Level 3 connections
  3912.     SI = maximum concurrent received B3 data blocks
  3913.     DI = maximum B3 data block size
  3914. Return: AX = CAPI-assigned application ID
  3915.         0000h on error
  3916.         BX = error number
  3917.             1001h registration error
  3918. Range:    INT 00 to INT FF, selectable by program parameter
  3919. Notes:    the caller is required to provide at least 512 bytes of stack space
  3920.     the CAPI interrupt handler begins with a header which is nearly
  3921.       identical to the IBM Interrupt Sharing Protocol header
  3922.       (see #1363 at INT 2D), except that the short jump instruction to
  3923.       a hardware reset handler at offset 09h is replaced by the signature
  3924.       bytes "IA"
  3925.     the maximum length of a message is fixed at 180 bytes; the standard
  3926.       document suggests using CX=10, DI=1, SI=7, and DI=130 for
  3927.       applications which use only a single connection and standard
  3928.       protocols
  3929.     the total size of the application-provided buffer must be at least
  3930.       180*CX + DX*SI*DI bytes
  3931. SeeAlso: AH=02h,INT F1/AL=01h
  3932. Index:    installation check;Common ISDN API
  3933. ----------F1--01-----------------------------
  3934. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_REGISTER" - INITIALIZE CAPI
  3935.     AL = 01h
  3936.     AH = CAPI version number * 10 (14h for v2.0)
  3937.     ES:BX -> buffer for CAPI's use (see note)
  3938.     CX = number of bytes for message buffer
  3939.     DX = maximum simultaneous logical (Level 3) connections
  3940.     SI = maximum concurrent received B3 data blocks (min. 2)
  3941.     DI = maximum B3 data block size (up to 2048 bytes)
  3942. Return: AX = CAPI-assigned application ID
  3943.         0000h on error
  3944.         BX = error number
  3945.             1001h registration error
  3946. Range:    INT 00 to INT FF, selectable by program parameter
  3947. Notes:    the caller is required to provide at least 512 bytes of stack space
  3948.     the CAPI interrupt handler begins with a header (see #2615) which is
  3949.       nearly identical to the IBM Interrupt Sharing Protocol header
  3950.       (see #1363 at INT 2D), except that the short jump instruction to
  3951.       a hardware reset handler at offset 09h is replaced by the signature
  3952.       bytes "IA"
  3953.     the standard document suggests using 1024 + (1024*DX) bytes for the
  3954.       message buffer for typical applications
  3955.     the total size of the application-provided buffer must be at least
  3956.       CX + DX*SI*DI bytes
  3957. SeeAlso: AH=01h,INT F1/AL=02h
  3958. Index:    installation check;Common ISDN API
  3959.  
  3960. Format of CAPI v2.0 interrupt handler entry point:
  3961. Offset    Size    Description    (Table 2615)
  3962.  00h  2 BYTEs    short jump to actual start of interrupt handler, immediately
  3963.           following this data block (EBh 0Fh)
  3964.  02h    DWORD    address of next handler in chain
  3965.  06h    WORD    signature 424Bh
  3966.  08h    BYTE    EOI flag (80h)
  3967.         80h primary hardware interrupt handler (will issue EOI)
  3968.  09h  2 BYTEs    reserved (0)
  3969.         (is short jump to hardware reset routine in ISP header)
  3970.  0Bh  4 BYTEs    signature "CAPI"
  3971.  0Fh  2 BYTEs    two-digit CAPI version number in ASCII ('20')
  3972. SeeAlso: #1363 at INT 2D
  3973. ----------F102-------------------------------
  3974. INT F1 - Common ISDN API (CAPI) v1.1 - "API-RELEASE" - UNREGISTER FROM CAPI
  3975.     AH = 02h
  3976.     DX = application ID (see AH=01h)
  3977. Return: AX = status (0000h,1002h) (see #2657)
  3978. Notes:    the caller is required to provide at least 512 bytes of stack space
  3979. SeeAlso: AH=01h,INT F1/AL=02h
  3980.  
  3981. (Table 2657)
  3982. Values for CAPI v1.1 error code:
  3983.  0000h    successful
  3984.  1001h    registration error
  3985.  1002h    invalid application ID
  3986.  1003h    message too small or incorrectly coded message number
  3987.  1004h    invalid command or subcommand
  3988.  1005h    message queue full
  3989.  1006h    message queue empty
  3990.  1007h    message(s) lost due to queue overflow
  3991.  1008h    error uninstalling
  3992. SeeAlso: #2660
  3993. ----------F1--02-----------------------------
  3994. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_RELEASE" - UNREGISTER FROM CAPI
  3995.     AL = 02h
  3996.     AH = CAPI version number * 10 (14h for v2.0)
  3997.     DX = application ID (see INT F1/AL=01h)
  3998. Return: AX = status (0000h,11xxh) (see #2660)
  3999. Notes:    the caller is required to provide at least 512 bytes of stack space
  4000. SeeAlso: AH=02h,INT F1/AL=01h,INT F1/AL=03h
  4001.  
  4002. (Table 2660)
  4003. Values for CAPI v2.0 error code:
  4004.  0000h    successful
  4005.  1001h    too many applications
  4006.  1002h    logical block size too small (must be at least 128 bytes)
  4007.  1003h    buffer > 64K
  4008.  1004h    message buffer too small (minimum 1024 bytes)
  4009.  1005h    too many logical connections requested
  4010.  1006h    reserved
  4011.  1007h    could not register because CAPI busy, try again
  4012.  1008h    OS resource unavailable (out of memory, etc.)
  4013.  1009h    COMMON-ISDN-API not installed
  4014.  100Ah    controller does not support external equipment
  4015.  100Bh    controller supports only external equipment
  4016.  1101h    invalid application ID
  4017.  1102h    illegal comand or subcommand, or message too short
  4018.  1103h    message queue full
  4019.  1104h    queue empty
  4020.  1105h    queue overflowed (message lost)
  4021.  1106h    unknown notification parameter
  4022.  1107h    could not accept message because CAPI busy, try again
  4023.  1108h    OS resource unavailable (out of memory, etc.)
  4024.  1109h    COMMON-ISDN-API not installed
  4025.  110Ah    controller does not support external equipment
  4026.  110Bh    controller supports only external equipment
  4027.  2001h    message not supported in current state
  4028.  2002h    illegal controller/PLCI/NCCI
  4029.  2003h    out of PLCI
  4030.  2004h    out of NCCI
  4031.  2005h    out of LISTEN
  4032.  2006h    out of FAX resources (T.30 protocol)
  4033.  2007h    illegal message parameter coding
  4034.  3001h    unsupported B1 protocol
  4035.  3002h    unsupported B2 protocol
  4036.  3003h    unsupported B3 protocol
  4037.  3004h    unsupported B1 protocol parameter
  4038.  3005h    unsupported B2 protocol parameter
  4039.  3006h    unsupported B3 protocol parameter
  4040.  3007h    unsupported B protocol combination
  4041.  3008h    NCPI not supported
  4042.  3009h    unknown CIP value
  4043.  300Ah    unsupported flags (reserved bits set)
  4044.  300Bh    unsupported facility
  4045.  300Ch    data length not supported by current protocol
  4046.  300Dh    reset procedure not supported by current protocol
  4047. SeeAlso: #2657
  4048. ----------F103-------------------------------
  4049. INT F1 - Common ISDN API (CAPI) v1.1 - "API-PUT-MESSAGE"
  4050.     AH = 03h
  4051.     DX = application ID (see AH=01h)
  4052.     ES:BX -> message to be sent (see #2658)
  4053. Return: AX = status (0000h,1002h,1003h,1004h,1005h) (see #2657)
  4054. Notes:    the caller is required to provide at least 512 bytes of stack space
  4055.     the message buffer may be reused as soon as this call returns
  4056. SeeAlso: AH=01h,AH=04h,INT F1/AL=03h
  4057.  
  4058. Format of CAPI message:
  4059. Offset    Size    Description    (Table 2658)
  4060.  00h    WORD    total message length, including header
  4061.  02h    WORD    application ID (see AH=01h)
  4062.  04h    BYTE    command (see #2659,#2661)
  4063.  05h    BYTE    subcommand (see #2659,#2661)
  4064.  06h    WORD    message sequence number
  4065.         0000h-7FFFh messages from application to CAPI (and replies)
  4066.         8000h-FFFFh messages from CAPI to application (and replies)
  4067.  08h    var    message data (max 172 bytes for v1.1 only)
  4068.  
  4069. (Table 2659)
  4070. Values for CAPI v1.1 message command/subcommand:
  4071. Cmd/SubCmd    Name            Description
  4072.  01h/00h    RESET-B3-REQ    request resetting of a Level 3 connection
  4073.  01h/01h    RESET-B3-CONF    confirm Level 3 connection reset
  4074.  01h/02h    RESET-B3-IND    indication from CAPI that Level 3 conn. reset
  4075.  01h/03h    RESET-B3-RESP    confirm receipt of RESET-B3-IND
  4076.  02h/00h    CONNECT-REQ        establish B-channel connection
  4077.  02h/01h    CONNECT-CONF    confirm start of connection establishment
  4078.  02h/02h    CONNECT-IND        indication from CAPI of incoming connection
  4079.  02h/03h    CONNECT-RESP    accept incoming connection
  4080.  03h/02h    CONNECT-ACTIVE-IND    indication that B-channel connection complete
  4081.  03h/03h    CONNECT-ACTIVE-RESP    confirm connection-complete indication
  4082.  04h/00h    DISCONNECT-REQ    request shutdown of B-channel connection
  4083.  04h/01h    DISCONNECT-CONF    confirm shutdown of B-channel connection
  4084.  04h/02h    DISCONNECT-IND    indication that B-channel is shutting down
  4085.  04h/03h    DISCONNECT-RESP    confirm that application knows of shutdown
  4086.  05h/00h    LISTEN-REQ        enable indication of incoming connections
  4087.  05h/01h    LISTEN-CONF        confirm enabling of incoming conn. indication
  4088.  06h/00h    GET-PARAMS-REQ    request B-channel parameters
  4089.  06h/01h    GET-PARAMS-CONF    return B-channel parameters
  4090.  07h/00h    INFO-REQ        set B-channel info to be signalled to app
  4091.  07h/01h    INFO-CONF        confirm B-channel info signalling
  4092.  07h/02h    INFO-IND        signal B-channel events to application
  4093.  07h/03h    INFO-CONF        confirm receipt of INFO-IND
  4094.  08h/00h    DATA-REQ        send D-channel data
  4095.  08h/01h    DATA-CONF        confirm receipt of DATA-REQ
  4096.  08h/02h    DATA-IND        receive D-channel data
  4097.  08h/03h    DATA-RESP        confirm receipt fo DATA-IND
  4098.  09h/00h    CONNECT-INFO-REQ    request connection information
  4099.  09h/01h    CONNECT-INFO-CONF    return connection information
  4100.  40h/00h    SELECT-B2-PROTOCOL-REQ  select Level 2 protocol
  4101.  40h/01h    SELECT-B2-PROTOCOL-CONF confirm receipt of SELECT-B2-PROTOCOL-REQ
  4102.  80h/00h    SELECT-B3-PROTOCOL-REQ  select Level 3 protocol
  4103.  80h/01h    SELECT-B3-PROTOCOL-CONF confirm receipt of SELECT-B3-PROTOCOL-REQ
  4104.  81h/00h    LISTEN-B3-REQ    enable notification of incoming Level 3 calls
  4105.  81h/01h    LISTEN-B3-CONF    confirm receipt of LISTEN-B3-REQ
  4106.  82h/00h    CONNECT-B3-REQ    establish Level 3 connection
  4107.  82h/01h    CONNECT-B3-CONF    confirm start of connection establishment
  4108.  82h/02h    CONNECT-B3-IND    indication of incoming Level 3 connection
  4109.  82h/03h    CONNECT-B3-RESP    accept incoming connection
  4110.  83h/02h    CONNECT-B3-ACTIVE-IND  indication that Level 3 connection complete
  4111.  83h/03h    CONNECT-B3-ACTIVE-RESP confirm connection-complete indication
  4112.  84h/00h    DISCONNECT-B3-REQ    request shutdown of Level 3 connection
  4113.  84h/01h    DISCONNECT-B3-CONF    confirm shutdown of Level 3 connection
  4114.  84h/02h    DISCONNECT-B3-IND    indication that Level 3 is shutting down
  4115.  84h/03h    DISCONNECT-B3-RESP    confirm that application knows of shutdown
  4116.  85h/00h    GET-B3-PARAMS-REQ    request Level 3 parameters
  4117.  85h/01h    GET-B3-PARAMS-CONF    return Level 3 parameters
  4118.  86h/00h    DATA-B3-REQ        send data on Level 3
  4119.  86h/01h    DATA-B3-CONF    confirm sending of Level 3 data
  4120.  86h/02h    DATA-B3-IND        indication of incoming Level 3 data
  4121.  86h/03h    DATA-B3-RESP    confirm receipt of Level 3 data
  4122.  87h/02h    HANDSET-IND        indication of Handset events
  4123.  87h/03h    HANDSET-RESP    confirm receipt of Handset event
  4124.  FFh/00h    MANUFACTURER-REQ    vendor-specific request
  4125.  FFh/01h    MANUFACTURER-CONF    vendor-specific request confirmation
  4126.  FFh/02h    MANUFACTURER-IND    vendor-specific notification
  4127.  FFh/03h    MANUFACTURER-RESP    vendor-specific notification confirmation
  4128. SeeAlso: #2658,#2661
  4129. ----------F1--03-----------------------------
  4130. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_PUT_MESSAGE"
  4131.     AL = 03h
  4132.     AH = CAPI version number * 10 (14h for v2.0)
  4133.     DX = application ID (see INT F1/AL=01h)
  4134.     ES:BX -> message to be sent (see #2658)
  4135. Return: AX = status (0000h,11xxh) (see #2660)
  4136. Notes:    the caller is required to provide at least 512 bytes of stack space
  4137.     the message buffer may be reused as soon as this call returns
  4138. SeeAlso: AH=03h,INT F1/AL=01h,INT F1/AL=04h
  4139.  
  4140. (Table 2661)
  4141. Values for CAPI v2.0 message command/subcommand:
  4142. Cmd/SubCmd    Name            Description
  4143.  01h/80h    ALERT_REQ        indicate compatibility with incoming calls
  4144.  01h/81h    ALERT_CONF        confirm receipt of ALERT_REQ
  4145.  02h/80h    CONNECT_REQ        establish B-channel connection
  4146.  02h/81h    CONNECT_CONF    confirm start of connection establishment
  4147.  02h/82h    CONNECT_IND        indication from CAPI of incoming connection
  4148.  02h/83h    CONNECT_RESP    accept incoming connection
  4149.  03h/82h    CONNECT_ACTIVE_IND    indication that B-channel connection complete
  4150.  03h/83h    CONNECT_ACTIVE_RESP    confirm connection-complete indication
  4151.  04h/80h    DISCONNECT_REQ    request shutdown of B-channel connection
  4152.  04h/81h    DISCONNECT_CONF    confirm shutdown of B-channel connection
  4153.  04h/82h    DISCONNECT_IND    indication that B-channel is shutting down
  4154.  04h/83h    DISCONNECT_RESP    confirm that application knows of shutdown
  4155.  05h/80h    LISTEN_REQ        enable signalling on incoming events
  4156.  05h/81h    LISTEN_CONF        confirm enabling of incoming event signalling
  4157.  08h/80h    INFO_REQ        send protocol information for physical connect
  4158.  08h/81h    INFO_CONF        confirm INFO_REQ
  4159.  08h/82h    INFO_IND        indicate event for physical connection
  4160.  08h/83h    INFO_CONF        confirm receipt of INFO_IND
  4161.  41h/80h    SELECT_B_PROTOCOL_REQ   change protocol on already-active connect
  4162.  41h/81h    SELECT_B_PROTOCOL_CONF  confirm receipt of SELECT_B_PROTOCOL_REQ
  4163.  80h/80h    FACILITY_REQ    control optional facilities
  4164.  80h/81h    FACILITY_CONF    confirm acceptance of FACILITY_REQ
  4165.  80h/82h    FACILITY_IND    indicate facility-dependent event
  4166.  80h/83h    FACILITY_RESP    confirm receipt of FACILITY_IND
  4167.  82h/80h    CONNECT_B3_REQ    establish Level 3 connection
  4168.  82h/81h    CONNECT_B3_CONF    confirm start of connection establishment
  4169.  82h/82h    CONNECT_B3_IND    indication of incoming Level 3 connection
  4170.  82h/83h    CONNECT_B3_RESP    accept incoming connection
  4171.  83h/82h    CONNECT_B3_ACTIVE_IND  indication that Level 3 connection complete
  4172.  83h/83h    CONNECT_B3_ACTIVE_RESP confirm connection-complete indication
  4173.  84h/80h    DISCONNECT_B3_REQ    request shutdown of Level 3 connection
  4174.  84h/81h    DISCONNECT_B3_CONF    confirm shutdown of Level 3 connection
  4175.  84h/82h    DISCONNECT_B3_IND    indication that Level 3 is shutting down
  4176.  84h/83h    DISCONNECT_B3_RESP    confirm that application knows of shutdown
  4177.  85h/80h    GET_B3_PARAMS_REQ    request Level 3 parameters
  4178.  85h/81h    GET_B3_PARAMS_CONF    return Level 3 parameters
  4179.  86h/80h    DATA_B3_REQ        send data on Level 3
  4180.  86h/81h    DATA_B3_CONF    confirm sending of Level 3 data
  4181.  86h/82h    DATA_B3_IND        indication of incoming Level 3 data
  4182.  86h/83h    DATA_B3_RESP    confirm receipt of Level 3 data
  4183.  87h/80h    RESET_B3_REQ    request resetting of a logical connection
  4184.  87h/81h    RESET_B3_CONF    confirm logical connection reset
  4185.  87h/82h    RESET_B3_IND    indication from CAPI that logical conn. reset
  4186.  87h/83h    RESET_B3_RESP    confirm receipt of RESET_B3_IND
  4187.  88h/82h    CONNECT_B3_T90_ACTIVE_IND  indicate switch from T.70 to T.90
  4188.  88h/83h    CONNECT_B3_T90_ACTIVE_RESP confirm receipt of T90_ACTIVE_IND
  4189.  FFh/80h    MANUFACTURER_REQ    vendor-specific request
  4190.  FFh/81h    MANUFACTURER_CONF    vendor-specific request confirmation
  4191.  FFh/82h    MANUFACTURER_IND    vendor-specific notification
  4192.  FFh/83h    MANUFACTURER_RESP    vendor-specific notification confirmation
  4193. SeeAlso: #2658,#2659
  4194. ----------F104-------------------------------
  4195. INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-MESSAGE"
  4196.     AH = 04h
  4197.     DX = application ID (see AH=01h)
  4198. Return: AX = status (0000h,1002h,1006h,1007h) (see #2657)
  4199.     ES:BX -> message if successful (see #2658)
  4200. Range:    INT 00 to INT FF, selectable by program parameter
  4201. Notes:    the caller is required to provide at least 512 bytes of stack space
  4202.     the returned message may be overwritten by the next call to this
  4203.       function
  4204. SeeAlso: AH=03h
  4205. ----------F1--04-----------------------------
  4206. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_MESSAGE"
  4207.     AL = 04h
  4208.     AH = CAPI version number * 10 (14h for v2.0)
  4209.     DX = application ID (see AH=01h)
  4210. Return: AX = status (0000h,11xxh) (see #2660)
  4211.     ES:BX -> message if successful (see #2658)
  4212. Range:    INT 00 to INT FF, selectable by program parameter
  4213. Notes:    the caller is required to provide at least 512 bytes of stack space
  4214.     the returned message may be overwritten by the next call to this
  4215.       function
  4216. SeeAlso: AH=04h,INT F1/AL=03h
  4217. ----------F105-------------------------------
  4218. INT F1 - Common ISDN API (CAPI) v1.1 - "API-SET-SIGNAL" - SIGNAL HANDLING
  4219.     AH = 05h
  4220.     DX = application ID (see AH=01h)
  4221.     ES:BX -> signal handler or 0000h:0000h to disable
  4222. Return: AX = status (0000h,1002h) (see #2657)
  4223. Notes:    the caller is required to provide at least 512 bytes of stack space
  4224.     the signal handler is called as though it were an interrupt, with
  4225.       interrupts disabled; the handler must preserve all registers and
  4226.       return with an IRET
  4227. SeeAlso: AH=01h
  4228. ----------F1--05-----------------------------
  4229. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_SET_SIGNAL" - SIGNAL HANDLING
  4230.     AL = 05h
  4231.     AH = CAPI version number * 10 (14h for v2.0)
  4232.     DX = application ID (see AH=01h)
  4233.     ES:BX -> signal handler or 0000h:0000h to disable
  4234.     SI:DI = parameter to pass to signal handler
  4235. Return: AX = status (0000h,11xxh) (see #2660)
  4236. Notes:    the caller is required to provide at least 512 bytes of stack space
  4237.     the signal handler is called as though it were an interrupt, with
  4238.       interrupts disabled and DX,SI,DI set as they were when this function
  4239.       was called; the handler must preserve all registers and return with
  4240.       an IRET
  4241.     the signal handler may call CAPI_PUT_MESSAGE, CAPI_GET_MESSAGE, and
  4242.       CAPI_SET_SIGNAL
  4243. SeeAlso: INT F1/AL=01h
  4244. ----------F106-------------------------------
  4245. INT F1 - Common ISDN API (CAPI) v1.1 - "API-DEINSTALL" - UNINSTALL
  4246.     AH = 06h
  4247.     BX = force flag
  4248.         0000h normal uninstall
  4249.         0001h forced uninstall
  4250. Return: AX = status (0000h,1008h) (see #2657)
  4251. Desc:    reset ISDN controller, close all ISDN Level 1 connections except for
  4252.       telephone connections
  4253. Notes:    the caller is required to provide at least 512 bytes of stack space
  4254. ----------F1F0-------------------------------
  4255. INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-MANUFACTURER"
  4256.     AH = F0h
  4257.     ES:BX -> 64-byte buffer for manufacturer identification information
  4258. Return: ES:BX buffer filled with ASCIZ idnetification string
  4259. Range:    INT 00 to INT FF, selectable by program parameter
  4260. Notes:    the caller is required to provide at least 512 bytes of stack space
  4261. SeeAlso: AH=01h,AH=F1h,AH=F2h,AH=FFh,INT F1/AL=F0h
  4262. ----------F1--F0-----------------------------
  4263. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_MANUFACTURER"
  4264.     AL = F0h
  4265.     AH = CAPI version number * 10 (14h for v2.0)
  4266.     ES:BX -> 64-byte buffer for manufacturer identification information
  4267. Return: ES:BX buffer filled with ASCIZ idnetification string
  4268. Range:    INT 00 to INT FF, selectable by program parameter
  4269. Notes:    the caller is required to provide at least 512 bytes of stack space
  4270. SeeAlso: AH=F0h,INT F1/AL=01h,INT F1/AL=F1h,INT F1/AL=F2h,INT F1/AL=FFh
  4271. ----------F1F1-------------------------------
  4272. INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-VERSION"
  4273.     AH = F1h
  4274.     ES:BX -> 64-byte buffer for CAPI version number
  4275. Return: ES:BX buffer filled with ASCIZ version string
  4276. Notes:    the caller is required to provide at least 512 bytes of stack space
  4277. SeeAlso: AH=01h,AH=F0h,AH=F2h,AH=FFh
  4278. ----------F1--F1-----------------------------
  4279. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_VERSION"
  4280.     AL = F1h
  4281.     AH = CAPI version number * 10 (14h for v2.0)
  4282. Return: AH = CAPI major version number
  4283.     AL = CAPI minor version number
  4284.     DH = vendor-specific major version
  4285.     DL = vendor-specific minor version
  4286. Notes:    the caller is required to provide at least 512 bytes of stack space
  4287. SeeAlso: AH=F1h,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F2h,INT F1/AL=FFh
  4288. ----------F1F2-------------------------------
  4289. INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-SERIAL-NUMBER"
  4290.     AH = F2h
  4291.     ES:BX -> 64-byte buffer for CAPI serial number
  4292. Return: ES:BX buffer filled with ASCIZ serial number (seven digits), empty
  4293.           string if no serial number
  4294. Notes:    the caller is required to provide at least 512 bytes of stack space
  4295. SeeAlso: AH=01h,AH=F0h,AH=F1h,AH=FFh
  4296. ----------F1--F2-----------------------------
  4297. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_SERIAL_NUMBER"
  4298.     AL = F2h
  4299.     AH = CAPI version number * 10 (14h for v2.0)
  4300.     ES:BX -> 64-byte buffer for CAPI serial number
  4301. Return: ES:BX buffer filled with ASCIZ serial number (seven digits), empty
  4302.           string if no serial number
  4303. Notes:    the caller is required to provide at least 512 bytes of stack space
  4304. SeeAlso: AH=F2h,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F1h,INT F1/AH=F3h
  4305. ----------F1--F3-----------------------------
  4306. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_PROFILE" - GET CAPABILITIES
  4307.     AL = F3h
  4308.     AH = CAPI version number * 10 (14h for v2.0)
  4309.     ES:BX -> 64-byte buffer for CAPI capabilities (see #2662)
  4310.     CX = controller number (01h-06h) or 0000h to get number of controllers
  4311. Return: AX = status (0000h,11xxh) (see #2660)
  4312.     ES:BX buffer filled if successful
  4313. Notes:    the caller is required to provide at least 512 bytes of stack space
  4314. SeeAlso: INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F2h,INT F1/AH=FFh
  4315.  
  4316. Format of CAPI v2.0 capabilities:
  4317. Offset    Size    Description    (Table 2662)
  4318.  00h    WORD    number of installed controllers
  4319.  02h    WORD    number of supported B channels
  4320.  04h    DWORD    global options (see #2663)
  4321.  08h    DWORD    B1 protocol support flags (see #2664)
  4322.  0Ch    DWORD    B2 protocol support flags (see #2665)
  4323.  10h    DWORD    B3 protocol support flags (see #2666)
  4324.  14h 24 BYTEs    reserved for CAPI use
  4325.  2Ch 20 BYTEs    vendor-specific information
  4326.  
  4327. Bitfields for CAPI v2.0 global options:
  4328. Bit(s)    Description    (Table 2663)
  4329.  0    internal controller supported
  4330.  1    external controller supported
  4331.  2    handset supported (only if bit 1 also set)
  4332.  3    DTMF supported
  4333.  4-31    reserved (0)
  4334. SeeAlso: #2662
  4335.  
  4336. Bitfields for CAPI v2.0 B1 protocol support:
  4337. Bit(s)    Description    (Table 2664)
  4338.  0    64k bps with HDLC framing (required, always set)
  4339.  1    64k bps bit-transparent operation with network byte framing
  4340.  2    V.110 asynchronous with start/stop byte framing
  4341.  3    V.110 synchronous with HDLC framing
  4342.  4    T.30 modem for group 3 FAX
  4343.  5    64k bps inverted with HDLC framing
  4344.  6    56k bps bit-transparent operation with network byte framing
  4345.  7-31    reserved (0)
  4346. SeeAlso: #2662
  4347.  
  4348. Bitfields for CAPI v2.0 B2 protocol support:
  4349. Bit(s)    Description    (Table 2665)
  4350.  0    ISO 7776 (X.75 SLP) (required, always set)
  4351.  1    transparent
  4352.  2    SDLC
  4353.  3    Q.921 LAPD (D-channel X.25)
  4354.  4    T.30 for group 3 FAX
  4355.  5    point-to-point protocol (PPP)
  4356.  6    transparent (ignoring B1 framing errors)
  4357.  7-31    reserved (0)
  4358. SeeAlso: #2662
  4359.  
  4360. Bitfields for CAPI v2.0 B3 protocol support:
  4361. Bit(s)    Description    (Table 2666)
  4362.  0    transparent (required, always set)
  4363.  1    T.90NL with T.70NL compatibility
  4364.  2    ISO 8208 (X.25 DTE-DTE)
  4365.  3    X.25 DCE
  4366.  4    T.30 for group 3 FAX
  4367.  5-31    reserved (0)
  4368. SeeAlso: #2662
  4369. ----------F1FF-------------------------------
  4370. INT F1 - Common ISDN API (CAPI) v1.1 - "API-MANUFACTURER" - VENDOR-SPECIFIC
  4371.     AH = FFh
  4372.     other registers vendor-specific
  4373. Return: registers vendor-specific
  4374. Range:    INT 00 to INT FF, selectable by program parameter
  4375. Notes:    the caller is required to provide at least 512 bytes of stack space
  4376. SeeAlso: AH=01h,AH=F0h,AH=F1h,AH=F2h,INT F1/AH=FFh
  4377. ----------F1--FF-----------------------------
  4378. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_MANUFACTURER" - VENDOR-SPECIFIC
  4379.     AL = FFh
  4380.     AH = CAPI version number * 10 (14h for v2.0)
  4381.     other registers vendor-specific
  4382. Return: registers vendor-specific
  4383. Range:    INT 00 to INT FF, selectable by program parameter
  4384. Notes:    the caller is required to provide at least 512 bytes of stack space
  4385. SeeAlso: AH=FFh,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F1h,INT F1/AL=F2h
  4386. --------*-F2---------------------------------
  4387. INT F2 - reserved for user interrupt
  4388. --------s-F2---------------------------------
  4389. INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
  4390. SeeAlso: INT F1"SPEECH"
  4391. --------N-F2---------------------------------
  4392. INT F2 - NetWare Remote Boot - ORIGINAL INT 13
  4393. SeeAlso: INT F1"NetWare",INT F3"NetWare",INT F4"NetWare"
  4394. ----------F2---------------------------------
  4395. INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API
  4396.     AH = function number (see #2616)
  4397.     ???
  4398. Return: ???
  4399. Program: ImageCapture is a product of International Computers
  4400. SeeAlso: INT F3"ICCTSR"
  4401.  
  4402. (Table 2616)
  4403. Values for ImageCapture function:
  4404.  01h    power up
  4405.  02h    power down
  4406.  03h    set controls
  4407.  04h    capture image
  4408.  05h    display image
  4409.  06h    read file
  4410.  07h    write file
  4411.  08h    write array
  4412.  09h    read pixel
  4413.  0Ah    write pixel
  4414.  0Bh    check if VGA present
  4415.  0Ch    set video mode
  4416.  0Dh    check for keystroke
  4417.  0Eh    delay
  4418. --------*-F3---------------------------------
  4419. INT F3 - reserved for user interrupt
  4420. --------s-F3---------------------------------
  4421. INT F3 - SoundBlaster - POINTER TO ECHO VALUE
  4422. Note:    this is not a vector, but a pointer to a DWORD containing the echo
  4423.       value selected with SET-ECHO.EXE
  4424. SeeAlso: INT 2F/AX=FBFBh
  4425. ----------F3---------------------------------
  4426. INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR
  4427. Program: ImageCapture is a product of International Computers
  4428. SeeAlso: INT F2"ICCTSR"
  4429. --------N-F3---------------------------------
  4430. INT F3 - NetWare Remote Boot - BOOT ROM'S INT 13 HANDLER
  4431. SeeAlso: INT F1"NetWare",INT F2"NetWare",INT F4"NetWare"
  4432. --------*-F4---------------------------------
  4433. INT F4 - reserved for user interrupt
  4434. --------T-F4---------------------------------
  4435. INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK
  4436. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT FE"DoubleDOS"
  4437. --------N-F2---------------------------------
  4438. INT F4 - NetWare Remote Boot - ???
  4439. SeeAlso: INT F1"NetWare",INT F2"NetWare",INT F3"NetWare"
  4440. --------*-F5---------------------------------
  4441. INT F5 - reserved for user interrupt
  4442. --------T-F5---------------------------------
  4443. INT F5 - DoubleDOS - ???
  4444. --------*-F6---------------------------------
  4445. INT F6 - reserved for user interrupt
  4446. --------T-F6---------------------------------
  4447. INT F6 - DoubleDOS - ???
  4448. --------*-F7---------------------------------
  4449. INT F7 - reserved for user interrupt
  4450. --------T-F7---------------------------------
  4451. INT F7 - DoubleDOS - ???
  4452. ----------F700-------------------------------
  4453. INT F7 - FSBBS 2.0 - CONFIGURATION RECORD
  4454.     AH = 00h
  4455.     AL = function
  4456.         00h get configuration record
  4457.         Return: DS:DX -> configuration record
  4458.         01h set configuration record
  4459.         02h get path for option
  4460.         DS:DX -> option name
  4461.         Return: DS:DX -> path
  4462.         03h determine whether configuration record set
  4463.         Return: AX = status
  4464.                 0000h set
  4465.                 0001h not yet set
  4466.         04h get link state
  4467.         Return: AX = state
  4468.                 0000h unlinked
  4469.                 0001h linked
  4470. Notes:    this information is preliminary and still subject to change
  4471.     all of the INT F7 calls for FSBBS are used for interprogram
  4472.       communication between the BBS kernel and the programs it spawns
  4473. SeeAlso: AH=01h
  4474. ----------F701-------------------------------
  4475. INT F7 - FSBBS 2.0 - USER RECORD
  4476.     AH = 01h
  4477.     AL = function
  4478.         00h get user record for user currently online
  4479.         Return: DS:DX -> user record
  4480.         01h set user record
  4481.         DS:DX -> user record
  4482. SeeAlso: AH=00h,AH=02h
  4483. ----------F702-------------------------------
  4484. INT F7 - FSBBS 2.0 - GET ACCOUNT NAME
  4485.     AH = 02h
  4486. Return: DS:DX -> 8-character blank-padded account name
  4487. SeeAlso: AH=01h
  4488. ----------F703-------------------------------
  4489. INT F7 - FSBBS 2.0 - TERMINAL NUMBER
  4490.     AH = 03h
  4491.     AL = function
  4492.         00h get terminal index number
  4493.         Return: DX = index number
  4494.         01h set terminal index number
  4495.         DX = terminal index
  4496. ----------F704-------------------------------
  4497. INT F7 - FSBBS 2.0 - PASSDATA BUFFER
  4498.     AH = 04h
  4499.     AL = function
  4500.         00h get PassData buffer contents
  4501.         DS:DX -> buffer for PassData contents
  4502.         01h set PassData contents
  4503.         DS:DX -> buffer containing new PassData
  4504.         CH = length of data in buffer
  4505. ----------F705-------------------------------
  4506. INT F7 - FSBBS 2.0 - TIMER FUNCTIONS
  4507.     AH = 05h
  4508.     AL = function
  4509.         00h get time remaining
  4510.         Return: DX = number of minutes remaining
  4511.         01h get current time
  4512.         Return: DS:DX -> 8-character time string
  4513.         02h increment time
  4514.         DX = number of additional minutes
  4515.         03h decrement time
  4516.         DX = number of minutes
  4517. SeeAlso: AH=06h
  4518. ----------F706-------------------------------
  4519. INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY
  4520.     AH = 06h
  4521.     AL = function
  4522.         00h determine whether function is available
  4523.         DX = index of function
  4524.         01h set function availability
  4525.         DX = index of function
  4526.         ???
  4527. SeeAlso: AH=05h,AH=07h
  4528. ----------F707-------------------------------
  4529. INT F7 - FSBBS 2.0 - DUMP FUNCTIONS
  4530.     AH = 07h
  4531.     AL = function
  4532.         00h get current dump mode
  4533.         Return: DL = mode
  4534.         01h set dump mode
  4535.         DL = mode
  4536. SeeAlso: AH=06h
  4537. --------*-F8---------------------------------
  4538. INT F8 - reserved for user interrupt
  4539. --------h-F8---------------------------------
  4540. INT F8 - Sanyo MBC-550 - IRQ0 - 100 HZ INTERRUPT
  4541. SeeAlso: INT 08"IRQ0",INT F9"Sanyo",INT FA"Sanyo"
  4542. --------T-F8---------------------------------
  4543. INT F8 - DoubleDOS - ???
  4544. --------*-F9---------------------------------
  4545. INT F9 - reserved for user interrupt
  4546. --------T-F9---------------------------------
  4547. INT F9 - DoubleDOS - ???
  4548. --------h-F9---------------------------------
  4549. INT F9 - Sanyo MBC-550 - IRQ1 - ???
  4550. SeeAlso: INT 09"IRQ1",INT F8"Sanyo",INT FA"Sanyo"
  4551. --------*-FA---------------------------------
  4552. INT FA - reserved for user interrupt
  4553. --------h-FA---------------------------------
  4554. INT FA - Sanyo MBC-550 - IRQ2 - SERIAL PORT USART INTERRUPT
  4555. Note:    this vector is not used on the Tandy 1000TL
  4556. SeeAlso: INT 0A"IRQ2",INT F9"Sanyo",INT FB"Sanyo"
  4557. --------T-FA---------------------------------
  4558. INT FA - DoubleDOS - TURN OFF TIMESHARING
  4559. SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS"
  4560. --------*-FB---------------------------------
  4561. INT FB - reserved for user interrupt
  4562. --------h-FB---------------------------------
  4563. INT FB - Sanyo MBC-550 - IRQ3 - KEYBOARD USART RECEIVE INTERRUPT
  4564. SeeAlso: INT 0B"IRQ3",INT FA"Sanyo",INT FC"Sanyo"
  4565. --------T-FB---------------------------------
  4566. INT FB - DoubleDOS - TURN ON TIMESHARING
  4567. SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS"
  4568. --------*-FC---------------------------------
  4569. INT FC - reserved for user interrupt
  4570. --------T-FC---------------------------------
  4571. INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS
  4572. Return: ES = segment of display buffer
  4573. Desc:    determine the address of the virtual screen to which the program
  4574.       should write instead of the actual video memory, so that the
  4575.       multitasked programs do not interfere with each other's output
  4576. Note:    the display buffer may be moved if multitasking is enabled
  4577. SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS"
  4578. --------h-FC---------------------------------
  4579. INT FC - Sanyo MBC-550 - IRQ4 - ???
  4580. SeeAlso: INT 0C"IRQ4",INT FB"Sanyo",INT FD"Sanyo"
  4581. --------*-FD---------------------------------
  4582. INT FD - reserved for user interrupt
  4583. --------T-FD---------------------------------
  4584. INT FD - DoubleDOS - ???
  4585. --------h-FD---------------------------------
  4586. INT FD - Sanyo MBC-550 - IRQ5 - ???
  4587. SeeAlso: INT 0D"IRQ5",INT FC"Sanyo",INT FE"Sanyo"
  4588. --------S-FD---------------------------------
  4589. INT FD - TFPCX - INSTALLATION CHECK
  4590.     AH = function (see separate entries below)
  4591. Program: TFPCX is an interface between modem and terminal program for packet-
  4592.       radio communications
  4593. Notes:    the installation check consists of testing for the string "N5NX" three
  4594.       bytes beyond the interrupt handler; INT FD is the default, but may
  4595.       be changed, so the full installation check consists of scanning
  4596.       for the signature
  4597.     TFPCX returns AX=FFFFh on any unsupported function call
  4598. SeeAlso: AH=01h,AH=03h,AH=FEh
  4599. --------S-FD01-------------------------------
  4600. INT FD - TFPCX - TEST FOR CHARACTER WAITING
  4601.     AH = 01h
  4602. Return: AX = status
  4603.         0000h no characters waiting
  4604.         0001h character available for input
  4605. Program: TFPCX is an interface between modem and terminal program for packet-
  4606.       radio communications
  4607. SeeAlso: AH=02h
  4608. --------S-FD02-------------------------------
  4609. INT FD - TFPCX - GET CHARACTER
  4610.     AH = 02h
  4611. Return: AL = character
  4612. Notes:    this call is only allowed if AH=01h indicated that a character is
  4613.       available
  4614.     all available characters should be read before sending any additional
  4615.       characters
  4616. SeeAlso: AH=01h,AH=03h
  4617. --------S-FD03-------------------------------
  4618. INT FD - TFPCX - OUTPUT CHARACTER
  4619.     AH = 03h
  4620.     AL = character to send
  4621. SeeAlso: AH=02h
  4622. --------S-FDFE-------------------------------
  4623. INT FD - TFPCX - GET VERSION
  4624.     AH = FEh
  4625. Return: AH = major version
  4626.     AL = minor version
  4627. Program: TFPCX is an interface between modem and terminal program for packet-
  4628.       radio communications
  4629. SeeAlso: AH=01h,AH=03h
  4630. --------B-FE---------------------------------
  4631. INT FE - AT/XT286/PS50+ - destroyed by return from protected mode
  4632. Note:    the ROM BIOS uses 0030h:0100h as the initial stack on startup, which
  4633.       is the last fourth of the interrupt vector table.  If the processor
  4634.       is returned to real mode via a hardware reset (the only possibility
  4635.       on an 80286, though there are a number of ways of generating one),
  4636.       then the BIOS startup code stacks three words on its scratch stack
  4637.       before determining that a return to real mode has been requested.
  4638.       As a result, INT FE and INT FF are corrupted.
  4639. SeeAlso: INT FF"XT286"
  4640. --------T-FE---------------------------------
  4641. INT FE - DoubleDOS - GIVE UP TIME
  4642.     AL = number of 55ms time slices to give away
  4643. Return: after other program (if active) has run
  4644. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS"
  4645. --------G-FE---------------------------------
  4646. INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER
  4647. SeeAlso: INT 3F
  4648. --------h-FE---------------------------------
  4649. INT FE - Sanyo MBC-550 - IRQ6 - ???
  4650. SeeAlso: INT 0E"IRQ6",INT FD"Sanyo",INT FF"Sanyo"
  4651. --------B-FF---------------------------------
  4652. INT FF - AT/XT286/PS50+ - destroyed by return from protected mode
  4653. Note:    (see INT FE"XT286")
  4654. SeeAlso: INT FE"XT286"
  4655. --------b-FF---------------------------------
  4656. INT FF - Z100 - WARM BOOT
  4657. SeeAlso: INT 40"Z100"
  4658. --------h-FF---------------------------------
  4659. INT FF - Sanyo MBC-550 - IRQ7 - ???
  4660. SeeAlso: INT 0F"IRQ7",INT FE"Sanyo"
  4661. --------Q-FF---------------------------------
  4662. INT FF U - QEMM-386.SYS v6.0+ - internal
  4663. Notes:    requires that a byte in the conventional-memory stub be set to the
  4664.       desired function number (00h through 0Ch)
  4665. SeeAlso: #2617
  4666.  
  4667. (Table 2617)
  4668. Values for QEMM internal functions:
  4669.  00h    reflect back to Virtual86-mode interrupt handler (default)
  4670.  01h    ???
  4671.  02h    access DR7???
  4672.  03h    QPI upcall (see INT 67/AH=3Fh)
  4673.  04h    ???
  4674.  05h    ???
  4675.  06h    INT 15/AH=87h
  4676.  07h    EMS services (see INT 67/AH=40h,INT 67/AH=5Dh)
  4677.  08h    ???
  4678.  09h    QEMM exception handler
  4679.  0Ah    XMS services (see INT 2F/AX=4310h)
  4680.  0Bh    Virtual DMA Services (see INT 4B/AX=8102h)
  4681.  0Ch    ???
  4682. --------v-FF---------------------------------
  4683. INT FF - VIRUS - "Violetta" - ???
  4684. Note:    used but not chained by virus
  4685. SeeAlso: INT E0"VIRUS",INT F1"VIRUS"
  4686. --------V-FF----BX0000-----------------------
  4687. INT FF - PC/FORTH - GRAPHICS API - VIDEO STATUS CHANGE
  4688.     BX = 0000h
  4689.     DS:SI -> FORTH program counter
  4690.     SS:BP -> FORTH parameter stack
  4691.     SS:SP -> FORTH return stack
  4692.     DS:DX -> FORTH video parameter area
  4693. Desc:    called to inform graphics driver of any status changes such as video
  4694.       mode changes, character color changes, graphics XOR mode turned on
  4695.       or off, etc.
  4696. --------V-FF---------------------------------
  4697. INT FF - PC/FORTH - GRAPHICS API
  4698.     BX = function number
  4699.         0001h function REDRAW
  4700.         0002h function !PEL
  4701.         0003h function @PEL
  4702.         0004h function LINE
  4703.         0005h function ARC
  4704.         0006h function @BLOCK
  4705.         0007h function !BLOCK
  4706.         0008h function FLOOD
  4707.     DS:SI -> FORTH program counter
  4708.     SS:BP -> FORTH parameter stack
  4709.     SS:SP -> FORTH return stack
  4710.     details of parameters not available
  4711. --------!---Admin----------------------------
  4712. Highest Table Number = 2734
  4713. --------!---FILELIST-------------------------
  4714. Please redistribute all of the files comprising the interrupt list (listed at
  4715. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  4716. quartet of archives named INTER47A through INTER47D (preferably the original
  4717. authenticated PKZIP archives), the utility programs in a fifth archive
  4718. called INTER47E.ZIP, and the WinHelp-related programs in a sixth archive
  4719. named INTER47F.ZIP.
  4720.  
  4721. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
  4722. --------!---CONTACT_INFO---------------------
  4723. Internet: ralf@telerama.lm.com
  4724. UUCP: {uunet,harvard}!telerama.lm.com!ralf
  4725. FIDO: Ralf Brown 1:129/26.1
  4726.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  4727.     unless you address it to me)
  4728. CIS:  >INTERNET:ralf@telerama.lm.com
  4729.