Interrupt List, part 12 of 12 This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994 Ralf Brown --------V-7F--------------------------------- INT 7F - Halo88 - API BX = function number (see #2270) additional parameters on stack Return: ??? Program: Halo88 is a suite of graphics routines Note: according to Stuart Kemp, the code appears to make no provisions for chaining (Table 2270) Values for Halo88 API function: 64h arc 65h bar 66h box 67h circle 68h clr 69h default hatch style 6Ah default line style 6Bh delhcur 6Ch delln / deltcur 6Dh ellipse 6Eh fill 6Fh flood 70h flood2 71h init graphics 72h init hcur 73h init marker 74h init tcur 75h inqarc 76h inqbknd 77h inqclr 78h inqerr 79h inqgcur 7Ah inqhcur 7Bh inqmarker 7Dh inqtcur 7Eh inqtext 7Fh lnabs 80h lnrel 81h markerabs 82h markerrel 83h moveabs 84h movehcurabs 85h movehcurrel 86h moverel 87h movetcurabs 88h movetcurrel 89h movefrom 8Ah moveto 8Bh pie 8Ch polylnabs 8Dh polylnrel 8Eh ptabs 8Fh ptrel 91h setasp 92h set color 93h set font 94h set hatch style 95h set line style 97h settext 98h set text color 99h btext 9Ah setseg 9Bh display 9Ch setscreen 9Eh close graphics 9Fh ftinit A0h ftlocate A1h ftext A5h set viewport A6h set window A7h set world AAh ftcolor ACh initlp ADh inqasp AEh inqdev AFh inqdisplay B0h inqft B1h inqftcolor B2h inqinterlace B3h inqlpa B4h inqlpg B5h inqmode B6h inqscreen B7h inqversion B8h roam B9h scroll BAh setieee BBh set interlace BCh shift BDh start graphics BEh vpan CBh gwrite CCh gread CDh setxor CEh rbox CFh rcir D0h rlnabs D1h rlnrel D2h delbox D3h delcir D5h setseg2 DCh worldoff DDh mapwtod DEh mapdtow DFh mapwton E0h mapntow E1h mapdton E2h mapntod E3h inqworld E4h inqviewport E5h set line width E6h lnjoint E7h set locator E8h read locator E9h setdev EBh setstext ECh setstclr EDh setstang EEh stext EFh inqstext F0h setdegree F1h inqstsize F2h polyfabs F3h polyfrel F4h inqdrange F5h inqstang F6h orglocator F7h inqlocator F8h inqarea F9h setipal FAh setborder FBh inqcrange FEh setclip FFh fcir 100h setcrange 101h setdrange 102h setlattr 103h polycabs 104h polycrel 108h memcom 109h memexp 10Ah memmov 10Eh movefx 10Fh movetx 110h inqrgb 111h save image 112h restore image 113h setapal 114h setxpal 118h inqtsize 12Eh gprint 130h setprn 131h setpattr 133h setbattr 135h pexpand 136h ptnorm 137h pfnorm 13Bh inqprn 13Ch lopen 13Dh lclose 13Eh lappend 13Fh lrecord 140h lswitch 142h inqfun 15Dh lsetup 15Eh lrest 15Fh lsave --------N-7F--------------------------------- INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR AL = request ID 01h "Request"/"RequestDirect" ES:BX -> pRq DX ignored 04h "Wait" ES:BX -> ppMsgRet DX = exchange 05h "AllocExch" ES:BX -> pExchRet 06h "DeAllocExch" DX = exchange 07h "Check" ES:BX -> ppMsgRet DX = exchange CX = 4354h ('CT') Return: AX = status 0000h successful --------S-7F--------------------------------- INT 7F - Telebit ACS SERIAL I/O ES:SI-> parameter block (see #2271) Return: CF set on error CF clear on success Notes: the signature "PDGATEWRKSTNIF" appears just prior to the interrupt handler; this serves as the installation check Index: installation check;Telebit ACS Serial I/O Format of Telebit ACS parameter block: Offset Size Description (Table 2271) 00h BYTE command (see #2272) 01h BYTE gateway number 02h BYTE reserved 03h BYTE port 04h 17 BYTEs auxiliary buffer 15h BYTE session 16h WORD count of bytes passed to API 18h DWORD buffer pointer passed to/from API 1Ch WORD count of bytes passed from API 1Eh BYTE return code (see #2273) (Table 2272) Values for Telebit ACS command: 3Ch status 3Dh connect 3Eh disconnect 3Fh read 40h data/command write 41h clear receive buffer 42h get configuration 43h get receiver status 44h raw write 45h search servers 46h set transmit buffer size (Table 2273) Values for Telebit ACS return code: 00h success 01h invalid session 05h servername invalid 06h NetWare fileserver bindery is locked 07h communication server not active 08h general failure in NetWare fileserver 09h not logged into a fileserver 10h connection table full 11h no response from communication server 12h connection attempt terminated abnormally 13h connection refused - no sessions available 14h gateway number/port already in use 15h invalid connection response 16h port invalid 17h incorrect version in server response 18h gateway number/port combination not configured 19h initialization has not been completed 20h no more sockets are available 21h no active poolname 23h FATAL internal interface error 24h registration of host workstation failed - name is already in use 25h registration of host workstation failed - workstation name table full 26h registration of host workstation failed - only one session may be registered for dial-in FFh Telebit ACS API is busy - retry later --------N-7F--------------------------------- INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE Notes: the installation check consists of checking for the signature "Lynn" in the four bytes preceding the interrupt handler; if present, the current program is running as a DOS task on a non-dedicated NetWare 2.x file server. Before placing the server into "console" mode, it is recommended that NetWare broadcast messages be disabled with INT 21/AH=DEh/DL=00h. SeeAlso: INT 21/AH=DEh/DL=04h Index: installation check;non-dedicated NetWare server --------S-7F--------------------------------- INT 7F U - YTERM - ??? SeeAlso: INT 7E"YTERM" --------E-7F--------------------------------- INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7 Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the DOS extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 0F,INT 7E"GO32" ----------7F--------------------------------- INT 7F - Canon IXHND2 Scanner Interface --------N-7F--------------------------------- INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX) Notes: the words at C800h:0000h and C800h:0002h will both be 584Eh if the MW386 multitasking system is present (i.e. signature "NXNX") NTNX allows its API to be placed on a different interrupt than 7Fh at load time. To determine the actual vector used, open the device "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will be the actual interrupt number being used; the other interrupts may be found with INT 7F/AH=09h/CL=03h --------N-7F--------------------------------- INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK Note: a program may determine that it is running on an ANSK Slave by checking the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this address is RAM, and should not be written. However, the above check will not work on Slaves with <1MB RAM or those using the SLIM.SYS device driver --------N-7F00------------------------------- INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT AH = 00h DS:DX -> ASCIZ semaphore name (max 64 bytes) Return: AL = status (see #2274) AH = semaphore owner if status=02h SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h (Table 2274) Values for Alloy function status: 00h successful 01h invalid function 02h semaphore already locked 03h unable to lock/unlock semaphore 04h semaphore space exhausted 05h host/target PC did not respond (NTNX) --------N-7F00------------------------------- INT 7F - G8BPQ - proposed addition - GET NODE/SWITCH VERSION AND DESCRIPTION AH = 00h ES:SI -> buffer for "USERS" text string Return: AH = major version AL = minor version CX = length of returned string Program: the G8BPQ AX25 Networking Package is amateur packet radio software by John Wiseman which allows a PC to act as a node in an AX.25 network SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ" --------N-7F01------------------------------- INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AH = 01h DS:DX -> ASCIZ semaphore name (max 64 bytes) Return: AL = status (see #2274) AH = semaphore owner if status=02h SeeAlso: AH=00h,AH=02h,AH=41h --------V-7F01------------------------------- INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS AH = 01h Return: BX = 1234h if installed DX:AX -> array of FAR entry points CH = driver major version CL = driver minor version Note: TIGACD 2.05 returns CF set on unrecognized functions in AX SeeAlso: AX=1234h,AX=4321h --------N-7F01------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK AH = 01h AL = stream number (01h-40h) CL = new application flags bit 7: monitored frames available via AH=0Bh"G8BPQ" DL = new application mask Program: the G8BPQ AX25 Networking Package is amateur packet radio software by John Wiseman which allows a PC to act as a node in an AX.25 network Range: INT 00h to INT FFh, set in configuration file BPQCFG.TXT for v4.03+ (earlier versions were hard-wired for INT 7F) SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ" --------I-7F0104BX0000----------------------- INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API) AX = 0104h (HLLAPI gate ID) BX = 0000h DS:SI -> parameter control block (see #2275) Return: parameter control block updated Note: the installation check for the Novell HLLAPI TSR is the signature string "CXI" (for the company Novell bought) immediately prior to the interrupt handler SeeAlso: AX=0105h,AX=ABCDh Format of HLLAPI parameter control block: Offset Size Description (Table 2275) 00h 3 BYTEs signature = 'PCB' 03h BYTE function number (see #2276,#2277) 04h WORD segment of control string 06h WORD offset of control string 08h WORD length of control string, unless explicit end-of-str char set 0Ah BYTE unused (IBM) ControlString[0] (Rabbit) 0Bh WORD return code (see #2279) 0Dh WORD maximum length of control string (IBM) unused (Rabbit) (Table 2276) Values for HLLAPI function number: 00h OEM function (Query system for Attachmate implementation) 01h Connect presentation space 02h Disconnect presentation space 03h Send string of keystrokes as if typed from keyboard 04h Wait ~60s, returns status of presentation space 05h Copy current presentation space into a user-defined buffer 06h Search presentation space for first occurrence of a specified string 07h Query cursor location in current presentation space 08h Copy part or all of current presentation space into user buffer 09h Set session parameters; parameters vary by vendor (see #2278) 0Ah Get info on sessions currently connected 0Bh Lock current presentation space 0Ch Unlock previously locked presentation space 0Dh Return copy of operator info area (OIA) of current presentation space 0Eh get attribute byte for given position in the current presentation space 0Fh copy string of characters to the current presentation space 10h workstation control functions 11h storage manager functions, intended primarily for BASIC applications (not implemented by Rabbit) 12h set delay period in half-second intervals 14h get info on level of workstation support used 15h reset session parameters to default values 16h get detailed info on the current session 17h start host notification to application on presentation sp or OIA update 18h check host update when host notification enabled 19h stop host notification 1Eh search field within current presentation space for string 1Fh get first positionof a selected field in the current presentation space 20h get length of specified field 21h copy string into a specified field 22h copy specified field into a user-defined buffer 23h create alternate presentation space (IBM only), don't use with BASIC 24h switch to alternate presentation space (IBM only), not with BASIC 25h display cursor in specified area (IBM only), don't use with BASIC 26h display alternate presentation space (IBM only), don't use with BASIC 27h delete alternate presentation space (IBM only), don't use with BASIC 28h set cursor 29h start Close Intercept 2Ah query Close Intercept 2Bh stop Close Intercept 32h start intercepting keystrokes to allow filtering 33h get keystrokes after turning on interception 34h notify operator when keystroke rejected by filter subroutine 35h stop intercepting keystrokes 5Ah send file 5Bh receive file 5Ch run a program (not implemented by Rabbit) 5Dh execute DOS command (not implemented by Rabbit) 63h change presentation space position to PC display row/col or vice versa 65h connect to Window Services 66h disconnect from Window Services 67h set/query window coordinates 68h set/query window status 69h change presentation space name 78h connect Structured Fields 79h disconnect Structured Fields 7Ah query size of communications buffer 7Bh allocate communications buffer 7Ch free communications buffer 7Dh get request completion state 7Eh read Structured Fields 7Fh write Structured Fields FFh Get info on DCA implementation (Table 2277) Values for LLAPI function number: 80h initialize LLAPI (internal call) 83h set Session ID (one-character ID) 84h read Session ID (one-character ID) 85h lock 327x keyboard 86h unlock 327x keyboard 87h wait for Clear to Send 88h type ASCII character 89h type 327x key 8Ah read keyboard lock state 8Fh force screen update 90h view session 91h relinquish (suspend foreground until background becomes idle) 92h poke screen character 93h poke translated character 94h peek screen character 95h peek translated character 96h set cursor position 97h send scan code (Rabbit only) 98h synchronize (returns after keystroke queue empty) 99h type PC key (Rabbit only) (Table 2278) Values for HLLAPI Function 09h Session Parameters: ASCII ??? (Rabbit only) ATTRIB return attributes in hex NOATTRIB return attributes as blanks CONPHYS make physical connection CONLOG only make logical connection EAB copy extended attribute bytes along with data NOEAB copy data only ESC=n set escape character to "n" (default '@') EOT=n set end of string character (default 00h) FPAUSE full-duration pause FTNOWAIT return immediately from functions 5Ah and 5Bh (Rabbit only) FTWAIT wait for file transfer to complete (Rabbit only) IPAUSE interruptable pause RABESC ??? (Rabbit only) NORABESC ??? (Rabbit only) SCANCODE ??? (Rabbit only) STRLEN use explicit string lengths STREOT use terminated strings SRCHALL search entire presentation space SRCHFROM search from specified offset SRCHFRWD search forward from position 1 SRCHBKWD search backward from last position in presentation space TIMEOUT=n ??? (Rabbit only) TWAIT wait specified time for keyboard ready LWAIT wait until keyboard ready NWAIT no wait TRON enable tracing TROFF disable tracing AUTORESET send reset before sending keys with function 03h NORESET don't send reset QUIET don't display messages sent with INT 21/AH=09h NOQUIET allow messages to be displayed TIMEOUT=n set timeout in 30-second intervals, 0 = wait until ^Break XLATE translate extended attribute bytes NOXLATE don't translate NEWRET use HLLAPI v3.0 return code conventions OLDRET use HLLAPI v2.0 return code conventions (Table 2279) Values for Windows HLLAPI return code: 00h successful 01h Presentation Space not connected/requested size unavailable 02h invalid function or parameter error/invalid block ID 03h file transfer complete 04h file transfer complete (segmented)/Presentation Space busy 05h inhibited or keyboard locked 06h data truncated 07h invalid Presentation Space position 08h operation not available 09h system error 0Ah blocking error 0Bh resource not available 0Ch session stopped 14h undefined key combination 15h OIA updated 16h Presentation Space updated 17h both Presentation Space and OIA updated 18h no such field 19h no keystrokes available 1Ah Presentation Space or Operator Information Area changed 1Bh file transfer aborted 1Ch zero-length field 1Eh cursor type invalid 1Fh keystroke overflow 20h another application is already connected 22h message sent to host cancelled 23h transmission from host cancelled 24h lost contact with host 25h function successful 26h function incomplete 27h a DDM session is already connected 28h disconnected, but asynchronous requests still pending 29h buffer already in use 2Ah no matching request found 12Dh invalid function number 12Eh file not found 131h access denied 134h out of memory 136h environment invalid 137h format invalid 270Eh (9998) invalid Presentation Space ID 270Fh (9999) invalid row or column code ---Windows HLLAPI extensions--- F000h asynchronous call already in progress F001h invalid asynchronous task ID F002h blocking call cancelled F003h underlying subsystem not started F004h unsupported application version --------V-7F0105----------------------------- INT 7F - IBM 8514/A Adapter Interface (HDILOAD.EXE) AX = 0105h Return: CF set on error CF clear if successful CX:DX -> array of FAR pointers to entry points (see #2280) Note: most functions are invoked by pushing the DWORD parameter block pointer and then performing a FAR call via the appropriate vector of the entry point array, placing the FAR address of the function's parameter block on the top of the stack SeeAlso: AX=0104h,AX=0106h,AX=ABCDh (Table 2280) Values for HDILOAD function number: (do FAR call via entry_points+4*function) 08h HOPEN Open Adapter (see #2313) 09h HSMX Set Mix (see #2342) 10h HINT Interrupt (see #2308) 13h HLDPAL Load Palette (see #2309) 15h HBBW BitBLT Write Image Data (see #2295) 17h HBBR BitBLT Read Image Data (see #2296) 18h HBBCHN Chained Data Go (see #2294) 19h HBBC BitBLT Copy Data (see #2293) 1Dh HQMODE Get Current Mode (see #2319) 20h HRECT Fill Rectangle (see #2321) 22h HCLOSE Close Adapter and place in quiescent state (see #2301) 30h HINIT Initialize State (see #2307) 31h HSYNC Synchronize Adapter (see #2346) 39h HSPAL Save Palette (see #2343) 3Ah HRPAL Restore Palette (see #2324) ??? HSGQ Set Graphics Quality (see #2333) ??? HSCOORD Set Coordinate Type (see #2330) ??? HESC Escape, Terminate Processing (see #2306) ??? HSBCOL Set Background Color (see #2325) ??? HSBP Set Bit Plane Controls (see #2326) ??? HSCMP Set Color Comparison Register (see #2328) ??? HSCOL Set Color (see #2329) ??? HSHS Set Scissors (clipping rectangle) (see #2334) ??? HXLATE Assign Text Color (see #2347) ??? HQMODES Get Adapter Modes (see #2320) ??? HQDPS Get Drawing Process State Size (see #2318) ??? HQDFPAL Get Default Palette (see #2317) ??? HQCOORD Get Coordinate Type (see #2315) ??? HQCP Get Current Position (see #2316) ??? HSMODE Change Mode (see #2340) ??? HLINE Draw Line at Given Position (see #2310) ??? HCLINE Draw Line at Current Position (see #2300) ??? HRLINE Draw Line Relative from Given Position (see #2322) ??? HCRLINE Draw Line Relative at Current Position (see #2303) ??? HSLT Set Line Type (see #2337) ??? HSLW Set Line Width (see #2339) ??? HSLPC Save Line Pattern Count (see #2336) ??? HRLPC Restore Line Pattern Count (see #2323) ??? HCBBW BitBLT Write Image Data at Current Position (see #2297) ??? HBAR Begin Area (see #2292) ??? HEAR End Area (see #2304) ??? HSPATT Set Pattern (see #2344) ??? HSPATTO Set Pattern Reference Point (see #2345) ??? HEGS Erase Graphics Screen (see #2305) ??? HSCP Set Current Position (see #2331) ??? HMRK Set Marker (see #2312) ??? HCMRK Set Marker at Current Position (see #2302) ??? HSMARK Set Marker Shape (see #2341) ??? HSCS Set Character Set (see #2332) ??? HCHST Write Character String at Given Position (see #2299) ??? HCCHST Write Character String at Current Position (see #2298) ??? HSCELL Set Cell Size for Alphanumeric Text (see #2327) ??? ABLOCKMFI Write Character/Attribute Block MFI (see #2283) ??? ABLOCKCGA Write Character Block CGA (see #2281) ??? AERASE Erase Rectangle (see #2286) ??? ASCROLL Scroll Rectangle (see #2287) ??? ACURSOR Set Alphanumerics Cursor Position (see #2285) ??? ASCUR Set Alphanumeric Cursor Shape (see #2288) ??? ASFONT Set Font (see #2289) ??? AXLATE Assign Alphanumeric Color (see #2291) Format of ABLOCKCGA parameter block: Offset Size Description (Table 2281) 00h WORD 000Ah (length of following data) 02h WORD top-left coordinate of character block 04h WORD width of block 06h DWORD -> block of WORDs describing characters (see #2282) 0Ah BYTE length of block in characters 0Bh BYTE highlight attribute bit 4: transparent background bit 5: overstrike bit 6: reverse video bit 7: underscore SeeAlso: #2283 Bitfields for one character in ABLOCKCGA character block: Bit(s) Description (Table 2282) 3-0 foreground attribute 7-4 background attribute 15-8 character code Format of ABLOCKMFI parameter block: Offset Size Description (Table 2283) 00h WORD 0009h (length of following data) 02h WORD top-left coordinate of character block 04h WORD width of block 06h DWORD -> block of DWORDs describing characters (see #2284) 0Ah BYTE length of block in characters SeeAlso: #2281 Bitfields for one character in ABLOCKMFI character block: Bit(s) Description (Table 2284) 7-0 reserved 9-8 low two bits of font number 12 transparent background 13 overstrike 14 reverse video 15 underscore 19-16 foreground color attribute 23-20 background color attribute 31-24 character code Format of ACURSOR parameter block: Offset Size Description (Table 2285) 00h WORD 0002h (length of following data) 02h BYTE column (0-based) 03h BYTE row (0-based) SeeAlso: #2288 Format of AERASE parameter block: Offset Size Description (Table 2286) 00h WORD 0005h (length of following data) 02h BYTE left-most column (0-based) 03h BYTE top-most row (0-based) 04h BYTE rectangle's width in character cells 05h BYTE rectangle's height in character cells 06h BYTE background color (bits 7-4) SeeAlso: #2287 Format of ASCROLL parameter block: Offset Size Description (Table 2287) 00h WORD 0006h (length of following data) 02h BYTE left-most column (0-based) of source 03h BYTE top-most row (0-based) of source 04h BYTE rectangle's width in character cells 05h BYTE rectangle's height in character cells 06h BYTE left-most column (0-based) of destination 07h BYTE top-most row (0-based) of destination SeeAlso: #2286 Format of ASCUR parameter block: Offset Size Description (Table 2288) 00h WORD 0003h (length of following data) 02h BYTE cursor start line (00h = top of cell, FFh = keep current shape) 03h BYTE cursor stop line 04h BYTE cursor attribute 00h normal 01h hidden 02h left-arrow (requires start = 2 and stop = bottom of cell) 03h right-arrow (requires start = 2 and stop = bottom of cell) Notes: no cursor is shown if the start line is greater than the stop line the alphanumeric cursor is hidden after each mode change SeeAlso: #2285,INT 10/AH=01h Format of ASFONT parameter block: Offset Size Description (Table 2289) 00h WORD 0005h (length of following data) 02h BYTE font number (0-3) 03h DWORD -> character set definition block (see #2290) Format of 8514/A character set definition block: Offset Size Description (Table 2290) 00h BYTE reserved 01h BYTE type of character set 00h bitmapped, 01h&02h reserved, 03h short-stroke font 02h BYTE reserved 03h DWORD reserved 07h BYTE cell width in pixels 08h BYTE cell height in pixels 09h BYTE reserved 0Ah WORD cell size in bytes 0Ch WORD flags bit 15: reserved (0) bit 14: color bitmap bit 13: proportional spacing 0Eh DWORD -> index table 12h DWORD -> character width table 16h BYTE initial code point 17h BYTE final code point 18h DWORD -> character definition table 1Ch WORD reserved 1Eh DWORD -> second character definition table 22h WORD reserved 24h DWORD -> third character definition table Format of AXLATE parameter block: Offset Size Description (Table 2291) 00h WORD 0080h (length of following data) 02h 64 BYTEs character foreground translation table 42h 64 BYTEs character background translation table Format of HBAR parameter block: Offset Size Description (Table 2292) 00h WORD 0000h (no data following) SeeAlso: #2304 Format of HBBC parameter block: Offset Size Description (Table 2293) 00h WORD 0010h (length of following data) 02h WORD data format 0000h across-the-plane copy (color expansion) 0008h through-the-plane copy 04h WORD data rectangle's width 06h WORD data rectangle's height 08h BYTE source bit plane number (across-the-plane copies only) 09h BYTE reserved 0Ah 2 WORDs X,Y coordinates of source's upper-left corner in display memory 0Eh 2 WORDs X,Y coordinates of destination's upper-left corner in display memory Note: copies data from one location in video memory to another SeeAlso: #2294 Format of HBBCHN parameter block: Offset Size Description (Table 2294) 00h WORD 0006h (length of following data) 02h DWORD -> data buffer in system memory 06h WORD number of bytes to transfer Note: this function performs the actual data transfer for a bitBLT set up with HBBR, HBBW, or HCBBW SeeAlso: #2293,#2295,#2296,#2297 Format of HBBR parameter block: Offset Size Description (Table 2295) 00h WORD 000Ch or 0014h (length of following data) 02h WORD data format 0000h across-the-plane copy (color expansion) 0008h through-the-plane copy 04h WORD data rectangle's width 06h WORD data rectangle's height 08h BYTE source bit plane number 09h BYTE reserved 0Ah 2 WORDs X,Y coordinates of destination's upper-left corner in display memory ---optional--- 0Eh WORD sub-rectangle left margin in pixels 10h WORD sub-rectangle top margin in pixels 12h WORD sub-rectangle width 14h WORD sub-rectangle height SeeAlso: #2294,#2295,#2297 Format of HBBW parameter block: Offset Size Description (Table 2296) 00h WORD 000Ah or 0012h (length of following data) 02h WORD data format 0000h across-the-plane copy (color expansion) 0008h through-the-plane copy 04h WORD data rectangle's width 06h WORD data rectangle's height 08h 2 WORDs X,Y coordinates of destination in display memory ---optional--- 0Ch WORD sub-rectangle left margin in pixels 0Eh WORD sub-rectangle top margin in pixels 10h WORD sub-rectangle width 12h WORD sub-rectangle height SeeAlso: #2294,#2296,#2297 Format of HCBBW parameter block: Offset Size Description (Table 2297) 00h WORD 0006h or 000Eh (length of following data) 02h WORD data format 0000h across-the-plane copy (color expansion) 0008h through-the-plane copy 04h WORD data rectangle's width 06h WORD data rectangle's height ---optional--- 08h WORD sub-rectangle left margin in pixels 0Ah WORD sub-rectangle top margin in pixels 0Ch WORD sub-rectangle width 0Eh WORD sub-rectangle height SeeAlso: #2294,#2295,#2296 Format of HCCHST parameter block: Offset Size Description (Table 2298) 00h WORD length of following data 02h N BYTEs ASCII string to display (length given by 'length' field above) SeeAlso: #2299 Format of HCHST parameter block: Offset Size Description (Table 2299) 00h WORD length of following data 02h 2 WORDs X,Y of left-bottom corner of string on screen 06h N BYTEs ASCII string to display (length given by 'length' field above) SeeAlso: #2298 Format of HCLINE parameter block: Offset Size Description (Table 2300) 00h WORD length of following data (multiple of 4) 02h 2N WORDs X,Y coordinates for each of N points in polyline Notes: the first line segment is drawn beginning at the current position on completion, the current position is set to the last point drawn SeeAlso: #2310,#2322,#2303 Format of HCLOSE parameter block: Offset Size Description (Table 2301) 00h WORD 0001h (length of following data) 01h BYTE (ret) return code SeeAlso: #2313 Format of HCMRK parameter block: Offset Size Description (Table 2302) 00h WORD length of following data 02h 2N WORDs X,Y of N points Note: draws N+1 marker symbols, the first one at the current position SeeAlso: #2312 Format of HCRLINE parameter block: Offset Size Description (Table 2303) 00h WORD length of following data (multiple of 4) 02h 2N WORDs X,Y coordinates relative to the position of the previous point (current position for first point) for each of N points in polyline Notes: the first line segment is drawn beginning at the current position on completion, the current position is set to the last point drawn SeeAlso: #2310,#2300,#2322 Format of HEAR parameter block: Offset Size Description (Table 2304) 00h WORD 0001h (length of following data) 02h BYTE area definition flags bits 7-6: End Area type 00 complete, perform fill 01 suspend definition 10 complete, but don't fill SeeAlso: #2292 Format of HEGS parameter block: Offset Size Description (Table 2305) 00h WORD 0000h (no data following) Format of HESC parameter block: Offset Size Description (Table 2306) 00h WORD 0000h (no data following) Format of HINIT parameter block: Offset Size Description (Table 2307) 00h WORD 0002h (length of following data) 02h WORD segment of task buffer SeeAlso: #2346 Format of HINT parameter block: Offset Size Description (Table 2308) 00h WORD 0004h (length of following data) 02h DWORD interrupt/event identifier bit 31: vertical blanking Format of HLDPAL parameter block: Offset Size Description (Table 2309) 00h WORD 000Ah (length of following data) 02h BYTE palette ID (00h = user, 01h = default) 03h BYTE reserved 04h WORD number of first palette entry 06h WORD number of entries 08h DWORD -> palette entries SeeAlso: #2343 Format of HLINE parameter block: Offset Size Description (Table 2310) 00h WORD length of following data (multiple of 4) 02h 2N WORDs X,Y coordinates for each of N points in polyline Note: on completion, the current position is set to the last point drawn SeeAlso: #2300,#2322,#2303 (Table 2311) Values for 8514/A mix: 00h retain previous mix 01h source OR destination 02h source 04h source XOR destination 05h leave as-is 06h max(source,destination) 07h min(source,destination) 08h source+destination (clipped) 09h destination-source (clipped to zero) 0Ah source-destination (clipped to zero) 0Bh average source and destination 10h zero destination 11h source AND destination 12h source AND NOT destination 13h source 14h NOT source AND destination 15h leave as-is 16h source XOR destination 17h source OR destination 18h NOT source AND NOT destination 19h NOT (source XOR destination) 1Ah NOT destination 1Bh source OR NOT destination 1Ch NOT source 1Dh NOT source OR destination 1Eh NOT source OR NOT destination 1Fh set all bits of destination Format of HMRK parameter block: Offset Size Description (Table 2312) 00h WORD length of following data (multiple of 4) 02h 2N WORDs X,Y for N points SeeAlso: #2302 Format of HOPEN parameter block: Offset Size Description (Table 2313) 00h WORD 0003h (length of following data) 01h BYTE initialization flags bit 6: don't load default palette bit 7: clear bitplanes 02h BYTE mode type (see #2314) 03h BYTE (ret) return code bit 7: no adapter (hardware mismatch) SeeAlso: #2301 (Table 2314) Values for 8514/A display mode: 0000h 12x20 characters, 1024x768 0001h 8x14 characters, 640x480 0002h 8x14 characters, 1024x768 0003h 7x15 characters, 1024x768 Format of HQCOORD parameter block: Offset Size Description (Table 2315) 00h WORD 0004h (length of following data) 02h BYTE (ret) coordinate format bits 7-4: bytes per coordinate bits 3-0: fraction bytes in coordinate 03h BYTE (ret) relative coordinate format bits 7-4: bytes per coordinate bits 3-0: fraction bytes in coordinate 04h BYTE (ret) number of dimensions (2-4) 05h BYTE (ret) test results bit 7: coordinate format not supported bit 6: relative coordinate format not supported bit 5: specified dimension not supported Format of HQCP parameter block: Offset Size Description (Table 2316) 00h WORD 0004h (length of following data) 02h WORD (ret) current X position 04h WORD (ret) current Y position Format of HQDFPAL parameter block: Offset Size Description (Table 2317) 00h WORD 0040h (length of following data) 02h 16 DWORDs (ret) color index values Note: the default palette is set to match the default EGA/VGA 16-color palettes Format of HQDPS parameter block: Offset Size Description (Table 2318) 00h WORD 0006h (length of following data) 02h WORD (ret) size of data buffer in bytes 04h WORD (ret) stack size in bytes 06h WORD (ret) size of palette save buffer in bytes Format of HQMODE parameter block: Offset Size Description (Table 2319) 00h WORD 0012h (length of following data) 02h BYTE current video mode (see #2314) 03h WORD driver version bit 6: 80286/8086 CPU bit 5: 8 bit planes instead of 4 planes bits 4-0: hardware release number 05h BYTE adapter type 03h 8514/A 04h XGA 06h BYTE reserved (display type) 07h BYTE character cell width 08h BYTE character cell height 09h BYTE number of bit planes 0Ah WORD screen width (pixels) 0Ch WORD screen height (pixels) 0Eh WORD horizontal resolution (pixels/inch) 10h WORD vertical resolution (pixels/inch) 12h BYTE flag: 00h = monochrome, FFh = color 13h BYTE intensity levels SeeAlso: #2320 Format of HQMODES parameter block: Offset Size Description (Table 2320) 00h WORD 0021h (length of following data) 02h BYTE (ret) adapter type 03h 32 BYTEs (ret) available display modes (FFh byte marks end of data) SeeAlso: #2319 Format of HRECT parameter block: Offset Size Description (Table 2321) 00h WORD 0008h (legth of following data) 02h 2 WORDs X,Y coordinates of top left corner or rectangle 06h WORD rectangle's width 08h WORD rectangle's height Note: the rectangle is filled using the current pattern, color, and mix Format of HRLINE parameter block: Offset Size Description (Table 2322) 00h WORD length of following data (multiple of 4) 02h 2 WORDs X,Y coordinates of starting point 06h 2N WORDs X,Y coordinates relative to the position of the previous point for each of N points in polyline Note: on completion, the current position is set to the last point drawn SeeAlso: #2310,#2300,#2303 Format of HRLPC parameter block: Offset Size Description (Table 2323) 00h WORD 0000h (no data following) Note: used for continuity of lines crossing scissors boundaries SeeAlso: #2336 Format of HRPAL parameter block: Offset Size Description (Table 2324) 00h WORD 0300h (length of following data) 02h 768 BYTEs buffer containing previously-saved palette table SeeAlso: #2343 Format of HSBCOL parameter block: Offset Size Description (Table 2325) 00h WORD 0004h (length of following data) 02h DWORD color index for new background color SeeAlso: #2329 Format of HSBP parameter block: Offset Size Description (Table 2326) 00h WORD 000Ch (length of following data) 02h DWORD bitmask for graphics updates 06h DWORD bitmask for alphanumeric updates 0Ah DWORD display bitmask Format of HSCELL parameter block: Offset Size Description (Table 2327) 00h Format of HSCMP parameter block: Offset Size Description (Table 2328) 00h WORD 0005h (length of following data) 02h DWORD comparison color 06h BYTE logical operation 00h True 01h pel > testcolor 02h pel == testcolor 03h pel < testcolor 04h False 05h pel >= testcolor 06h pel <> testcolor 07h pel <= testcolor Format of HSCOL parameter block: Offset Size Description (Table 2329) 00h WORD 0004h (length of following data) 02h DWORD color index for new foreground color SeeAlso: #2325 Format of HSCOORD parameter block: Offset Size Description (Table 2330) 00h WORD 0003h (length of following data) 02h BYTE coordinate format bits 7-4: bytes per coordinate bits 3-0: fraction bytes in coordinate 03h BYTE relative coordinates format bits 7-4: bytes per coordinate bits 3-0: fraction bytes in coordinate 04h BYTE number of dimensions (2-4) Format of HSCP parameter block: Offset Size Description (Table 2331) 00h WORD 0004h (length of following data) 02h 2 WORDs X,Y or coordinate for new current position Format of HSCS parameter block: Offset Size Description (Table 2332) 00h WORD 0004h (length of following data) 02h DWORD -> character set definition Format of HSGQ parameter block: Offset Size Description (Table 2333) 00h WORD 0002h (length of following data) 02h WORD quality settings (see #2335) Format of HSHS parameter block: Offset Size Description (Table 2334) 00h WORD 0008h (length of following data) 02h WORD left edge of clipping rectangle (-2048 to +6143) 04h WORD right edge 06h WORD top edge 08h WORD bottom edget Bitfields for 8514/A quality settings: Bit(s) Description (Table 2335) 15 reserved 14 high precision 13 reserved 12-11 pel code 00 not drawn 01 drawn 02 conditional on overpainting/mixes 10 don't close areas to be filed 9-0 reserved Format of HSLPC parameter block: Offset Size Description (Table 2336) 00h WORD 0000h (no data following) Note: used for continuity of lines crossing scissors boundaries SeeAlso: #2323 Format of HSLT parameter block: Offset Size Description (Table 2337) 00h WORD 0006h (length of following data) 02h BYTE line type (see #2338) 03h BYTE reserved 04h DWORD -> user line-type definition (if user type) SeeAlso: #2339 (Table 2338) Values for 8514/A line type: 00h user line type 01h dotted 02h short dashes 03h dash-dot 04h double dotted 05h dashed 06h dash double dot 07h solid 08h invisible SeeAlso: #2337 Format of HSLW parameter block: Offset Size Description (Table 2339) 00h WORD 0001h (length of following data) 02h BYTE width of line in pixels SeeAlso: #2337 Format of HSMODE parameter block: Offset Size Description (Table 2340) 00h WORD 0001h (length of following data) 02h BYTE new display mode number (see #2314) Format of HSMRK paramter block: Offset Size Description (Table 2341) 00h WORD 000Eh (length of following data) 02h BYTE cell width 03h BYTE cell height 04h BYTE flags 05h BYTE reserved 06h WORD length of marker symbol 08h DWORD -> image definition data 0Ch DWORD -> color definition data SeeAlso: #2344 Format of HSMX parameter block: Offset Size Description (Table 2342) 00h WORD 0002h (length of following data) 02h BYTE foreground mix (see #2311) 03h BYTE background mix (see #2311) Format of HSPAL parameter block: Offset Size Description (Table 2343) 00h WORD 0300h (length of following data) 02h 768 BYTEs buffer for palette table SeeAlso: #2309,#2324 Format of HSPATT parameter block: Offset Size Description (Table 2344) 00h WORD 000Eh (length of following data) 02h BYTE cell width 03h BYTE cell height 04h BYTE flags 05h BYTE reserved 06h WORD length of marker symbol 08h DWORD -> image definition data 0Ch DWORD -> color definition data SeeAlso: #2341,#2345 Format of HSPATTO parameter block: Offset Size Description (Table 2345) 00h WORD 0004h (length of following data) 02h 2 WORDs X,Y of pattern reference point (origin) SeeAlso: #2344 Format of HSYNC parameter block: Offset Size Description (Table 2346) 00h WORD 0002h (length of following data) 02h WORD segment of task state buffer SeeAlso: #2307 Format of HXLATE parameter block: Offset Size Description (Table 2347) 00h WORD 0020h (length of following data) 02h 32 BYTEs color index table --------V-7F0105----------------------------- INT 7F - IBM XGA Adapter Interface (XGAAIDOS.SYS) AX = 0105h Return: CF set on error CF clear if successful CX:DX -> array of FAR pointers to entry points (see #2280) Note: this API is a superset of the 8514/A Adapter Interface (see AX=0105h"HDILOAD") ----------7F0106----------------------------- INT 7F - HDILOAD Mach32 Adapter Interface - UNINSTALL AX = 0106h Return: AX = 0105h if successfully unloaded SeeAlso: AX=0105h --------N-7F02------------------------------- INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE AH = 02h DS:DX -> ASCIZ semaphore name (max 64 bytes) Return: AL = status (see #2274) AH = semaphore owner if status=02h SeeAlso: AH=00h,AH=01h,AH=42h --------N-7F02------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME AH = 02h AL = stream number (01h-40h) CX = length of frame ES:SI -> frame to be sent SeeAlso: AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ" --------f-7F0200----------------------------- INT 7F - Btrieve Multi-User - GIVE UP TIME??? AX = 0200h SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve" --------N-7F03------------------------------- INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER AH = 03h Return: AL = user number AH = machine number (MW386) Note: this function call is the recommended method for a CPU-bound process to prevent its priority from being lowered SeeAlso: AH=04h,AH=05h,AH=A1h --------N-7F03------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME AH = 03h AL = stream number (01h-40h) ES:DI -> buffer for frame (must be large enough for a full frame; 350 bytes is usually sufficient) Return: BX = number of pending frames (0000h if returned frame was last avail) CX = length of received frame SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ" --------N-7F04------------------------------- INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS AH = 04h Return: AL = total number of users on currrent machine (MW386) AL = number of slaves on system (NTNX) SeeAlso: AH=03h --------N-7F04------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS AH = 04h AL = stream number (01h-40h) Return: CX = state (0000h disconnected, 0001h connected) DX = delta state (0000h no change, 0001h changed since last check) SeeAlso: AH=02h"G8BPQ",AH=05h"G8BPQ" --------N-7F05------------------------------- INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL AH = 05h AL = function 00h lock system (disable slave services) 01h unlock system 02h enable spooler 03h disable spooler 04h enable slave timer update 05h disable slave timer update 06h enable form feeds 07h disable form feeds SeeAlso: INT 17/AH=A4h --------N-7F05------------------------------- INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS AH = 05h DX:DI -> buffer for user information record (see #2348) Notes: MW386 provides this function for backward compatibility only, and sets many of the fields to zero because they are meaningless under MW386 this function has no effect when called by the host (user 0) SeeAlso: AH=03h Format of Alloy user information record: Offset Size Description (Table 2348) 00h WORD segment of video RAM 02h WORD segment of secondary copy of video RAM 04h WORD offset of screen update flag (see INT 10/AH=8Bh) flag nonzero if update needed 06h WORD video NMI enable port (not used by MW386, set to 0000h) 08h WORD video NMI disable port (not used by MW386, set to 0000h) 0Ah BYTE processor type 00h 8088 01h V20 02h 8086 03h V30 06h 80386 0Bh WORD multitasking flag (00h = single tasking, 01h = multitasking) (not used by MW386, set to 0000h) 0Dh WORD offset of terminal driver (not used by MW386, set to 0000h) 0Fh BYTE port for console I/O (not used by MW386, set to 0000h) 10h WORD offset of processor communication busy flag bit 7 set when slave communicating with host 12h WORD pointer to FAR NX system call (not used by MW386, set to 0000h) 14h WORD offset of 16-byte user configuration record (see AH=38h) 16h WORD offset of command/status word 18h WORD offset of screen valid flag (see INT 10/AH=93h) nonzero if screen must be repainted 1Ah WORD offset of screen repaint flag 1Ch WORD pointer to NEAR NX system call (not used by MW386, set to 0000h) 1Eh WORD offset for intercept flags (not used by MW386, set to 0000h) intercept flag = FFh if MS-DOS intercepts should be disabled 20h WORD offset of terminal lock flag (see INT 10/AH=92h) lock flag = FFh if backgrnd screen updates should be suspended 22h 26 BYTEs reserved --------N-7F05------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE AH = 05h AL = stream number (01h-40h) Note: this function must be called in order to receive a report of another status change SeeAlso: AH=04h"G8BPQ" --------N-7F06------------------------------- INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO AH = 06h AL = drive number (1=A:, 2=B:, etc) ES:DI -> drive info record (see #2349) Return: AX = status 0000h successful ES:DI buffer filled 0001h not shared drive Format of Alloy drive info record: Offset Size Description (Table 2349) 00h WORD segment of drive IO-REQUEST structure (MS-DOS DPB) 02h WORD segment of allocation map (owner table) one byte per FAT entry, containing user ID owning that entry 04h WORD segment of master FAT for drive (copy of FAT on disk) 06h WORD pointer to configuration file 08h WORD total number of clusters 0Ah WORD bytes per sector 0Ch WORD sectors per cluster 0Eh BYTE FAT type (0Ch = 12-bit, 10h = 16-bit) --------N-7F06------------------------------- INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE AH = 06h DL = drive number (1=A:,2=B:,etc) CX = number of clusters to allocate Return: AH = status 00h successful CX = number of clusters still free 10h invalid shared drive request CL = first and second shared drives 11h invalid cluster count (must be 01h-FFh) --------N-7F06------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL AH = 06h AL = stream number (01h-40h) CX = subfunction 0000h connect to node DL bit 0: use BBS callsign instead of Node Call 0001h connect to node use BBS Call if APPLMASK=1 0002h disconnect 0003h return user to node SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ" --------N-7F07------------------------------- INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES AH = 07h Return: ES:DI -> shared drive list (see #2350) Note: MW386 considers all fixed disks to be shared drives; only C and D will be returned as shared Format of Alloy shared drive list: Offset Size Description (Table 2350) 00h BYTE string length 01h BYTE number of shared drives 02h N BYTEs one byte per shared drive --------N-7F07------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM AH = 07h AL = stream number (01h-40h) Return: BX = number of pending receive frames CX = number of unacknowledged sent frames DX = number of buffers available SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ" --------N-7F08------------------------------- INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS AH = 08h CL = function 00h get original interrupt vector 01h get Network Executive interrrupt AL = interrupt number DX:SI -> DWORD to hold interrupt vector Return: AL = status 00h successful 01h interrupt vector not used by network executive 02h invalid subfunction Note: the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h, 1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh SeeAlso: AH=09h/CL=03h,INT 21/AH=35h --------N-7F08--CL02------------------------- INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT AH = 08h CL = 02h DX = timeout in seconds Return: AL = status 00h successful 02h invalid subfunction --------N-7F08------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION AH = 08h AL = stream number (01h-40h) Return: ES:DI -> 10-byte buffer containing blank-padded callsign ---v4.05+ --- AL = radio port to which channel is connected (level 2) AH = session type (see #2351) BX = L2 paclen for session CX = maximum frame size DX = L4 window size or 0000h if not L4 circuit Program: the G8BPQ AX25 Networking Package is amateur packet radio software by John Wiseman which allows a PC to act as a node in an AX.25 network SeeAlso: AH=01h"G8BPQ",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ" Bitfields for G8BPQ session type: Bit(s) Description (Table 2351) 0 L2LINK 1 SESSION 2 UPLINK 3 DOWNLIND 5 BPQHOST --------T-7F09------------------------------- INT 7F - MultiLink Advanced - SET TASK PRIORITY AH = 09h AL = priority (0-7) Note: the installation check consists of ensuring that the interrupt vector is not pointing at segment 0000h, then checking whether the byte at offset 0000h in the interrupt handler's segment is E9h Index: installation check;MultiLink Advanced --------N-7F09------------------------------- INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS AH = 09h AL = application 00h node 01h BBS 02h HOST 03h SYSOP BL = what to get (00h callsign, 01h application name) ES:SI -> buffer for callsign/name string Return: CX = length of returned string SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ" --------N-7F09------------------------------- INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING AH = 09h CL = function 00h enable checking of RTNX.MUD file 01h disable RTNX.MUD checking --------N-7F09--CL02------------------------- INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE AH = 09h CL = 02h Note: in dedicated mode, the host will only poll for I/O requests from the slave processors, and not provide workstation services --------N-7F09--CL03------------------------- INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT AH = 09h CL = 03h AL = default interrupt number (67h,7Fh,etc) Return: CL = actual interrupt which handles specified interrupt's calls SeeAlso: AH=08h --------N-7F0A--CL00------------------------- INT 7F - Alloy NTNX - GET SYSTEM FLAGS AH = 0Ah CL = 00h ES:DI -> buffer for system flags (see #2352) Return: ES:DI buffer filled Notes: on a slave, only the NX_Busy flag is returned all three flags are at fixed positions, so this function only needs to be called once an interrupt handler should only perform DOS or device accesses when all three flags are 00h Format of Alloy system flags: Offset Size Description (Table 2352) 00h DWORD pointer to NX_Busy flag (nonzero when communicating with users) 04h DWORD pointer to device driver busy flag 08h DWORD pointer to InTimer flag --------N-7F0A------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME AH = 0Ah AL = radio port ES:SI -> buffer containing data to be sent CX = number of bytes to send SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ" --------N-7F0B--CL02------------------------- INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE AH = 0Bh CL = 02h AL = slave ID number CH = DOS to activate 00h graphics DOS 01h character DOS Return: AL = status 00h successful 01h nothing done, proper DOS type already loaded --------N-7F0B------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME AH = 0Bh ES:DI -> buffer for received data (see #2353) Return: CX = number of bytes received Note: the specified buffer must be large enough to receive a full frame SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ" Format of G8BPQ received data: Offset Size Description (Table 2353) 00h WORD internal control information 02h BYTE port number (bit 7 set if transmitted frame) 03h WORD frame length including this header 05h var user data --------N-7F0C------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION AH = 0Ch DX = function 0001h update beacon text CX = length of data ES:SI -> data to be sent in beacons SeeAlso: AH=09h"G8BPQ" --------N-7F0F------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER AH = 0Fh Return: AX = time marker (clock ticks modulo 64K) Program: the G8BPQ AX25 Networking Package is amateur packet radio software by John Wiseman which allows a PC to act as a node in an AX.25 network SeeAlso: AH=01h"G8BPQ",INT 1A/AH=00h --------N-7F10--CL00------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL AH = 10h CL = 00h AL = channel number DX:DI -> channel buffer Return: AL = status (00h-03h,0Dh) (see #2354) Note: may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h (Table 2354) Values for Alloy function status: 00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction 0Ah channel not open 0Ch channel already locked 0Dh unable to open --------N-7F10--CL01------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL AH = 10h CL = 01h AL = channel number Return: AL = status (00h-03h,0Ah) (see #2354) Note: may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h --------N-7F10--CL02------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL AH = 10h CL = 02h AL = channel number Return: AL = status (00h-03h,0Ah,0Ch) (see #2354) Note: may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h --------N-7F10--CL03------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL AH = 10h CL = 03h AL = channel number Return: AL = status (00h-03h,0Ah) (see #2354) Notes: should only be used on channels locked with AH=10h/CL=02h, not on those locked by receipt of a datagram may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h --------N-7F10--CL04------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER AH = 10h CL = 04h AL = channel number Return: AL = status (00h-03h) (see #2354) Notes: unlocks buffer after received datagram has been processed may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=00h --------N-7F10--CL05------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS AH = 10h CL = 05h Return: AL = status (00h-03h) (see #2354) Notes: clears all pending datagrams and clears buffer pointers before closing the channels may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=01h --------N-7F10--CL06------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS AH = 10h CL = 06h Return: AL = status (00h-03h) (see #2354) Note: may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h --------N-7F10--CL07------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS AH = 10h CL = 07h Return: AL = status (00h-03h) (see #2354) Notes: unlocks all locked channels which have no pending datagrams may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h --------N-7F10--CL08------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS AH = 10h CL = 08h DX = maximum channel number to lock Return: AL = status (00h-03h) (see #2354) Notes: locks channels numbered 00h through the value in DX may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h --------N-7F10--CL09------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS AH = 10h CL = 09h DX = maximum channel number to unlock Return: AL = status (00h-03h) (see #2354) Notes: unlocks channels numbered 00h through the value in DX may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h --------N-7F11------------------------------- INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM AH = 11h DX:SI -> request block (see #2356) Return: AL = status (see #2355) Note: if wildcard channel FFh used, actual channel number will be filled in SeeAlso: AH=12h (Table 2355) Values for Alloy function status: 00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction 0Ah packet too large (or <2 bytes if NTNX) 0Bh can't send packet to itself 0Ch invalid number of destinations 0Dh destination channel number out of range 0Eh destination user is busy 0Fh destination user has locked channel 10h channel not open 11h no datagram server on destination (NTNX) Format of Alloy request block: Offset Size Description (Table 2356) 00h DWORD pointer to packet to send 04h WORD packet size in bytes (1-4096) 06h BYTE number of destinations for packet (max 1Fh) 07h 31 BYTEs destination user IDs (FFh = broadcast to all except sender) 26h 31 BYTEs destination channels (FFh = first available channel) 45h 31 BYTEs return destination statuses --------N-7F12------------------------------- INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM AH = 12h AL = channel number being acknowledged DI:DX = 32-bit status to return to sender Return: AL = status (see #2357) Note: also unlocks the channel, allowing the next datagram to be received SeeAlso: AH=11h,AH=15h/CL=04h (Table 2357) Values for Alloy function status: 00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction 0Ah channel not open 0Bh no message in channel 0Ch destination slave busy--retry (NTNX) 0Dh destination user not active 0Eh destination slave not active (NTNX) 0Fh destination disabled datagram service --------V-7F1234----------------------------- INT 7F - TIGA Communications Driver v2.05 - UNINSTALL AX = 1234h SeeAlso: AX=4321h --------N-7F13--CL00------------------------- INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS AH = 13h CL = 00h Note: clears all pending datagrams and removes all channels opened in NTNX compatibility mode --------N-7F14--CL00------------------------- INT 7F - Alloy NTNX, MW386 - SET RECEIVE ISR AH = 14h CL = 00h DX:DI -> application FAR receive service routine (see #2358) Return: AL = status (00h-03h) (see #2357) SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h (Table 2358) Values Alloy receive service routine is called with: DH = sender ID DL = channel with datagram interrupts disabled Return: AL = response code 00h leave buffer locked, set channel status, and repeat call later 01h release channel buffer 02h change buffer pointer to DX:DI AH,CX,DX,DI,SI may be destroyed --------N-7F14--CL01------------------------- INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR AH = 14h CL = 01h DX:DI -> application FAR acknowledge service routine (see #2359) Return: AL = status (00h-03h) (see #2357) Note: the service routine will be called as soon as an acknowledgment arrives SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h (Table 2359) Values Alloy acknowledge service routine is called with: DS:SI -> acknowledge structure (see #2363) Return: AL = response code 00h application busy, network executive should call again later 01h acknowledge accepted AH,DX,SI may be destroyed --------N-7F14--CL02------------------------- INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER AH = 14h CL = 02h AL = channel number DX:DI -> receive buffer Return: AL = status (00h-03h) (see #2357) Note: may be called from within a receive ISR or when a datagram is pending SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h --------N-7F14--CL03------------------------- INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR AH = 14h CL = 03h Return: DX:DI -> current receive ISR SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h --------N-7F14--CL04------------------------- INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR AH = 14h CL = 04h Return: DX:DI -> current acknowledge ISR SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h --------N-7F14--CL05------------------------- INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER AH = 14h CL = 05h DX:DI -> buffer for busy structure (see #2360) Return: DX:DI buffer filled Format of Alloy busy structure: Offset Size Description (Table 2360) 00h DWORD pointer to busy flag byte 04h WORD fixed port address (FF00h) --------N-7F15--CL00------------------------- INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS AH = 15h CL = 00h AL = channel number DX:DI -> status structure (see #2361) Return: AL = status (00h-03h) (see #2357) SeeAlso: AH=15h/CL=01h Format of Alloy channel status structure: Offset Size Description (Table 2361) 00h BYTE channel status bit 0: channel open bit 1: channel buffer contains received data bit 7: channel locked 01h BYTE sender ID --------N-7F15--CL01------------------------- INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL AH = 15h CL = 01h DX:DI -> full-channel structure (see #2362) Return: AL = status 00h successful 01h busy 0Ah no datagrams available Note: MW386 v1.0 returns the lowest channel with a datagram; newer versions and NTNX return the oldest datagram SeeAlso: AH=15h/CL=00h Format of Alloy full-channel structure: Offset Size Description (Table 2362) 00h BYTE number of channel with oldest datagram 01h BYTE sender ID --------N-7F15--CL02------------------------- INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS AH = 15h CL = 02h Return: AH = number of channels available (40h for MW386) Note: the application may always assume at least 32 channels available SeeAlso: AH=15h/CL=03h --------N-7F15--CL03------------------------- INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE AH = 15h CL = 03h DX:DI -> WORD for return value Return: buffer WORD filled with maximum packet size (4096 for MW386) SeeAlso: AH=15h/CL=02h --------N-7F15--CL04------------------------- INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS AH = 15h CL = 04h DX:DI -> status structure (see #2363) Return: AL = status 00h successful DX:DI structure filled 01h busy 0Ah no acknowledgement has arrived SeeAlso: AH=12h,AH=14h/CL=01h Format of Alloy status structure: Offset Size Description (Table 2363) 00h BYTE sender ID 01h BYTE channel number 02h 4 BYTEs receiver status (see #2357) --------N-7F16------------------------------- INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER AH = 16h DX:SI -> transfer structure (see #2364) Return: AL = status 00h successful 0Ah source or destination out of range 0Bh transfer kernal busy--try again Notes: this call transfers memory contents directly between users; both source and destination user IDs may differ from the caller's ID no segment wrap is allowed Format of Alloy transfer structure: Offset Size Description (Table 2364) 00h WORD bytes to transfer 02h BYTE source ID FEh = caller 03h DWORD source address 07h BYTE destination ID FFh = all slaves except caller FEh = caller 08h DWORD destination address --------N-7F21------------------------------- INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S) AH = 21h AL = sender's user ID DS:DX -> control packet (see #2365) Note: messages or commands are ignored if disabled by the destination user SeeAlso: AH=22h Format of Alloy control packet: Offset Size Description (Table 2365) 00h BYTE packet type 00h message 01h NTNX command 02h MW386 command 01h BYTE destination user ID or 'A' for all users 02h 62 BYTEs ASCIZ message (packet type 00h) BIOS keycodes terminated by NUL byte (type 01h) or word (02h) Note: a maximum of 16 keycodes will be processed for NTNX and MW386 commands --------N-7F22------------------------------- INT 7F - Alloy NTNX - GET MESSAGE AH = 22h Return: pending messages displayed on user's screen SeeAlso: AH=21h --------N-7F24------------------------------- INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS AH = 24h CL = function 00h attach 01h release CH = drive (0=A:,1=B:,etc) Return: AX = status (see #2366) Note: only drives on the current machine may be attached (Table 2366) Values for Alloy function status: 00h successful 01h invalid request 02h already attached 03h not attached 04h lock table full --------N-7F24------------------------------- INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR AH = 24h CL = function 02h attach host 03h release host Return: AX = status (see #2366) Note: the host processor may be attached in order to perform I/O via the host --------N-7F25--CL00------------------------- INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION AH = 25h CL = 00h Return: AH = version suffix letter CH = major version number CL = minor version number SeeAlso: AH=25h/CL=01h --------N-7F25--CL01------------------------- INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE AH = 25h CL = 01h Return: CL = executive type (see #2367) SeeAlso: AH=25h/CL=00h (Table 2367) Values for Alloy network executive type: 00h RTNX 01h ATNX 02h NTNX 03h BTNX 04h MW386 05h ANSK ----------7F2525----------------------------- INT 7F - TIGA Communications Driver v2.05 - ??? AX = 2525h BX = ??? Return: ??? SeeAlso: AX=4321h,AX=5555h --------N-7F26--CL00------------------------- INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE AH = 26h CL = 00h Return: AX = file mode bits (see #2368) Note: MW386 does not support file modes, and always returns AX=001Fh SeeAlso: AH=26h,AH=26h/CL=06h Bitfields for Alloy file mode bits: Bit(s) Description (Table 2368) 0 directory protection enabled 1 extended open enabled 2 flush on every disk write 3 flush on every disk write in locked interval 4 flush on reads from simultaneously opened file --------N-7F26------------------------------- INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL AH = 26h CL = check type to set/reset 01h directory protection 02h extended open 03h flush on every disk write 04h flush on disk write if any lock set during write 05h flush on all reads if file written AL = new state (00h off, 01h on) SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h --------N-7F26--CL06------------------------- INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE AH = 26h CL = 06h Note: cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h SeeAlso: AH=26h/CL=00h --------N-7F30------------------------------- INT 7F - Alloy MW386 - GET PORT INFORMATION AH = 30h CX = MW386 port number Return: AL = result FFh if port not found else driver unit number BL = port mode BH = port type 02h remote DH = owner's machine ID DL = owner's user ID SeeAlso: INT 17/AH=8Bh --------N-7F31------------------------------- INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT AH = 31h ??? Return: ??? --------N-7F37------------------------------- INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE AH = 37h Return: ES:AX -> semaphore table --------N-7F37------------------------------- INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL AH = 37h DS:DX -> ASCIZ string to display Note: if the string is empty, a terminal update will be forced --------N-7F38------------------------------- INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER AH = 38h AL = new terminal driver number FFh dummy driver FEh current driver FDh load new driver DS:SI -> new driver SeeAlso: AH=39h --------N-7F39------------------------------- INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER AH = 39h AL = new terminal driver number FFh dummy driver FEh current driver FDh load new driver DS:SI -> new driver DL = user number (FFh = caller) DH = machine number if DL <> FFh Return: CF set if invalid user number CF clear if successful Notes: only available to supervisors the new driver number will not take effect until the user is rebooted SeeAlso: AH=38h --------N-7F3A------------------------------- INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS AH = 3Ah DL = user number (FFh = caller) DH = machine number Return: CF clear if successful AH = terminal driver number AL = baud rate (00h = 38400, 01h = 19200, etc) CL = parity (00h none, 01h even, 02h odd) CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC) CF set if invalid user number SeeAlso: AH=3Bh --------N-7F3B------------------------------- INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS AH = 3Bh AL = baud rate (00h = 38400, 01h = 19200, etc) CL = parity (00h none, 01h even, 02h odd) CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC) DL = user number (FFh = caller) DH = machine number for user Return: CF set if invalid user number Notes: only available to supervisors the new parameters will take effect immediately if the user's terminal has not been started, else AH=3Dh must be called to post the changes SeeAlso: AH=3Ah,AH=3Dh --------N-7F3C------------------------------- INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT AH = 3Ch AL = new state (00h disabled, 01h enabled) DL = user number (FFh = caller) DH = machine number for user Return: CF set if invalid user number Note: only available to supervisors SeeAlso: AH=3Dh --------N-7F3D------------------------------- INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES AH = 3Dh Note: should be called whenever a program changes the terminal type or its parameters SeeAlso: AH=3Bh --------N-7F41------------------------------- INT 7F - Alloy NTNX - LOCK FILE FOR USER AH = 41h AL = user ID DS:DX -> ASCIZ filename Return: AL = status (see #2369) Note: requests exclusive read/write access to file SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX" (Table 2369) Values for Alloy function status: 00h successful 01h invalid function 02h already locked 03h unable to lock 04h lock table full or semaphore space exhausted --------N-7F41------------------------------- INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER AH = 41h AL = user ID DS:DX -> ASCIZ semaphore name Return: AL = status (see #2369) SeeAlso: AH=00h,AH=42h"MW386" --------s-7F4150BHC1------------------------- INT 7F U - Voyetra - AAPISG - API AX = 4150h ('AP') BH = C1h BL = function (00h-13h) 00h initialize (fails except first time called) ??? Return: AX = status??? 0000h successful 0001h failed Program: AAPISG is a driver by Voyetra for the Aztech Sound Galaxy sound board BUG: the function range check uses JL instead of JB, so it will cause a crash if BL >= 80h on entry SeeAlso: AX=4331h,AX=564Dh,AX=5658h --------N-7F42------------------------------- INT 7F - Alloy NTNX - UNLOCK FILE FOR USER AH = 42h AL = user ID DS:DX -> ASCIZ filename Return: AL = status (see #2369) SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386" --------N-7F42------------------------------- INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER AH = 42h AL = user ID DS:DX -> ASCIZ semaphore name Return: AL = status 00h successful 01h invalid function 03h unable to unlock semaphore SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX" ----------7F4321----------------------------- INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK AX = 4321h Return: AX = 0000h if installed Note: INT 7F is the default, but may be overridden SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h --------s-7F4331BHC1------------------------- INT 7F U - Voyetra - VAPISG - API AX = 4331h ('C1') BH = C1h BL = function (00h-7Ah) ??? Return: ??? Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy sound board SeeAlso: AX=4150h,AX=564Dh,AX=5658h --------N-7F4E------------------------------- INT 7F - Alloy MW386 v2+ - SET ERROR MODE AH = 4Eh AL = error mode flags bit 0: display critical disk errors bit 1: display sharing errors DX = 4E58h ("NX") Return: AL = status 00h successful SeeAlso: AH=4Fh --------N-7F4F------------------------------- INT 7F - Alloy MW386 v2+ - SET FCB MODE AH = 4Fh AL = FCB mode 02h read/write compatibility 42h read/write shared DX = 4E58h ("NX") Return: AL = status 00h successful --------V-7F5555----------------------------- INT 7F - TIGA Communications Driver v2.05 - ??? AX = 5555h BX = ??? Return: ??? SeeAlso: AX=4321h --------s-7F564DBHC1------------------------- INT 7F U - Voyetra Multimedia Player - VMP.EXE API AX = 564Dh ('VM') BH = C1h BL = function (00h-1Bh) 00h ??? Return: CF clear AX = 0000h ??? Return: AX = FFFFh if invalid function ??? SeeAlso: AX=4331h,AX=5658h --------s-7F5658BHC1------------------------- INT 7F U - Voyetra - VAPISG - API AX = 5658h ('VX') BH = C1h BL = function (00h-1Bh) ??? Return: ??? Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy sound board SeeAlso: AX=4331h,AX=564Dh --------N-7F81------------------------------- INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER AH = 81h AL = user ID DS:DX -> ASCIZ device name SeeAlso: AH=82h --------N-7F82------------------------------- INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER AH = 82h AL = user ID DS:DX -> ASCIZ device name SeeAlso: AH=81h --------N-7FA0------------------------------- INT 7F - Alloy MW386 - GET USER NAME AH = A0h DL = user number (FFh = caller) DH = machine number for user ES:DI -> 17-byte buffer for ASCIZ user name Return: CF set if invalid user number SeeAlso: AH=03h,AH=A1h --------N-7FA1------------------------------- INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER AH = A1h Return: AL = process number DL = user number DH = machine number SeeAlso: AH=03h,AH=A0h,AH=A2h --------N-7FA2------------------------------- INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL AH = A2h DL = user number (FFh = caller) DH = machine number for user Return: CF clear if successful AL = privilege level 00h supervisor 01h high 02h medium 03h low CF set if invalid user number SeeAlso: AH=A1h,AH=A3h --------N-7FA3------------------------------- INT 7F - Alloy MW386 - GET USER LOGIN STATE AH = A3h DL = user number DH = machine number for user Return: CF clear if successful AL = login state 00h never logged in 01h currently logged out 03h currently logged in CF set if invalid user number or user not active SeeAlso: AH=A2h --------N-7FA4------------------------------- INT 7F - Alloy MW386 - VERIFY USER PASSWORD AH = A4h DS:DX -> ASCIZ password (null-padded to 16 bytes) Return: AL = status 00h accepted else invalid password --------N-7FA500----------------------------- INT 7F - Alloy MW386 - GET USER STATUS AX = A500h DI = machine number and user number Return: CF clear if successful BX = user flags bit 5: allow messages CL = scan code for task manager hotkey CH = scan code for spooler hotkey DL = scan code for task swapper hotkey DH = modifier key status CF set if invalid user number SeeAlso: AX=A501h Index: hotkeys;Alloy MW386 --------N-7FA501----------------------------- INT 7F - Alloy MW386 - SET USER STATUS AX = A501h BX = user flags (see AX=A500h) CL = scan code for task manager hotkey CH = scan code for spooler hotkey DL = scan code for task swapper hotkey DH = modifier key status DI = machine number and user number Return: CF set if invalid user number Note: must have supervisor privilege to set another user's status SeeAlso: AX=A500h Index: hotkeys;Alloy MW386 --------V-7FABCDBX0000----------------------- INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY AX = ABCDh BX = 0000h Return: AX = total number of functions available ES:BX -> entry point array (see #2370) SeeAlso: AX=0104h,AX=0105h (Table 2370) Values for 8516 Touch Screen function number: 00h check initialization and reset (see #2371) 14h set user-defined subroutine (see #2372) Notes: each driver function takes two stack parameters using Pascal calling conventions: address of parameter block and address of results buffer all pointers are FAR pointers on return, AX contains the status of the call: AX = 0000h successful 0001h invalid input 0002h interface error 0003h unable to perform function Format of 8516 Touch Screen Function 00h parameter block: Offset Size Description (Table 2371) 00h WORD 0000h (function number) Note: this function should be called before any other device driver functions Format of 8516 Touch Screen Function 00h results buffer: Offset Size Description (Table 2372) 00h WORD touch screen status 0000h unavailable 0001h uncalibrated FFFFh available 02h WORD aux mouse status (0000h not present, FFFFh present) Notes: the following driver parameters will have been reset to zero: touchdown counter, liftoff counter, position at last touch, position at last lift, int call mask, select on count, select off count, pos select on count, pos select off count. the following driver parameters will have been reset as listed: mouse emulation mode: left on thresholds: 46 on screen, 96 push harder, 80 push release x, y hysteresis: 400 data repeat rate: 40/sec select mechanism: push-harder - first-touch coordinate origin: upper left corner filter frequency: medium data block mask: all enabled click lock: on --------N-7FB0------------------------------- INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER AH = B0h AL = user number DS = code segment Note: MW386 ignores AL and DS; it releases all semaphores locked using INT 67 or INT 7F locking functions SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h --------N-7FB1--SF00------------------------- INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER AH = B1h subfn 00h AL = (bits 7-5) 000 (bits 4-0) user ID Note: MW386 ignores AL; it releases all semaphores locked using INT 67 or INT 7F locking functions SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h --------N-7FB2--SF01------------------------- INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER AH = B2h subfn 01h AL = (bits 7-5) 001 (bits 4-0) user ID SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h --------N-7FB3--SF02------------------------- INT 7F - Alloy NTNX - RELEASE FILES FOR USER AH = B3h subfn 02h AL = (bits 7-5) 010 (bits 4-0) user ID SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h --------N-7FB4------------------------------- INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER AH = B4h AL = user ID SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h --------N-7FC3------------------------------- INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT AH = C3h AL = byte to write Return: CF clear if successful CF set on error SeeAlso: AH=C6h --------N-7FC5------------------------------- INT 7F - Alloy MW386 - CHANGE CONSOLE MODE AH = C5h AL = new console mode 00h keyboard indirect 01h keyboard direct 02h data handshake enforced 03h no data handshake Return: CF clear if successful AL = prior console mode CF set on error (caller is not remote user) Note: modes 2 and 3 may be used for input through the console port; no video output should be performed in these modes --------N-7FC6------------------------------- INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT AH = C6h AL = byte to write Return: CF clear if successful CF set on error (caller is not remote user) Note: any terminal driver data translation will be bypassed SeeAlso: AH=C3h,AH=C7h --------N-7FC7------------------------------- INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE AH = C7h Return: CF clear if successful AL = byte read CF set on error (no data available or caller is not remote user) Note: used to read data after placing console in mode 2 or 3 (see AH=C5h) SeeAlso: AH=C5h,AH=C6h,AH=C8h --------N-7FC8------------------------------- INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER AH = C8h AL = maximum bytes to read ES:DI -> buffer for console data Return: CF clear if successful CX = number of bytes read CF set on error (caller is not remote user) SeeAlso: AH=C7h --------N-7FCF------------------------------- INT 7F - Alloy NTNX - REBOOT USER PROCESSOR AH = CFh DS:DX -> ASCIZ string containing user number to be reset SeeAlso: AH=D6h --------N-7FD6------------------------------- INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE AH = D6h DS:DX -> reset packet (see #2373) Return: never if successful Note: all users will be shut down immediately if successful SeeAlso: AH=CFh Format of Alloy MW386 reset packet: Offset Size Description (Table 2373) 00h DWORD reset code (60606060h) 04h 16 BYTEs ASCIZ supervisor password padded with nulls --------N-7FD7------------------------------- INT 7F - Alloy MW386 - POST EVENT AH = D7h AL = user number (if local event) DX = event number --------N-7FD8------------------------------- INT 7F - Alloy MW386 - FLUSH DISK BUFFERS AH = D8h Return: CF set on error Note: forces all disk buffers to be written out immediately SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h --------N-7FDB------------------------------- INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE AH = DBh Return: AL = drive from which MW386 was started (2=C:,3=D:,etc) --------N-7FE0------------------------------- INT 7F - Alloy MW386 - CREATE DOS TASK AH = E0h AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K) DS:DX -> ASCIZ task name (max 16 bytes) Return: CF clear if successful AL = task create ID CF set on error Note: only foreground DOS tasks can use this function SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h --------N-7FE1------------------------------- INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID AH = E1h AL = create ID (from AH=E0h) Return: AL = DOS process number CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K) Note: this function should not be called immediately after creating a new DOS task, since the new task is being initialized by a concurrent process SeeAlso: AH=E0h,AH=E2h --------N-7FE2------------------------------- INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK AH = E2h AL = DOS process number (from AH=E1h) Return: CF set on error (invalid process number or caller not foreground task) Notes: specified task becomes the foreground task and current task is placed in the background may only be called by a foreground task SeeAlso: AH=E0h,AH=E1h --------N-7FE3------------------------------- INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK AH = E3h DS:DX -> ASCIZ task name ---v1.x--- AL = user number ---v2+--- BH = user number BL = task number Return: CF clear if successful CF set on error (invalid process number) SeeAlso: AH=E0h,AH=E4h,AH=E5h --------N-7FE4------------------------------- INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER AH = E4h ES:DI -> buffer for task name ---v1.x--- AL = user number ---v2+--- BH = user number BL = task number Return: CF clear if successful CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K) DX = task flags bit 7: MS-DOS process ES:DI buffer filled CF set on error (invalid process number) SeeAlso: AH=E3h,AH=E5h --------N-7FE5------------------------------- INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME AH = E5h DS:DX -> ASCIZ task name BH = user number Return: CF clear if successful AL = DOS process number CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K) CF set on error (no match for name) SeeAlso: AH=E3h,AH=E4h --------N-7FE6------------------------------- INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS AH = E6h Return: AX = number of processes available to current user SeeAlso: AH=E0h --------N-7FE7------------------------------- INT 7F - Alloy MW386 - REMOVE DOS TASK AH = E7h AL = DOS process number Return: CF clear if successful CF set on error (invalid process number or first process) Note: can only be called by a foreground task SeeAlso: AH=E0h --------N-7FE8------------------------------- INT 7F - Alloy MW386 - DOS TASK DELAY AH = E8h CX = delay time in milliseconds Note: a delay of 0 may be used to surrender the current time slice SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS" SeeAlso: INT 2F/AX=1680h --------N-7FF0------------------------------- INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP AH = F0h AL = group number DS:DX -> ASCIZ directory name Return: CF clear if successful AX = status 0002h directory not found 0003h directory not found 0005h directory in use, cannot be restricted 02xxh restricted to group xxh CF set on error Note: the restriction on the directory may be removed by calling this function with group 0, then using AH=F1h to assign the directory to group 0 SeeAlso: AH=F1h,AH=F2h,AH=F3h --------N-7FF1------------------------------- INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP AH = F1h AL = group number DS:DX -> ASCIZ directory name Notes: performs permanent assignment to a group; no immediate action is taken unless the directory has been restricted with AH=F0h may be used to restrict a nonexistent directory SeeAlso: AH=F0h --------N-7FF2------------------------------- INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY AH = F2h CX = entry number ES:DI -> 64-byte buffer Return: CF clear if successful buffer filled with 63-byte directory info and 1-byte group number CF set on error (invalid entry) SeeAlso: AH=F0h,AH=F3h --------N-7FF3------------------------------- INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP AH = F3h AL = group number CX = entry number ES:DI -> 64-byte buffer Return: CF clear if successful CX = next entry number buffer filled with 63-byte directory info and 1-byte group number CF set on error (no more matching entries) Note: like AH=F2h, but only returns directories belonging to the specified group SeeAlso: AH=F2h --------N-7FF8------------------------------- INT 7F - Alloy MW386 - ASSIGN USER TO GROUP AH = F8h AL = group number DL = user number DH = machine number (currently 00h) Return: CF clear if successful CF set on error (user already in maximum number of groups) Note: each user is allowed eight group assignments SeeAlso: AH=F9h,AH=FAh --------N-7FF9------------------------------- INT 7F - Alloy MW386 - REMOVE USER FROM GROUP AH = F9h AL = group number DL = user number DH = machine number (currently 00h) Return: CF clear if successful CF set if failed SeeAlso: AH=F8h,AH=FAh --------N-7FFA------------------------------- INT 7F - Alloy MW386 - GET USER GROUP LIST AH = FAh DL = user number DH = machine number (currently 00h) ES:DI -> 16-byte buffer for group list Return: CX = number of groups ES:DI buffer filled with group numbers SeeAlso: AH=F8h,AH=F9h --------N-7FFB------------------------------- INT 7F - Alloy MW386 - ASSIGN GROUP NAME AH = FBh CL = group number ES:DI -> ASCIZ group name (max 17 bytes) SeeAlso: AH=FCh --------N-7FFC------------------------------- INT 7F - Alloy MW386 - GET GROUP NAME AH = FCh CL = group number ES:DI -> 17-byte buffer for ASCIZ name Return: ES:DI buffer filled Note: if the group has not been named, "(unnamed)" is returned SeeAlso: AH=FBh ----------80--------------------------------- INT 80 - Q-PRO4 - ??? --------r-80--------------------------------- INT 80 - reserved for BASIC Note: this vector and INT 81 through INT ED are modified but not restored by Direct Access v4.0, and may be left dangling by other programs written with the same version of compiled BASIC SeeAlso: INT 81"BASIC",INT 86"BASIC",INT EF"BASIC" --------s-80----BL00------------------------- INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER BL = 00h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: AX = initialization result (see #2374) Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module, which provides access to multiple drivers for the SoundBlaster board through a single interface Range: INT 80h to INT BFh, selected automatically Note: the SBSIM installation check consists of testing for the signature "SBSIM" at offset 103h in the interrupt handler's segment. SeeAlso: INT 80/BL=01h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=03h"SBSIM" SeeAlso: INT 80/BX=0000h"SBSIM" (Table 2374) Values for SBSIM error code: 01h busy--currently in use 02h bad driver specified 03h invalid function 04h voice process already active 05h couldn't start CT-VOICE 06h couldn't start CTVDSK 07h invalid SBSIM handle 08h buffer not initialized yet 09h bad filename 0Ah bad file handle 0Bh driver not started yet 0Ch XMS driver not installed 0Dh no free SBSIM handles 0Eh bad file type 0Fh couldn't free XMS block 10h invalid source selected 11h get pan position failed 12h set pan position failed 13h set volume failed 14h couldn't start fade/pan 15h couldn't stop fade/pan 16h couldn't pause fade/pan 17h not a fade/pan operation 18h bad mode for fade/pan 19h couldn't start fade/pan 1Ah source not fading/panning 1Bh FM or MIDI already playing 1Ch bad MIDI mapper format --------s-80----BL01------------------------- INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER BL = 01h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: AX = result (see #2374) SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM" --------s-80----BL02------------------------- INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER BL = 02h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: nothing SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM" --------s-80----BL03------------------------- INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER BL = 03h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: nothing SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM" SeeAlso: INT 80/BL=05h --------s-80----BL04------------------------- INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER BL = 04h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: nothing SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=03h"SBSIM",INT 80/BL=05h"SBSIM" --------s-80----BL05------------------------- INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS BL = 05h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: AX = status SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM" --------s-80----BX0000----------------------- INT 80 - SoundBlaster SBFM driver - GET VERSION BX = 0000h Return: ??? Note: SBFM installs at a free interrupt in the range 80h through BFh SeeAlso: BX=0008h"SBFM",INT 2F/AX=FBFBh --------s-80----BX0000----------------------- INT 80 - SBSIM - "QUERYVERSION" - GET VERSION BX = 0000h Return: AX = version (AH = major, AL = minor) Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module, which provides access to multiple drivers for the SoundBlaster board through a single interface Range: INT 80h to INT BFh, selected automatically Note: the SBSIM installation check consists of testing for the signature "SBSIM" at offset 103h in the interrupt handler's segment. SeeAlso: BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM" Index: installation check;SBSIM|installation check;SoundBlaster --------s-80----BX0001----------------------- INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS BX = 0001h DX:AX -> music status byte SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0003h"SBFM" --------s-80----BX0001----------------------- INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED BX = 0001h Return: AX = bit flags for loaded drivers (see #2375) SeeAlso: BX=0000h"SBSIM",BX=0002h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM" Bitfields for SBSIM loaded drivers: Bit(s) Description (Table 2375) 0 FM 1 double disk-buffered voice driver (DDBV) 2 memory voice driver 3 auxiliary driver (mixer) 4 MIDI --------s-80----BX0002----------------------- INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE BX = 0002h CX = number of instruments DX:AX -> instrument table SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0005h"SBFM" --------s-80----BX0002----------------------- INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT BX = 0002h AX = driver (00h = FM,01h = DDBV,02h = memvoice,03h = mixer,04h = MIDI) Return: CF clear if successful DX:AX -> entry point CF set on error SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM" --------s-80----BX0003----------------------- INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE BX = 0003h AX = clock rate divisor (1193180 / desired frequency in Hertz) FFFFh to restore to 18.2 Hz SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0004h"SBFM" --------s-80----BX0004----------------------- INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE BX = 0004h AX = driver clock rate divisor (1193180 / frequency in Hertz) Note: default frequency is 96 Hz SeeAlso: BX=0000h"SBFM",BX=0003h"SBFM" --------s-80----BX0005----------------------- INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC BX = 0005h AX = semi-tone offset SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0006h"SBFM" --------s-80----BX0005----------------------- INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS BX = 0005h AX = driver (00h = FM, 01h = DDB Voice, 04h = MIDI) Return: CF clear if successful DX:AX -> buffer CX = buffer size in K CF set on error Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module, which provides access to multiple drivers for the SoundBlaster board through a single interface Range: INT 80h to INT BFh, selected automatically Note: the SBSIM installation check consists of testing for the signature "SBSIM" at offset 103h in the interrupt handler's segment. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0002h"SBSIM",INT 80/BL=00h"SBSIM" --------s-80----BX0006----------------------- INT 80 - SoundBlaster SBFM driver - PLAY MUSIC BX = 0006h DX:AX -> music block Return: AX = status 0000h successful 0001h music already active SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF04h --------s-80----BX0007----------------------- INT 80 - SoundBlaster SBFM driver - STOP MUSIC BX = 0007h Return: AX = status 0000h successful 0001h music not active SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM",INT 1A/AX=FF05h --------s-80----BX0008----------------------- INT 80 - SoundBlaster SBFM driver - RESET DRIVER BX = 0008h Return: AX = status 0000h successful 0001h music is active SeeAlso: BX=0000h"SBFM" --------s-80----BX0009----------------------- INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC BX = 0009h Return: AX = status 0000h successful 0001h no music active SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF01h --------s-80----BX000A----------------------- INT 80 - SoundBlaster SBFM driver - RESUME MUSIC BX = 000Ah Return: AX = status 0000h successful 0001h no music paused SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM" --------s-80----BX000B----------------------- INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS BX = 000Bh DX:AX -> trap routine SeeAlso: BX=0000h"SBFM" --------s-80----BX0400----------------------- INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME BX = 0400h AX = sound source (see #2376) Return: CF clear if successful AX = volume CF set on error AX = error code (see INT 80/BL=00h) SeeAlso: BX=0401h"SBSIM" (Table 2376) Values for SBSIM sound source: 00h master volume 01h voice 02h FM 03h CD 04h line in 05h microphone --------s-80----BX0401----------------------- INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME BX = 0401h AX = sound source (see INT 80/BX=0400h) DX = new volume Return: AX = result (0000h = success) (see also INT 80/BL=00h) SeeAlso: BX=0400h"SBSIM" --------N-8001------------------------------- INT 80 - QPC Software PKTINT.COM - INITIALIZE AH = 01h Return: AX = 0000h CX = FFFFh DX = FFFFh Notes: this interrupt is the WinQVTNet protected mode interface to Windows 3.0 all buffer pointers are reset back to 0 --------N-8002------------------------------- INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES AH = 02h BX = extra bytes to allocate per packet Return: AX = segment address of 10K buffer (for receives???) BX = segment address of 2K buffer (for sends???) SeeAlso: AH=05h --------N-8003------------------------------- INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT AH = 03h Return: CX:DX -> receive call address Note: the returned address can be used in the packet driver calls since it will be a valid address in all DOS boxes SeeAlso: AH=06h --------N-8004------------------------------- INT 80 - QPC Software PKTINT.COM - ENABLE??? AH = 04h BX = ??? Return: ??? SeeAlso: AH=01h --------N-8005------------------------------- INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS AH = 05h Return: AX = amount of buffer currently in use BX = current offset in buffer CX = number of times receive has been called SeeAlso: AH=02h --------N-8006------------------------------- INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET AH = 06h Return: BX = next packet offset CX = number of bytes still buffered DX = size of packet released back into buffer pool SeeAlso: AH=03h --------r-81--------------------------------- INT 81 - reserved for BASIC Note: this vector is modified but not restored by Direct Access v4.0, and may be left dangling by other programs written with the same version of compiled BASIC SeeAlso: INT 80"BASIC",INT 82"BASIC" --------N-81--------------------------------- INT 81 - IBM TOKEN RING ADAPTER - ??? SeeAlso: INT 82"TOKEN RING",INT 91"TOKEN RING" --------r-82--------------------------------- INT 82 - reserved for BASIC SeeAlso: INT 81"BASIC",INT 83"BASIC" --------N-82--------------------------------- INT 82 - IBM TOKEN RING ADAPTER - ??? AH = function 00h display message??? DS:BX -> string ??? Return: ??? SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING" --------r-83--------------------------------- INT 83 - reserved for BASIC SeeAlso: INT 82"BASIC",INT 84"BASIC" --------r-84--------------------------------- INT 84 - reserved for BASIC SeeAlso: INT 83"BASIC",INT 85"BASIC" --------r-85--------------------------------- INT 85 - reserved for BASIC Note: INT 80 through INT ED are modified but not restored by Direct Access v4.0, and may be left dangling by other programs written with the same version of compiled BASIC SeeAlso: INT 84"BASIC",INT 86"BASIC" --------N-86--------------------------------- INT 86 - NetBIOS - ORIGINAL INT 18 Note: some implementations of NetBIOS reportedly relocate INT 18 here SeeAlso: INT 18 --------r-86--------------------------------- INT 86 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 85"BASIC",INT 87"BASIC" --------r-86--------------------------------- INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS SeeAlso: INT 21/AH=4Ch,INT 87"APL" --------r-87--------------------------------- INT 87 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 86"BASIC",INT 88"BASIC" --------r-87--------------------------------- INT 87 - APL*PLUS/PC - ??? SeeAlso: INT 86"APL",INT 88/AL=00h --------v-87--------------------------------- INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!) Note: the ZeroHunt virus copies its resident code down to 0000h:021Ch and following SeeAlso: INT 8B"VIRUS" --------r-88--------------------------------- INT 88 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 87"BASIC",INT 89"BASIC" --------r-88--00----------------------------- INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE AL = 00h BX = STPTR of the variable to be assigned ES:SI -> model of type, rank, and shape (see #2377) Return: ES:DI -> first data byte of object DX:CX = number of elements in the object SeeAlso: INT C8"APL" Format of APL*PLUS/PC shape model: Offset Size Description (Table 2377) 00h BYTE type 01h character (2-byte dimension sizes) 02h integer (2-byte dimension sizes) 08h floating point (2-byte dimension sizes) 11h character (4-byte dimension sizes) 12h integer (4-byte dimension sizes) 18h floating point (4-byte dimension sizes) 01h BYTE rank 02h (D)WORD first dimension of shape N (D)WORD second dimension of shape ... --------r-88--01----------------------------- INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE AL = 01h AH = rank BX = STPTR of the variable to be assigned CX = first dimension (if any) DX = second dimension (if any) Return: ES:DI -> object CX = number of elements in the object Note: each dimension must be 32767 or smaller SeeAlso: AL=02h,AL=08h,INT C8"APL" --------r-88--02----------------------------- INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE AL = 02h AH = rank BX = STPTR of the variable to be assigned CX = first dimension (if any) DX = second dimension (if any) Return: ES:DI -> object CX = number of elements in the object Note: each dimension must be 32767 or smaller SeeAlso: AL=01h,AL=08h,INT C8"APL" --------r-88--08----------------------------- INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE AL = 08h AH = rank BX = STPTR of the variable to be assigned CX = first dimension (if any) DX = second dimension (if any) Return: ES:DI -> object CX = number of elements in the object Note: each dimension must be 32767 or smaller SeeAlso: AL=01h,AL=02h,INT C8"APL" --------r-88--F5----------------------------- INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL AL = F5h BX = STPTR of object SeeAlso: INT C8"APL" --------r-88--F6----------------------------- INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING AL = F6h BX = STPTR of object SeeAlso: AL=F7h,AL=F8h,INT C8"APL" --------r-88--F7----------------------------- INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING AL = F7h BX = STPTR of object SeeAlso: AL=F6h,AL=F8h,INT C8"APL" --------r-88--F8----------------------------- INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING AL = F8h BX = STPTR of object Return: BX = name's outswapping status 0000h eligible 0001h not eligible SeeAlso: AL=F6h,AL=F7h,INT C8"APL" --------r-88--F9----------------------------- INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS AL = F9h ES:SI -> name CX = length of name Return: CF set if name ill-formed or already in use BX = STPTR if already in symbol table CF clear if name is available for use BX = 0000h Note: does not force the name into the workspace SeeAlso: AL=FEh,AL=FFh,INT C8"APL" --------r-88--FC----------------------------- INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION AL = FCh BX = amount of memory needed (paragraphs) Return: CF clear if memory available CF set if a workspace compaction is required SeeAlso: AL=FDh,INT C8"APL" --------r-88--FD----------------------------- INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY AL = FDh Return: BX = number of paragraphs available in workspace SeeAlso: AL=FCh,INT C8"APL" --------r-88--FE----------------------------- INT 88 - APL*PLUS/PC - CREATE NAME AL = FEh ES:SI -> name CX = length of name Return: BX = STPTR of name DX = interpreter's data segment SeeAlso: AL=F9h,AL=FFh,INT C8"APL" --------r-88--FF----------------------------- INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS AL = FFh ES:SI -> name CX = length of name Return: CF set if name ill-formed or already in use BX = STPTR if already in symbol table CF clear if name is available for use BX = 0000h Note: forces the name into the workspace and makes it immune from outswapping SeeAlso: AL=F9h,AL=FEh,INT C8"APL" --------r-89--------------------------------- INT 89 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 88"BASIC",INT 8A"BASIC" --------r-8A--------------------------------- INT 8A - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 89"BASIC",INT 8B"BASIC" --------r-8A--------------------------------- INT 8A - APL*PLUS/PC - PRINT SCREEN Note: same as INT 05 SeeAlso: INT 05,INT 8C"APL",INT CA"APL" --------r-8B--------------------------------- INT 8B - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 8A"BASIC",INT 8C"BASIC" --------r-8B--------------------------------- INT 8B - APL*PLUS/PC - BEEP Note: same as printing a ^G via INT 21/AH=02h SeeAlso: INT 21/AH=02h,INT CB"APL" --------v-8B--------------------------------- INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!) Note: if the ZeroHunt virus is resident, this vector will contain either EE83h:019Bh (ZH-411) or EE83h:019Fh (ZH-415) SeeAlso: INT 70"VIRUS",INT 87"VIRUS",INT 9C"VIRUS" --------r-8C--------------------------------- INT 8C - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-8C--------------------------------- INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY AX = flag 0000h do not save display attributes 0001h save attributes SeeAlso: INT CC"APL" --------r-8D--------------------------------- INT 8D - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-8E--------------------------------- INT 8E - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-8F--------------------------------- INT 8F - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-90--------------------------------- INT 90 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-90--------------------------------- INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER --------r-91--------------------------------- INT 91 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------N-91--------------------------------- INT 91 - IBM TOKEN RING ADAPTER - ??? SeeAlso: INT 81"TOKEN RING",INT 82"TOKEN RING",INT 93"TOKEN RING" --------r-92--------------------------------- INT 92 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------N-92--------------------------------- INT 92 - Sangoma X.25 INTERFACE PROGRAM BX:DX -> control block SeeAlso: INT 68"Sangoma" --------e-92E1------------------------------- INT 92 - Da Vinci eMail Dispatcher INTERFACE AH = E1h AL = function BX = stack count (number of words to push) CX:DX -> stack data (in word-reversed order ready to push) Return: AX = status (see #2378) Note: preserves BP, DS, SI, DI; other registers may be destroyed (Table 2378) Values for Da Vinci eMail function status: 0001h success FF97h "ERS_NOT_AVAILABLE" FF99h "ERS_TOO_MANY_NAMES" FF9Ah "ERS_BAD_NAME_PASSWORD" FFE3h "ERS_NAME_NOT_FOUND" FFF8h "ERS_USE_STRING" (call NetGetError to get error string) FFFFh "ERS_NO_SUCH_FILE" --------e-92E100----------------------------- INT 92 - Da Vinci eMail Dispatcher - "NetInitStart" AX = E100h BX = size of parameter block in words (000Ah) CX:DX -> parameter block (see #2379) Return: AX = 0001h success Desc: this function is used to initialize the dispatcher SeeAlso: AX=E101h,AX=E103h Format of Da Vinci eMail "NetInitStart" parameter block: Offset Size Description (Table 2379) 00h WORD segment of ??? 02h WORD offset of ??? 04h WORD high part of long ??? 06h WORD low part of long ??? 08h WORD high part of long ??? 0Ah WORD low part of long ??? 0Ch WORD high part of long ??? 0Eh WORD low part of long ??? 10h WORD high part of long ??? 12h WORD low part of long ??? --------e-92E101BX0000----------------------- INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck" AX = E101h BX = 0000h CX:DX ignored Return: AX = 0001h success SeeAlso: AX=E100h,AX=E180h --------e-92E102BX0000----------------------- INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver" AX = E102h BX = 0000h CX:DX ignored Return: AX = 0001h success Desc: this function is used to determine if the dispatcher is loaded SeeAlso: AX=E10Bh,AX=E180h --------e-92E103BX0000----------------------- INT 92 - Da Vinci eMail Dispatcher - "NetTerminate" AX = E103h BX = 0000h CX:DX ignored Return: AX = status (see #2378) SeeAlso: AX=E100h --------e-92E104----------------------------- INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs" AX = E104h BX = size of parameter block in words (0006h) CX:DX -> parameter block (see #2380) Return: AX = status (see #2378) Desc: this function is used to verify node address for usernames SeeAlso: AX=E180h Format of Da Vinci eMail "NetWhereIs" parameter block: Offset Size Description (Table 2380) 00h WORD segment of node address buffer 02h WORD offset of node address buffer 04h WORD segment of uppercase username 06h WORD offset of uppercase username 08h WORD segment of "DVSEMAIL" 0Ah WORD offset of "DVSEMAIL" --------e-92E105----------------------------- INT 92 - Da Vinci eMail Dispatcher - "NetOpen" AX = E105h BX = size of parameter block in words (0007h) CX:DX -> parameter block (see #2381) Return: AX = 0000h Error AX = handle Desc: this function is used to open a submission channel SeeAlso: AX=E10Ah,AX=E106h,AX=E108h Format of Da Vinci eMail "NetOpen" parameter block: Offset Size Description (Table 2381) 00h WORD operation (1 = read, 2 = write) 02h WORD segment of uppercase To: username 04h WORD offset of uppercase To: username 06h WORD segment of "DVSEMAIL" 08h WORD offset of "DVSEMAIL" 0Ah WORD segment of node address 0Ch WORD offset of node address --------e-92E106BX0004----------------------- INT 92 - Da Vinci eMail Dispatcher - "NetRead" AX = E106h BX = 0004h CX:DX -> parameter block Return: AX = 0001h SeeAlso: AX=E108h --------e-92E107BX0002----------------------- INT 92 - Da Vinci eMail Dispatcher - "NetGetError" AX = E107h BX = 0002h CX:DX -> parameter block Return: AX = 0001h SeeAlso: AX=E109h,AX=E180h --------e-92E108----------------------------- INT 92 - Da Vinci eMail Dispatcher - "NetWrite" AX = E108h BX = size of parameter block in words (0004h) CX:DX -> parameter block (see #2382) Return: AX = amount written Desc: This function is used to write transactions to the dispatcher. The command block is written first and then another call is used to write the associated data. SeeAlso: AX=E106h Format of Da Vinci eMail "NetWrite" parameter block: Offset Size Description (Table 2382) 00h WORD buffer count (see #2384) 02h WORD segment of command buffer (see #2383) 04h WORD offset of command buffer 06h WORD handle from NetOpen Format of Da Vinci eMail command buffer: Offset Size Description (Table 2383) 00h BYTE command 21h '!' Protocol commands for remote control 41h 'A' Authorization protocol element 42h 'B' Return(back) routing information Associated data is the From: username 43h 'C' Carbon Copy list Associated data is a comma delimitted list of usernames 44h 'D' Distribution list Associated data is a comma delimitted list of usernames 45h 'E' Mail end marker No associated data 48h 'H' Mail message header Associated data is a message header buffer 4Dh 'M' Mail message Associated data is the body of the message 4Fh 'O' Object 50h 'P' Paperclip attachment 52h 'R' Routing information Associated data is the To: username 53h 'S' Subject Associated data is the subject of the message 54h 'T' Trail of Reply/Forwards 01h BYTE subcommand 02h DWORD length of associated data Format of Da Vinci eMail message header buffer: Offset Size Description (Table 2384) 00h 30 BYTEs subject line 1Eh 24 BYTEs To 36h 24 BYTEs From 4Eh DWORD Time BYTE 00h BYTE hour BYTE minute BYTE second 52h DWORD Date BYTE 00h BYTE year BYTE month BYTE day 56h DWORD serial number (00000000h) 5Ah WORD mail types (see #2385) 5Ch WORD special types (0) Bitfields for Da Vinci eMail mail types: Bit(s) Description (Table 2385) 7 blind carbon copy 6 carbon copy 5 priority 4 confidential 3 certified 2 bulk 1-0 class (first, second, third, bulk) --------e-92E109----------------------------- INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED) AX = E109h BX = size of parameter block in words (0001h) CX:DX -> parameter block (see #2386) Return: AX = FF97h (ERS_NOT_AVAILABLE) SeeAlso: AX=E107h,AX=E180h Format of Da Vinci eMail "NetErrorFix" parameter block: Offset Size Description (Table 2386) 00h WORD ??? --------e-92E10A----------------------------- INT 92 - Da Vinci eMail Dispatcher - "NetClose" AX = E10Ah BX = size of parameter block in words (0001h) CX:DX -> parameter block (see #2387) Return: AX = 0001h Desc: this function is used to close a dispatcher handle SeeAlso: AX=E105h Format of Da Vinci eMail "NetClose" parameter block: Offset Size Description (Table 2387) 00h WORD handle from NetOpen --------e-92E10B----------------------------- INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue" AX = E10Bh BX = size of parameter block in words (0004h) CX:DX -> parameter block (see #2388) Return: AX = 0001h SeeAlso: AX=E102h,AX=E10Ch Format of Da Vinci eMail "NetCheckQueue" parameter block: Offset Size Description (Table 2388) 00h WORD segment of 24-byte username buffer 02h WORD offset of 24-byte username buffer 04h WORD segment of 24-byte protocol buffer 06h WORD offset of 24-byte protocol buffer --------e-92E10C----------------------------- INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue" AX = E10Ch BX = size of parameter block in words (0002h) CX:DX -> parameter block (see #2389) Return: AX = 0001h SeeAlso: AX=E10Bh Format of Da Vinci eMail "NetReadQueue" parameter block: Offset Size Description (Table 2389) 00h WORD Segment of 128 byte node address buffer 02h WORD Offset of 128 byte node address buffer --------e-92E10D----------------------------- INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName" AX = E10Dh BX = size of parameter block in words (0006h) CX:DX -> parameter block (see #2390) Return: AX = status (see #2378) Desc: this function is used to verify username/password SeeAlso: AX=E10Eh Format of Da Vinci eMail "NetSubmitName" parameter block: Offset Size Description (Table 2390) 00h WORD segment of uppercase password string 02h WORD offset of uppercase password string 04h WORD segment of uppercase username string 06h WORD offset of uppercase username string 08h WORD segment of "DVSEMAIL" 0Ah WORD offset of "DVSEMAIL" --------e-92E10E----------------------------- INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName" AX = E10Eh BX = size of parameter block in words (0004h) CX:DX -> parameter block (see #2391) Return: AX = 0001h Desc: this function is used to remove a username SeeAlso: AX=E10Dh Format of Da Vinci eMail "NetRemoveName" parameter block: Offset Type Description (Table 2391) 00h WORD segment of uppercase username 02h WORD offset of uppercase username 04h WORD segment of "DVSEMAIL" 06h WORD offset of "DVSEMAIL" --------e-92E10FBX0000----------------------- INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY AX = E10Fh BX = 0000h CX:DX ignored Return: AX = 0001h SeeAlso: AX=E180h --------e-92E110----------------------------- INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute" AX = E110h BX = size of parameter block in words (0006h) CX:DX -> parameter block (see #2392) Return: AX = 0001h SeeAlso: AX=E111h,AX=E113h Format of Da Vinci eMail "NetGetAltRoute" parameter block: Offset Size Description (Table 2392) 00h 6 WORDs ??? --------e-92E111----------------------------- INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes" AX = E111h BX = size of parameter block in words (0004h) CX:DX -> parameter block (see #2393) Return: AX = 0001h SeeAlso: AX=E110h,AX=E113h Format of Da Vinci eMail "NetDeleteAltRoutes" parameter block: Offset Size Description (Table 2393) 00h 4 WORDs ??? --------e-92E112----------------------------- INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword" AX = E112h BX = size of parameter block in words (0008h) CX:DX -> parameter block (see #2394) Return: AX = 0001h SeeAlso: AX=E180h Format of Da Vinci eMail "NetChangePassword" parameter block: Offset Size Description (Table 2394) 00h 8 WORDs ??? --------e-92E113----------------------------- INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute" AX = E113h BX = size of parameter block in words (0008h) CX:DX -> parameter block (see #2395) Return: AX = 0001h SeeAlso: AX=E110h,AX=E111h Format of Da Vinci eMail "NetSetAltRoute" parameter block: Offset Size Description (Table 2395) 00h 8 WORDs ??? --------e-92E175----------------------------- INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR AX = E175h Return: AX = 0012h BX = PSP SeeAlso: AX=E180h --------e-92E180----------------------------- INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK AX = E180h Return: AX = 0012h if installed ES:DX -> '$'-terminated driver information string SeeAlso: AX=E102h,AX=E105h,AX=E10Fh,AX=E175h --------r-93--------------------------------- INT 93 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------N-93--------------------------------- INT 93 - IBM TOKEN RING ADAPTER - ??? SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING" --------r-94--------------------------------- INT 94 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------s-94----SI0000----------------------- INT 94 u - PCM driver - INITIALIZE SOUND SI = 0000h ES:BX -> parameters Return: ??? Program: PCM.COM is a sound driver for Media Vision's Pro Audio Spectrum sound boards Note: the installation check consists of testing for the signature string "PCMDRIVER" immediately preceding the interrupt handler; the word preceding the signature gives the PCM driver's version SeeAlso: SI=0001h,SI=0002h,SI=0003h,SI=0004h,SI=0005h,SI=000Ah Index: installation check;PCM driver|PCM.COM;installation check Index: PCM driver;installation check --------s-94----SI0001----------------------- INT 94 u - PCM driver - INITIALIZE PCM SI = 0001h ES:BX -> parameters Return: ??? SeeAlso: SI=0000h,SI=0002h,SI=0003h,SI=000Ah --------s-94----SI0002----------------------- INT 94 u - PCM driver - INITIALIZE PCM INFO SI = 0002h ES:BX -> parameters (see #2396) Return: ??? SeeAlso: SI=0000h,SI=0001h,SI=0003h,SI=000Ah Format of PCM driver function 0002h parameters: Offset Size Description (Table 2396) 00h DWORD rate 04h WORD channel number 06h WORD "comp" 08h WORD "dsize" --------s-94----SI0003----------------------- INT 94 u - PCM driver - INITIALIZE DMA BUFFER SI = 0003h ES:BX -> parameters (see #2397) Return: ??? SeeAlso: SI=0000h,SI=000Ah,SI=000Bh Format of PCM driver function 0003h parameters: Offset Size Description (Table 2397) 00h DWORD -> DMA buffer 04h WORD size of DMA buffer 06h WORD number of divisions --------s-94----SI0004----------------------- INT 94 u - PCM driver - INITIALIZE USER FUNCTION SI = 0004h ES:BX -> parameters (see #2398) Return: ??? SeeAlso: SI=0000h,SI=0001h Format of PCM driver function 0004h parameters: Offset Size Description (Table 2398) 00h DWORD -> user function --------s-94----SI0005----------------------- INT 94 u - PCM driver - BEGIN AUDIO PLAY SI = 0005h Return: ??? SeeAlso: SI=0000h,SI=0006h,SI=0007h,SI=0009h --------s-94----SI0006----------------------- INT 94 u - PCM driver - BEGIN AUDIO RECORD SI = 0006h Return: ??? SeeAlso: SI=0005h,SI=0007h,SI=0009h --------s-94----SI0007----------------------- INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD SI = 0007h Return: ??? SeeAlso: SI=0005h,SI=0006h,SI=0008h --------s-94----SI0008----------------------- INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD SI = 0008h Return: ??? SeeAlso: SI=0007h --------s-94----SI0009----------------------- INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD SI = 0009h Return: ??? SeeAlso: SI=0005h,SI=0006h,SI=0007h --------s-94----SI000A----------------------- INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA SI = 000Ah Return: ??? SeeAlso: SI=0000h,SI=0001h,SI=0003h Index: uninstall;PCM driver --------s-94----SI000B----------------------- INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK SI = 000Bh ES:BX -> parameters (see #2399) Return: ??? SeeAlso: SI=0003h Format of PCM driver functio 000Bh parameters: Offset Size Description (Table 2399) 00h DWORD -> memory block to contain DMA buffer 04h WORD desired size of DMA buffer --------s-94----SI000D----------------------- INT 94 u - Media Vision PCM.COM - GET STATUS SI = 000Dh Return: AX = status (0000h = waiting) (see #2400) Bitfields for PCM.COM status: Bit(s) Description (Table 2400) 0 playing 1 recording 2 SBplaying 3 SBrecording 14 SBpaused 15 paused --------s-94----SI8000----------------------- INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS SI = 8000h Return: DX:AX -> DMA buffer Program: PCM.COM is a superset of the standard PCM driver which provides additional functions for fine control of the driver Note: the installation check for the Media Vision PCM.COM "shark" functions consists of testing for the signature "PCM-SHARK" at offset 107h in the INT 94 handler's segment SeeAlso: SI=8001h,SI=8004h Index: installation check;Media Vision PCM.COM|PCM.COM;installation check Index: Media Vision PCM.COM;"shark" functions --------s-94----SI8001----------------------- INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS SI = 8001h Return: AX = DMA buffer size DX = divisions SeeAlso: SI=8000h --------s-94----SI8002----------------------- INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS SI = 8002h Return: AX = status 0000h if board not at specified I/O address other if board found Note: the I/O address is specified by ORing the base I/O port shifted left four bits into SI before calling INT 94 SeeAlso: SI=8000h --------s-94----SI8004----------------------- INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER SI = 8004h Return: AX = offset of note buffer (segment = segment of internal DMA buffer) DX = size of buffer in note structures SeeAlso: SI=8000h --------s-94----SI8005----------------------- INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE SI = 8005h Return: ??? --------s-94----SI8011----------------------- INT 94 u - Media Vision PCM.COM - INITIALIZE SI = 8011h ES:BX -> "iobf91" structure Return: ??? --------s-94----SI8012----------------------- INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD SI = 8012h ES:BX -> "i94f92buf" structure Return: ??? SeeAlso: SI=8013h,SI=8014h --------s-94----SI8013----------------------- INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE SI = 8013h Return: AX = number of sounds used DX = maximum handles --------s-94----SI8014----------------------- INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND SI = 8014h ES:BX -> "i94f92buf" structure to be filled in sound number field set to desired sound Return: AX = status 0000h successful FFFFh sound number out of range SeeAlso: SI=8012h,SI=8013h --------s-94----SI8015----------------------- INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER SI = 8015h ES:BX -> DMA info structure (see #2401) Return: ??? Format of PCM.COM DMA info structure: Offset Size Description (Table 2401) 00h DWORD -> DMA buffer (offset FFFFh = return current buffer info) 04h WORD DMA buffer size 06h WORD divisions --------s-94----SI8016----------------------- INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY SI = 8016h AX = hotkey number (01h-08h) Return: ??? SeeAlso: AL=02h/SI=8017h --------s-94--01SI8017----------------------- INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT AL = 01h SI = 8017h AH = new state (00h off, 01h on) Return: ??? SeeAlso: AL=02h/SI=8017h --------s-94--02SI8017----------------------- INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE AL = 02h SI = 8017h AH = new state (00h off, 01h on) Return: ??? --------s-94--04SI8017----------------------- INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE AL = 04h SI = 8017h AH = new state 00h off 01h on CX = minimum delay DX = maximum delay Return: ??? --------s-94--08SI8017----------------------- INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE AL = 08h SI = 8017h AH = new state 00h off 01h on DX:CX = delay Return: ??? SeeAlso: AL=10h/SI=8017h --------s-94--10SI8017----------------------- INT 94 u - Media Vision PCM.COM - TIMER CONTROL AL = 10h SI = 8017h AH bit 7: set timer AH bit 6: timer active (timer turned off if clear) AH bits 5-0: timer number DX:CX = delay if AH bit 7 set (one-shot if DX bit 15 set) Return: ??? SeeAlso: AL=08h/SI=8017h --------s-94----SI8018----------------------- INT 94 u - Media Vision PCM.COM - GET INFO SI = 8018h AL = what to get 00h "F92state" 01h "F92bkgd" 02h "I10timer" 03h "I08state" Return: DX:AX -> desired information --------r-95--------------------------------- INT 95 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-95--------------------------------- INT 95 - APL*PLUS/PC - DETERMINE R= SPACE Note: use only when the R= option is invoked on entering APL --------r-96--------------------------------- INT 96 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-97--------------------------------- INT 97 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-98--------------------------------- INT 98 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-99--------------------------------- INT 99 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-9A--------------------------------- INT 9A - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT 99,INT 9B --------r-9B--------------------------------- INT 9B - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT 9A,INT 9C"BASIC" --------r-9C--------------------------------- INT 9C - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT 9B,INT 9D"BASIC" --------v-9C--------------------------------- INT 9C - VIRUS - "INT13" - ORIGINAL INT 13h VECTOR SeeAlso: INT 8B"VIRUS",INT 9D"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS" --------r-9D--------------------------------- INT 9D - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT 9C"BASIC",INT 9E"BASIC" --------v-9D--------------------------------- INT 9D - VIRUS - "INT13" - ROM INT 13h ENTRY POINT Note: this vector is used by the virus to store the result of a call to INT 2F/AH=13h SeeAlso: INT 2F/AH=13h,INT 9C"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS" --------r-9E--------------------------------- INT 9E - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT 9F"BASIC" --------v-9E--------------------------------- INT 9E - VIRUS - "INT13" - ORIGINAL INT 21h VECTOR SeeAlso: INT 70"VIRUS",INT 9C"VIRUS",INT 9D"VIRUS",INT E0"VIRUS" --------r-9F--------------------------------- INT 9F - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT A0"BASIC" --------v-9F--------------------------------- INT 9F - VIRUS - "INT13" - STORAGE FOR USER INT 13h VECTOR Note: while it is infecting a file, the INT13 virus grabs INT 13 and uses this interrupt to store the existing INT 13 vector for later restoration SeeAlso: INT 9C"VIRUS",INT 9D"VIRUS" --------r-A0--------------------------------- INT A0 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT 9F"BASIC",INT A1"BASIC" --------r-A0--------------------------------- INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE SeeAlso: INT 59 --------r-A1--------------------------------- INT A1 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT A0"BASIC",INT A2"BASIC" --------r-A2--------------------------------- INT A2 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT A1"BASIC",INT A3"BASIC" --------r-A3--------------------------------- INT A3 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT A2"BASIC",INT A4"BASIC" --------r-A4--------------------------------- INT A4 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT A3"BASIC",INT A5"BASIC" --------U-A4--------------------------------- INT A4 U - Right Hand Man - API AH = function number (v3.3 supports functions 00h-52h) Return: CF set on error CF clear if successful Program: Right Hand Man is a TSR desk-top utility originally by Red E Products which has evolved into Futurus Team Note: this interrupt is only hooked while popped up SeeAlso: INT 2F/AX=A4E0h --------r-A5--------------------------------- INT A5 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT A4"BASIC",INT A6"BASIC" --------r-A6--------------------------------- INT A6 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT A5"BASIC",INT A7"BASIC" --------r-A7--------------------------------- INT A7 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-A8--------------------------------- INT A8 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-A9--------------------------------- INT A9 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-AA--------------------------------- INT AA - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-AB--------------------------------- INT AB - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-AC--------------------------------- INT AC - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-AD--------------------------------- INT AD - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-AE--------------------------------- INT AE - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-AF--------------------------------- INT AF - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-B0--------------------------------- INT B0 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-B1--------------------------------- INT B1 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-B2--------------------------------- INT B2 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-B3--------------------------------- INT B3 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------U-B370------------------------------- INT B3 - ZIPKEY - GET VERSION AH = 70h Return: AH = major version AL = minor version CL = number of states and territories in current database DH = year of current database - 1900 DL = month of current database's file date Program: ZIPKEY is a resident ZIPCODE database by Eric Isaacson Note: if installed, the string "ZIPKEY" is present at offset 75h in the interrupt handler's segment, and the byte at 7Bh contains the API version number (00h for v1.x, 01h for v2.0) --------U-B371------------------------------- INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE AH = 71h BX = abbreviation, in either case (first letter in BL) Return: CF set on error AL = FFh CF clear if successful AL = ZIPKEY state code SeeAlso: AH=72h --------U-B372------------------------------- INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION AH = 72h BL = ZIPKEY state code Return: CF set on error AX destroyed CF clear if successful AX = abbreviation, in upper case SeeAlso: AH=71h,AH=73h --------U-B373------------------------------- INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME AH = 73h BL = ZIPKEY state code ES:DI -> buffer for name Return: CF set on error AX destroyed CF clear if successful ES:DI points one byte beyond end of name SeeAlso: AH=72h --------U-B374------------------------------- INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS AH = 74h DX = zipcode region (0-999) CH = last two digits of zipcode (0-99) ES:DI -> buffer Return: CF set on error AX destroyed CF clear if successful ES:DI points one byte beyond end of digit string --------U-B375------------------------------- INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE AH = 75h DX = zipcode region (0-999) CH = last two digits of zipcode (0-99) Return: CF set on error (zipcode not found) AL = suggested state code, FFh if none CF clear if successful AL = ZIPKEY state code BX = area code (v2.0+) SeeAlso: AH=76h,AH=79h --------U-B376------------------------------- INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE AH = 76h DX = zipcode region (0-999) CH = last two digits of zipcode (0-99) ES:DI -> buffer for name Return: CF set on error AL = suggested state code, FFh if none ES:DI buffer filled with suggested city name CF clear if successful AL = ZIPKEY state code BX = area code (v2.0+) ES:DI points one byte beyond end of name SeeAlso: AH=75h,AH=78h,AH=7Eh --------U-B377------------------------------- INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE AH = 77h DX = zipcode region (0-999) CH = last two digits of zipcode (0-99) BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key Return: CF set on error AX destroyed CF clear if successful zipcode specification as defined by the BX keystroke is placed in keyboard buffer, as if the user had popped up ZIPKEY and exited by pressing the key specified by BX --------U-B378------------------------------- INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY AH = 78h BL = ZIPKEY state code DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix Return: BH = number of matching entries (set to 51 if more than 50) DX = zipcode region of first match (0-999) CL = last two digits of first zipcode in the range (0-99) CH = last two digits of last zipcode in the range (0-99) AX destroyed SeeAlso: AH=79h,AH=7Ah --------U-B379------------------------------- INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY AH = 79h BL = ZIPKEY state code of first state to search DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix Return: AL = ZIPKEY state code of first matching state BH = number of matching entries (set to 51 if more than 50) DX = zipcode region of first match (0-999) CL = last two digits of first zipcode in first range (0-99) CH = last two digits of last zipcode in first range (0-99) Note: to find all matching cities, repeat search with BL set to one more than the returned AL SeeAlso: AH=78h,AH=7Ah --------U-B37A------------------------------- INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP AH = 7Ah BL = case number (0 to one less than value returned in BH by lookup) Return: AL = ZIPKEY state code DX = zipcode region (0-999) CL = last two digits of first zipcode in the range (0-99) CH = last two digits of last zipcode in the range (0-99) SeeAlso: AH=78h,AH=79h --------U-B37B------------------------------- INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT AH = 7Bh Return: BL = maximum number of characters for a city name BH = ZIPKEY state code for last city-name search, or FFh if none CX:DX = internal code identifying last city search AX destroyed SeeAlso: AH=7Ch --------U-B37C------------------------------- INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT AH = 7Ch BL = maximum number of characters for a city name BH = ZIPKEY state code for last city-name search, or FFh if none CX:DX = internal code returned by AH=7Bh Return: CF set on error CF clear if successful AX destroyed SeeAlso: AH=7Bh --------U-B37D------------------------------- INT B3 - ZIPKEY - REQUEST POP UP AH = 7Dh BL = index number to simulate pressing a hotkey FFh for immediate popup with no playback on return Return: CF set on error AL = error code FDh already busy with another request FEh illegal function CF clear if successful AX destroyed window popped up and was closed by the user SeeAlso: AH=70h --------U-B37E------------------------------- INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION AH = 7Eh DX = zipcode region (0-999) ES:DI -> buffer for name Return: CF set on error AL = FFh region does not exist CF clear if successful AL = ZIPKEY state code ES:DI points one byte beyond end of name SeeAlso: AH=76h --------U-B37F------------------------------- INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS AH = 7Fh BL = function 00h turn off hotkeys 01h turn on hotkeys 02h return hotkey status 03h toggle hotkey status Return: AL = hotkey status 00h off 01h on --------U-B380------------------------------- INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE AH = 80h BX = telephone area code (decimal) Return: CF clear if successful AL = ZIPKEY state code DX = first ZIP region for state (03E8h if Canada) CX = number of ZIP regions in state CF set on error AL = FFh DX = 03E9h --------r-B4--------------------------------- INT B4 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-B4--------------------------------- INT B4 - StackMan - REQUEST NEW STACK Return: SS:SP -> new stack Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V. which functions as a replacement for the DOS STACK= command as well as permitting multiple TSRs to share a pool of stack space Note: the installation check consists of testing for the string "STACKXXX" at offset 0Ah from the interrupt handler SeeAlso: INT 2F/AX=C9FFh,INT B5"STACKMAN" Index: installation check;STACKMAN --------r-B5--------------------------------- INT B5 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT B4"BASIC",INT B6"BASIC" --------r-B5--------------------------------- INT B5 - StackMan - RESTORE ORIGINAL STACK SS:SP -> stack returned by INT B4 Return: SS:SP restored to value before INT B4 SeeAlso: INT 2F/AX=C9FFh,INT B4"StackMan" --------m-B5--------------------------------- INT B5 U - Netroom NETSWAP4 - ??? ??? Return: ??? SeeAlso: INT 31/AH=57h --------r-B6--------------------------------- INT B6 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT B5"BASIC",INT B7"BASIC" --------y-B6--------------------------------- INT B6 - (NOT A VECTOR!) - USED BY TBFENCE Program: TBFence is a security program by ESaSS B.V. which transparently encrypts floppies and optionally allows only encrypted diskettes to be accessed Note: the low word of this vector (0000h:02D8h) contains the segment of the TBFence INT 13h code, which starts with the signature word E487h; this forms the installation check the highest byte of this vector contains the start of a FAR JMP instruction to ??? SeeAlso: INT B7"TBFENCE" Index: installation check;TBFence --------r-B7--------------------------------- INT B7 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT B6"BASIC",INT B8"BASIC" --------y-B7--------------------------------- INT B7 - TBFENCE - ??? SeeAlso: INT B6"TBFENCE" --------r-B8--------------------------------- INT B8 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT B7"BASIC",INT B9"BASIC" --------r-B9--------------------------------- INT B9 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-BA--------------------------------- INT BA - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-BB--------------------------------- INT BB - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-BC--------------------------------- INT BC - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-BD--------------------------------- INT BD - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-BE--------------------------------- INT BE - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT BD"BASIC",INT BF"BASIC" --------Q-BE--------------------------------- INT BE - DESQview/X - ??? Note: points at an IRET SeeAlso: INT 15/AX=BFDEh/BX=0006h,INT 63"DESQview" --------r-BF--------------------------------- INT BF - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT BE"BASIC",INT C0"BASIC" --------r-C0--------------------------------- INT C0 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT BF"BASIC",INT C1"BASIC" --------d-C0--------------------------------- INT C0 - AMI BIOS - DRIVE 0 DATA Note: this vector is used by some AMI BIOSes to store the first four bytes of the hard disk parameter table SeeAlso: INT 41,INT 60"Adaptec",INT C1"AMI",INT C2"AMI",INT C3"AMI",INT C4"AMI" --------r-C1--------------------------------- INT C1 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C0"BASIC",INT C2"BASIC" --------d-C1--------------------------------- INT C1 - AMI BIOS - DRIVE 0 DATA Note: this vector is used by some AMI BIOSes to store the second four bytes of the hard disk parameter table SeeAlso: INT 41,INT 60"Adaptec",INT C0"AMI",INT C2"AMI",INT C3"AMI" --------r-C2--------------------------------- INT C2 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C1"BASIC",INT C3"BASIC" --------d-C2--------------------------------- INT C2 - AMI BIOS - DRIVE 0 DATA Note: this vector is used by some AMI BIOSes to store the third four bytes of the hard disk parameter table SeeAlso: INT 41,INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C3"AMI" --------r-C3--------------------------------- INT C3 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C2"BASIC",INT C4"BASIC" --------d-C3--------------------------------- INT C3 - AMI BIOS - DRIVE 0 DATA Note: this vector is used by some AMI BIOSes to store the final four bytes of the hard disk parameter table SeeAlso: INT 41,INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C2"AMI" --------r-C4--------------------------------- INT C4 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C3"BASIC",INT C5"BASIC" --------d-C4--------------------------------- INT C4 - AMI BIOS - DRIVE 1 DATA Note: this vector is used by some AMI BIOSes to store the first four bytes of the second hard disk's parameter table SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C5"AMI",INT C6"AMI",INT C7"AMI" --------r-C5--------------------------------- INT C5 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C4"BASIC",INT C6"BASIC" --------d-C5--------------------------------- INT C5 - AMI BIOS - DRIVE 1 DATA Note: this vector is used by some AMI BIOSes to store the second four bytes of the second hard disk's parameter table SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C4"AMI",INT C6"AMI",INT C7"AMI" --------r-C6--------------------------------- INT C6 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C5"BASIC",INT C7"BASIC" --------r-C6--------------------------------- INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86 Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete the older interrupts SeeAlso: INT 86"APL" --------d-C6--------------------------------- INT C6 - AMI BIOS - DRIVE 1 DATA Note: this vector is used by some AMI BIOSes to store the third four bytes of the second hard disk's parameter table SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C4"AMI",INT C5"AMI",INT C7"AMI" --------r-C7--------------------------------- INT C7 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C6"BASIC",INT C8"BASIC" --------r-C7--------------------------------- INT C7 - APL*PLUS/PC - ??? Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete the older interrupts SeeAlso: INT 87"APL" --------d-C7--------------------------------- INT C7 - AMI BIOS - DRIVE 1 DATA Note: this vector is used by some AMI BIOSes to store the final four bytes of the second hard disk's parameter table SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C4"AMI",INT C5"AMI",INT C6"AMI" --------r-C8--------------------------------- INT C8 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C7"BASIC",INT C9"BASIC" --------r-C8--------------------------------- INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88 Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete the older interrupts SeeAlso: INT 88"APL" --------r-C9--------------------------------- INT C9 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C8"BASIC",INT CA"BASIC" --------r-C9--------------------------------- INT C9 - APL*PLUS/PC - ??? Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete the older interrupts SeeAlso: INT 89"APL" --------r-CA--------------------------------- INT CA - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT C9"BASIC",INT CB"BASIC" --------r-CA--------------------------------- INT CA - APL*PLUS/PC - PRINT SCREEN Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete the older interrupts SeeAlso: INT 8A"APL" --------r-CB--------------------------------- INT CB - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT CA"BASIC",INT CC"BASIC" --------r-CB--------------------------------- INT CB - APL*PLUS/PC - BEEP Notes: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete the older interrupts same as printing a ^G via INT 21/AH=02h SeeAlso: INT 8B"APL" --------r-CC--------------------------------- INT CC - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT CB"BASIC",INT CD"BASIC" --------r-CC--------------------------------- INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY AX = flag 0000h do not save display attributes 0001h save attributes Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete the older interrupts SeeAlso: INT 8C"APL" --------r-CD--------------------------------- INT CD - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT CC"BASIC",INT CE"BASIC" --------r-CD--------------------------------- INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES --------r-CE--------------------------------- INT CE - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT CD"BASIC",INT CF"BASIC" --------r-CE--------------------------------- INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES --------r-CF--------------------------------- INT CF - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT CE"BASIC",INT D0"BASIC" --------r-CF--------------------------------- INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION SeeAlso: INT E0"APL" --------r-D0--------------------------------- INT D0 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT CF"BASIC",INT D1"BASIC" --------r-D0--------------------------------- INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES --------U-D0--------------------------------- INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR Program: NJFRERAM is a resident free-memory display utility by Mike "Nifty James" Blaszczak Note: if NJFRERAM is installed, this vector points at the signature "NJ" Index: installation check;NJFRERAM --------r-D1--------------------------------- INT D1 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D0"BASIC",INT D2"BASIC" --------r-D1--------------------------------- INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES --------r-D2--------------------------------- INT D2 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D1"BASIC",INT D3"BASIC" --------r-D2--------------------------------- INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES --------r-D3--------------------------------- INT D3 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D2"BASIC",INT D4"BASIC" --------r-D3--------------------------------- INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES --------r-D4--------------------------------- INT D4 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D3"BASIC",INT D5"BASIC" --------r-D4--------------------------------- INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES --------O-D400------------------------------- INT D4 O - PC-MOS/386 v5.01 - OBSOLETE FUNCTIONS AH = 00h and 01h Return: nothing Desc: PC-MOS/386 v5.01 reports that these functions are no longer supported and enters an endless loop Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. --------O-D402------------------------------- INT D4 - PC-MOS/386 v3.0+ - GET SYSTEM CONTROL BLOCK POINTER AH = 02h Return: AX = 0000h ES:BX -> System Control Block in V86 mode (see #2402) ES:EBX -> System Control Block in native mode (see #2402) Note: superseded by AH=26h SeeAlso: AH=04h,AH=10h,AH=26h,AH=28h,AH=29h,AH=2Ah,INT 21/AX=3000h,INT 38 Format of PC-MOS/386 System Control Block: Offset Size Description (Table 2402) 00h WORD pointer to first TCB in chain 02h 17 BYTEs reserved 13h WORD pointer to current task's TCB 15h WORD pointer to TCB of visible (console) task --------O-D403------------------------------- INT D4 - PC-MOS/386 v5.01 - GET/SET EXTENDED DIRECTORY INFORMATION AH = 03h AL = subfunction (00h get, 01h set) DS:(E)DX -> pathname ES:(E)BX -> 10-byte buffer for directory information (see #2403) Return: CF clear if successful AL = permitted access level for file (00h-03h) ES:(E)BX -> modified buffer (AL=01h on entry) CF set on error AX = error code (see #0811 at INT 21/AH=59h) Notes: BX/DX are used in V86 mode, EBX/EDX in native mode the file class cannot be changed for files because it affects the encryption method, but directories can have their classes changed Format of PC-MOS/386 directory information: Offset Size Description (Table 2403) 00h BYTE reserved (0) 01h BYTE file class ('A'-'Z' or 00h) 02h DWORD user ID of file creator 06h WORD file creation time (see #0802 at INT 21/AX=5700h) 08h WORD file creation date (see #0803 at INT 21/AX=5700h) --------O-D404------------------------------- INT D4 - PC-MOS/386 v3.0+ - GET TASK CONTROL BLOCK AH = 04h BX = task ID or FFFFh for calling task Return: CF clear if successful ES = segment of Task Control Block (TCB) (see #2404) CF set on error AX = error code (see #0811 at INT 21/AH=59h) Note: superseded by AH=27h SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah,INT 38 Format of PC-MOS/386 Task Control Block: Offset Size Description (Table 2404) 00h BYTE signature byte "H" if allocated from system memory pool 01h BYTE header block ID, "T" = TCB 02h WORD length of block in paragraphs 04h WORD segment address of next header block (0000h if last) 06h WORD segment address of previous header block (0000h if first) 08h WORD pointer to next TCB 0Ah WORD pointer to previous TCB 0Ch WORD pointer to associated TCB (if applicable) 0Eh WORD reserved ---TCB--- 10h WORD TCB task ID 12h WORD native context save area 14h WORD start address of task 16h WORD end address of task 18h BYTE task priority 19h BYTE task time slice 1Ah BYTE "TCBWAIT" run status of task 1Bh BYTE "TCBSTAT" what the task is waiting for 1Ch DWORD address of polling routine 20h BYTE error code from last function call 21h 11 BYTEs name of currently executing task 2Ch 4 BYTEs ??? 30h BYTE keyboard disabled if bit 1 set 31h BYTE current shift state and toggles 32h 2 BYTEs ??? 34h BYTE current video mode 35h BYTE current video page 36h BYTE number of text columns per screen 37h BYTE number of text rows per screen 38h WORD length of video buffer 3Ah WORD video page length 3Ch WORD apge start address in video RAM 3Eh 4 WORDs current cursor positions for four screen pages 46h 8 BYTEs ??? 4Eh WORD current cursor type 50h BYTE current palette setting 51h BYTE original video mode 52h BYTE start CRT row (00h or 01h) 53h BYTE video RAM in task active 54h WORD handle of video save area 56h WORD page count of video save area 58h WORD segment address of video save area 5Ah WORD poitner to first Task File Block (see #2407) 5Ch WORD pointer to first Current Directory Block (see #2410) 5Eh WORD pointer to active Current Directory Block (see #2410) 60h BYTE number of drives 61h BYTE current drive (0=A:, etc.) 62h DWORD disk transfer address 66h 4 BYTEs ??? 6Ah BYTE verify flag (nonzero = on) 6Bh BYTE break flag (nonzero = on) 6Ch WORD share/lock retry count 6Eh WORD ticks between share/lock retries 70h BYTE remote printer flags (see #2405) 71h BYTE ETX/ACK delay count 72h WORD spooler segment address 74h 2 BYTEs ??? 76h 3 BYTEs remote printer redirection for LPT1 through LPT3 (see #2406) 79h 2 BYTEs ??? 7Bh DWORD offset of username in TCB 7Fh BYTE current output class 80h 7 BYTEs protection access rights, 2 bits per class (writeable!) 87h 122 BYTEs ??? 101h BYTE TCB sleep downcounter value 102h 20 BYTEs ??? 116h BYTE last scan code ... 5D0h DWORD far pointer to Device Driver Terminal's entry point 5D4h WORD offset of logical screen 5D6h WORD segment of logical screen 5D8h WORD cursor offset within page 5DAh BYTE screen columns 5DBh WORD async port number (0000h = none) 5DDh DWORD physical baudrate 5E1h 19 BYTEs reserved for Device Driver Terminal (DDT) ... 7A6h DWORD far pointer to unregister calling chain Bitfields for PC-MOS/386 remote printer flags: Bit(s) Description (Table 2405) 0 LPT1 to terminal 1 LPT2 to terminal 2 LPT3 to terminal 3 escape to printer pending 4 use XON/XOFF 5 use ETX/ACK 6 waiting for ACK or XON 7 transparent printing on (Table 2406) Values for PC-MOS/386 remote printer redirection: 00h not redirected 01h redirected to COM1 ... 18h redirected to COM24 51h redirected to LPT1 52h redirected to LPT2 53h redirected to LPT3 Format of PC-MOS/386 Task File Block: Offset Size Description (Table 2407) 00h BYTE signature byte "H" if allocated from system memory pool 01h BYTE header block ID, "F" = task file block 02h WORD length of block in paragraphs 04h WORD segment address of next header block (0000h if last) 06h WORD segment address of previous header block (0000h if first) 08h WORD pointer to next TCB 0Ah WORD pointer to previous TCB 0Ch WORD pointer to associated TCB (if applicable) 0Eh WORD reserved ---TFB--- 10h WORD segment address of next TFB 12h WORD segment address of previous TFB 14h WORD segment address of TFB's Global File Block (see #2409) 16h WORD segment address of owner's PSP 18h WORD file handle 1Ah 3 BYTEs ??? 1Dh DWORD file position 21h 4 BYTEs ??? 25h BYTE IOCTL flags (see #2408) 26h 2 BYTEs ??? Bitfields for PC-MOS/386 IOCTL flags: Bit(s) Description (Table 2408) 0 stdin 1 stdout 2 null device 3 clock device 4 reserved 5 ASCII mode instead of binary 6 EOF encountered on input 7 device rather than file Format of PC-MOS/386 Global File Block: Offset Size Description (Table 2409) 00h BYTE signature byte "H" if allocated from system memory pool 01h BYTE header block ID, "G" = global file block 02h WORD length of block in paragraphs 04h WORD segment address of next header block (0000h if last) 06h WORD segment address of previous header block (0000h if first) 08h WORD pointer to next TCB 0Ah WORD pointer to previous TCB 0Ch WORD pointer to associated TCB (if applicable) 0Eh WORD reserved ---GFB--- 10h 10 BYTEs ??? 1Ah WORD file attribute 1Ch BYTE ??? 1Dh DWORD address of device driver 21h WORD first cluster 23h WORD time of last modification 25h WORD date of last modification 27h DWORD size of file in bytes 2Bh 11 BYTEs ??? 36h 11 BYTEs device name or FCB-format filename 41h WORD segment address of TFB list 43h WORD segment address of first RLB (see #2412) (0000h = none) 45h BYTE flag: nonzero if GFB refers to character device 46h WORD address of Block Device Block (see #2411) 48h WORD sector of file's directory entry 4Ah WORD high word of file's directory entry 4Ch WORD ofsset of directory entry within sector Format of PC-MOS/386 Current Directory Block: Offset Size Description (Table 2410) 00h BYTE signature byte "H" if allocated from system memory pool 01h BYTE header block ID, "C" = current directory block 02h WORD length of block in paragraphs 04h WORD segment address of next header block (0000h if last) 06h WORD segment address of previous header block (0000h if first) 08h WORD pointer to next TCB 0Ah WORD pointer to previous TCB 0Ch WORD pointer to associated TCB (if applicable) 0Eh WORD reserved ---CDB--- 10h BYTE drive number 11h BYTE ??? 12h 64 BYTEs directory name 52h WORD first directory cluster (0000h = root) Format of PC-MOS/386 Block Device Block: Offset Size Description (Table 2411) 00h BYTE signature byte "H" if allocated from system memory pool 01h BYTE header block ID, "B" = block device block 02h WORD length of block in paragraphs 04h WORD segment address of next header block (0000h if last) 06h WORD segment address of previous header block (0000h if first) 08h WORD pointer to next TCB 0Ah WORD pointer to previous TCB 0Ch WORD pointer to associated TCB (if applicable) 0Eh WORD reserved ---BDB--- 10h BYTE logical drive 11h BYTE unit passed to driver 12h WORD sector size 14h BYTE cluster mask 15h BYTE cluster shift count 16h WORD starting sector of first FAT 18h BYTE number of FATs 19h WORD number of root directories 1Bh WORD sector number of first data sector (cluster 0002h) 1Dh WORD number of clusters + 1 (number of highest data cluster) 1Fh BYTE number of sectors in FAT 20h WORD beginning root directory sector number 22h DWORD device driver address 26h BYTE media descriptor byte 27h 5 BYTEs ??? 2Ch BYTE flag: volume > 32MB 2Dh BYTE ??? 2Eh BYTE number of sectors per cluster 2Fh WORD number of clusters on device 31h WORD number of free clusters (FFFFh = unknown) 33h WORD root directory cluster number 35h WORD pointer to alias/subst string 37h WORD TCB segment address of owner (0000h = none) Format of PC-MOS/386 Record Lock Block: Offset Size Description (Table 2412) 00h BYTE signature byte "H" if allocated from system memory pool 01h BYTE header block ID, "R" = record lock block 02h WORD length of block in paragraphs 04h WORD segment address of next header block (0000h if last) 06h WORD segment address of previous header block (0000h if first) 08h WORD pointer to next TCB 0Ah WORD pointer to previous TCB 0Ch WORD pointer to associated TCB (if applicable) 0Eh WORD reserved ---RLB--- 10h WORD segment address of owner's PSP 12h WORD segment address of Global File Block (see #2409) 14h WORD segment address of owner's Task File Block (see #2407) 16h DWORD file offset of locked region start 1Ah DWORD length of locked region 1Eh WORD owner's handle for file --------O-D407------------------------------- INT D4 - PC-MOS/386 v3.0+ - WAIT FOR EVENT AH = 07h AL = events to monitor (see #2413) BX = number of timer ticks until timeout if AL bit 1 set CX = bitmap of IRQs to monitor if AL bit 2 set (bit 0 = IRQ0 .. bit 15 = IRQ15) DX = port to monitor if AL bit 3 set Return: CF clear if successful AL = type of event which woke up task (see above) CX = IRQ (if any) which awakened task DX = port (if any) which awakened task CF set on error AX = error code (see #0811 at INT 21/AH=59h) Note: a device driver may make this call with AL=00h, which indicates that the driver is responsible for setting and clearing the TCBWAIT field in the TCB. To put task to sleep, set TCBWAIT bits 2-0 to 001; to reawaken it, set bit 1 (leaving other bits unchanged) SeeAlso: AH=04h,INT 16/AH=00h,INT 38 Bitfields for PC-MOS/386 events to monitor: Bit(s) Description (Table 2413) 0 keystroke 1 timeout 2 IRQ 3 port access 7 return status of user poll routine (other ignored if set) --------O-D410------------------------------- INT D4 - PC-MOS/386 v3.0+ - ENTER/LEAVE NATIVE 386 EXECUTION MODE AH = 10h AL = direction (00h return to V86 mode, 01h enter native mode) CX = length in bytes of Native Context Area ( >=1024 ) DX = segment of Native Context Area Return: CF clear if successful running in desired mode at instruction following INT D4 call all segment registers converted to appropriate selectors/segments CF set on error AX = error code (see #0811 at INT 21/AH=59h) Note: MS-DOS calls are available in protected mode SeeAlso: AH=11h,AH=12h,AH=13h,INT 2F/AX=1687h,INT 67/AX=DE0Ch,INT 38 --------O-D411------------------------------- INT D4 - PC-MOS/386 v3.0+ - ALLOCATE NATIVE MODE MEMORY BLOCK AH = 11h EBX = block length in bytes Return: CF clear if successful EBX = number of bytes actually allocated ES = selector for allocated block CF set on error AX = error code (see #0811 at INT 21/AH=59h) Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. Note: the memory must be released before the program terminates SeeAlso: AH=10h,AH=12h,INT 38 --------O-D412------------------------------- INT D4 - PC-MOS/386 v3.0+ - FREE NATIVE MODE MEMORY BLOCK AH = 12h ES = selector for block to free Return: CF clear if successful CF set on error AX = error code (see #0811 at INT 21/AH=59h) SeeAlso: AH=10h,AH=11h,AH=13h,INT 38 --------O-D413------------------------------- INT D4 - PC-MOS/386 v5.01 - GET ALIAS FOR SELECTOR (NATIVE MODE ONLY) AH = 13h AL = type of alias selector (00h data, 01h stack, 02h code) BX = selector Return: CF clear if successful AX = new selector or 0000h if BX selector not found CF set on error AX = error code (see #0811 at INT 21/AH=59h) SeeAlso: AH=11h,AH=12h --------O-D416------------------------------- INT D4 - PC-MOS/386 v5.01 - SET/CLEAR IRQ RESERVATION AH = 16h AL = function (00h clear, 01h set reservation) CX = IRQ number Return: AX = status (0000h successful, 0001h currently reserved by another task) SeeAlso: AH=07h,INT 14/AH=11h"PC-MOS" --------O-D419------------------------------- INT D4 - PC-MOS/386 v5.01 - GET TASK ID AH = 19h Return: BX = caller's task ID Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. SeeAlso: AH=1Dh,AH=1Eh --------O-D41A------------------------------- INT D4 - PC-MOS/386 v5.01 - GET/SET TASK PRIORITY AH = 1Ah AL = subfunction (00h read, 01h set, 02h get and set) BX = task ID (FFFFh for current task) CL = new priority value Return: CF clear if successful CL = current priority value CF set on error AX = error code (see #0811 at INT 21/AH=59h) SeeAlso: AH=1Bh,AH=1Ch --------O-D41B------------------------------- INT D4 - PC-MOS/386 v5.01 - GET/SET TIME SLICE AH = 1Bh AL = subfunction (00h read, 01h set, 02h get and set) BX = task ID (FFFFh for current task) (see AH=19h) CL = new time slice value Return: CF clear if successful CL = current time slice value CF set on error AX = error code (see #0811 at INT 21/AH=59h) SeeAlso: AH=1Ah,AH=1Ch --------O-D41C------------------------------- INT D4 - PC-MOS/386 v5.01 - GET/SET KEYBOARD MODE AH = 1Ch AL = subfunction (00h enable, 01h disable, 02h get mode) BX = task ID (FFFFh for current task) Return: CF clear if successful CL = current keyboard state CF set on error AX = error code (INT 21/AH=59h) Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. SeeAlso: AH=1Ah,AH=1Bh --------O-D41D------------------------------- INT D4 - PC-MOS/386 v5.01 - GET CURRENT PROGRAM NAME AH = 1Dh BX = task ID (FFFFh for current task) (see AH=19h) ES:DI -> buffer for program name (see #2414) Return: CF clear if successful ES:DI buffer filled CF set on error AX = error code (see #0811 at INT 21/AH=59h) SeeAlso: AH=19h,AH=1Eh Format of PC-MOS/386 program name buffer: Offset Size Description (Table 2414) 00h 8 BYTEs filename 08h 3 BYTEs extension --------O-D41E------------------------------- INT D4 - PC-MOS/386 v5.01 - GET CURRENT USERNAME AND SECURITY CLASS AH = 1Eh BX = task ID (FFFFh for current task) ES:DI -> 4-byte buffer for username Return: CF clear if successful CL = security class 20h (' ') none 41h-5Ah ('A'-'Z') security level ES:DI buffer filled CF set on error AX = error code (see #0811 at INT 21/AH=59h) SeeAlso: AH=19h,AH=1Dh --------O-D41F------------------------------- INT D4 - PC-MOS/386 v5.01 - GET TASK PARTITION INFORMATION AH = 1Fh BX = task ID (FFFFh for current task) (see AH=19h) Return: CF clear if successful CX = start segment of task DX = ending segment of task CF set on error AX = error code (see #0811 at INT 21/AH=59h) Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. SeeAlso: AH=2Dh --------O-D420------------------------------- INT D4 - PC-MOS/386 v5.01 - GET PORT AND BAUDRATE INFORMATION AH = 20h BX = task ID (FFFFh for current task) (see AH=19h) Return: CF clear if successful CX = port number (0000h if none) DI:SI = baudrate (if CX nonzero) CF set on error AX = error code (see #0811 at INT 21/AH=59h) SeeAlso: INT 14/AH=0Ch"FOSSIL" --------O-D421------------------------------- INT D4 - PC-MOS/386 v5.01 - REMOVE A TASK AH = 21h BX = task ID (FFFFh for current task) (see AH=19h) Return: CF clear if successful AX = ASCII percentage of System Memory Pool used (AH = tens digit, AL = ones digit) DS,SI destroyed CF set on error AX = error code (see #0811 at INT 21/AH=59h) Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. SeeAlso: AH=22h --------O-D422------------------------------- INT D4 - PC-MOS/386 v5.01 - ADD A TASK TO THE SYSTEM AH = 22h DS:SI -> addtask data structure (see #2416) Return: CF clear if successful ES = segment address of the new task's TCB data structure CF set on error AX = error code (see #2415) SeeAlso: AH=21h (Table 2415) Values for PC-MOS/386 error code: 08h insufficient memory 0Bh invalid addtask structure format 12h insufficient available space in system memory pool 1Fh general failure 55h already allocated 57h if task already in use or invalid parameter Format of PC-MOS/386 addtask data structure: Offset Size Description (Table 2416) 00h WORD task size in KB (min 16KB) 02h WORD task ID (0000h for automatic selection) 04h BYTE task class (' ' or 'A'-'Z') 05h DWORD -> ASCIZ name of task startup batchfile 09h DWORD -> task's terminal driver (0000000h = background task) 0Dh WORD task port 0Fh DWORD task baud rate 13h DWORD (return) total extended memory 17h DWORD (return) number of 4K extended memory pages allocated 1Bh WORD (return) paragraphs of system memory pool allocated 1Dh WORD (return) system memory pool size in paragraphs 1Fh WORD (return) ASCII task percentage of system memory pool 21h 3 BYTEs reserved --------O-D423------------------------------- INT D4 - PC-MOS/386 v5.01 - CHANGE TERMINAL DRIVER AH = 23h BX = task ID (FFFFh for current task) DS:SI -> entry point of the new Device Driver Terminal Return: CF clear if successful CF set on error AX = error code (see #0811 at INT 21/AH=59h) --------O-D424------------------------------- INT D4 U - PC-MOS/386 v5.01 - GET OPERATING SYSTEM SERIAL NUMBER AH = 24h Return: DS:DX -> '$'-terminated string containing the serial number --------O-D425------------------------------- INT D4 - PC-MOS/386 v5.01 - IDENTIFY LOAD ADDRESS OF DEVICE DRIVER LOCATION AH = 25h DX = driver's CS value Return: AX = segment address of driver in system memory pool (0000h if the driver is not within the system memory pool) Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. --------O-D426------------------------------- INT D4 - PC-MOS/386 v5.01 - GET SYSTEM CONTROL BLOCK SEGMENT/SELECTOR AH = 26h Return: DX = segment/selector of the System Control Block (see #2402) Note: this function supersedes AH=02h SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah --------O-D427------------------------------- INT D4 - PC-MOS/386 v5.01 - GET TASK CONTROL BLOCK SEGMENT/SELECTOR AH = 27h BX = task ID (FFFFh if current task) (see AH=19h) Return: CF clear if successful DX = segment/selector for the Task Control Block (see #2404) CF set on error AX = error code (INT 21/AH=59h) Note: this function supersedes AH=04h SeeAlso: AH=26h,AH=28h,AH=29h,AH=2Ah --------O-D428------------------------------- INT D4 - PC-MOS/386 v5.01 - GET CONTROL BLOCK DATA FROM SCB OR TCB AH = 28h BX = offset into control block at which to start reading CX = number of bytes to read DX = segment/selector of control block obtained via AH=26h or AH=27h ES:DI -> buffer for data Return: CF clear if successful CF set on error AX = error code (see also INT 21/AH=59h) 05h access denied due to an invalid segment/selector SeeAlso: AH=26h,AH=27h,AH=29h,AH=2Ah --------O-D429------------------------------- INT D4 - PC-MOS/386 v5.01 - WRITE CONTROL BLOCK DATA INTO SCB OR TCB AH = 29h BX = offset into control block at which to start writing CX = number of bytes to write DX = segment/selector of control block obtained via AH=26h or AH=27h DS:SI -> buffer containing data to be written Return: CF clear if successful CF set on errro AX = error code (see also INT 21/AH=59h) 05h access denied due to an invalid segment/selector Note: this function performs no bounds checking Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. SeeAlso: AH=26h,AH=27h,AH=28h,AH=2Ah --------O-D42A------------------------------- INT D4 - PC-MOS/386 v5.01 - SWAP CONTROL BLOCK DATA OF SCB OR TCB AH = 2Ah BX = offset into control block at which to start swap CX = number of bytes to swap DX = segment/selector of control block obtained via AH=26h or AH=27h DS:SI -> buffer containing new data and to receive current data Return: CF clear if successful CF set on error AX = error code (see also INT 21/AH=59h) 05h access denied due to an invalid segment/selector Note: the interrupts are disabled during the swap to prevent corruption SeeAlso: AH=26h,AH=27h,AH=28h,AH=29h --------O-D42C------------------------------- INT D4 - PC-MOS/386 v5.01 - GET/SET SPOOLER PARAMETERS AH = 2Ch AL = function 00h set spooler timeout CX = timout value in seconds 01h get spooler timeout Return: CX = current timeout in seconds 02h get spooler parameters Return: CH = priority (00h-09h) CL = disposition (d, h, i, n, s) SI = class (a - z) 03h set spooler parameters CH = priority (00h-09h) CL = disposition (d, h, i, n, s) SI = class (a - z) BX = task ID (FFFFh for current task) DX = LPT number Return: CF clear if successful CF set on error AX = error code (see #0811 at INT 21/AH=59h) SeeAlso: AH=00h,AH=02h,AH=03h --------O-D42D------------------------------- INT D4 - PC-MOS/386 v5.01 - GET MAXIMUM TASK SIZE AH = 2Dh Return: DX = maximum task size in paragraphs BX = start address of task space Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. SeeAlso: AH=1Fh,AH=22h --------r-D5--------------------------------- INT D5 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D4"BASIC",INT D6"BASIC" --------r-D5--------------------------------- INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES --------r-D6--------------------------------- INT D6 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D5"BASIC",INT D7"BASIC" --------r-D6--------------------------------- INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES --------r-D7--------------------------------- INT D7 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D6"BASIC",INT D8"BASIC" --------r-D7--------------------------------- INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES --------r-D8--------------------------------- INT D8 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D7"BASIC",INT D9"BASIC" --------r-D8--------------------------------- INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES --------H-D8--------------------------------- INT D8 - Screen Thief v1.00 - RELOCATED IRQ0 Range: INT 78h to INT E0h, selected by commandline switch Note: Screen Thief relocates IRQs 0 through 7 to INT D8 to INT DF by default, but may be directed via a commandline switch to use any range starting at a multiple of 8 between 78h and E0h SeeAlso: INT 08"IRQ0",INT 2D/AL=10h"Screen Thief",INT 50"DESQview" SeeAlso: INT D9"Screen Thief" --------r-D9--------------------------------- INT D9 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D8"BASIC",INT DA"BASIC" --------r-D9--------------------------------- INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES --------H-D9--------------------------------- INT D9 - Screen Thief v1.00 - RELOCATED IRQ1 Range: INT 79h to INT E1h, selected by commandline switch Note: (see INT D8"Screen Thief") SeeAlso: INT 09"IRQ1",INT D8"Screen Thief",INT DA"Screen Thief" --------r-DA--------------------------------- INT DA - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT D9"BASIC",INT DB"BASIC" --------r-DA--------------------------------- INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES --------H-DA--------------------------------- INT DA - Screen Thief v1.00 - RELOCATED IRQ2 Range: INT 7Ah to INT E2h, selected by commandline switch Note: (see INT D8"Screen Thief") SeeAlso: INT 0A"IRQ2",INT D9"Screen Thief",INT DB"Screen Thief" --------r-DB--------------------------------- INT DB - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT DA"BASIC",INT DC"BASIC" --------r-DB--------------------------------- INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES --------H-DB--------------------------------- INT DB - Screen Thief v1.00 - RELOCATED IRQ3 Range: INT 7Bh to INT E3h, selected by commandline switch Note: (see INT D8"Screen Thief") SeeAlso: INT 0B"IRQ3",INT DA"Screen Thief",INT DC"Screen Thief" --------u-DC--------------------------------- INT DC - PC/370 v4.1- - API SeeAlso: INT 60"PC/370" --------r-DC--------------------------------- INT DC - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT DB"BASIC",INT DD"BASIC" --------r-DC--------------------------------- INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES --------H-DC--------------------------------- INT DC - Screen Thief v1.00 - RELOCATED IRQ4 Range: INT 7Ch to INT E4h, selected by commandline switch Note: (see INT D8"Screen Thief") SeeAlso: INT 0C"IRQ4",INT DB"Screen Thief",INT DD"Screen Thief" --------r-DD--------------------------------- INT DD - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT DC"BASIC",INT DE"BASIC" --------r-DD--------------------------------- INT DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER BX = where to place keystrokes FFFFh insert before current buffer contents 0000h replace current contents 0001h insert after current contents CX = number of keystroke events to insert ES:SI -> data to be placed into buffer (list of WORD key codes) 4000h + N = normal ASCII keystroke N (N = 00h to FFh) 4100h + N = extended ASCII keystroke N (N = 03h to 84h) SeeAlso: INT 16/AH=05h --------H-DD--------------------------------- INT DD - Screen Thief v1.00 - RELOCATED IRQ5 Range: INT 7Dh to INT E5h, selected by commandline switch Note: (see INT D8"Screen Thief") SeeAlso: INT 0D"IRQ5",INT DC"Screen Thief",INT DE"Screen Thief" --------r-DE--------------------------------- INT DE - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT DD"BASIC",INT DF"BASIC" --------r-DE--------------------------------- INT DE - APL*PLUS/PC - ??? Note: appears to be the same as INT 16 --------H-DE--------------------------------- INT DE - Screen Thief v1.00 - RELOCATED IRQ6 Range: INT 7Eh to INT E6h, selected by commandline switch Note: (see INT D8"Screen Thief") SeeAlso: INT 0E"IRQ6",INT DD"Screen Thief",INT DF"Screen Thief" --------b-DF--------------------------------- INT DF - Victor 9000 - SuperBIOS --------r-DF--------------------------------- INT DF - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT DE"BASIC",INT E0"BASIC" --------r-DF--------------------------------- INT DF - APL*PLUS/PC - SAME AS INT 10 SeeAlso: INT 10 --------H-DF--------------------------------- INT DF - Screen Thief v1.00 - RELOCATED IRQ7 Range: INT 7Fh to INT E7h, selected by commandline switch Note: (see INT D8"Screen Thief") SeeAlso: INT 0F"IRQ7",INT DE"Screen Thief" --------r-E0--------------------------------- INT E0 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 80"BASIC",INT DF"BASIC",INT E1"BASIC" --------r-E0--------------------------------- INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION SeeAlso: INT CF"APL" --------v-E0--------------------------------- INT E0 - VIRUS - "Micro-128" - ??? Note: Micro-128 also overwrites the upper half of the interrupt table SeeAlso: INT 9E"VIRUS",INT F1"VIRUS" --------O-E0--------------------------------- INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS CL = function number DS,DX = parameters Return: as appropriate for function Notes: several functions are covered in more detail in following entries most of these calls are also supported by Digital Research's DOS Plus v2.1; the unsupported functions are 26h,29h-2Bh,3Ah,3Dh-62h,71h-8Ch, 90h-92h,94h-97h,9Bh-ABh, and AEh-FFh SeeAlso: INT 21/AX=4459h,INT 21/AH=E0h"DOS Plus" (Table 2417) Values for CP/M-86,DR Multiuser DOS function number: 00h terminate calling process (see also INT 21/AH=00h) 01h read a character 02h write character to default console (see also INT 21/AH=02h) 03h read character from default AUX (see also INT 21/AH=03h) 04h write character to default AUX (see also INT 21/AH=04h) 05h write character to default list device (see also INT 21/AH=05h) 06h perform raw I/O on default console (see also INT 21/AH=06h) 07h return default AUX input status 08h return default AUX output status 09h write string to default console (see also INT 21/AH=09h) 0Ah read string from default console (see also INT 21/AH=0Ah) 0Bh return default console input status (see also INT 21/AH=0Bh) 0Ch get BDOS release ID 0Dh reset all disk drives (see also INT 21/AH=0Dh) 0Eh set default drive (see also INT 21/AH=0Eh) 0Fh open file via FCB (see also INT 21/AH=0Fh,#0506) 10h close file via FCB (see also INT 21/AH=10h) 11h search for first matching file with FCB (see also INT 21/AH=11h) 12h search for next matching file with FCB (see also INT 21/AH=12h) 13h delete file via FCB (see also INT 21/AH=13h) 14h sequential read via FCB (see also INT 21/AH=14h) 15h sequential write via FCB (see also INT 21/AH=15h) 16h create file via FCB (see also INT 21/AH=16h) 17h rename file via FCB (see also INT 21/AH=17h) 18h get bit map of logged drives 19h get default drive (see also INT 21/AH=19h) 1Ah set DMA address offset 1Bh get default disk allocation vector (see also INT 21/AH=1Bh) 1Ch set default drive to read-only 1Dh get bit map of read-only drives 1Eh set file attributes via FCB (see also INT 21/AX=4301h) 1Fh get address of disk parameter block (see also INT 21/AH=1Fh) 20h get/set default user number 21h read random record via FCB (see also INT 21/AH=21h) 22h write random record via FCB (see also INT 21/AH=22h) 23h compute file size with FCB (see also INT 21/AH=23h) 24h get FCB random record number (see also INT 21/AH=24h) 25h reset specified drives 26h access specified drives (not in DR DOS Plus v2.1) 27h free specified drives 28h write random with FCB, zero fill (see also also INT 21/AH=28h) 2Ah lock records in FCB file (see also INT 21/AH=5Ch) 2Bh unlock records in FCB file (see also INT 21/AH=5Ch) 2Ch set BDOS multisector count 2Dh set BDOS error mode 2Eh get free space on disk 2Fh load, initialize, and jump to process (see also INT 21/AH=4Bh) 30h flush write-deferred buffers 31h get/set system variable (DOS Plus v2.1) 32h call BIOS (XIOS) character routine (see #2418) 33h set DMA address segment 34h get DMA buffer address 35h CP/M-86 allocate maximum memory 36h allocate maximum memory at specified segment 37h CP/M-86 allocate memory segment (see also INT 21/AH=48h) 38h allocate memory at specified segment 39h CP/M-86 free specified memory segment (see also INT 21/AH=49h) 3Ah CP/M-86 free all memory (not in DOS Plus v2.1) 3Bh load .CMD file into memory 3Ch (DOS Plus v2.1) call RSX program 40h (DR-NET) log on a server 41h (DR-NET) log off a server 42h (DR-NET) send a message 43h (DR-NET) receive a message 44h (DR-NET) get network status 45h (DR-NET) get requestor configuration table 46h (DR-NET) set compatibility attributes 47h (DR-NET) get server configuration table 48h (DR-NET) set network error mode 49h (DR-NET) attach network 4Ah (DR-NET) detach network 4Bh (DR-NET) set default password 4Ch (DR-NET) get-set long timeout 4Dh (DR-NET) get parameter table 50h (DR-NET) get network information 53h get current time (see also INT 21/AH=2Ch) 54h set current time (see also INT 21/AH=2Dh) 55h get binary system date (see also INT 21/AH=2Ah) 56h set system date (see also INT 21/AH=2Bh) 57h allocate system flag 58h deallocate system flag 59h reserve memory in global area 5Ah lock physical drive 5Bh unlock physical drive 5Ch search path for executable file 5Dh load and execute command (see also INT 21/AH=4Bh) 5Eh get/set process exit code 5Fh set country information 60h get country information 63h truncate FCB file (see also INT 21/AH=28h) 64h create/update directory label 65h get directory label 66h get FCB date stamp and password mode 67h write extended FCB 68h set system date and time 69h get system date and time in binary 6Ah establish password for file access 6Bh get OS serial number 6Ch (DOS Plus v2.1) get/set program return code 6Dh get/set console mode 6Eh get/set string delimiter 6Fh write block to default console 70h write block to default list device 71h execute DOS-compatible function 74h set FCB time and date stamps 80h allocate memory 82h deallocate memory 83h poll I/O device 84h wait on system flag 85h set system flag 86h create message queue 87h open message queue 88h delete message queue 89h read from message queue 8Ah conditionally read from message queue 8Bh write to message queue 8Ch conditionally write to message queue 8Dh delay calling process 8Eh call process dispatcher (yield CPU) 8Fh terminate calling process (same as function 00h) 90h create a process 91h set calling process' priority 92h attach to default console 93h detach from default console 95h assign default console to process 96h interpret and execute commandline 97h resident procedure library 98h parse ASCII string into FCB (see also INT 21/AH=29h) 99h return default console 9Ah get address of system data (SYSDAT) 9Bh get system time and date 9Ch return calling process' descriptor 9Dh terminate process by name or PD address 9Eh attach to default list device 9Fh detach from default list device A0h select default list device A1h conditionally attach to default list device A2h conditionally attach to default console A3h get OS version number A4h get default list device A5h attach to default AUX A6h detach from default AUX A7h conditionally attach to default AUX A8h set default AUX A9h return default AUX ACh read block from default AUX ADh (DOS Plus v2.1) write block to default AUX B0h configure default AUX B1h get/set device control parameters B2h send Break through default AUX B3h allocate physical memory B4h free physical memory B5h map physical memory B6h nondestructive message queue read B7h timed wait on system flag B8h get/set I/O port mapping B9h set list device timeout BAh set AUX timeout value BBh execute XIOS service BDh (DR Multiuser DOS) delay FFh return 80386 to native mode (Table 2418) Values for DOS Plus v2.1 XIOS functions: 00h terminate program 01h ??? 02h check for console input status 03h read character from console 04h write character to console 05h write character to list device 06h write character to auxiliary device 07h read cahracter from auxiliary device 0Fh get list device status 10h-14h reserved 15h device initialization 16h check console output status 17h-7Fh reserved ---BBC Acorn--- 80h get XIOS version 81h get Tube semaphore 82h release Tube semaphore 83h select text/graphics 84h update B&W graphics rectangle 85h update color graphics rectangle 86h get/release/update mouse 87h get system error info 88h entry in CLOCK called by WatchDog RSP 89h BBC OSBYTE function 8Ah BBC OSWORD function (Table 2419) Values for DR Multiuser DOS Error Return Code: 00h no error 01h system call not implemented 02h illegal system call number 03h cannot find memory 04h illegal flag number 05h flag overrun 06h flag underrun 07h no unused Queue Descriptors 08h no free queue buffer 09h cannot find queue 0Ah queue in use 0Ch no free Process Descriptors 0Dh no queue access 0Eh empty queue 0Fh full queue 10h CLI queue missing 11h no 8087 in system 12h no unused Memory Descriptors 13h illegal console number 14h no Process Descriptor match 15h no console match 16h no CLI process 17h illegal disk number 18h illegal filename 19h illegal filetype 1Ah character not ready 1Bh illegal Memory Descriptor 1Ch bad return from BDOS load 1Dh bad return from BDOS read 1Eh bad return from BDOS open 1Fh null command 20h not owner of resource 21h no CSEG in load file 22h process Descriptor exists on Thread Root 23h could not terminate process 24h cannot attach to process 25h illegal list device number 26h illegal password 28h external termination occurred 29h fixup error upon load 2Ah flag set ignored 2Bh illegal auxilliary device number --------O-E0----CL03------------------------- INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM AUX DEVICE CL = 03h Return: AL = ASCII character Notes: A_READ reads the next 8-bit character from the logical auxilliary input device (AUXn:); control is not returned to the calling process until a character has been read. if another process owns AUX, this call blocks until the device becomes available SeeAlso: INT 21/AH=03h,INT E0/CL=04h,INT E0/CL=07h,INT E0/CL=A5h,INT E0/CL=ACh --------O-E0----CL04------------------------- INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO AUX DEVICE CL = 04h DL = ASCII character Return: nothing Note: if another process owns AUX, this call blocks until the device becomes available SeeAlso: INT 21/AH=04h,INT E0/CL=03h,INT E0/CL=08h,INT E0/CL=A5h,INT E0/CL=ADh --------O-E0----CL07------------------------- INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE CL = 07h Return: AL = status 00h not ready FFh character available Desc: determine whether the current AUX device has input available SeeAlso: INT E0/CL=03h,INT E0/CL=08h --------O-E0----CL08------------------------- INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE CL = 08h Return: AL = status 00h not ready FFh ready for output Desc: determine whether the current AUX device is able to accept more output SeeAlso: INT E0/CL=04h,INT E0/CL=07h --------O-E0----CL59------------------------- INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA CL = 59h DX = size in bytes Return: AX = status FFFFh failed other successful ES:BX -> reserved memory --------O-E0----CL86------------------------- INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE CL = 86h DS:DX -> queue descriptor (see #2420) Return: AX = status (0000h success, FFFFh failure) CX = error code (see #2419) SeeAlso: INT E0/CL=87h Format of DR Multiuser DOS queue descriptor: Offset Size Description (Table 2420) 00h 2 WORDs internal use, initialize to zeros 04h WORD flags 06h 8 BYTEs queue name 0Eh WORD length of message 10h WORD number of messages 12h 4 WORDs internal use, initialize to zeros 1Ah WORD offset in system area of buffer for messages --------O-E0----CL87------------------------- INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE CL = 87h DS:DX -> queue parameter block (see #2421) Return: AX = status (0000h success, FFFFh failure) CX = error code (see #2419) SeeAlso: INT E0/CL=86h,INT E0/CL=89h Format of DR Multiuser DOS queue parameter block: Offset Size Description (Table 2421) 00h WORD internal use, initialize to zero 02h WORD queue ID (set by INT E0/CL=87h) 04h WORD internal use, initialize to zero 06h WORD offset of queue message buffer 08h 8 BYTEs queue name --------O-E0----CL89------------------------- INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE CL = 89h DS:DX -> queue parameter block (see #2421) Return: AX = status (0000h success, FFFFh failure) CX = error code (see #2419) SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh --------O-E0----CL8A------------------------- INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE CL = 8Ah DS:DX -> queue parameter block (see #2421) Return: AX = status (0000h success, FFFFh failure) CX = error code (see #2419) SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch --------O-E0----CL8B------------------------- INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE CL = 8Bh DS:DX -> queue parameter block (see #2421) Return: AX = status (0000h success, FFFFh failure) CX = error code (see #2419) SeeAlso: INT E0/CL=89h,INT E0/CL=8Ch --------O-E0----CL8C------------------------- INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE CL = 8Ch DS:DX -> queue parameter block (see #2421) Return: AX = status (0000h success, FFFFh failure) CX = error code (see #2419) SeeAlso: INT E0/CL=8Ah,INT E0/CL=8Bh --------O-E0----CL8E------------------------- INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER CL = 8Eh DX = FFFFh (optional) to force dispatch Return: nothing Desc: allow other processes of the same or higher priority to run if they are ready Note: if DX=FFFFh, a dispatch is forced even if no other process is ready SeeAlso: INT E0/CL=91h --------O-E0----CL91------------------------- INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY CL = 91h DL = new priority (00h highest to FFh lowest) Note: sets priority of calling process; transient processes are initialized to priority C8h SeeAlso: INT E0/CL=8Eh --------O-E0----CL93------------------------- INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE CL = 93h Return: AX = status 0000h successfully detached FFFFh detach failed SeeAlso: INT E0/CL=A6h --------O-E0----CLA5------------------------- INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE CL = A5h Desc: attaches the default auxiliary device to the calling process unless it is already attached to another process, in which case the call blocks until the device becomes available Note: this call should be used before attempting to read or write from the AUX device; however, the I/O calls internally call this function to ensure device ownership SeeAlso: INT E0/CL=03h,INT E0/CL=04h,INT E0/CL=A6h,INT E0/CL=A7h,INT E0/CL=A8h SeeAlso: INT E0/CL=ACh,INT E0/CL=ADh,INT E0/CL=B0h --------O-E0----CLA6------------------------- INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE CL = A6h Return: AX = status 0000h successfully detached FFFFh detach failed CX = error code SeeAlso: INT E0/CL=93h,INT E0/CL=A5h,INT E0/CL=A7h --------O-E0----CLA7------------------------- INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE CL = A7h Return: AX = status 0000h attached FFFFh unable to attach Desc: attaches the default auxiliary device to the calling process if it is available Note: does not block if the device is already in use SeeAlso: INT E0/CL=A5h,INT E0/CL=A6h,INT E0/CL=A8h,INT E0/CL=B0h --------O-E0----CLA8------------------------- INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER CL = A8h DL = auxiliary device number Return: AX = status 0000h successful FFFFh failed CX = error code Desc: specify which physical device will become AUX SeeAlso: INT E0/CL=A5h,INT E0/CL=A9h --------O-E0----CLA9------------------------- INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER CL = A9h Return: AL = current default auxiliary device number Desc: determine which physical device is currently AUX SeeAlso: INT E0/CL=A8h --------O-E0----CLAC------------------------- INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE CL = ACh DS:DX -> character control block (CHCB) (see #2422) Return: AX = number of characters read Desc: read characters from the default auxiliary (AUXn:) device into a buffer until the buffer is full or the device is no longer ready Notes: if the device is initially not ready, blocks until at least one character has been read if another process owns AUX, this call blocks until the device becomes available SeeAlso: INT E0/CL=03h,INT E0/CL=A5h,INT E0/CL=ADh Format of DR Multiuser DOS character control block (CHCB): Offset Size Description (Table 2422) 00h DWORD pointer to character buffer 04h WORD length of character buffer --------O-E0----CLAD------------------------- INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE CL = ADh DS:DX -> character control block (see INT E0/CL=ACh) Return: AX = number of characters written Note: does not return until at least one character has been written SeeAlso: INT E0/CL=04h,INT E0/CL=A5h,INT E0/CL=ACh --------O-E0----CLB0------------------------- INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS CL = B0h DX:DX -> AUX device parameter block (see #2423) Return: AX = status 0000h successful parameter block updated FFFFh failed CX = error code SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h Format of DR Multiuser DOS AUX device parameter block: Offset Size Description (Table 2423) 00h BYTE function (00h get, 01h set) 01h BYTE baud rate (see #2425) FFh = don't change/unknown 02h BYTE parity (see #2424) 03h BYTE stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change) 04h BYTE data bits (05h-08h or FFh unknown/don't change) 05h BYTE handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF, FFh unknown/don't change) 06h BYTE XON character, FFh unknown/don't change 07h BYTE XOFF character, FFh unknown/don't change (Table 2424) Values for DR Multiuser DOS AUX parity: 00h none 01h odd 02h none 03h even 04h stick parity bit FFh don't change/unknown (Table 2425) Values for DR Multiuser DOS AUX baud rate: 00h 50 baud 01h 62.5 baud 02h 75 baud 03h 110 baud 04h 134.5 baud 05h 150 baud 06h 200 baud 07h 300 baud 08h 600 baud 09h 1200 baud 0Ah 1800 baud 0Bh 2000 baud 0Ch 2400 baud 0Dh 3600 baud 0Eh 4800 baud 0Fh 7200 baud 10h 9600 baud 11h 19200 baud 12h 38400 baud 13h 56000 baud 14h 76800 baud 15h 115200 baud --------O-E0----CLB1------------------------- INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS CL = B1h DS:DX -> AUX device control block (see #2426) Return: AX = status 0000h successful control block updated FFFFh failed CX = error code SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h Format of DR Multiuser DOS AUX device control block: Offset Size Description (Table 2426) 00h BYTE function (00h get, 01h set) 01h BYTE DTR state (00h low, 01h high, FFh unknown/don't change) 02h BYTE RTS state (00h low, 01h high, FFh unknown/don't change) 03h BYTE DSR state (00h low, 01h high, FFh unknown/don't change) 04h BYTE CTS state (00h low, 01h high, FFh unknown/don't change) 05h BYTE DCD state (00h low, 01h high, FFh unknown/don't change) 06h BYTE RI state (00h inactive, 01h active, FFh unknown/don't change) --------O-E0----CLB2------------------------- INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE CL = B2h DX = duration of break in system ticks (0001h-FFFFh) Return: AX = status 0000h successful break signal completed FFFFh failed CX = error code Note: if the AUX device is currently owned by another process, this call will block until the device becomes available SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h --------O-E0----CLBD------------------------- INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION CL = BDh DX = delay in system ticks Return: after the delay elapses Notes: the length of a system tick is installation-dependent (typically 1/50 or 1/60 second); the length may be determined by reading the TICKSPERSEC value from the system data segment the actual delay before the process is rescheduled to run may be up to one tick longer than requested; the delay between rescheduling and actual execution cannot be predicted if higher-priority processes are awaiting a turn at the CPU SeeAlso: INT 15/AH=86h,INT 1A/AX=FF01h,INT 2F/AX=1224h,INT 62/AX=0096h --------g-E00000----------------------------- INT E0 - PCROBOTS v1.41 - "SWAPTASK" - END CURRENT ROBOT'S TURN AX = 0000h Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in which specially-written .COM or .EXE programs form robots battling each other in a user-defined arena --------g-E00001----------------------------- INT E0 - PCROBOTS v1.41 - "MOVEMENT" - START MOVING AX = 0001h BX = speed (0-maximum for robot) CX = direction (0-359 degrees) Notes: the speed will change to the specified value at the maximum acceleration the robot is capable of; if the robot is already moving faster than its maximum maneuverability speed, it will not be able to change direction this call also terminates the current robot's turn SeeAlso: AX=0000h,AX=0002h,AX=0003h --------g-E00002----------------------------- INT E0 - PCROBOTS v1.41 - "SCAN" - SCAN FOR OTHER ROBOTS IN THE GIVEN DIRECTION AX = 0002h BX = direction (0-359 degrees) CX = resolution (0-45 degrees) Return: AX = status FFFFh if nothing detected else robot ID (0-19) BX = range to detected robot Notes: the scan searches within CX degrees to either side of the specified direction the scanner will see right through walls, but shells will not pass through walls this call also terminates the current robot's turn SeeAlso: AX=0000h,AX=0001h,AX=0003h --------g-E00003----------------------------- INT E0 - PCROBOTS v1.41 - "SHOOT" - FIRE A SHELL AT ANOTHER ROBOT AX = 0003h BX = direction (0-359 degrees) CX = range (0-700) Return: AX = status (0000h not fired, else ID of shell fired) Notes: up to seven shells may be in flight for a robot at one time; the cannon takes 50 ticks to reload this call also terminates the current robot's turn SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=002Ch --------g-E00010----------------------------- INT E0 - PCROBOTS v1.41 - "GETXY" - GET ROBOT'S CURRENT POSITION AX = 0010h Return: BX = current X coordinate (0-999) CX = current Y coordinate (0-999) --------g-E00011----------------------------- INT E0 - PCROBOTS v1.41 - "TRANSMIT" - SEND DATA TO ANOTHER ROBOT AX = 0011h BX = target robot ID CX = data to be sent Return: AX = status (0000h data could not be sent, 0001h data sent) Note: this call costs one unit of battery power --------g-E00012----------------------------- INT E0 - PCROBOTS v1.41 - "RECEIVE" - GET DATA FROM OTHER ROBOTS AX = 0012h Return: AX = status 0000h no data available 0001h data retrieved BX = sender's ID CX = data Note: each robot has a 20-word receive FIFO; if the FIFO is full, other robots will be unable to send more data until some is read --------g-E00013----------------------------- INT E0 - PCROBOTS v1.41 - "DAMAGE" - DETERMINE HOW MUCH DAMAGE SUSTAINED AX = 0013h Return: BX = damage status Note: the initial value depends on configuration, but is typically 100; as the robot is damaged, it decreases --------g-E00014----------------------------- INT E0 - PCROBOTS v1.41 - "SPEED" - DETERMINE HOW FAST ROBOT IS MOVING AX = 0014h Return: BX = current speed --------g-E00015----------------------------- INT E0 - PCROBOTS v1.41 - "BATTERY" - DETERMINE HOW MUCH BATTERY POWER LEFT AX = 0015h Return: BX = current battery charge Note: the battery starts off with 1000 units of charge, and is constantly being charged by solar panels and constantly discharged by motion; the battery is charged at 4 units per turn and discharged at 0.1*speed units per turn. --------g-E00016----------------------------- INT E0 - PCROBOTS v1.41 - "TICKS" - DETERMINE HOW LONG SINCE GAME STARTED AX = 0016h Return: BX:CX = number of game ticks elapsed (not related to real time) --------g-E00017----------------------------- INT E0 - PCROBOTS v1.41 - "L_SIN" - GET SCALED SINE OF AN ANGLE AX = 0017h BX = angle (0-359 degrees) Return: BX:CX = 100000*sine of angle SeeAlso: AX=0018h,AX=0019h,AX=001Ah,AX=001Bh --------g-E00018----------------------------- INT E0 - PCROBOTS v1.41 - "L_COS" - GET SCALED COSINE OF AN ANGLE AX = 0018h BX = angle (0-359 degrees) Return: BX:CX = 100000*cosine of angle SeeAlso: AX=0017h,AX=0019h,AX=001Ah --------g-E00019----------------------------- INT E0 - PCROBOTS v1.41 - "L_TAN" - GET SCALED TANGENT OF AN ANGLE AX = 0019h BX = angle (0-359 degrees) Return: BX:CX = 100000*tangent of angle SeeAlso: AX=0017h,AX=0018h,AX=001Ah --------g-E0001A----------------------------- INT E0 - PCROBOTS v1.41 - "L_ATAN" - GET ANGLE GIVEN SCALED TANGENT AX = 001Ah BX:CX = 100000*tangent of an angle Return: AX = angle (-90 to +90 degrees) SeeAlso: AX=0017h,AX=0018h,AX=0019h --------g-E0001B----------------------------- INT E0 - PCROBOTS v1.41 - "SQRT" - DETERMINE SQUARE ROOT OF A NUMBER AX = 001Bh BX:CX = value Return: BX:CX = square root SeeAlso: AX=0017h --------g-E0001C----------------------------- INT E0 - PCROBOTS v1.41 - "SET_PATTERN" - SPECIFY ROBOT'S DISPLAY IMAGE AX = 001Ch BX:CX -> pattern array Note: the pattern array consists of five bytes, the low five bits of each specifying the bit pattern for one line of the robot's screen display --------g-E0001D----------------------------- INT E0 - PCROBOTS v1.41 - "DEBUG_FLAG" - SET/CLEAR MARKERS NEXT TO ROBOT'S NAME AX = 001Dh BX = flag number (0 or 1) CX = new value (0 reset, 1 set) Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in which specially-written .COM or .EXE programs form robots battling each other in a user-defined arena Note: the two flag markers may be used for any purpose, typically for debugging to provide a visual display of progress --------g-E0001E----------------------------- INT E0 - PCROBOTS v1.41 - "BUY_ARMOUR" - BUY OR SELL ARMOR FOR ROBOT AX = 001Eh BX = number of armor units to buy (negative to sell) Note: each armor unit is worth 50 battery units; the robot's armor rating will not go above its initial rating, so attempts to purchase more will waste battery units SeeAlso: AX=001Fh --------g-E0001F----------------------------- INT E0 - PCROBOTS v1.41 - "BUY_SHELLS" - BUY ADDITIONAL CANNON SHELLS AX = 001Fh BX = number of shells to buy Note: each shell costs ten battery units SeeAlso: AX=001Eh,AX=0020h --------g-E00020----------------------------- INT E0 - PCROBOTS v1.41 - "SHELLS LEFT" - DETERMINE HOW MANY SHELLS ROBOT HAS AX = 0020h Return: BX = number of shells remaining SeeAlso: AX=001Fh --------g-E00021----------------------------- INT E0 - PCROBOTS v1.41 - "GET LOCAL MAP" AX = 0021h BX:CX -> 81-byte buffer for map Return: buffer filled with 9x9 area of map centered on robot's position (Table 2427) Values for PCROBOTS map squares: 2Eh '.' empty square 44h 'D' damaging trap 52h 'R' refueling point 58h 'X' wall --------g-E00022----------------------------- INT E0 - PCROBOTS v1.41 - "INVISIBILITY" - CONTROL ROBOT'S INVISIBILITY DEVICE AX = 0022h BX = new state (0000h become visible, 0001h become invisible) Notes: this function has no effect if the robot is not capable of invisibility the robot can only stay invisible for 100 turns, after which it will automatically become visible; it must also be remain visible for as many turns as it was invisible before it can turn invisible again SeeAlso: AX=0024h,AX=0080h --------g-E00023----------------------------- INT E0 - PCROBOTS v1.41 - "GET_SHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL AX = 0023h Return: BX = status of last shell to land 0000h missed completely 0001h hit a wall 0002h hit a robot within 50-square radius 0003h hit a robot within 25-square radius 0004h hit a robot within 5-square radius --------g-E00024----------------------------- INT E0 - PCROBOTS v1.41 - "IS_INVISIBLE" - DETERMINE WHETHER ROBOT IS INVISIBLE AX = 0024h Return: BX = visibility (0000h visible, 0001h invisible) SeeAlso: AX=0022h,AX=0080h --------g-E00025----------------------------- INT E0 - PCROBOTS v1.41 - "L_ATAN2" - GET ARCTANGENT AX = 0025h BX = Y CX = X Return: AX = angle (arctangent of Y/X) --------g-E00026----------------------------- INT E0 - PCROBOTS v1.41 - "GET_ROBOT_ID" - DETERMINE CURRENT ROBOT'S IDENTIFIER AX = 0026h Return: AX = robot ID --------g-E00027----------------------------- INT E0 - PCROBOTS v1.41 - "REGISTER_IFF" - REGISTER FRIEND/FOE IDENT STRING AX = 0027h BX:CX = ASCIZ IFF string Note: the IFF string may only be set once SeeAlso: AX=0028h,AX=0029h --------g-E00028----------------------------- INT E0 - PCROBOTS v1.41 - "CHECK_IFF" - QUERY FRIEND/FOE IDENTIFICATION STRING AX = 0028h BX = robot ID to test Return: AX = status 0000h IFF strings match 0001h IFF strings differ or invalid robot ID SeeAlso: AX=0027h --------g-E00029----------------------------- INT E0 - PCROBOTS v1.41 - "REGISTER_NAME" - SPECIFY ROBOT'S NAME AX = 0029h BX:CX -> ASCIZ name string Note: the name may only be set once SeeAlso: AX=0027h,AX=002Ah --------g-E0002A----------------------------- INT E0 - PCROBOTS v1.41 - "FIND_NAME" - SEARCH FOR ROBOT WITH GIVEN NAME AX = 002Ah BX:CX -> ASCIZ name string DX = first ID to check Return: AX = robot ID or FFFFh if no robot with specified name SeeAlso: AX=0028h,AX=0029h,AX=002Bh --------g-E0002B----------------------------- INT E0 - PCROBOTS v1.41 - "GET_TEAM_ID" - DETERMINE TEAM MEMBERSHIP OF ROBOT AX = 002Bh Return: AX = team ID (0-2) or FFFFh if 'loner' SeeAlso: AX=0029h --------g-E0002C----------------------------- INT E0 - PCROBOTS v1.41 - "GET_ASHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL AX = 002Ch BX = shell ID Return: AX = status 0000h missed completely 0001h hit a wall 0002h hit a robot within a 50-square radius 0003h hit a robot within a 25-square radius 0004h hit a robot within a 5-square radius 0005h shell not known (too old or not yet fired) 0006h shell still in flight SeeAlso: AX=0003h --------g-E0002D----------------------------- INT E0 - PCROBOTS v1.41 - "REGISTER_X" - SELECT AUTOMATIC X POSITION UPDATES AX = 002Dh BX:CX -> X word variable Return: AX = status (0001h OK, 0000h problem with address) Note: after this call, PCROBOTS will automatically update the specified word whenever the robot moves SeeAlso: AX=002Eh --------g-E0002E----------------------------- INT E0 - PCROBOTS v1.41 - "REGISTER_Y" - SELECT AUTOMATIC Y POSITION UPDATES AX = 002Eh BX:CX -> Y word variable Return: AX = status (0001h OK, 0000h problem with address) Note: after this call, PCROBOTS will automatically update the specified word whenever the robot moves SeeAlso: AX=002Dh --------g-E00080----------------------------- INT E0 - PCROBOTS v1.41 - "CONFIGURE" - CUSTOMIZE ROBOT AX = 0080h BX = basic configuration (see #2428) CX = advanced configuration (see #2429) Return: AX = status (0001h OK, 0000h not first call in program) Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in which specially-written .COM or .EXE programs form robots battling each other in a user-defined arena Notes: a maximum of ten points may be allocated to the robot; if you attempt to allocate more, some items will be given a value of zero. If this function is not called, each attribute is set to the default value of 2. if the invisibility option is chosen, the robot will start with only 900 cannon shells instead of the default 1000 Bitfields for PCROBOTS basic configuration: Bit(s) Description (Table 2428) 0-3 maximum speed (0-4 = 50,75,100,150,200) 4-7 maneuverability (0-4 = 20%,35%,50%,75%,100%) 8-11 cannon range (0-4 = 300,500,700,1000,1500) 12-15 robot armor (0-4 = 50,75,100,150,200) Bitfields for PCROBOTS advanced configuration: Bit(s) Description (Table 2429) 0-2 robot acceleration (0-4 = 5,7,10,15,20) 3 capable of invisibility --------r-E1--------------------------------- INT E1 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------N-E1--------------------------------- INT E1 - PC Cluster Disk Server Information (NOT A VECTOR!) Desc: points at a data table SeeAlso: INT E2 --------r-E2--------------------------------- INT E2 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------N-E2--------------------------------- INT E2 - PC Cluster Program - RELOCATED INT 1C SeeAlso: INT 1C --------r-E3--------------------------------- INT E3 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-E40005----------------------------- INT E4 - Logitech Modula v2.0 - MonitorEntry AX = 0005h BX = priority SeeAlso: AX=0006h --------r-E40006----------------------------- INT E4 - Logitech Modula v2.0 - MonitorExit AX = 0006h SeeAlso: AX=0005h --------r-E4--------------------------------- INT E4 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-E5--------------------------------- INT E5 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-E6--------------------------------- INT E6 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-E7--------------------------------- INT E7 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-E8--------------------------------- INT E8 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination --------r-E9--------------------------------- INT E9 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-EA--------------------------------- INT EA - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-EB--------------------------------- INT EB - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------r-EC--------------------------------- INT EC - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination --------N-EC--------------------------------- INT EC - used by Alloy NTNX --------r-EC--------------------------------- INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR AX = function number (0000h to 0140h) STACK: DWORD address to return to any arguments required by function Return: STACK: return address popped, but otherwise unchanged Desc: this is the interface from applications to the runtime system by Exact Automatisering B.V. of the Netherlands. By using this interrupt, it can provide DLL-style capabilities under MS-DOS. Note: the interrupt handler removes the return address and flags placed on the stack by the INT EC, then jumps to the appropriate function --------r-ED--------------------------------- INT ED - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination INT 80 through INT ED are modified but not restored by Direct Access v4.0, and may be left dangling by other programs written with the same version of compiled BASIC SeeAlso: INT EC"BASIC",INT EE"BASIC" --------r-EE--------------------------------- INT EE - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT ED"BASIC",INT EE"BASIC" --------r-EF--------------------------------- INT EF - BASIC - ORIGINAL INT 09 VECTOR Note: BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT EE"BASIC",INT F0"BASIC" --------O-EF----CX0473----------------------- INT EF - GEM - INTERFACE CX = 0473h DS:DX -> GEM parameter block --------r-F0--------------------------------- INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR Note: BASICA.COM does not restore vector on termination SeeAlso: INT EF"BASIC" --------*-F1--------------------------------- INT F1 - reserved for user interrupt --------s-F1--------------------------------- INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH DS:BX -> '$'-terminated text string Program: SPEECH.COM is a resident text-to-speech converter by Douglas Sisco --------s-F1--------------------------------- INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM SeeAlso: INT F2"SPEECH" --------U-F1--------------------------------- INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS Return: AX:BX -> data area Program: AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1 and COM2 in software Note: The installation check consists of testing for the following signature immediately preceding the interrupt handler: "JWBtvv" where 't' is either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit version number Index: installation check;AQUEDUCT|installation check;PIPELINE --------N-F1--------------------------------- INT F1 - NetWare Remote Boot - INSTALLATION CHECK (NOT A VECTOR!) Note: if this vector contains the value 5774654Eh ("NetW"), the remote boot BIOS extension is active, and access to the floppy disk is redirected to an image file in the server's SYS:LOGIN directory --------v-F1--------------------------------- INT F1 - VIRUS - "Violetta" - ??? Note: used but not chained by virus SeeAlso: INT E0"VIRUS",INT FF"VIRUS" --------*-F2--------------------------------- INT F2 - reserved for user interrupt --------s-F2--------------------------------- INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM SeeAlso: INT F1"SPEECH" ----------F2--------------------------------- INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API AH = function number (see #2430) ??? Return: ??? Program: ImageCapture is a product of International Computers SeeAlso: INT F3"ICCTSR" (Table 2430) Values for ImageCapture function: 01h power up 02h power down 03h set controls 04h capture image 05h display image 06h read file 07h write file 08h write array 09h read pixel 0Ah write pixel 0Bh check if VGA present 0Ch set video mode 0Dh check for keystroke 0Eh delay --------*-F3--------------------------------- INT F3 - reserved for user interrupt --------s-F3--------------------------------- INT F3 - SoundBlaster - POINTER TO ECHO VALUE Note: this is not a vector, but a pointer to a DWORD containing the echo value selected with SET-ECHO.EXE SeeAlso: INT 2F/AX=FBFBh ----------F3--------------------------------- INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR Program: ImageCapture is a product of International Computers SeeAlso: INT F2"ICCTSR" --------*-F4--------------------------------- INT F4 - reserved for user interrupt --------T-F4--------------------------------- INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK SeeAlso: INT 21/AH=EEh"DoubleDOS",INT FE"DoubleDOS" --------*-F5--------------------------------- INT F5 - reserved for user interrupt --------T-F5--------------------------------- INT F5 - DoubleDOS - ??? --------*-F6--------------------------------- INT F6 - reserved for user interrupt --------T-F6--------------------------------- INT F6 - DoubleDOS - ??? --------*-F7--------------------------------- INT F7 - reserved for user interrupt --------T-F7--------------------------------- INT F7 - DoubleDOS - ??? ----------F700------------------------------- INT F7 - FSBBS 2.0 - CONFIGURATION RECORD AH = 00h AL = function 00h get configuration record Return: DS:DX -> configuration record 01h set configuration record 02h get path for option DS:DX -> option name Return: DS:DX -> path 03h determine whether configuration record set Return: AX = status 0000h set 0001h not yet set 04h get link state Return: AX = state 0000h unlinked 0001h linked Notes: this information is preliminary and still subject to change all of the INT F7 calls for FSBBS are used for interprogram communication between the BBS kernel and the programs it spawns SeeAlso: AH=01h ----------F701------------------------------- INT F7 - FSBBS 2.0 - USER RECORD AH = 01h AL = function 00h get user record for user currently online Return: DS:DX -> user record 01h set user record DS:DX -> user record SeeAlso: AH=00h,AH=02h ----------F702------------------------------- INT F7 - FSBBS 2.0 - GET ACCOUNT NAME AH = 02h Return: DS:DX -> 8-character blank-padded account name SeeAlso: AH=01h ----------F703------------------------------- INT F7 - FSBBS 2.0 - TERMINAL NUMBER AH = 03h AL = function 00h get terminal index number Return: DX = index number 01h set terminal index number DX = terminal index ----------F704------------------------------- INT F7 - FSBBS 2.0 - PASSDATA BUFFER AH = 04h AL = function 00h get PassData buffer contents DS:DX -> buffer for PassData contents 01h set PassData contents DS:DX -> buffer containing new PassData CH = length of data in buffer ----------F705------------------------------- INT F7 - FSBBS 2.0 - TIMER FUNCTIONS AH = 05h AL = function 00h get time remaining Return: DX = number of minutes remaining 01h get current time Return: DS:DX -> 8-character time string 02h increment time DX = number of additional minutes 03h decrement time DX = number of minutes SeeAlso: AH=06h ----------F706------------------------------- INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY AH = 06h AL = function 00h determine whether function is available DX = index of function 01h set function availability DX = index of function ??? SeeAlso: AH=05h,AH=07h ----------F707------------------------------- INT F7 - FSBBS 2.0 - DUMP FUNCTIONS AH = 07h AL = function 00h get current dump mode Return: DL = mode 01h set dump mode DL = mode SeeAlso: AH=06h --------*-F8--------------------------------- INT F8 - reserved for user interrupt --------h-F8--------------------------------- INT F8 - TANDY??? - 100 HZ INTERRUPT Note: this vector is not used on the Tandy 1000TL SeeAlso: INT FA"USART" --------T-F8--------------------------------- INT F8 - DoubleDOS - ??? --------*-F9--------------------------------- INT F9 - reserved for user interrupt --------T-F9--------------------------------- INT F9 - DoubleDOS - ??? --------*-FA--------------------------------- INT FA - reserved for user interrupt --------h-FA--------------------------------- INT FA - TANDY??? - SERIAL PORT USART INTERRUPT Note: this vector is not used on the Tandy 1000TL SeeAlso: INT F8"100 HZ",INT FB"USART" --------T-FA--------------------------------- INT FA - DoubleDOS - TURN OFF TIMESHARING SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS" --------*-FB--------------------------------- INT FB - reserved for user interrupt --------h-FB--------------------------------- INT FB - TANDY??? - KEYBOARD USART RECEIVE INTERRUPT SeeAlso: INT FA"USART" --------T-FB--------------------------------- INT FB - DoubleDOS - TURN ON TIMESHARING SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS" --------*-FC--------------------------------- INT FC - reserved for user interrupt --------T-FC--------------------------------- INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS Return: ES = segment of display buffer Desc: determine the address of the virtual screen to which the program should write instead of the actual video memory, so that the multitasked programs do not interfere with each other's output Note: the display buffer may be moved if multitasking is enabled SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS" --------*-FD--------------------------------- INT FD - reserved for user interrupt --------T-FD--------------------------------- INT FD - DoubleDOS - ??? --------S-FD--------------------------------- INT FD - TFPCX - INSTALLATION CHECK AH = function (see separate entries below) Program: TFPCX is an interface between modem and terminal program for packet- radio communications Notes: the installation check consists of testing for the string "N5NX" three bytes beyond the interrupt handler; INT FD is the default, but may be changed, so the full installation check consists of scanning for the signature TFPCX returns AX=FFFFh on any unsupported function call SeeAlso: AH=01h,AH=03h,AH=FEh --------S-FD01------------------------------- INT FD - TFPCX - TEST FOR CHARACTER WAITING AH = 01h Return: AX = status 0000h no characters waiting 0001h character available for input Program: TFPCX is an interface between modem and terminal program for packet- radio communications SeeAlso: AH=02h --------S-FD02------------------------------- INT FD - TFPCX - GET CHARACTER AH = 02h Return: AL = character Notes: this call is only allowed if AH=01h indicated that a character is available all available characters should be read before sending any additional characters SeeAlso: AH=01h,AH=03h --------S-FD03------------------------------- INT FD - TFPCX - OUTPUT CHARACTER AH = 03h AL = character to send SeeAlso: AH=02h --------S-FDFE------------------------------- INT FD - TFPCX - GET VERSION AH = FEh Return: AH = major version AL = minor version Program: TFPCX is an interface between modem and terminal program for packet- radio communications SeeAlso: AH=01h,AH=03h --------B-FE--------------------------------- INT FE - AT/XT286/PS50+ - destroyed by return from protected mode Note: the ROM BIOS uses 0030h:0100h as the initial stack on startup, which is the last fourth of the interrupt vector table. If the processor is returned to real mode via a hardware reset (the only possibility on an 80286, though there are a number of ways of generating one), then the BIOS startup code stacks three words on its scratch stack before determining that a return to real mode has been requested. As a result, INT FE and INT FF are corrupted. SeeAlso: INT FF"XT286" --------T-FE--------------------------------- INT FE - DoubleDOS - GIVE UP TIME AL = number of 55ms time slices to give away Return: after other program (if active) has run SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS" --------G-FE--------------------------------- INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER SeeAlso: INT 3F --------B-FF--------------------------------- INT FF - AT/XT286/PS50+ - destroyed by return from protected mode Note: (see INT FE"XT286") SeeAlso: INT FE"XT286" --------b-FF--------------------------------- INT FF - Z100 - WARM BOOT SeeAlso: INT 40"Z100" --------Q-FF--------------------------------- INT FF U - QEMM-386.SYS v6.0+ - internal Notes: requires that a byte in the conventional-memory stub be set to the desired function number (00h through 0Ch) (Table 2431) Values for QEMM internal functions: 00h reflect back to Virtual86-mode interrupt handler (default) 01h ??? 02h access DR7??? 03h QPI upcall (see INT 67/AH=3Fh) 04h ??? 05h ??? 06h INT 15/AH=87h 07h EMS services (see INT 67/AH=40h,INT 67/AH=5Dh) 08h ??? 09h QEMM exception handler 0Ah XMS services (see INT 2F/AX=4310h) 0Bh Virtual DMA Services (see INT 4B/AX=8102h) 0Ch ??? --------v-FF--------------------------------- INT FF - VIRUS - "Violetta" - ??? Note: used but not chained by virus SeeAlso: INT E0"VIRUS",INT F1"VIRUS" --------!---Admin---------------------------- Highest Table Number = 2431 --------!---FILELIST------------------------- Please redistribute all of the files comprising the interrupt list (listed at the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a trio of archives named INTER43A through INTER43C (preferably the original authenticated PKZIP archives), and the utility programs in a fourth archive called INTER43D.ZIP This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994 Ralf Brown --------!---CONTACT_INFO--------------------- Internet: ralf@telerama.lm.com UUCP: {uunet,harvard}!telerama.lm.com!ralf FIDO: Ralf Brown 1:129/26.1 or post a message to me in the DR_DEBUG echo (I probably won't see it unless you address it to me) CIS: >INTERNET:ralf@telerama.lm.com