provides subfunctions such as turning off the machine, accessing internal variables, and mapping memory cards
SeeAlso: INT 60“Atari”
SeeAlso: INT 0F“HP 95LX”,INT 60“HP 95LX”
SeeAlso: INT 61“JPI”
Note: this vector stores the second four bytes of the parameter table for
hard disk 0
SeeAlso: INT 60“Adaptec”,INT 62“Adaptec”,INT 63“Adaptec” ———-61——————————— INT 61 - Sangoma CCIP (CCPOP 3270 resident module) INTERFACE
BX:DX -> control block
SeeAlso: INT 67“Sangoma” ———-61——————————— INT 61 - VIRUS - “SEMTEX”/“Screen Trasher” - INT 21h SUBSTITUTE Note: the virus copies the original INT 21h vector into INT 61h SeeAlso: INT 21h,INT 60“VIRUS”,INT 6B“VIRUS” ———-61——————————— INT 61 - FTP Software PC/TCP - TCP/IP TSR System Call interface
AH = system call number (see separate entries below)
Return: CF clear if successful
CF set on error AL = basic error 04h invalid handle??? 12h invalid subfunction 18h invalid system call 1Bh kernel busy, try again later AH = suberror number
Notes: the installation check consists of testing for the signature “TCPTSR”
three bytes beyond the start of the interrupt handler INT 61 is the default; PC/TCP v2.05 may be configured to use any interrupt from 20h through E0h
BUG: the SLIP kernel for v2.05 bounds-checks the wrong register, so values
greater than 54h in AH may crash the system. Other kernels may have this bug as well.
SeeAlso: INT 61/AH=00h“PC/TCP”,INT 61/AH=2Ah,INT 61/AH=54h ———-6100——————————- INT 61 U - PC/TCP kernel v2.05 - GET DEBUG INFORMATION
AH = 00h DS:SI -> 216-byte buffer for network debugging information (see below)
Return: CF clear
AX = 0000h buffer filled
SeeAlso: INT 61“PC/TCP”,INT 61/AH=2Ah“PC/TCP”
Format of network debugging information: Offset Size Description 00h DWORD number of interrupts 04h DWORD receive buffer low-water mark 08h DWORD transmit buffer low-water mark 0Ch DWORD number of packets received 10h DWORD number of packets transmitted 14h DWORD total receive errors 18h DWORD total transmit errors 1Ch 4 BYTEs ??? 20h DWORD receive resets 24h DWORD transmit resets 28h DWORD number of “runts” received 2Ch DWORD number of alignment errors on received packets 30h DWORD number of CRC errors on received packets 34h DWORD number of parity errors on received packets 38h DWORD number of receive overflow errors 3Ch DWORD number of oversized packets received 40h DWORD number of packets lost due to lack of buffers 44h DWORD receive timeouts 48h 32 BYTEs ??? 68h DWORD number of transmit collisions 6Ch DWORD number of transmit timeouts 70h DWORD number of transmit underflows 74h DWORD number of lost “crs” on transmit 78h DWORD number of times heartbeat failed on transmit 7Ch 24 BYTEs ??? 94h WORD free packet buffers 96h WORD total packet buffers 98h WORD minimum number of packet buffers free since kernel started 9Ah 24 BYTEs ??? B2h DWORD pointer to TCP connection list??? B6h DWORD pointer to IP routing table??? BAh 30 BYTEs ??? ———-610000—————————– INT 61 - OPTIMA 1024 VGA-Sync - ZOOM DISPLAY
AX = 0000h BX = zoom factor (0-7)
Notes: zooms the display based on the given zoom factor
INT 61h is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh
SeeAlso: INT 16/AH=FFh“OPTIMA”,INT 61/AX=0001h“OPTIMA”,INT 61/AX=0002h“OPTIMA” SeeAlso: INT 61/AX=0005h“OPTIMA” ———-610001—————————– INT 61 - Banyan VINES - “Sosock” - OPEN COMMUNICATIONS SOCKET
AX = 0001h DS:DX -> communications control block (function 0001h)
Return: AX = status
0000h successful 0001h service not installed 0002h invalid service ID 0098h resource already in use 009Eh address family does not exist 009Fh socket type does not exist 00A0h protocol does not exist 00A1h no more sockets available 00A2h no more buffer space available
Note: BANYAN can use any interrupt from 60h through 66h. The Banyan
interrupt handler is identified by the string "BANV" in the four bytes immediately preceding the interrupt handler
Format of control block: Offset Size Description 00h WORD 0001h 02h WORD pointer to argument block 04h WORD error return code 06h 4 BYTEs reserved
Format of argument block: Offset Size Description 00h WORD pointer to 2-byte buffer for socket identifier 02h WORD address family
0003h Banyan
04h WORD socket type
in address family 0003h 0001h IPC socket 0002h SPP socket
06h WORD protocol number
FFFFh default
08h WORD pointer to 16-byte buffer for socket address 0Ah WORD local port number
0000h if service should assign transient port number 0001h to 01FFh well-known port number (assigned by Banyan)
Format of IPC port: Offset Size Description 00h WORD address family (always 0003h for Banyan ports) 04h 4 BYTEs network number (server's serial number) 06h WORD subnet number (0001h = server, 8000h-FFFEh = PC) 08h WORD port ID (0001h-01FFh for “well-known” ports) 0Ah BYTE hop count 0Bh 5 BYTEs filler ———-610001—————————– INT 61 - Banyan VINES - “Sosend” - INITIATE OUTPUT EVENT
AX = 0001h DS:DX -> communications control block (function 0002h)
Return: AX = status
0000h successful 0001h service not installed 0002h invalid service ID 0003h-000Ah reserved for BANV interface errors 0097h invalid socket identifier 009Bh destination node unreachable 009Ch message overflow 009Dh destination socket nonexistent 00A2h no more buffer space 00A3h timeout 00B1h resource disconnect
Note: BANYAN can use any interrupt from 60h through 66h. The Banyan
interrupt handler is identified by the string "BANV" in the four bytes immediately preceding the interrupt handler
Format of control block: Offset Size Description 00h WORD 0002h 02h WORD pointer to argument block (see below) 04h WORD error return code
0000h successful 0097h invalid socket ID 00A2h no more buffer space 00A3h timeout event 00A5h resource not available 00A6h internal communication failure 00B1h resource disconnect
06h 4 BYTEs reserved
Format of argument block: Offset Size Description 00h WORD routine metric 02h WORD error return code 04h WORD socket identifier 06h WORD pointer to send buffer 08h WORD length of send buffer 0Ah WORD flags
bit 0: async request 1: reliable message 3: end of user message received 4: vectored request (if set, send buffer contains buffer descriptors) 5: connection-specific receive 6: change to connection-specific receive mode
0Ch 16 BYTEs socket address (see below) 1Ch WORD timeout value in multiples of 200ms 1Eh WORD connection identifier 20h WORD type of request
0001h send message 0002h establish a virtual connection 0003h terminate a virtual connection
Format of buffer descriptor: Offset Size Description 00h WORD data segment 02h WORD buffer pointer 04h WORD buffer length 06h WORD character count
Format of socket address for unreliable datagrams: Offset Size Description 00h WORD 0003h address family 02h DWORD FFFFFFFFh network number 06h WORD FFFFh subnet number 08h WORD local port number 0Ah BYTE 00h-0Fh hop count 0Bh 5 BYTEs 0000h filler ———-610001—————————– INT 61 - Banyan VINES - “Sorec” - RECEIVE INPUT EVENT NOTIFICATION
AX = 0001h DS:DX -> communications control block (function 0003h)
Return: AX = status
0000h successful 0001h service not installed 0002h invalid service ID 0003h-000Ah reserved for BANV interface errors 0097h invalid socket identifier 00A2h no more buffer space 00A3h timeout
Note: BANYAN can use any interrupt from 60h through 66h. The Banyan
interrupt handler is identified by the string "BANV" in the four bytes immediately preceding the interrupt handler
Format of control block: Offset Size Description 00h WORD 0003h 02h WORD pointer to argument block (see below) 04h WORD error return code
0000h successful 0097h invalid socket ID 00A2h no more buffer space 00A3h timeout event 00A5h resource not available 00A6h internal communication failure 00B1h resource disconnect
06h 4 BYTEs reserved
Format of argument block: Offset Size Description 00h WORD character count 02h WORD error return code 04h WORD socket identifier 06h WORD pointer to receive buffer 08h WORD length of receive buffer 0Ah WORD flags
bit 0: async request 2: flush receive buffer on overflow 3: end of user message received 4: vectored request (if set, receive buffer contains buffer descriptors) 5: connection-specific receive 6: change to connection-specific receive mode
0Ch 16 BYTEs socket address 1Ch WORD timeout value in multiples of 200ms 1Eh WORD connection identifier 20h WORD type of response
0001h message received 0002h virtual connection established 0003h virtual connection terminated
Format of buffer descriptor: Offset Size Description 00h WORD data segment 02h WORD buffer pointer 04h WORD buffer length 06h WORD character count ———-610001—————————– INT 61 - Banyan VINES - “Soclose” - CLOSE A SOCKET
AX = 0001h DS:DX -> communications control block (function 0004h)
Return: AX = status
0000h successful 0001h service not installed 0002h invalid service ID 0003h-000Ah reserved for BANV interface errors 0097h invalid socket identifier
Note: BANYAN can use any interrupt from 60h through 66h. The Banyan
interrupt handler is identified by the string "BANV" in the four bytes immediately preceding the interrupt handler
Format of control block: Offset Size Description 00h WORD 0004h 02h WORD pointer to argument block (see below) 04h WORD error return code 06h 4 BYTEs reserved
Format of argument block: Offset Size Description 00h WORD socket identifier ———-610001—————————– INT 61 - Banyan VINES - “Sowait” - WAIT FOR ASYNCHRONOUS EVENT COMPLETION
AX = 0001h DS:DX -> communications control block (function 0005h)
Return: AX = status
0000h successful 0001h service not installed 0002h invalid service ID 0003h-000Ah reserved for BANV interface errors 00A2h no more buffer space available 00A3h timeout event
Notes: BANYAN can use any interrupt from 60h through 66h. The Banyan
interrupt handler is identified by the string "BANV" in the four bytes immediately preceding the interrupt handler returns results for all asynchronous operations invoked from the data segment used for this call
Format of control block: Offset Size Description 00h WORD 0005h 02h WORD pointer to argument block (see below) 04h WORD error return code 06h 4 BYTEs reserved
Format of argument block: Offset Size Description 00h WORD pointer to WORD event pointer 02h WORD timeout in multiples of 200ms, FFFFh = infinite ———-610001—————————– INT 61 - Banyan VINES - “Sosession” - REGISTER APPLICATION WITH COMM SERVICE
AX = 0001h DS:DX -> communications control block (function 0008h)
Return: AX = status
0000h successful 00A2h no more buffer space available
Note: BANYAN can use any interrupt from 60h through 66h (default 61h). The
Banyan interrupt handler is identified by the string "BANV" in the four bytes immediately preceding the interrupt handler
Format of control block: Offset Size Description 00h WORD 0008h 02h WORD process type
0001h transient process 0002h resident process
04h WORD error return code 06h 4 BYTEs reserved ———-610001—————————– INT 61 - Banyan VINES - “Soint” - SET USER COMPLETION FUNCTION
AX = 0001h DS:DX -> communications control block (function 000Bh)
Return: AX = status
0000h successful 0001h service not installed 0002h invalid service ID 0003h-000Ah reserved for BANV interface errors 00A2h no more buffer space available
Notes: BANYAN can use any interrupt from 60h through 66h. The Banyan
interrupt handler is identified by the string "BANV" in the four bytes immediately preceding the interrupt handler FAR user function is invoked with SS,DS, and ES set to segment of control block, and with the stack containing DWORD return address WORD argument pointer (sosend or sorec argument block) WORD error return code 0000h argument pointer is valid 00A3h timeout
Format of control block: Offset Size Description 00h WORD 000Bh 02h WORD pointer to argument block (see below) 04h WORD error return code 06h 2 BYTEs reserved 08h WORD user CS register
Format of argument block: Offset Size Description 00h WORD pointer to user interrupt function 02h WORD pointer to user stack 04h WORD initial timeout value in multiples of 200ms, FFFFh = infinite ———-610001—————————– INT 61 - OPTIMA 1024 VGA-Sync - CENTER ZOOM WINDOW
AX = 0001h BX = X coordinate to center CX = Y coordinate to center
Notes: Positions the zoom window such that the specified window-relative
coordinates appear as close as possible to the center of the display. Useful for scrolling and panning. INT 61h is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh
SeeAlso: INT 16/AH=FFh“OPTIMA”,INT 61/AX=0000h“OPTIMA”,INT 61/AX=0002h“OPTIMA” SeeAlso: INT 61/AX=0005h“OPTIMA” ———-610002—————————– INT 61 - Banyan VINES - 3270 INTERFACE
AX = 0002h BH = function 00h "pi2reset" reset 3270/SNA or 3270/BSC driver 02h "pi2bsc" (3270/BSC only) 03h "pi2get" get information stored in 3270 resident driver 04h "pi2put" store information in 3270 resident driver 05h "pi2gcur" get current screen position 07h "pi2sdat" send data keystroke 08h "pi2scom" send command keystroke 0Ah "pi2field" get field info for arbitrary screen positions 0Fh "pi2stat" get logical unit/device status 12h "pi2nlus" determine logical unit/device assignment 13h "pi2gate" specifies comm port address to gateway service 14h "pi2attach" attach a logical unit/device 15h "pi2sdev" save logical unit/device info in resident driver (not supported in >3.0) 16h "pi2gdev" get device information (not supported in >3.0) 17h "pi2luinfo" get info about specific logical unit/device 18h "pi2gerr" get finer error detail 19h "pi2dhold" (3270/SNA only) holds a 3270 device 1Ah "pi2shut" release memory-resident module 1Ch "pi2sprof" save profile info in res driver (not supp in >3.0) 1Dh "pi2gprof" get prevsly stored profile info (not supp in >3.0) DS:CX -> argument block (except BH=00h,1Ah)
Return: AX = status
0000h successful 000Bh invalid parameter or data does not fit data area 000Ch another code path currently active in resident driver 000Dh operation currently not allowed 0032h encountered connection disconnect error 0033h encountered "sosend" completion error 0034h encountered "sosend" communication error 0035h attach request refused. extended error info via "pi2gerr": 01h resource unavailable 02h invalid type 03h version mismatch 04h invalid logical unit number 05h error during ARL processing 06h no access for user 0071h encountered "sosock" error 0072h encountered unrecognizable error 0073h encountered "sowait" error (extended info via "pi2gerr") 0074h encountered invalid type-of-request on "sowait" 0075h encountered "sorec" error (extended info via "pi2gerr") 0076h encountered "sorec" completion error (ext info via "pi2gerr") 0077h encountered connection request 0078h encountered unrecognizable data 0079h encountered unknown connection ID (ext info via "pi2gerr")
Notes: Either 3270/SNA or 3270/BSC interface may use AX=0002h, depending on
which is loaded first. The other interface will use AX=000Ah Status codes greater than 63h indicate an inconsistency in the 3270/SNA or 3270/BSC resident driver, which must be reloaded by the user
Format of argument block for BH=03h,04h: Offset Size Description 00h WORD size of data area (max 256) 02h N BYTEs data area
Format of argument block for BH=05h: Offset Size Description 00h WORD logical unit/device number 02h WORD pointer to WORD buffer for cursor index 04h WORD pointer to BYTE buffer for current field attribute
Format of argument block for BH=07h: Offset Size Description 00h WORD logical unit/device number 02h WORD ASCII data byte 04h WORD pointer to WORD count of characters which will need updating
Format of argument block for BH=08h: Offset Size Description 00h WORD logical unit/device number 02h WORD keystroke
0000h Enter 0001h Clear 0002h PA1 0003h PA2 0004h PA3 0005h PF1 ... 001Ch PF24 001Dh CSELECT (cursor select) 001Eh Insert 001Fh Delete 0020h EOField 0021h EINPUT (erase input) 0022h Reset 0023h Attention 0024h SysReq 0025h Duplicate 0026h Fieldmark 0027h Home 0028h NextLine 0029h Tab 002Ah BackTab 002Bh cursor up 002Ch cursor down 002Dh cursor right 002Eh cursor left 002Fh double cursor right 0030h double cursor left 0031h PRINT 0032h CANCEL 0033h Backspace
Format of argument block for BH=0Ah: Offset Size Description 00h WORD logical unit/device number 02h WORD screen index 04h WORD pointer to WORD buffer for field length 06h WORD pointer to WORD buffer for offset in screen of field start
Format of argument block for BH=0Fh: Offset Size Description 00h WORD logical unit/device number 02h WORD clear mask (clear these bits of status after returning status) 04h WORD pointer to WORD buffer for status
bit 10: status modified bit 9: buffer modified bit 8: set cursor bit 5: sound alarm bits 0,1: size of print line for printer logical units 00 unformatted line 01 40-character line 10 64-character line 11 80-character line
Format of argument block for BH=12h: Offset Size Description 00h WORD pointer to WORD buffer for number of logical units or devices 02h WORD pointer to WORD buffer for version number 04h WORD pointer to 64-byte buffer for logical unit/device list
Format of argument block for BH=13h: Offset Size Description 00h 16 BYTEs communications port address (see AX=0001h#“Sosock”)
Format of argument block for BH=14h: Offset Size Description 00h WORD logical unit/device number
0000h attach any free device of the specified type
02h WORD logical unit/device type
(3270/SNA) 01h, 02h, or 03h (3270/BSC) 02h display (3270/BSC) 03h printer
04h WORD pointer to WORD buffer for attached logical unit/device number
Format of argument block for BH=16h: Offset Size Description 00h WORD pointer to 18-byte buffer for device block (see below)
first WORD must be set to desired logical unit/device number
Format of argument block for BH=17h: Offset Size Description 00h WORD logical unit/device number 02h WORD pointer to information block in caller's DS (see below)
Format of argument block for BH=18h: Offset Size Description 00h WORD pointer to WORD buffer for major error code 02h WORD pointer to WORD buffer for minor error code
Format of argument block for BH=19h: Offset Size Description 00h WORD logical unit/device number
Format of argument block for BH=1Ch,1Dh: Offset Size Description 00h WORD pointer to profile block in caller's DS (see below)
Format of device block, argument block for BH=15h: Offset Size Description 00h WORD logical unit/device number 02h WORD logical unit/device type 04h WORD display model number 06h WORD numeric checking 08h WORD status line 0Ah BYTE unprotected normal field attribute 0Bh BYTE unprotected intensified field attribute 0Ch BYTE protected normal field attribute 0Dh BYTE protected intensified field attribute 0Eh WORD reserved 10h WORD printer port number
Format of information block: Offset Size Description 00h WORD device model number 02h DWORD screen buffer pointer 06h DWORD status line pointer (see below) 0Ah DWORD reserved
Format of status line: Offset Size Description 00h BYTE comm line status
00h inactive 01h active
01h BYTE activation level
01h physical unit activated 02h logical unit also activated 03h session is bound
02h BYTE data traffic state
00h inactive 01h active
03h BYTE screen ownership
00h SLU->PLU sessoin owns screen 01h SLU->SSCP session owns screen
04h BYTE keyboard status
00h UNLOCK - ready to accept data 01h TIME - aid was struck 02h SYSTEM - received response no restore 03h FUNCTION - unavailable keyboard function 04h INPUT - not currently used 05h ENDFIELD - field filled in insert mode 06h PROTECTED - attempt to enter in protected field 07h NUMERIC - attempt to enter in numeric field 08h PROGRAM - error in outbound data stream
05h BYTE insert mode
01h if in insert mode
06h BYTE numeric
01h if current screen buffer is numeric only
07h BYTE printer status
00h printer not assigned 01h printer is inactive 02h printer error 03h currently printing 04h printer is busy 05h printer is very busy
08h BYTE printer assignment 09h BYTE maximum size of network name 0Ah N BYTEs ASCIZ network name
BYTE maximum size of message window M BYTEs null-terminated message window BYTE code set 00h EBCDIC 01h ASCII M BYTEs extended attributes 01h extended attributes are in effect (stored at screen+1920) each extended attribute specifies bits 0,1: 00=normal, 01=blink, 10=reverse, 11=underscor bits 2-4: 000=default,001=blue,010=red,011=pink, 100=green,101=turquoise,110=yellow,111=white BYTE extended color 01h other than base color is in effect
Format of profile block: Offset Size Description 00h 64 BYTEs gateway service name 40h 16 BYTEs gateway comm port address 50h WORD primary logical unit number 52h WORD secondary logical unit type 54h WORD secondary logical unit number 56h WORD printer assignment 58h 50 BYTEs keyboard definitions filename ———-610002—————————– INT 61 - OPTIMA 1024 VGA-Sync - END ZOOM
AX = 0002h
Note: switches off zoom and returns window to its original state
INT 61h is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh
SeeAlso: INT 16/AH=FFh“OPTIMA”,INT 61/AX=0000h“OPTIMA” ———-610003—————————– INT 61 - Banyan VINES - ASYNCHRONOUS TERMINAL EMULATION
AX = 0003h DS:BX -> argument block with function number (see below)
Return: AX = status
0000h successful 000Bh invalid session ID 000Ch session not active 000Dh invalid request type 000Eh invalid parameters 000Fh out of heap space 0010h timeout on send 0011h Banyan communications error 0012h session not waiting for host 0013h session is active 0014h duplicate suspend session request 0015h no session suspended 0016h ring data buffer full 0017h printer error encountered 0018h Banyan communications error 0019h unable to make connection 001Ah no ring buffer specified at startup 001Bh service is down 001Ch invalid service name 001Dh service is closed 001Eh invalid connection name 001Fh max session limit reached for service 0020h access rights list for connection/dialout does not include this user 0021h service not responding 0022h missing telephone number
Format of argument block: Offset Size Description 00h BYTE session ID (00h) 01h BYTE asynchronous interface request number
00h initialize user buffer pointer information area 01h send to host 02h "control monitor" 03h "flow control data": freeze/unfreeze display, ring buffer 04h end active session 05h set session parameter 06h get session parameter 07h set tab settings 08h get tab settings 09h refresh emulation screen 0Ah suspend session temporarily 0Bh restore previously suspended session 0Ch set state of scroll lock checking 0Dh exit emulation 0Eh interrupt on character from host 0Fh start a session 10h start/stop printing of data received from host 11h get file transfer parameters 12h get connection information 13h start/stop tracing data traffic in session 14h interrupt on message from host 15h reset error
—request=00h— 02h WORD pointer to info area in caller's current DS
Offset Size Description 00h WORD flags 0000h don't read interface's data buffer 0001h read data buffer 02h DWORD pointer to ring buffer 06h WORD length of ring buffer 08h WORD ring buffer offset to last byte read by caller 0Ah DWORD pointer to WORD containing offset of last byte in ring buffer filled 0Eh DWORD pointer to screen buffer 12h DWORD pointer to field containing cursor position 16h DWORD pointer to terminal status area (see below)
—request=01h— 02h BYTE type
00h ASCII byte 01h ASCII string 02h terminal function code 03h up arrow 04h down arrow 05h left arrow 06h right arrow 07h break
03h N BYTEs type-specific info
Offset Size Description ---ASCII byte--- 03h BYTE byte to send to host ---ASCII string--- 03h WORD length of string 05h WORD pointer to string ---terminal function code (VT52/VT100)--- 03h BYTE function code 00h keypad 0 01h keypad 1 ... 09h keypad 9 0Ah keypad - 0Bh keypad , 0Ch keypad . 0Dh keypad ENTER 0Eh PF1 0Fh PF2 10h PF3 11h PF4 ---terminal function code (IBM3101)--- 03h BYTE function code 00h PF1 ... 07h PF8 08h Home
—request=02h— 02h BYTE display flag
00h don't display data received from host 01h display data
—request=03h— 02h BYTE flow control flag
00h allow characters to be put into display or ring buffer 01h don't place any more characters into display or ring buffer
—request=05h,06h— 02h BYTE parameter number
00h line speed (00h=any, 01h=50, 02h=110, 03h=134.5, 04h=150, 05h=300,06h=600,07h=1200,08h=2400,09h=4800, 0Ah=9600) 01h parity (00h=none, 01h=odd, 02h=even) 02h duplex (00h=full, 01h=half) 03h character size (00h=7 bits, 01h=8 bits) 04h stop bits (00h=1, 01h=2) 05h XON/XOFF flow control (00h=no, 01h=yes) 07h intercharacter delay in tenths of a second 08h interline delay in tenths of a second 09h auto linefeed (00h=no, 01h=yes) 0Ah filter control characters (00h=no, 01h=yes) 0Bh terminal type (00h=VT100,01h=glassTTY,02h=VT52,03h=IBM3101) 0Ch auto wrap (00h=no, 01h=yes) 0Dh cursor shape (00h=underscore, 01h=block) 0Eh character set (00h=UK, 01h=US ASCII) 0Fh printer port (00h=LPT1, 01h=LPT2, 02h=LPT3)
03h BYTE parameter value (returned for 06h) —request=07h,08h— 02h WORD pointer to 80-byte buffer in caller's current DS
each byte = 00h if no tab, 01h if tab at that position
—request=0Ah— 02h WORD size of session information to be saved 04h WORD pointer to buffer in caller's DS —request=0Bh— 02h WORD size of buffer into which session info is restored 04h WORD pointer to buffer in caller's DS —request=0Ch— 02h BYTE check_scroll_lock flag
00h off 01h on (display of host data stopped while ScrollLock on)
—request=0Eh,14h— 02h DWORD pointer to routine to be called (0000h:0000h = don't call) 06h DWORD stack pointer to use when call is made —request=0Fh— 02h WORD pointer to information area in caller's current DS
Offset Size Description 00h WORD length of service name 02h WORD pointer to service name in caller's DS 04h BYTE type of connection (00h=connection name, 01h=dialout) 05h WORD length of connection name/telephone number 07h WORD pointer to connection name/telephone number
—request=10h— 02h WORD print capture flag (00h=off, 01h=on) —request=11h— 02h WORD pointer to info area in caller's current DS
Offset Size Description 00h BYTE protocol flag (00h none, 01h Kermit) 01h BYTE direction flag (00h send, 01h receive) 02h BYTE length of null-terminated PC filename 03h DWORD pointer to null-terminated PC filename 07h BYTE length of null-terminated host filename 08h DWORD pointer to null-terminated host filename
—request=12h— 02h WORD pointer to info area in caller's current DS (see below)
Offset Size Description 00h WORD length of service name (returned) 02h WORD pointer to 64-byte buffer for service name 04h BYTE type of connection 00h connection name 01h dialout 05h WORD length of connection name/telephone number 07h WORD pointer to 64-byte buffer for name/telno 09h BYTE server line number being used (returned)
—request=13h— 02h BYTE trace flag (00h=off, 01h=on)
Format of terminal status area: Offset Size Description 00h BYTE status of session: 4Eh=oNline, 46h=oFfline, 57h=Waiting 01h BYTE terminal type (00h=VT100, 01h=TTY, 02h=VT52, 03h=IBM3101) 02h BYTE current keypad mode (VT100,VT52 only)
4Eh ("N") numeric mode 41h ("A") application mode
03h 4 BYTEs current state of LEDs (VT100 only)
00h off 01h on
07h WORD line error count 09h WORD primary error code
0000h no error 0001h unable to make connection 0002h communications error, restart session 0003h async terminal emulation service unavailable 0004h lost carrier 0005h all matching lines busy 0006h no lines defined for connection name 0007h no dial lines available on server 0008h no matching dial lines available 0009h out of heap space 000Ah service error encountered 000Bh timed out waiting to connect 000Ch communications error 000Dh communications error 000Eh host wants file transferred to/from PC 000Fh host software changed session parameter 0010h host software changed tap settings 0011h host software changed LED indicator 0012h host software changed display background (secondary error code 00h for white on black, 01h for black on white) 0013h host software changed display option (secondary error code 00h for off, 01h for on) 0014h communications error 0015h communications error 0016h unable to make connection 0017h unable to make connection
0Bh WORD secondary error code ———-610003—————————– INT 61 - OPTIMA 1024 VGA-Sync - REPORT ZOOM FACTOR
AX = 0003h
Return: AX = zoom factor Note: returns the current zoom factor
INT 61h is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh
SeeAlso: INT 16/AH=FFh“OPTIMA”,INT 61/AX=0000h“OPTIMA”,INT 61/AX=0005h“OPTIMA” ———-610004—————————– INT 61 - Banyan VINES - GET SERVER SERIAL NUMBER
AX = 0004h DS:DX -> request block (function 0008h)
Return: AX = status
0000h server ID returned in request block 000Fh invalid drive 0015h drive not ready
Format of request block: Offset Size Description 00h WORD 0008h 02h WORD drive number (0=default, 1=A, …) 04h 6 BYTEs buffer for server ID ———-610004—————————– INT 61 - OPTIMA 1024 VGA-Sync - ENTER SPECIFY MODE
AX = 0004h
Note: Specify Mode is enabled by hot key (seeAlso below), and allows
panning and zooming via the numeric keypad. INT 61h is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh The Zoom interrupt no. can be obtained with function INT 16h,AH=0FFh
SeeAlso: INT 16/AH=FFh“OPTIMA”,INT 61/AX=0000h“OPTIMA”,INT 61/AX=0007h“OPTIMA” ———-610005—————————– INT 61 - Banyan VINES - PRINTER CONTROL
AX = 0005h DS:DX -> request block
Return: AX = status
0000h successful 0001h network software not installed or incompatible
SeeAlso: INT 2F/AX=D702h
Format of request block: Offset Size Description 00h WORD function
0201h "endspool" all data for a print job has been sent 0205h "getactive" get currently active printer port
02h WORD number of active port (1-3) 04h WORD ??? (0 for func 0201h, 3 for func 0205h) 06h WORD 0000h ———-610005—————————– INT 61 - OPTIMA 1024 VGA-Sync - QUERY ZOOM WINDOW
AX = 0005h BX:CX -> buffer for window parameters (see below)
Note: INT 61h is the default interrupt; the actual interrupt number can be
obtained by calling INT 16/AH=FFh
SeeAlso: INT 16/AH=FFh“OPTIMA”,INT 61/AX=0000h“OPTIMA”,INT 61/AX=0003h“OPTIMA” SeeAlso: INT 61/AX=0006h“OPTIMA”
Format of window parameters: Offset Size Description 00h WORD X start of zoom window 02h WORD Y start of zoom window 04h WORD X end of zoom window 06h WORD Y end of zoom window 08h WORD current zoom factor 0Ah WORD zoom offset start X 0Ch WORD zoom offset start Y ———-610006—————————– INT 61 - OPTIMA 1024 VGA-Sync - SET ZOOM WINDOW
AX = 0006h BX:CX -> zoom window description (see below)
Notes: width of zoom window must be a multiple of the pixel replication
factor INT 61h is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh
SeeAlso: INT 16/AH=FFh“OPTIMA”,INT 61/AX=0000h“OPTIMA”,INT 61/AX=0001h“OPTIMA” SeeAlso: INT 61/AX=0005h“OPTIMA”,INT 61/AX=0008h“OPTIMA”
Format of zoom window description: Offset Size Description 00h WORD X start of zoom window 02h WORD Y start of zoom window 04h WORD X end of zoom window 06h WORD Y end of zoom window ———-610007—————————– INT 61 - OPTIMA 1024 VGA-Sync - QUERY APPLICATION KEY
AX = 0007h
Return: AX = 0000h/0001h Notes: In specify mode, the END key has been reserved for applications.
Returns the current toggle state of that key. E.g. in the OPTIMA AutoCAD driver, 0 means, AutoCAD calls subfunction 0001h every time the cross cursor moves. INT 61h is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh
SeeAlso: INT 16/AH=FFh“OPTIMA”,INT 61/AX=0000h“OPTIMA”,INT 61/AX=0001h“OPTIMA” SeeAlso: INT 61/AX=0004h“OPTIMA”,INT 7A“AutoCAD” ———-610007BX0002———————– INT 61 - Banyan VINES - GET PORTS FOR A SERVICE
AX = 0007h BX = 0002h DS:DX -> StreetTalk service name DS:DI -> port record block (see below)
Return: AX = status
0000h successful 0001h PC network software not installed or incompatible 03E9h incorrect name syntax 03EAh organization name too long 03EBh group name too long 03ECh item name too long 03EDh StreetTalk name too long 03F3h organization not found 03F4h group not found 03F5h StreetTalk name not found 03F8h not a StreetTalk name 040Dh appropriate StreetTalk name unavailable
Format of port record block: Offset Size Description 00h WORD number of 17-byte elements 02h 17 BYTEs element (byte 00h = input port type, bytes 01h-10h = port)
(see AX=0001h#"Sosock" for port format)
———-610007BX0004———————– INT 61 - Banyan VINES - SET PORTS FOR A SERVICE
AX = 0007h BX = 0004h DS:DX -> StreetTalk name of service DS:DI -> port record block (see below)
Return: AX = status
0000h successful 0001h PC network software not installed or incompatible 03E9h incorrect name syntax 03EAh organization name too long 03EBh group name too long 03ECh item name too long 03EDh StreetTalk name too long 03F3h organization not found 03F4h group not found 03F5h StreetTalk name not found 03F8h not a StreetTalk name 0409h modify access denied 040Dh appropriate StreetTalk name unavailable
Format of port record block: Offset Size Description 00h WORD number of 17-byte elements 02h 17 BYTEs element: byte 00h = input port type, 01h-10h = port
(see AX=0001h#"Sosock" for port format)
———-610007BX0005———————– INT 61 - Banyan VINES - GET USER NAME
AX = 0007h BX = 0005h DS:DX -> 64-byte buffer for user's StreetTalk name
Return: AX = status
0000h successful 0001h network software not installed or incompatible
Note: if no user logged in, first byte of returned name will be 00h ———-610007BX0006———————– INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING
AX = 0007h BX = 0006h SI = error code (>100) DS:DX -> 80-byte buffer for error text
Return: AX = status
0000h successful 0001h network software not installed or incompatible
———-610007BX0007———————– INT 61 - Banyan VINES - VERIFY EXISTENCE OF NAME AND RETURN CANONICAL FORM
AX = 0007h BX = 0007h DS:DX -> NiceName block (see below)
Return: AX = status
0000h successful 0001h PC network software not installed or incompatible 03E9h incorrect name syntax 03EAh organization name too long 03EBh group name too long 03ECh item name too long 03EDh StreetTalk name too long 03F3h organization not found 03F4h group not found 03F5h StreetTalk name not found 03F8h not a StreetTalk name 040Dh appropriate StreetTalk name unavailable
SeeAlso: AX=0007h/BX=0008h
Format of NiceName block: Offset Size Description 00h WORD type of name
0064h organization 00C8h group 012Ch item
02h WORD pointer to ASCIZ input name 04h WORD pointer to 64-byte buffer for output name ———-610007BX0008———————– INT 61 - Banyan VINES - ENUMERATE StreetTalk NAMES
AX = 0007h BX = 0008h DS:DX -> enumerate block (see below)
Return: AX = status
0000h successful 0411h all matching names have been returned 0412h some groups unavailable, all available matches returned
Note: each program using this call should continue until a nonzero status
is returned; otherwise, some resources will not be freed for several hours
SeeAlso: AX=0007h/BX=0007h
Format of enumerate block: Offset Size Description 00h WORD return code 02h WORD pointer to pattern string 04h WORD enumerate type
0064h organization 00C8h group 012Ch item
06h WORD enumerate class
0000h unspecified (return all matching items) 0001h user names 0002h service names 0003h list names 0004h nicknames
08h WORD pointer to category criteria block (see below) or 0 0Ah WORD pointer to array of 64-byte returned names 0Ch WORD number of names returned 0Eh 6 BYTEs reserved for subsequent enumerated calls (set to zeros on first
call)
Format of category criteria block: Offset Size Description 00h WORD exclude flag
0000h return only items with the specified categories 0001h return all items except those with the given categories
02h WORD number of categories 04h WORD category 1 value 06h WORD category 2 value
...
Values for common service categories: 0002h file service 0003h print service 0004h mail service 0005h StreetTalk 0006h time service 0008h semaphore service 0009h 3270/SNA service 000Ah asynchronous terminal emulation service 000Ch NETBIOS service 000Dh PC-based service ———-610008—————————– INT 61 - OPTIMA 1024 VGA-Sync - SET ZOOM OFFSET
AX = 0008h BX = X start of zoom offset CX = Y start of zoom offset
Notes: specifies the first byte of video memory to appear in the zoom window
INT 61h is the default interrupt; the actual interrupt number can be obtained by calling INT 16/AH=FFh
SeeAlso: INT 16/AH=FFh“OPTIMA”,INT 61/AX=0000h“OPTIMA”,INT 61/AX=0006h“OPTIMA” ———-610008BX0002———————– INT 61 - Banyan VINES - POST MESSAGE ON LOCAL DISPLAY
AX = 0008h BX = 0002h CX = flags bit 0: message will remain on screen until user presses ^X bit 1: ring bell after displaying message bit 2: blink DS:DX -> ASCIZ string to display (only first 80 chars used)
Return: AX = status
0000h successful 000Bh message display function currently busy 000Ch message queue full
Note: queues up to three messages to be displayed on the bottom line ———-610008BX0003———————– INT 61 - Banyan VINES - INTERCEPT VINES 25th-LINE MESSAGES AT LOCAL PC
AX = 0008h BX = 0003h DS:DX -> request block
Return: AX = status
0000h successful 0001h network software not installed or incompatible
Notes: message handler should not call BIOS or DOS functions, and should
either call next handler or simply return to stop intercepting messages, set prev and next request blocks to point at each other
Format of request block: Offset Size Description 00h DWORD pointer to user-written message handler 04h DWORD pointer to next request block (filled in by VINES) 08h DWORD pointer to previous request block (filled in by VINES) 0Ch DWORD pointer to message storage area (filled by VINES) (see below)
Format of message storage area: Offset Size Description 00h 16 BYTEs IPC port of message sender (see AX=0001h#“Sosock”) 10h BYTE message flags 11h WORD reserved 13h BYTE length of message 14h 80 BYTEs message text ———-61000A—————————– INT 61 - Banyan VINES - SECONDARY 3270 INTERFACE
AX = 000Ah
Notes: either 3270/SNA or 3270/BSC interface will use AX=000Ah, depending on
which is loaded second. The first interface loaded will use AX=0002h
SeeAlso: INT 61/AX=0002h ———-6101——————————- INT 61 - Banyan VINES - CHECK SERVICE
AH = 01h AL = service ID 01h communications 02h primary 3270 emulation 03h async terminal emulation 04h file deflection 07h StreetTalk 08h environment 0Ah secondary 3270 emulation 0Bh semaphore service 0Ch 3270 emulation active status 0Dh 3270 keyboard interrupt simulator
Return: AX = status
0000h installed 0001h not installed 0002h invalid ID
———-6102——————————- INT 61 - Banyan VINES - GET REVISION NUMBER
AH = 02h DS:DX -> 2-byte buffer for result
Return: AX = 0000h installed
DS:DX buffer contains revision number as 10000d * major_ver + 100d * minor_ver + patch_revision
———-6105——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 05h BX = connection handle???
Return: CF clear if successful
DX:AX = ??? CF set on error AX = error code (see INT 61"PC/TCP")
Notes: the installation check consists of testing for the signature “TCPTSR”
three bytes beyond the start of the interrupt handler INT 61 is the default; PC/TCP v2.05 may be configured to use any interrupt from 20h through E0h
SeeAlso: INT 61“PC/TCP”,INT 61/AH=00h“PC/TCP”,INT 61/AH=06h ———-6106——————————- INT 61 U - PC/TCP kernel v2.05 - GET INTERFACE STATISTICS
AH = 06h BX = connection handle??? DS:SI -> 38-byte buffer (see below)
Return: CF clear if successful
buffer filled CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61“PC/TCP”,INT 61/AH=00h“PC/TCP”,INT 61/AH=05h
Format of buffer: Offset Size Description 00h WORD ??? 02h WORD ??? 04h WORD ??? 06h DWORD IP address of interface, high byte first 0Ah DWORD subnet mask 0Eh WORD ??? (apparently always 0001h) 10h DWORD total packets received 14h DWORD total packets sent 18h DWORD receive errors 1Ch DWORD send errors 20h WORD ??? (apparently always 0006h) 22h DWORD pointer to ??? ———-6107——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 07h BX = connection handle???
Return: CF clear if successful
AX = ??? CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61“PC/TCP”,INT 61/AH=00h“PC/TCP” ———-6108——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 08h BX = connection handle???
Return: CF clear if successful
CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61“PC/TCP”,INT 61/AH=00h“PC/TCP” ———-6109——————————- INT 61 U - PC/TCP kernel v2.05 - ??? ALL
AH = 09h
Return: CF clear Notes: performs function 08h on every connection handle???
the installation check consists of testing for the signature "TCPTSR" three bytes beyond the start of the interrupt handler INT 61 is the default; PC/TCP v2.05 may be configured to use any interrupt from 20h through E0h
SeeAlso: INT 61“PC/TCP”,INT 61/AH=00h“PC/TCP” ———-610C——————————- INT 61 U - PC/TCP kernel v2.05 - GET CONNECTION??? STATISTICS
AH = 0Ch BX = connection handle??? FFFCh for kernel ICMP statistics FFFDh for kernel UDP statistics FFFEh for kernel IP statistics FFFFh for kernel TCP statistics DS:DX -> 64-byte buffer
Return: CF clear if successful
buffer filled CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61“PC/TCP”,INT 61/AH=00h“PC/TCP”
Format of handle statistics: Offset Size Description 00h 4 BYTEs unused 04h DWORD ??? 08h 8 BYTEs unused 10h DWORD ??? 14h DWORD ??? 18h 12 BYTEs unused 24h DWORD ??? 28h 24 BYTEs unused
Format of kernel TCP statistics: Offset Size Description 00h 16 BYTEs unused 10h DWORD bytes sent 14h DWORD bytes received 18h 8 BYTEs unused 20h DWORD packets sent 24h DWORD packets received 28h DWORD bad checksums 2Ch DWORD protocol errors 30h DWORD timeouts 34h DWORD resets 38h DWORD duplicate packets 3Ch DWORD retransmits
Format of kernel IP statistics: Offset Size Description 00h 8 BYTEs unused 08h DWORD ??? errors 0Ch DWORD ??? errors 10h DWORD ??? 14h DWORD ??? errors 18h DWORD security errors 1Ch DWORD ??? errors 20h DWORD packets sent 24h DWORD packets received 28h DWORD bad checksums 2Ch DWORD protocol errors 30h DWORD timeouts 34h DWORD errors 38h DWORD fragments 3Ch
Format of kernel UDP statistics: Offset Size Description 00h 32 BYTEs unused 20h DWORD packets sent 24h DWORD packets received 28h DWORD bad checksums 2Ch DWORD port not listening errors 30h 4 BYTEs unused 34h DWORD truncated receives 38h 8 BYTEs unused
Format of kernel ICMP statistics: Offset Size Description 00h DWORD “TimeEx” sent 04h DWORD “TimeEx” received 08h DWORD “ParamProb” sent 0Ch DWORD “ParamProb” received 10h DWORD redirects received 14h DWORD source quenches received 18h DWORD ??? 1Ch DWORD ??? 20h DWORD packets sent 24h DWORD packets received 28h DWORD bad packets received 2Ch DWORD “DestUn” received 30h DWORD packet send errors 34h DWORD “DestUn” sent 38h DWORD ??? 3Ch DWORD ??? ———-610D——————————- INT 61 U - PC/TCP kernel v2.05 - CHECK IF CONNECTION HANDLE??? VALID
AH = 0Dh BX = connection handle???
Return: CF clear if valid
CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61“PC/TCP”,INT 61/AH=00h“PC/TCP” ———-610E——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 0Eh BX = ??? DS:DX -> ??? ES:DI -> ???
Return: CF clear
???
Notes: the installation check consists of testing for the signature “TCPTSR”
three bytes beyond the start of the interrupt handler INT 61 is the default; PC/TCP v2.05 may be configured to use any interrupt from 20h through E0h
SeeAlso: INT 61“PC/TCP”,INT 61/AH=00h“PC/TCP” ———-610F——————————- INT 61 U - PC/TCP kernel v2.05 - GET VERSION
AH = 0Fh
Return: CF clear
AX = version (AH = major, AL = minor) BX = patch level
SeeAlso: INT 61“PC/TCP”,INT 61/AH=00h“PC/TCP” ———-6110——————————- INT 61 U - PC/TCP kernel v2.05 - UNINSTALL
AH = 10h
Return: CF clear if successful
CF set on error???
SeeAlso: INT 61“PC/TCP”,INT 61/AH=00h“PC/TCP” ———-6111——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 11h
Return: CF clear
AX = ???
Note: clears location whose value is returned in AX and decrements another if
it is not already zero
SeeAlso: INT 61“PC/TCP”,INT 61/AH=12h ———-6112——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 12h
Return: CF clear
AX = ???
Note: sets location whose value is returned in AX to 0001h and performs other
actions if another location is nonzero; these two locations are the same ones used by AH=11h
SeeAlso: INT 61“PC/TCP”,INT 61/AH=11h ———-6113——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 13h BX = connection handle??? or FFFFh DX = subfunction 0000h ??? (returns error 0016h) 0001h ??? 0002h ??? 0003h ??? 0004h ??? 0005h ??? DS:SI -> result buffer???
Return: CF clear if successful
AX = connection handle??? CF set on error AX = error code (see INT 61"PC/TCP")
Note: invokes AH=22h if BX=FFFFh on entry; also invokes AH=19h in various
cases
SeeAlso: INT 61“PC/TCP”,INT 61/AH=00h“PC/TCP”,INT 61/AH=23h ———-6114——————————- INT 61 U - PC/TCP kernel v2.05 - NO LONGER SUPPORTED
AH = 14h BX = connection handle???
Return: CF set
AX = 0018h (see INT 61"PC/TCP")
Note: displays error message “Illegal system call! Please upgrade your
PCserver software" to standard output
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6116——————————- INT 61 U - PC/TCP kernel v2.05 - GET ???
AH = 16h BX = connection handle??? DS:DX -> 9-byte buffer for ???
Return: CF clear if successful
??? CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6117——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 17h
Return: CF clear if successful
CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6118——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 18h BX = connection handle???
Return: CF clear if successful
CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6119——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 19h BX = connection handle???
Return: CF clear if successful
CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-611A——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 1Ah BX = connection handle??? CX = ??? DX = ??? DS:SI -> ???
Return: CF clear if successful
AX = ??? DX = ??? CF set on error AX = error code (see INT 61"PC/TCP")
Notes: the installation check consists of testing for the signature “TCPTSR”
three bytes beyond the start of the interrupt handler INT 61 is the default; PC/TCP v2.05 may be configured to use any interrupt from 20h through E0h
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-611B——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 1Bh BX = connection handle??? CX = ??? DX = ??? DS:SI -> ??? ES:DI -> ???
Return: CF clear if successful
CX = ??? DX = ??? CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-611C——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 1Ch BX = connection handle??? CX = ??? DX = ??? DS:SI -> ??? ES:DI -> ???
Return: CF clear if successful
AX = ??? DX = ??? CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-611D——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 1Dh BX = connection handle??? CX = ??? DX = ??? DS:SI -> ??? ES:DI -> 9-byte buffer containing ???
Return: CF clear if successful
CX = ??? DX = ??? CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-611E——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 1Eh BX = connection handle???
Return: CF clear if successful
CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-611F——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 1Fh BX = connection handle??? CX = ??? DS:SI -> ??? ES:DI -> ???
Return: CF clear if successful
DS:DX -> ??? CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6120——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 20h BX = connection handle??? CX = ??? DS:DX -> ??? SI = ??? DI = ???
Return: CF clear if successful
CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6121——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 21h BX = connection handle??? CX = ??? DS:DX -> ??? SI = ??? DI = ???
Return: CF clear if successful
DS:DX -> ??? CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6122——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 22h BX = connection handle???
Return: CF clear if successful
AX = ??? CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6123——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 23h BX = connection handle??? or FFFFh DX = subfunction??? DS:SI -> ???
Return: CF clear if successful
AX = ??? CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“,INT 61/AH=13h ———-6124——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 24h ???
Return: ??? SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6125——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 25h BX = ??? CX = ??? DX = ??? DS:SI -> ???
Return: CF clear if successful
CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6126——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 26h BX = ??? CX = ??? DX = ??? DS:SI -> ???
Return: CF clear if successful
CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6127——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 27h BX = ??? CX = ??? DX = ??? DS:SI -> ???
Return: CF clear if successful
CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6128——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 28h BX = connection handle??? CX = ???
Return: CF clear if successful
??? CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6129——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 29h
Return: CF clear if successful
AX = ??? CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-612A——————————- INT 61 U - PC/TCP kernel v2.05 - GET CONFIGURATION INFORMATION
AH = 2Ah DS:SI -> 26-byte buffer for configuration information (see below)
Return: CF clear
AX = 0000h buffer filled
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“
Format of configuration information: Offset Size Description 00h BYTE maximum TCP connections available 01h BYTE maximum UDP connections available 02h BYTE maximum IP connections available 03h BYTE ??? 04h BYTE number of TCP connections currently in use 05h BYTE number of UDP connections currently in use 06h BYTE number of IP connections currently in use 07h BYTE ??? 08h WORD number of local network descriptors active 0Ah WORD number of global network descriptors active 0Ch BYTE ??? 0Dh BYTE ??? 0Eh WORD ??? 10h WORD ??? 12h DWORD ??? 16h DWORD IP broadcast address ———-612B——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 2Bh BX = connection handle??? CX = ??? DX = ??? DS:SI -> ??? ES:DI -> ???
Return: CF clear if successful
CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6130——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 30h BX = ??? CX = ??? DX = ???
Return: CF clear if successful
CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-61——————————— INT 61 U - PC/TCP kernel v2.05 - NOP for SLIP kernel
AH = function (31h-33h)
———-6150——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 50h DS:DX -> 127-byte buffer containing ???
Return: CF clear if successful
DX:AX -> ??? CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6151——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 51h CX = size of destination buffer DS:DX -> 127-byte buffer containing ??? ES:DI -> destination buffer or 0000h:0000h
Return: CF clear if successful
DX:AX -> ??? CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6152——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 52h CX = size of destination buffer DS:DX -> 127-byte buffer containing ??? ES:DI -> destination buffer or 0000h:0000h
Return: CF clear if successful
DX:AX -> ??? CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6153——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 53h DS:DX -> 127-byte buffer containing ???
Return: CF clear if successful
DX:AX -> ??? CF set on error AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-6154——————————- INT 61 U - PC/TCP kernel v2.05 - ???
AH = 54h CX = size of destination buffer DS:DX -> 127-byte buffer containing ??? ES:DI -> destination buffer or 0000h:0000h
Return: CF clear if successful
DX:AX -> ??? CF set on error AX = error code (see INT 61"PC/TCP")
BUG: the SLIP kernel for v2.05 bounds-checks the wrong register, so values
greater than 54h in AH may crash the system. Other kernels may have this bug as well.
SeeAlso: INT 61”PC/TCP“,INT 61/AH=00h”PC/TCP“ ———-62——————————— INT 62 - reserved for user interrupt ———-62——————————— INT 62 - Adaptec and OMTI controllers - DRIVE 0 DATA Notes: this vector stores the third four bytes of the parameter table for
hard disk 0
SeeAlso: INT 60”Adaptec“,INT 61”Adaptec“,INT 63”Adaptec“ ———-62——————————— INT 62 - HP 95LX - USED BY CALCULATOR SeeAlso: INT 60”HP 95LX“ ———-62——————————— INT 62 - MS SQL Server/Sybase DBLIBRARY interface - ???
AH = function (00h to 07h) CX = FFFEh DX = FFFFh ???
Return: ??? Note: the installation check consists of testing for the string “DBLIBRARY”
2 bytes past the interrupt handler
SeeAlso: AH=08h”SQL“ ———-620000—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETMODE” - GET CURRENT VIDEO MODE NUMBER
AX = 0000h ES:BX -> ???
Return: AX = current video mode number Notes: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software the installation check consists of testing for the signature "FG" ten bytes beyond the start of the interrupt handler
SeeAlso: AX=0001h,AX=0006h ———-620001—————————– INT 62 u - FGDRIVER v1.10 - “FG_SETMODE” - SELECT VIDEO MODE AND INITIALIZE
AX = 0001h BX = new video mode or FFFFh for current mode ES:DX -> ???
Notes: video modes are the same as the BIOS video modes except for
0Bh Hercules graphics 720x348 0Ch Hercules graphics 320x200 15h VGA graphics 320x400x256 16h VGA graphics 320x240x256 17h VGA graphics 320x480x256 this call resets the active video page to page 0000h, the clipping region to the entire screen, text rows to 25, etc.
SeeAlso: AX=0000h,AX=0002h,INT 10/AH=00h ———-620002—————————– INT 62 u - FGDRIVER v1.10 - “FG_TESTMODE” - CHECK IF VIDEO MODE AVAILABLE
AX = 0002h BX = desired video mode (00h-17h) CX = required number of video pages (ignore memory size if <= 0)
Return: AX = status
0000h mode not available with requested number of pages 0001h mode is available
SeeAlso: AX=0001h,AX=0003h,AX=0004h,AX=0005h ———-620003—————————– INT 62 u - FGDRIVER v1.10 - “FG_BESTMODE” - GET BEST VIDEO MODE GIVEN RESOLUTN
AX = 0003h BX = horizontal resolution CX = vertical resolution DX = number of video pages required (both physical and virtual)
Return: AX = proposed video mode number or FFFFh if no matching video mode SeeAlso: AX=0002h,AX=0004h ———-620004—————————– INT 62 u - FGDRIVER v1.10 - “FG_AUTOMODE” - GET VIDEO MODE WITH MOST FEATURES
AX = 0004h
Return: AX = proposed video mode number Note: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software
SeeAlso: AX=0002h,AX=0003h,AX=0005h ———-620005—————————– INT 62 u - FGDRIVER v1.10 - “FG_EGACHECK” - GET INFO ABOUT ACTIVE EGA DISPLAY
AX = 0005h
Return: AX = number of 64K banks of video memory, or 0000h if no EGA or EGA
without an Enhanced Color Display
SeeAlso: AX=0002h,AX=0003h ———-620006—————————– INT 62 u - FGDRIVER v1.10 - “FG_RESET” - ERASE SCREEN AND RESTORE SCREEN ATTR
AX = 0006h
Notes: this call is ignored in graphics modes
the screen attributes are only restored if ANSI.SYS is loaded
SeeAlso: AX=0000h ———-620007—————————– INT 62 u - FGDRIVER v1.10 - “FG_CURSOR” - SPECIFY WHETHER TEXT CURSR IS VISIBLE
AX = 0007h BX = new state (0000h invisible, 0001h visible)
Note: this call is ignored in text modes ———-620008—————————– INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0008h to 0009h
Return: AX = 0000h ———-62000A—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETMAXX” - GET MAXIMUM COLUMN IN SCREEN SPACE
AX = 000Ah
Return: AX = maximum X coordinate in screen space
(or character space if in text mode)
SeeAlso: AX=000Bh,AX=0045h ———-62000B—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETMAXY” - GET MAXIMUM ROW IN SCREEN SPACE
AX = 000Bh
Return: AX = maximum Y coordinate in screen space
(or character space if in text mode)
SeeAlso: AX=000Ah,AX=0045h ———-62000C—————————– INT 62 u - FGDRIVER v1.10 - “FG_XALPHA” - CONVERT SCREEN COLUMN TO CHAR COLUMN
AX = 000Ch BX = screen space column
Return: AX = character space column containing specified coordinate SeeAlso: AX=000Dh,AX=000Eh ———-62000D—————————– INT 62 u - FGDRIVER v1.10 - “FG_YALPHA” - CONVERT SCREEN ROW TO CHARACTER ROW
AX = 000Dh BX = screen space row
Return: AX = character space row containing specified coordinate SeeAlso: AX=000Ch,AX=000Fh ———-62000E—————————– INT 62 u - FGDRIVER v1.10 - “FG_XCONVERT” - CONVERT CHAR COLUMN TO SCREEN COL
AX = 000Eh BX = character space column
Return: AX = screen space column of leftmost pixel in specified character col SeeAlso: AX=000Ch,AX=000Fh ———-62000F—————————– INT 62 u - FGDRIVER v1.10 - “FG_YCONVERT” - CONVERT CHARACTER ROW TO SCREEN ROW
AX = 000Fh BX = character space row
Return: AX = screen space row of topmost pixel in specified character row SeeAlso: AX=000Dh,AX=000Eh ———-620010—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETLINES” - GET TEXT ROWS FOR CURR VIDEO MODE
AX = 0010h
Return: AX = number of text rows on screen in current video mode SeeAlso: AX=0011h ———-620011—————————– INT 62 u - FGDRIVER v1.10 - “FG_SETLINES” - SET TEXT ROWS ON SCREEN
AX = 0011h BX = new screen size (25, 43, 50)
SeeAlso: AX=0010h ———-620012—————————– INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0012h to 0013h
Return: AX = 0000h ———-620014—————————– INT 62 u - FGDRIVER v1.10 - “FG_DEFCOLOR” - ASSIGN COLOR VALUE TO COLOR INDEX
AX = 0014h BX = color index (0000h-00FFh) CX = new color value (0 to maximum color value for current video mode)
Note: this call is ignored in text modes and 256-color graphics modes SeeAlso: AX=0015h,AX=0016h,AX=001Dh ———-620015—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETCOLOR” - GET CURRENT TEXT ATTRIBUTE
AX = 0015h
Return: AX = current text attribute or color index (graphics modes) Note: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software
SeeAlso: AX=0019h,AX=001Ah ———-620016—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETINDEX” - GET COLOR VALUE FOR COLOR INDEX
AX = 0016h BX = color index (0000h to 00FFh)
Return: AX = color value for specified color index Note: this call returns the value passed to it in text and 256-color
graphics modes
SeeAlso: AX=0014h,AX=001Ch ———-620017—————————– INT 62 u - FGDRIVER v1.10 - “FG_PALETTE” - SET PALETTE / SET VIDEO DAC REGISTER
AX = 0017h
—CGA 4-color graphics—
BX = CGA paletee number CX = background color
—CGA 2-color graphics—
BX ignored CX = foreground color
—16-color graphics—
BX = palette register number CX = palette value
—256-color graphics—
BX = DAC register number CX = DAC value
Notes: ignored in text modes and Hercules graphics modes
few EGA/VGA adapters correctly set the foreground color in CGA mode 6
SeeAlso: AX=0018h,AX=001Dh ———-620018—————————– INT 62 u - FGDRIVER v1.10 - “FG_PALETTES” - SET ALL PALETTE REGISTERS
AX = 0018h ES:BX -> array of 16 WORDs containing values for palette registers (or first 16 DAC registers in 256-color modes)
Note: ignored in text modes, CGA and Hercules graphics modes SeeAlso: AX=0017h ———-620019—————————– INT 62 u - FGDRIVER v1.10 - “FG_SETATTR” - SET TEXT-MODE CHARACTER ATTRIBUTE
AX = 0019h BX = foreground CX = background DX = blink (0000h nonblinking, 0001h blink)
Note: this call is ignored in graphics modes SeeAlso: AX=0015h,AX=001Ah,AX=0037h ———-62001A—————————– INT 62 u - FGDRIVER v1.10 - “FG_SETCOLOR” - SET CURRENT COLOR
AX = 001Ah BX = new color index (or text attribute in text modes)
SeeAlso: AX=0015h,AX=0019h ———-62001B—————————– INT 62 u - FGDRIVER v1.10 - “FG_SETRGB” - SET VIDEO DAC REGISTER CONTENTS
AX = 001Bh BX = palette or DAC register number CX = red color component DX = green component SI = blue component
Notes: the register number may be negative for Tandy, PCjr, and 200-line
EGA graphics modes to specify an intense color this call has no effect in text, CGA graphics, and Hercules graphics modes
SeeAlso: AX=001Ch,AX=00A5h ———-62001C—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETRGB” - GET VIDEO DAC REGISTER CONTENTS
AX = 001Ch ES:BX -> variable pointer record (see below) CX = DAC register number
Return: variables updated Note: this call is ignored in text modes and CGA/EGA video modes (since
they do not use DAC registers)
SeeAlso: AX=001Bh,AX=001Dh,AX=00A4h
Format of variable pointer record: Offset Size Description 00h WORD segment of WORD buffer for red component of DAC register 02h WORD offset of WORD buffer for red component 04h WORD segment of WORD buffer for green component of DAC register 06h WORD offset of WORD buffer for green component 08h WORD segment of WORD buffer for blue component of DAC register 0Ah WORD offset of WORD buffer for blue component ———-62001D—————————– INT 62 u - FGDRIVER v1.10 - “FG_MAPRGB” - MAP COLOR COMPONENTS INTO PALETTE VAL
AX = 001Dh BX = red component CX = green component DX = blue component
Return: AX = mode-specific palette value corresponding to specified components Note: only meaningful in 16-color graphics modes SeeAlso: AX=0015h,AX=0017h ———-62001E—————————– INT 62 u - FGDRIVER v1.10 - “FG_ERASE” - CLEAR THE ACTIVE VIDEO PAGE
AX = 001Eh
Note: sets each pixel to 0 in graphics modes, each character cell to a blank
with a gray foreground attribute in text modes
———-62001F—————————– INT 62 u - FGDRIVER v1.10 - “FG_POINT” - DISPLAY A PIXEL
AX = 001Fh BX = column CX = row
Note: this call is ignored in text modes SeeAlso: AX=0020h ———-620020—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETPIXEL” - GET COLOR OF SPECIFIED PIXEL
AX = 0020h BX = column in screen space CX = row in screen space
Return: AX = color value of pixel (0 to num_colors-1)
0000h in text modes
SeeAlso: AX=001Fh ———-620021—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETXPOS” - GET GRAPHICS CURSOR COLUMN
AX = 0021h
Return: AX = screen space X coordinate of graphics cursor position SeeAlso: AX=0022h,AX=0023h,AX=0024h ———-620022—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETXPOS” - GET GRAPHICS CURSOR ROW
AX = 0022h
Return: AX = screen space Y coordinate of graphics cursor position SeeAlso: AX=0021h,AX=0023h,AX=0024h ———-620023—————————– INT 62 u - FGDRIVER v1.10 - “FG_MOVE” - SET GRAPHICS CURSOR POSITION
AX = 0023h BX = new column CX = new row
Note: this call is ignored in text modes SeeAlso: AX=0021h,AX=0022h,AX=0024h ———-620024—————————– INT 62 u - FGDRIVER v1.10 - “FG_MOVEREL” - ADJUST GRAPHICS CURSOR POSITION
AX = 0024h BX = column offset CX = row offset
Note: this call is ignored in text modes SeeAlso: AX=0021h,AX=0022h,AX=0023h ———-620025—————————– INT 62 u - FGDRIVER v1.10 - “FG_DRAW” - DRAW SOLID LINE TO ABSOLUTE POSITION
AX = 0025h BX = endpoint column CX = endpoint row
Notes: this call is ignored in text modes
the starting point is the current graphics cursor position; the cursor position is updated
SeeAlso: AX=0026h,AX=0027h ———-620026—————————– INT 62 u - FGDRIVER v1.10 - “FG_DRAWREL” - DRAW SOLID LINE TO RELATIVE POSITION
AX = 0026h BX = endpoint column offset CX = endpoint row offset
Notes: this call is ignored in text modes
the starting point is the current graphics cursor position; the cursor position is updated
SeeAlso: AX=0025h,AX=0028h ———-620027—————————– INT 62 u - FGDRIVER v1.10 - “FG_DASH” - DRAW DASHED LINE TO ABSOLUTE POSITION
AX = 0027h BX = endpoint column CX = endpoint row DX = dash pattern (set bits cause drawn pixels)
Notes: this call is ignored in text modes
the starting point is the current graphics cursor position; the cursor position is updated
SeeAlso: AX=0025h,AX=0028h ———-620028—————————– INT 62 u - FGDRIVER v1.10 - “FG_DASHREL” - DRAW DASHED LINE TO RELATVE POSITION
AX = 0028h BX = endpoint column offset CX = endpoint row offset DX = dash pattern (set bits cause drawn pixels)
Notes: this call is ignored in text modes
the starting point is the current graphics cursor position; the cursor position is updated
SeeAlso: AX=0026h,AX=0027h ———-620029—————————– INT 62 u - FGDRIVER v1.10 - “FG_SETCLIP” - SET CLIPPING REGION
AX = 0029h BX = left edge of clipping region CX = right edge of clipping region DX = top edge of clipping region SI = bottom edge of clipping region
SeeAlso: AX=004Ah,AX=004Ch,AX=0052h,AX=0054h ———-62002A—————————– INT 62 u - FGDRIVER v1.10 - “FG_RECT” - DRAW UNFILLED RECTANGLE IN SCREEN SPACE
AX = 002Ah BX = left edge column CX = right edge column DX = top edge row SI = bottom edge row
SeeAlso: AX=002Bh,AX=002Ch,AX=002Eh,AX=00A2h ———-62002B—————————– INT 62 u - FGDRIVER v1.10 - “FG_CLPRECT” - DRAW FILLED RECTANGLE IN SCREEN SPCE
AX = 002Bh BX = screen space column of left edge CX = screen space column of right edge DX = screen space row of top edge SI = screen space row of bottom edge
Note: this call is ignored in text modes SeeAlso: AX=002Ah,AX=002Ch,AX=00A2h ———-62002C—————————– INT 62 u - FGDRIVER v1.10 - “FG_DRECT” - DRAW DITHERED RECTANGLE IN SCRN SPACE
AX = 002Ch BX = screen space column of left edge CX = screen space column of right edge DX = screen space row of top edge SI = screen space row of bottom edge ES:DI -> dithering matrix (video-mode dependent)
Note: this call is ignored in text modes SeeAlso: AX=002Bh,AX=00A2h ———-62002D—————————– INT 62 u - FGDRIVER v1.10 - “FG_ELLIPSE” - DRAW UNFILLED ELLIPSE IN SCRN SPACE
AX = 002Dh BX = horizontal semi-axis length in screen space units CX = vertical semi-axis length in screen space units
Notes: this call is ignored in text modes
the ellipse is centered at the current graphics cursor position
SeeAlso: AX=002Ah,AX=002Eh,AX=00A2h ———-62002E—————————– INT 62 u - FGDRIVER v1.10 - “FG_POLYGON” - DRAW AN UNFILLED POLYGON
AX = 002Eh CX = number of vertices in polygon ES:BX -> variable pointer record (see below)
SeeAlso: AX=002Dh,AX=0030h,AX=00A2h
Format of variable pointer record: Offset Size Description 00h WORD segment of WORD array containing vertex columns 02h WORD offset of WORD array containing vertex columns 04h WORD segment of WORD array containing vertex rows 06h WORD offset of WORD array containing vertex rows ———-62002F—————————– INT 62 u - FGDRIVER v1.10 - “FG_PAINT” - FLOOD CLOSED REGION WITH COLOR
AX = 002Fh BX = column CX = row
Notes: fills an arbitrary closed region around the specified point with the
current color; the screen edges are not considered region boundaries ignored in text modes
———-620030—————————– INT 62 u - FGDRIVER v1.10 - “FG_CIRCLE” - DRAW UNFILLED CIRCLE
AX = 0030h BX = radius in horizontal screen space units (> 0)
Notes: the circle is drawn in screen space, centered at the current graphics
cursor position this call is ignored in text modes
SeeAlso: AX=00A2h ———-620031—————————– INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0031h
Return: AX = 0000h ———-620032—————————– INT 62 u - FGDRIVER v1.10 - “FG_TEXT” - DISPLAY STRING OF CHARACTERS
AX = 0032h CX = length of string ES:BX -> string
Notes: the string is displayed staring at the text cursor position using the
current text attribute (text modes) or color index (graphics modes) the text cursor position is updated after this call
SeeAlso: AX=001Ah,AX=0033h,AX=0035h,AX=0036h ———-620033—————————– INT 62 u - FGDRIVER v1.10 - “FG_LOCATE” - SET TEXT-MODE CURSOR POSITION
AX = 0033h BX = row CX = column
Note: there are only eight text cursors shared by successive groups of
eight video pages (pages 0, 8, 16, ... share one cursor, 1, 9, ... share the second, etc)
SeeAlso: AX=0034h ———-620034—————————– INT 62 u - FGDRIVER v1.10 - “FG_WHERE” - GET CURRENT CURSOR POSITION
AX = 0034h ES:BX -> variable pointers (see below)
Return: indicated variables filled with cursor row and column for active
display
Note: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software
SeeAlso: AX=0033h
Format of variable pointers: Offset Size Description 00h WORD segment of WORD buffer for cursor row 02h WORD offset of WORD buffer for cursor row 04h WORD segment WORD buffer for cursor column 06h WORD offset WORD buffer for cursor column ———-620035—————————– INT 62 u - FGDRIVER v1.10 - “FG_CHGATTR” - APPLY CURRENT TEXT ATTRIB TO CHARS
AX = 0035h BX = number of characters to recolor
Notes: this call is ignored in graphics modes
starting at the current text cursor position, the specified number of characters have their attributes to the current text attribute
SeeAlso: AX=0036h ———-620036—————————– INT 62 u - FGDRIVER v1.10 - “FG_CHGTEXT” - DISPLAY STRING AT CURSOR POSITION
AX = 0036h CX = length of string ES:BX -> string to be displayed
Return: text cursor updated Note: this call is ignored in graphics modes SeeAlso: AX=0032h,AX=0035h ———-620037—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETATTR” - GET CHARACTER ATTRIB FOR POSITION
AX = 0037h BX = row CX = column
Return: AX = character attribute at specified location on active video page Note: this call is ignored in graphics modes SeeAlso: AX=0019h,AX=0038h ———-620038—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETCHAR” - GET CHARACTER FOR SCREEN POSITION
AX = 0038h BX = row CX = column
Return: AX = character at specified location on active video page Note: this call is ignored in graphics modes SeeAlso: AX=0037h ———-620039—————————– INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0039h to 003Bh
Return: AX = 0000h ———-62003C—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETPAGE” - GET ACTIVE VIDEO PAGE NUMBER
AX = 003Ch
Return: AX = active video page (0000h-003Fh) SeeAlso: AX=003Dh,AX=003Eh,AX=0040h ———-62003D—————————– INT 62 u - FGDRIVER v1.10 - “FG_SETPAGE” - SET ACTIVE VIDEO PAGE
AX = 003Dh BX = new video page (0000h to 003Fh)
Note: the specified page must be a physical or virtual page SeeAlso: AX=0001h,AX=003Ch,AX=003Fh,AX=0041h ———-62003E—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETVPAGE” - GET VISIBLE VIDEO PAGE NUMBER
AX = 003Eh
Return: AX = visible video page (0000h-003Fh) SeeAlso: AX=003Ch,AX=003Fh,AX=0040h ———-62003F—————————– INT 62 u - FGDRIVER v1.10 - “FG_SETVPAGE” - SET VISIBLE VIDEO PAGE
AX = 003Fh BX = new video page (0000h to 003Fh)
Note: the specified page must be a physical or virtual page SeeAlso: AX=0001h,AX=003Dh,AX=003Eh,AX=0041h ———-620040—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETHPAGE” - GET CURRENT HIDDEN VIDEO PAGE NUM
AX = 0040h
Return: AX = current hidden video page number (0000h-003Fh) SeeAlso: AX=003Ch,AX=003Eh,AX=0041h ———-620041—————————– INT 62 u - FGDRIVER v1.10 - “FG_SETHPAGE” - SET HIDDEN VIDEO PAGE
AX = 0041h BX = new hidden page (0000h to 003Fh)
Note: specified page must be a physical page or a virtual page SeeAlso: AX=003Dh,AX=003Fh,AX=0040h ———-620042—————————– INT 62 u - FGDRIVER v1.10 - “FG_ALLOCATE” - CREATE VIRTUAL VIDEO PAGE
AX = 0042h BX = page number (0000h-003Fh)
Return: AX = status
0000h successful 0001h specified page is a physical or logical page 0007h virtual page created, but memory control blocks corrupted 0008h not enough memory
Notes: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software the amount of memory required by the virtual video page depends on the current video mode
SeeAlso: AX=0043h,AX=009Dh,AX=009Fh ———-620043—————————– INT 62 u - FGDRIVER v1.10 - “FG_FREEPAGE” - FREE VIRTUAL OR LOGICAL VIDEO PAGE
AX = 0043h BX = page number (0000h-003Fh)
Return: AX = status
0000h successful 0001h specified page is a physical page 0007h virtual page released, but memory control blocks corrupted 0009h attempt to free a page which was never created
SeeAlso: AX=0042h,AX=009Dh,AX=009Eh,AX=009Fh ———-620044—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETADDR” - GET SEGMENT OF ACTIVE VIDEO PAGE
AX = 0044h
Return: AX = segment of active video page ———-620045—————————– INT 62 u - FGDRIVER v1.10 - “FG_RESIZE” - SET GRAPHICS MODE VIDEO PAGE SIZE
AX = 0045h BX = new page width in pixels CX = new page height in pixels
Notes: the visible page must be set to 0000h before making this call
mouse, joysticks, expanded memory, and extended memory must be reinitialized after this call
SeeAlso: AX=000Ah,AX=000Bh,AX=0075h,AX=007Ah,AX=00A0h,AX=00A1h ———-620046—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETMAP” - STORE IMAGE AS MODE-INDEPENDNT BITMAP
AX = 0046h ES:BX -> buffer for video mode-independent bitmap CX = width of bitmap in bytes DX = height of bitmap in pixel rows
Return: each bit in bitmap is set if corresponding pixel is of the current
color, cleared otherwise
Note: this call is ignored in text modes SeeAlso: AX=0047h,AX=0048h ———-620047—————————– INT 62 u - FGDRIVER v1.10 - “FG_DRAWMAP” - DISPLAY MODE-INDEPENDENT BIT MAP
AX = 0047h ES:BX -> bitmap (each set bit is pixel drawn in current color) CX = width of bitmap in bytes DX = height of bitmap in pixel rows
SeeAlso: AX=0046h,AX=004Ah,AX=004Dh,AX=0052h ———-620048—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETIMAGE” - STORE IMAGE AS BITMAP
AX = 0048h ES:BX -> buffer for video mode-specific bitmap CX = width of bitmap in bytes DX = height of bitmap in pixel rows
SeeAlso: AX=0046h,AX=0049h,AX=0062h ———-620049—————————– INT 62 u - FGDRIVER v1.10 - “FG_DRWIMAGE” - DISPLAY BITMAPPED IMAGE
AX = 0049h ES:BX -> video mode-specific bitmap CX = width of bitmap in bytes DX = height of bitmap in pixel rows
Note: the image will be drawn with its lower left corner at the current
cursor position (either text or graphics)
SeeAlso: AX=0048h,AX=004Ah,AX=0062h ———-62004A—————————– INT 62 u - FGDRIVER v1.10 - “FG_CLPIMAGE” - DISPLAY CLIPPED IMAGE (BITMAP)
AX = 004Ah ES:BX -> mode-specific bitmap CX = width of bit map in bytes DX = height of bit map in pixel rows
Notes: this call is ignored in text modes
the image is drawn with its lower left corner at the current graphics cursor position the current clipping region is used, extended to a byte boundary
SeeAlso: AX=0029h,AX=0047h,AX=0049h,AX=004Ch,AX=0052h ———-62004B—————————– INT 62 u - FGDRIVER v1.10 - “FG_REVIMAGE” - DISPLAY REVERSED IMAGE (BITMAP)
AX = 004Bh ES:BX -> mode-specific bitmap CX = width of bitmap in bytes DX = height of bitmap in pixel rows
Notes: this call is ignored in text modes
the image is drawn with its lower left corner at the current graphics cursor position
SeeAlso: AX=004Ah,AX=004Ch ———-62004C—————————– INT 62 u - FGDRIVER v1.10 - “FG_FLPIMAGE” - DISPLAY INV CLIPPED IMAGE (BITMAP)
AX = 004Ch ES:BX -> mode-specific bitmap CX = width of bit map in bytes DX = height of bit map in pixel rows
Notes: this call is ignored in text modes
the image is drawn with its lower left corner at the current graphics cursor position the current clipping region is used, extended to a byte boundary
SeeAlso: AX=0029h,AX=004Ah ———-62004D—————————– INT 62 u - FGDRIVER v1.10 - “FG_DISPLAY” - DISPLAY IMAGE (STD PIXEL RUN FORMAT)
AX = 004Dh ES:BX -> pixel run map (pairs of bytes: color index, count) CX = number of pixel runs to display DX = width of image in pixels (> 0)
Notes: this call is ignored in text modes
the image is displayed with its lower left corner at the current graphics cursor position
SeeAlso: AX=0047h,AX=004Eh,AX=004Fh,AX=0050h,AX=0060h ———-62004E—————————– INT 62 u - FGDRIVER v1.10 - “FG_DISPLAY” - DISPLAY IMAGE (PACKED PIXEL RUN FMT)
AX = 004Eh ES:BX -> pixel run map (trios of bytes: colors, count1, count2; colors contains the color for the first run in its high nybble and the color for the second run in its low nybble) CX = number of pixel runs to display DX = width of image in pixels (> 0)
Notes: this call is ignored in text modes
the image is displayed with its lower left corner at the current graphics cursor position
SeeAlso: AX=004Dh,AX=004Fh,AX=0050h,AX=0060h ———-62004F—————————– INT 62 u - FGDRIVER v1.10 - “FG_DISPFILE” - DISPLAY STORED IMAGE
AX = 004Fh ES:BX -> ASCIZ filename CX = image width in pixels (> 0) DX = image format 0000h Fastgraph standard pixel run format 0001h packed pixel run format
Notes: this call is ignored in text modes
the image is displayed with its lower left corner at the current graphics cursor position
SeeAlso: AX=004Dh,AX=004Eh,AX=0050h,AX=0060h ———-620050—————————– INT 62 u - FGDRIVER v1.10 - “FG_PATTERN” - SPECIFY DISPLAY PATTERN FOR COLOR
AX = 0050h BX = index of pattern to define CX = number of predefined display pattern
Notes: when displaying a pixel run map, Fastgraph uses the pattern associated
with each color index rather than displaying the actual color this call has no effect in text and 256-color graphics modes
SeeAlso: AX=004Dh,AX=004Eh,AX=004Fh ———-620051—————————– INT 62 u - FGDRIVER v1.10 - “FG_DRAWMASK” - DISPLAY IMAGE (MASKING MAP)
AX = 0051h ES:BX -> array containing image stores as a masking map (see below) CX = number of pixel runs in masking map DX = width of masking map in pixels
Notes: this call is ignored in text modes and in native EGA and VGA graphics
modes the image is drawn with its lower left corner at the current graphics cursor position
SeeAlso: AX=0052h
Format of masking map: Offset Size Description 00h BYTE length of first “protect” run (pixels remain unchanged) 01h BYTE length of first “zero” run (pixels set to background color) 02h BYTE length of second “protect” run 03h BYTE length of second “zero” run … ———-620052—————————– INT 62 u - FGDRIVER v1.10 - “FG_CLIPMASK” - DISPLAY CLIPPED IMAGE (MASKING MAP)
AX = 0052h ES:BX -> array containing image stored as a masking map (see AX=0051h) CX = number of pixel runs in masking map DX = width of masking map in pixels
Notes: this call is ignored in text modes and in native EGA and VGA graphics
modes the image is drawn with its lower left corner at the current graphics cursor position
SeeAlso: AX=0029h,AX=004Ah,AX=0051h,AX=0053h,AX=0054h ———-620053—————————– INT 62 u - FGDRIVER v1.10 - “FG_REVMASK” - DISPLAY REVERSED IMAGE (MASKING MAP)
AX = 0053h ES:BX -> array containing image stored as a masking map (see AX=0051h) CX = number of pixel runs in masking map DX = width of masking map in pixels
Notes: this call is ignored in text modes and in native EGA and VGA graphics
modes the image is drawn with its lower left corner at the current graphics cursor position
SeeAlso: AX=0052h,AX=0054h ———-620054—————————– INT 62 u - FGDRIVER v1.10 - “FG_FLIPMASK” - DISPLAY INV CLIPPED IMAGE (MASKMAP)
AX = 0054h ES:BX -> array containing image stored as a masking map (see AX=0051h) CX = number of pixel runs in masking map DX = width of masking map in pixels
Notes: this call is ignored in text modes and in native EGA and VGA graphics
modes the image is drawn with its lower left corner at the current graphics cursor position
SeeAlso: AX=0029h,AX=0052h,AX=0053h ———-620055—————————– INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0055h to 0059h
Return: AX = 0000h ———-62005A—————————– INT 62 u - FGDRIVER v1.10 - “FG_SAVE” - COPY REGION FROM VISIBLE TO HIDDEN PAGE
AX = 005Ah BX = left edge column CX = right edge column DX = top edge row SI = bottom edge row
Note: left and right edges are adjusted to byte boundaries if necessary SeeAlso: AX=005Bh ———-62005B—————————– INT 62 u - FGDRIVER v1.10 - “FG_RESTORE” - COPY REGION FROM HIDDEN TO VIS PAGE
AX = 005Bh BX = left edge column CX = right edge column DX = top edge row SI = bottom edge row
Note: left and right edges are adjusted to byte boundaries if necessary SeeAlso: AX=005Ah,AX=0064h ———-62005C—————————– INT 62 u - FGDRIVER v1.10 - “FG_TRANSFER” - COPY REGION
AX = 005Ch CX = source video page DX = destination video page ES:BX -> copy record (see below)
Note: source and destination regions must not overlap if on the same page SeeAlso: AX=005Dh,AX=005Fh
Format of copy record: Offset Size Description 00h WORD left edge column of source region 02h WORD right edge column of source region 04h WORD top edge row of source region 06h WORD bottom edge row of source region 08h WORD left edge of destination 0Ah WORD bottom edge of destination ———-62005D—————————– INT 62 u - FGDRIVER v1.10 - “FG_TCXFER” - COPY REGION EXCLUDING TRANSPARENT
AX = 005Dh CX = source video page DX = destination video page ES:BX -> copy record (see AX=005Ch)
Notes: pixels which are in any of the colors defined as transparent with
AX=005Eh are left unchanged in the destination region source and destination regions must not overlap if on the same page this call is ignored in text modes
SeeAlso: AX=005Ch,AX=005Eh ———-62005E—————————– INT 62 u - FGDRIVER v1.10 - “FG_TCMASK” - SET TRANSPARENT COLORS
AX = 005Eh BX = colors to consider transparent (bit 0 = color 0, etc)
Notes: this call is ignored in text modes
the specified colors are considered transparent by AX=005Dh
SeeAlso: AX=005Dh ———-62005F—————————– INT 62 u - FGDRIVER v1.10 - “FG_COPYPAGE” - TRANSFER VIDEO PAGE CONTENTS
AX = 005Fh BX = source page number (0000h-003Fh) CX = destination page number (0000h-003Fh)
Note: if both source and destination pages are logical pages, they must both
be located in the same type (conventional, EMS, XMS) of memory
SeeAlso: AX=005Ch,AX=009Dh,AX=009Eh,AX=009Fh ———-620060—————————– INT 62 u - FGDRIVER v1.10 - “FG_DISPPCX” - DISPLAY PCX FILE
AX = 0060h ES:BX -> ASCIZ filename CX = flags bit 0: use current palette rather than PCX file's palette bits 1-15: reserved (0)
Return: AX = status
0000h success 0001h file not found 0002h file is not a valid PCX file
Notes: this call is ignored in text modes and Hercules low-resolution graphics
the image is displayed with its upper left corner at the current graphics cursor position
SeeAlso: AX=004Dh,AX=004Eh,AX=004Fh,AX=0061h ———-620061—————————– INT 62 u - FGDRIVER v1.10 - “FG_MAKEPCX” - CREATE PCX FILE FROM SCREEN WINDOW
AX = 0061h BX = left edge in screen space units CX = right edge in screen space units DX = top edge in screen space units SI = bottom edge in screen space units ES:DI -> ASCIZ filename of PCX file to create
Return: AX = status
0000h successful 0001h file not created
Notes: the PCX file is created from the specified region of the active video
page; the left and right edges are adjusted to a byte boundary if necessary if the specified file already exists, it is overwritten this call is ignored in text and Hercules low-resolution graphics modes
SeeAlso: AX=0060h ———-620062—————————– INT 62 u - FGDRIVER v1.10 - “FG_IMAGESIZ” - DETERMINE IMAGE STORAGE REQUIREMENT
AX = 0062h BX = image width in pixels CX = image height in pixels
Return: DX:AX = size in bytes of mode-specific bitmap for current video mode SeeAlso: AX=0048h ———-620063—————————– INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0063h
Return: AX = 0000h ———-620064—————————– INT 62 u - FGDRIVER v1.10 - “FG_FADEIN” - FADE IN HIDDEN PAGE
AX = 0064h BX = delay (0000h = fastest possible fade-in)
Notes: the current hidden page is copied to the current visible page in small
random sections to produce a fade-in effect this call is ignored in text modes
SeeAlso: AX=005Bh,AX=0065h ———-620065—————————– INT 62 u - FGDRIVER v1.10 - “FG_FADEOUT” - FADE OUT TO CURRENT COLOR
AX = 0065h BX = delay (0000h = fastest possible fade-out)
Notes: this call is ignored in text modes
the current visible page is filled with pixels of the current color in small random sections to give a fade-out effect
SeeAlso: AX=0064h ———-620066—————————– INT 62 u - FGDRIVER v1.10 - “FG_PAN” - SET SCREEN ORIGIN
AX = 0066h BX = new column for screen origin CX = new row for screen origin
SeeAlso: AX=0067h ———-620067—————————– INT 62 u - FGDRIVER v1.10 - “FG_SCROLL” - VERTICALLY SCROLL SCREEN REGION
AX = 0067h BX = left edge column CX = right edge column DX = top edge row SI = bottom edge row DI = number of pixels by which to scroll (positive scrolls up, negative scrolls down) ES = type of scroll 0000h circular (rows scrolled off are copied to vacated rows) else vacated rows are filled with the current color
Notes: in graphics modes, the left and right edges are adjusted to byte
boundaries if necessary circular scrolling uses part of the hidden page as a workspace
SeeAlso: AX=0066h ———-620068—————————– INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0068h to 006Ch
Return: AX = 0000h ———-62006D—————————– INT 62 u - FGDRIVER v1.10 - “FG_WAITKEY” - FLUSH KEYBOARD BUFFER AND AWAIT KEY
AX = 006Dh
Return: after next key pressed SeeAlso: AX=006Eh,AX=006Fh,AX=0096h ———-62006E—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETKEY” - GET NEXT KEYSTROKE
AX = 006Eh ES:BX -> variable pointer record (see below)
Return: (after next keystroke if no typeahead) variables updated SeeAlso: AX=006Dh,AX=006Fh,AX=0070h
Format of variable pointer record: Offset Size Description 00h WORD segment of BYTE buffer for ASCII keycode 02h WORD offset of BYTE buffer for ASCII keycode 04h WORD segment of BYTE buffer for extended keycode 06h WORD offset of BYTE buffer for extended keycode ———-62006F—————————– INT 62 u - FGDRIVER v1.10 - “FG_INTKEY” - GET KEYSTROKE, NO WAIT
AX = 006Fh ES:BX -> variable pointer record (see below)
Return: variables updated Note: if the keyboard buffer is empty, both the ASCII and extended keycodes
are set to 00h
SeeAlso: AX=006Dh,AX=006Eh,AX=0070h,AX=0079h
Format of variable pointer record: Offset Size Description 00h WORD segment of BYTE buffer for ASCII keycode 02h WORD offset of BYTE buffer for ASCII keycode 04h WORD segment of BYTE buffer for extended keycode 06h WORD offset of BYTE buffer for extended keycode ———-620070—————————– INT 62 u - FGDRIVER v1.10 - “FG_CAPSLOCK” - GET STATE OF CAPSLOCK KEY
AX = 0070h
Return: AX = CapsLock state (0000h off, 0001h on) SeeAlso: AX=006Eh,AX=006Fh,AX=0071h,AX=0072h,AX=0074h ———-620071—————————– INT 62 u - FGDRIVER v1.10 - “FG_SETCAPS” - SET STATE OF CAPSLOCK KEY
AX = 0071h BX = new state (0000h off, 0001h on)
SeeAlso: AX=0070h,AX=0073h ———-620072—————————– INT 62 u - FGDRIVER v1.10 - “FG_NUMLOCK” - GET STATE OF NUMLOCK KEY
AX = 0072h
Return: AX = NumLock state (0000h off, 0001h on) SeeAlso: AX=0070h,AX=0074h ———-620073—————————– INT 62 u - FGDRIVER v1.10 - “FG_SETNUM” - SET STATE OF NUMLOCK KEY
AX = 0073h BX = new state (0000h off, 0001h on)
SeeAlso: AX=0071h,AX=0072h ———-620074—————————– INT 62 u - FGDRIVER v1.10 - “FG_SCRLOCK” - GET STATE OF SCROLL LOCK KEY
AX = 0074h
Return: AX = ScrollLock state (0000h off, 0001h on) SeeAlso: AX=0070h,AX=0072h ———-620075—————————– INT 62 u - FGDRIVER v1.10 - “FG_INITJOY” - INITIALIZE JOYSTICK USE
AX = 0075h BX = joystick number (0001h or 0002h)
Return: AX = status
0000h successful FFFFh joystick not connected or no game port
Note: Fastgraph assumes that the requested joystick is centered at the time
this function is called
SeeAlso: AX=0076h,AX=0077h,AX=0078h,AX=0079h ———-620076—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETXJOY” - GET HORIZONTAL POSITION OF JOYSTICK
AX = 0076h BX = joystick number (0001h or 0002h)
Return: AX = horizontal position of joystick
FFFFh if joystick uninitialized or not present
Notes: the actual coordinates are processor- and joystick-dependent
you must call AX=0075h before this function
SeeAlso: AX=0075h,AX=0077h,AX=0078h ———-620077—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETYJOY” - GET VERTICAL POSITION OF JOYSTICK
AX = 0077h BX = joystick number (0001h or 0002h)
Return: AX = vertical position of joystick
FFFFh if joystick uninitialized or not present
Notes: the actual coordinates are processor- and joystick-dependent
you must call AX=0075h before this function
SeeAlso: AX=0075h,AX=0076h,AX=0078h ———-620078—————————– INT 62 u - FGDRIVER v1.10 - “FG_BUTTON” - GET JOYSTICK BUTTON STATE
AX = 0078h BX = joystick number (0001h or 0002h)
Return: AX = button states
bit 0: top button pressed bit 1: bottom button pressed
SeeAlso: AX=0075h,AX=0076h,AX=0077h,AX=0079h ———-620079—————————– INT 62 u - FGDRIVER v1.10 - “FG_INTJOY” - GET KEYCODES CORRESP TO JOYSTICK POS
AX = 0079h CX = joystick number (0001h or 0002h) ES:BX -> variable pointer record (see below)
Notes: if the indicated joystick has not been initialized with AX=0075h, both
the button code and joystick position will be set to 00h if either button is pressed, a button code of 0Dh is returned; otherwise, a button code of 00h is returned
SeeAlso: AX=006Fh,AX=0075h,AX=0078h
Format of variable pointer record: Offset Size Description 00h WORD segment of BYTE buffer for button code 02h WORD offset of BYTE buffer for button code 04h WORD segment of BYTE buffer for joystick position 06h WORD offset of BYTE buffer for joystick position ———-62007A—————————– INT 62 u - FGDRIVER v1.10 - “FG_MOUSEINI” - INITIALIZE MOUSE SUPPORT
AX = 007Ah
Return: AX = status
0002h two-button mouse 0003h three-button mouse FFFFh initialization failed
Note: after this call, the mouse cursor is invisible SeeAlso: AX=007Bh,AX=007Ch,AX=007Eh,AX=0080h,INT 33/AX=0000h ———-62007B—————————– INT 62 u - FGDRIVER v1.10 - “FG_MOUSEVIS” - SET MOUSE CURSOR VISIBILITY
AX = 007Bh BX = new state (0000h invisible, 0001h visible)
SeeAlso: AX=007Ah,AX=007Eh,INT 33/AX=0001h,INT 33/AX=0002h ———-62007C—————————– INT 62 u - FGDRIVER v1.10 - “FG_MOUSEBUT” - GET MOUSE BUTTON PRESS/RELEASE CNTS
AX = 007Ch CX = mouse button (1 = left press, 2 = right press, 3 = middle press, -1=left release, -2=right release, -3=middle release) ES:BX -> variable pointer record (see below)
Return: variables updated Note: returns the count of presses or releases since the last call to this
function; if the count is zero, row and col will also be zero
SeeAlso: AX=007Ah,INT 33/AX=0005h,INT 33/AX=0006h
Format of variable pointer record: Offset Size Description 00h WORD segment of WORD buffer for press/release count 02h WORD offset of WORD buffer for press/release count 04h WORD segment of WORD buffer for screen space col of last press/rls 06h WORD offset of WORD buffer for screen space col of last press/rels 08h WORD segment of WORD buffer for screen space row of last press/rls 0Ah WORD offset of WORD buffer for screen space row of last press/rls ———-62007D—————————– INT 62 u - FGDRIVER v1.10 - “FG_MOUSEPOS” - GET CURRENT MOUSE POSITION
AX = 007Dh ES:BX -> variable pointer record (see below)
SeeAlso: AX=007Ah,AX=0081h
Format of variable pointer record: Offset Size Description 00h WORD segment of WORD buffer for mouse column 02h WORD offset of WORD buffer for mouse column 04h WORD segment of WORD buffer for mouse row 06h WORD offset of WORD buffer for mouse row 08h WORD segment of WORD buffer for button status 0Ah WORD offset of WORD buffer for button status Note: button status: bit 0 = left button, bit 1 = right, bit 2 = middle ———-62007E—————————– INT 62 u - FGDRIVER v1.10 - “FG_MOUSECUR” - SPECIFY TEXT-MODE MOUSE CURSOR
AX = 007Eh BX = screen mask CX = cursor mask
Note: this call is ignored in graphics modes SeeAlso: AX=007Ah,AX=007Fh,INT 33/AX=000Ah ———-62007F—————————– INT 62 u - FGDRIVER v1.10 - “FG_MOUSEPTR” - SPECIFY GRAPH-MODE MOUSE CURSOR
AX = 007Fh ES:BX -> masks (16-byte screen mask followed by 16-byte cursor mask) CX = X offset of hot spot from upper left corner DX = Y offset of hot spot from upper left corner
Note: this call is ignored in text modes SeeAlso: AX=007Ah,AX=007Eh,INT 33/AX=0009h ———-620080—————————– INT 62 u - FGDRIVER v1.10 - “FG_MOUSELIM” - SPECIFY MOUSE CURSOR LIMITS
AX = 0080h BX = left-most position allowed for mouse cursor CX = right-most position allowed DX = top-most position allowed SI = bottom-most position allowed
SeeAlso: AX=007Ah,AX=0081h,INT 33/AX=0007h,INT 33/AX=0008h ———-620081—————————– INT 62 u - FGDRIVER v1.10 - “FG_MOUSEMOV” - SET MOUSE CURSOR POSITION
AX = 0081h BX = new column CX = new row
Note: will not move the mouse cursor outside the bounding box specified with
AX=0080h
SeeAlso: AX=007Ah,AX=007Dh,AX=0080h,INT 33/AX=0004h ———-620082—————————– INT 62 u - FGDRIVER v1.10 - “FG_MOUSESPD” - SET MOUSE CURSOR SPEED
AX = 0082h BX = horizontal mickeys per eight pixels of movement (default 16) CX = vertical mickeys per eight pixels of movement (default 16)
SeeAlso: INT 33/AX=000Fh,INT 33/AX=001Ah ———-620083—————————– INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0083h to 0087h
Return: AX = 0000h ———-620088—————————– INT 62 u - FGDRIVER v1.10 - “FG_SOUND” - MAKE SOUND FOR SPECIFIED DURATION
AX = 0088h BX = frequency in Hertz (18-32767) CX = duration in clock ticks (0000h or negative for continuous sound)
Note: ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
progress
SeeAlso: AX=0089h,AX=008Ah,AX=008Eh,AX=0090h ———-620089—————————– INT 62 u - FGDRIVER v1.10 - “FG_SOUNDS” - PLAY SOUNDS IN BACKGROUND
AX = 0089h CX = number of times to cycle through sound list ES:BX -> sounds array (see below)
Note: ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
progress
SeeAlso: AX=0088h,AX=008Eh,AX=008Fh
Format of sounds array element: Offset Size Description 00h WORD frequency of sound in Hertz (0000h ends array) 02h WORD duration of sound in clock ticks ———-62008A—————————– INT 62 u - FGDRIVER v1.10 - “FG_VOICE” - START SOUND
AX = 008Ah BX = channel on TI sound chip 1-3 = channels 1-3, 4 = channel 4 with periodic noise, 5 = channel 4 with white noise CX = frequency in Hz (18-32767 for channels 1-3; 0=512 Hz, 1=1024 Hz, 2=2048 Hz for channels 4 and 5) DX = volume SI = duration in clock ticks (continuous if <= 0)
Notes: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software only available on PCjr and Tandy 1000
SeeAlso: AX=0088h,AX=008Bh,AX=008Ch ———-62008B—————————– INT 62 u - FGDRIVER v1.10 - “FG_VOICES” - PLAY SOUNDS IN BACKGROUND
AX = 008Bh ES:BX -> tone array (see below) CX = number of times to repeat tone array
Notes: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software only available on PCjr and Tandy 1000
SeeAlso: AX=008Ah,AX=008Dh,AX=008Eh,AX=008Fh,AX=0091h
Format of tone array element: Offset Size Description 00h WORD channel number (0000h terminates array) 02h WORD frequency 04h WORD volume 06h WORD duration in 1/72.8 seconds ———-62008C—————————– INT 62 u - FGDRIVER v1.10 - “FG_MUSIC” - PLAY SERIES OF NOTES
AX = 008Ch ES:BX -> '$'-terminated music string in BASIC PLAY format
Return: after music completed Note: ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
progress
SeeAlso: AX=008Ah,AX=008Dh ———-62008D—————————– INT 62 u - FGDRIVER v1.10 - “FG_MUSICB” - PLAY SERIES OF NOTES IN BACKGROUND
AX = 008Dh CX = number of repetitions (negative = continuous play) ES:BX -> '$'-terminated music string in BASIC PLAY format
Note: ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
progress
SeeAlso: AX=008Bh,AX=008Ch,AX=008Eh,AX=008Fh,AX=0091h ———-62008E—————————– INT 62 u - FGDRIVER v1.10 - “FG_HUSH” - STOP ASYNCHRONOUS SOUND IMMEDIATELY
AX = 008Eh
Note: immediately stops any sounds started with “FG_MUSICB”, “FG_SOUNDS”,
or AX=008Bh; ignored if no asynchronous sound is playing
SeeAlso: AX=0088h,AX=008Bh,AX=008Fh,AX=0090h,AX=0091h ———-62008F—————————– INT 62 u - FGDRIVER v1.10 - “FG_HUSHNEXT” - STOP ASYNCHRONOUS SOUND
AX = 008Fh
Note: stops any sounds started with “FG_MUSICB”, “FG_SOUNDS”, or AX=008Bh
after the current repetition completes; ignored unless asynchronous sound is continuous
SeeAlso: AX=008Bh,AX=008Eh,AX=0090h ———-620090—————————– INT 62 u - FGDRIVER v1.10 - “FG_QUIET” - STOP CONTINUOUS SYNCHRONOUS SOUND
AX = 0090h
Note: this call has no effect if there is no continuous sound playing SeeAlso: AX=008Eh,AX=008Fh,AX=0091h ———-620091—————————– INT 62 u - FGDRIVER v1.10 - “FG_PLAYING” - DETERMINE WHETHER ASYNC SOUND ACTIVE
AX = 0091h
Return: AX = sound state (0 = no asynchronous sound, 1 = async sound playing) SeeAlso: AX=008Bh,AX=008Dh,AX=0090h ———-620092—————————– INT 62 u - FGDRIVER v1.10 - “FG_RESUME” - RESTART ASYNCHRONOUS SOUND
AX = 0092h
SeeAlso: AX=008Eh,AX=008Fh,AX=0090h ———-620093—————————– INT 62 u - FGDRIVER v1.10 - “FG_SUSPEND” - TEMPORARILY STOP ASYNCHRONOUS SOUND
AX = 0093h
Notes: this call has no effect if there is no asynchronous sound in progress
the program must not exit while sound is suspended
SeeAlso: AX=0092h ———-620094—————————– INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0094h to 0095h
Return: AX = 0000h ———-620096—————————– INT 62 u - FGDRIVER v1.10 - “FG_WAITFOR” - DELAY FOR SPECIFIED DURATION
AX = 0096h BX = duration in clock ticks
Return: after delay elapses SeeAlso: AX=006Dh,AX=0097h ———-620097—————————– INT 62 u - FGDRIVER v1.10 - “FG_STALL” - PAUSE FOR SPECIFIED DURATION
AX = 0097h BX = duration in processor-dependent delay units (see AX=0098h)
Return: after delay elapses SeeAlso: AX=0096h,AX=0098h ———-620098—————————– INT 62 u - FGDRIVER v1.10 - “FG_MEASURE” - GET DELAY UNITS PER CLOCK TICK
AX = 0098h
Return: AX = delay units per clock tick (processor-dependent) Note: delay units are used by “FG_STALL” (AX=0097h) SeeAlso: AX=0097h ———-620099—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETCLOCK” - GET CLOCK TICKS SINCE MIDNIGHT
AX = 0099h
Return: DX:AX = number of clock ticks since midnight Note: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software
———-62009A—————————– INT 62 - FGDRIVER v1.10 - UNUSED
AX = 009Ah
Return: AX = 0000h ———-62009B—————————– INT 62 u - FGDRIVER v1.10 - “FG_MEMAVAIL” - QUERY AMOUNT OF FREE MEMORY
AX = 009Bh
Return: DX:AX = number of bytes of conventional memory available SeeAlso: AX=009Dh ———-62009C—————————– INT 62 u - FGDRIVER v1.10 - “FG_SETFUNC” - SET LOGICAL OPERATION FOR VIDEO OPS
AX = 009Ch BX = operation 0000h replacement 0001h AND 0002h OR 0003h XOR
Note: only available in native EGA/VGA graphics mode (0Dh to 12h) ———-62009D—————————– INT 62 u - FGDRIVER v1.10 - “FG_ALLOCCMS” - CREATE LOGICAL VIDEO PAGE (CONVMEM)
AX = 009Dh BX = page number (0001h-003Fh)
Return: AX = status
0000h successful FFFCh insufficient memory FFFDh page already created, or exists as physical or virtual page FFFEh invalid page number
Note: the only operation which is allowed on logical pages is AX=005Fh SeeAlso: AX=0043h,AX=005Fh,AX=009Bh,AX=009Eh,AX=009Fh ———-62009E—————————– INT 62 u - FGDRIVER v1.10 - “FG_ALLOCEMS” - CREATE LOGICAL VIDEO PAGE (EMS)
AX = 009Eh BX = page number (0001h-003Fh)
Return: AX = status
0000h successful FFFCh insufficient memory FFFDh page already created, or exists as physical or virtual page FFFEh invalid page number FFFFh memory manager not initialized
Notes: must first call AX=00A0h
the only operation which is allowed on logical pages is AX=005Fh
SeeAlso: AX=0043h,AX=005Fh,AX=009Dh,AX=009Fh,AX=00A0h ———-62009F—————————– INT 62 u - FGDRIVER v1.10 - “FG_ALLOCXMS” - CREATE LOGICAL VIDEO PAGE (XMS)
AX = 009Fh BX = page number (0001h-003Fh)
Return: AX = status (see AX=009Eh) Notes: must first call AX=00A1h
the only operation which is allowed on logical pages is AX=005Fh
SeeAlso: AX=0043h,AX=005Fh,AX=009Dh,AX=009Eh,AX=00A1h ———-6200A0—————————– INT 62 u - FGDRIVER v1.10 - “FG_INITEMS” - INITIALIZE EXPANDED MEMORY USE
AX = 00A0h
Return: AX = status
0000h successful FFFFh expanded memory manager inaccessible or not installed
SeeAlso: AX=009Eh,AX=00A1h ———-6200A1—————————– INT 62 u - FGDRIVER v1.10 - “FG_INITXMS” - INITIALIZE EXTENDED MEMORY USE
AX = 00A1h
Return: AX = status
0000h successful FFFFh extended memory manager inaccessible or not installed
SeeAlso: AX=009Fh,AX=00A0h ———-6200A2—————————– INT 62 u - FGDRIVER v1.10 - “FG_BOX” - DRAW UNFILLED RECTANGLE
AX = 00A2h BX = left column CX = right column DX = top row SI = bottom row
Notes: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software the rectangle is drawn in screen space, respecting the clipping region, width edges of the width specified with AX=00A3h (default = 1 is set by "FG_SETMODE") this function has no effect in text modes
SeeAlso: AX=002Bh,AX=002Ch,AX=002Eh,AX=0030h,AX=00A3h ———-6200A3—————————– INT 62 u - FGDRIVER v1.10 - “FG_BOXDEPTH” - SET RECTANGLE BORDER WIDTH
AX = 00A3h BX = width of left and right edges in pixels (> 0) CX = width of top and bottom edges in pixels (> 0)
SeeAlso: AX=00A2h ———-6200A4—————————– INT 62 u - FGDRIVER v1.10 - “FG_GETDACS” - GET VIDEO DAC CONTENTS
AX = 00A4h CX = number of DAC registers to return (0001h to 0100h) DX = starting DAC register number (0000h to 00FFh) ES:BX -> buffer for DAC red/green/blue triples
Note: the register number wraps back to zero after FFh SeeAlso: AX=001Ch,AX=00A5h ———-6200A5—————————– INT 62 u - FGDRIVER v1.10 - “FG_SETDACS” - SET VIDEO DAC CONTENTS
AX = 00A5h CX = number of DAC registers to set (0001h to 0100h) DX = starting DAC register number (0000h to 00FFh) ES:BX -> buffer containing DAC red/green/blue triples
Notes: the register number wraps back to zero after FFh
this call has no effect in text modes or graphics modes below 11h
SeeAlso: AX=001Bh,AX=00A4h ———-6201——————————- INT 62 - Cswitch - GIVE UP REST OF TIME-SLICE
AH = 01h
Note: Cswitch is a set of multitasking functions by Herb Rose SeeAlso: AH=05h,AH=06h,INT 15/AX=1000h ———-6202——————————- INT 62 - Cswitch - WAIT FOR SEMAPHORE
AH = 02h DX = semaphore number (0-63)
Return: AX = FFFFh bad semaphore number
else success
SeeAlso: AH=03h,AH=04h ———-6203——————————- INT 62 - Cswitch - CHECK SEMAPHORE
AH = 03h DX = semaphore number (0-63)
Return: AX = FFFFh not owned
else owned
SeeAlso: AH=02h,AH=04h ———-6204——————————- INT 62 - Cswitch - TRIGGER SEMAPHORE
AH = 04h DX = semaphore number (0-63)
Return: AX = FFFFh bad semaphore number
else success
SeeAlso: AH=02h,AH=03h ———-6205——————————- INT 62 - Cswitch - SLEEP
AH = 05h BX = seconds to sleep
SeeAlso: AH=01h,AH=06h,AH=08h”Cswitch“ ———-6206——————————- INT 62 - Cswitch - SUSPEND
AH = 06h
SeeAlso: AH=05h,AH=08h”Cswitch“ ———-6207——————————- INT 62 - Cswitch - SPAWN
AH = 07h ES:BX -> function address to start executing at CX = priority (1-10)
Return: AX = FFFDh no free memory control blocks
= FFFEh no free task control blocks = FFFFh not enough memory to create new task stack = >0 the tcb number of the new task, indicating no error
SeeAlso: AH=0Fh,AH=10h ———-6208——————————- INT 62 - Cswitch - WAKE UP TASK
AH = 08h BX = tcb identifier
SeeAlso: AH=05h,AH=06h ———-6208–CXFFFE———————– INT 62 - MS SQL Server/Sybase DBLIBRARY interface - UNINSTALL/GET PSP ADDR
AH = 08h CX = FFFEh DX = FFFFh
Return: AX = PSP address of resident DBLIBRARY Note: this call does not free the memory allocated to the TSR; the calling
code must do the deallocation.
SeeAlso: INT 62”DBLIBRARY“ ———-6209——————————- INT 62 - Cswitch - SET PRIORITY
AH = 09h BX = new base priority (1-10)
Note: the lower the priority is numerically, the more often the task will run ———-620A——————————- INT 62 - Cswitch - TEST MESSAGE QUEUE
AH = 0Ah DX = queue number (0-63)
Return: AX = FFFFh bad queue number
= 0000h nothing on queue else number of bytes in first message in queue
SeeAlso: AH=0Bh,AH=0Ch ———-620B——————————- INT 62 - Cswitch - SEND MESSAGE
AH = 0Bh CX = number of bytes to write DS:SI -> buffer DX = queue number (0-63)
Return: AX = FFFEh triggered by something arriving, redo the call
= FFFFh bad queue number = 0000h no message was on queue else number of bytes in message
SeeAlso: AH=0Ah,AH=0Ch ———-620C——————————- INT 62 - Cswitch - READ MESSAGE
AH = 0Ch CX = number of bytes to read DS:SI -> buffer DX = queue number (0-63)
Return: AX = FFFFh bad queue number
else number of bytes transferred
SeeAlso: AH=0Ah,AH=0Bh ———-620D——————————- INT 62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT
AH = 0Dh
SeeAlso: AH=0Eh ———-620E——————————- INT 62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT
AH = 0Eh
SeeAlso: AH=0Dh ———-620F——————————- INT 62 - Cswitch - LOAD AND RUN PROGRAM FROM DISK
AH = 0Fh ES:BX -> command line CX = priority (1-10) DX = background flag = != 0000h allows loading to EMS
Return: AX = 0000h task loader queue is full
= 0001h no error
SeeAlso: AH=07h,AH=10h,AH=13h ———-6210——————————- INT 62 - Cswitch - TERMINATE SPAWNED PROGRAM
AH = 10h
SeeAlso: AH=07h,AH=0Fh ———-6211——————————- INT 62 - Cswitch - GET TCB INFORMATION
AH = 11h ES:BX -> a pointer which will be set to the tcb address
Return: AX = tcb indentifier SeeAlso: AH=12h ———-6212——————————- INT 62 - Cswitch - GET TCB ADDRESS
AH = 12h ES:BX -> a pointer which will be set to the tcb table address
Return: AX = tcb indentifier SeeAlso: AH=11h ———-6213——————————- INT 62 - Cswitch - CHECK STATUS OF PREVIOUS LOAD_TASK
AH = 13h
Return: AX = FFFCh no Memory Control Blocks available
= FFFDh no TCBs available = FFFEh insufficient memory = FFFFh cannot open file = 0000h load in progress (not done yet) else tcb indentifier
SeeAlso: AH=0Fh ———-6247——————————- INT 62 - PC Tools 7 COMMUTE - ???
AH = 47h AL = subfunction (00h-31h) ??? CF set
Return: ??? ———-6248——————————- INT 62 - PC Tools 7 COMMUTE - ???
AH = 48h AL = ??? ??? CF set
Return: ??? ———-6249——————————- INT 62 - PC Tools 7 COMMUTE - ???
AH = 49h ??? CF set
Return: ??? Note: may be the same as AH=4Ch ———-624A——————————- INT 62 - PC Tools 7 COMMUTE - ???
AH = 4Ah AL = subfunction (00h-46h) ??? CF set
Return: ??? ———-624B–BX1234———————– INT 62 - PC Tools 7 COMMUTE - ???
AH = 4Bh BX = 1234h CX = 1234h ES = ??? CF set
Return: ??? ———-624C——————————- INT 62 - PC Tools 7 COMMUTE - ???
AH = 4Ch BL = subfunction 00h ??? 02h ???
Return: CF clear if successful
CF set on error
———-626262—————————– INT 62 - PC Tools 7 COMMUTE - INSTALLATION CHECK
AX = 6262h CF set
Return: AX = 0000h
BX = segment of resident code's PSP
———-63——————————— INT 63 - reserved for user interrupt ———-63——————————— INT 63 - Adaptec and OMTI controllers - DRIVE 0 DATA Notes: this vector stores the last four bytes of the parameter table for
hard disk 0
SeeAlso: INT 60”Adaptec“,INT 61”Adaptec“,INT 62”Adaptec“,INT 64”Adaptec“ ———-63——————————— INT 63 - Oracle SQL Protected Mode Executive - ??? ———-63——————————— INT 63 - 4+Power FLOPPY CONTROLLER - ORIGINAL INT 13/40
the "4+Power" quad floppy controller BIOS hooks INT 13 (or INT 40 if INT 13 has been moved there) and places the old value here
———-63——————————— INT 63 - Kofax KF9X00 image manipulation card interface ———-63——————————— INT 63 - DESQview/X - ??? Notes: parameters are passed by patching!! data field immediately following
the entry point, as detailed below the installation check consists of testing for the string "dvxunix" (yes, lowercase) at offset 9 from the interrupt handler start
SeeAlso: INT BE”DESQview“
Format of interrupt handler entry: Offset Size Description 00h 3 BYTEs near jump or short jump + NOP to actual interrupt handler 03h WORD offset from following pointer for initial top of local stack 05h DWORD pointer to argument/stack block (see below) 09h 7 BYTEs signature “dvxunix”
Format of argument/stack block: Offset Size Description 00h WORD signature F0ADh 02h WORD function number (0000h-002Ah or FFFFh) 04h 4 BYTEs ??? 08h WORD PSP segment to use or 0000h for current PSP 0Ah WORD scratch space (JFT size) 0Ch DWORD scratch space (JFT address) 10h ??? ———-64——————————— INT 64 - reserved for user interrupt ———-64——————————— INT 64 - Adaptec controllers - DRIVE 1 DATA Notes: this vector stores the first four bytes of the parameter table for
hard disk 1 these vectors are used by the following Adaptec controllers: ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16 these vectors are NOT used by the following Adaptec controllers: ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
SeeAlso: INT 60”Adaptec“,INT 65”Adaptec“,INT 66”Adaptec“,INT 67”Adaptec“ ———-64——————————— INT 64 - Oracle SQL Protected Mode Executive - ??? ———-64——————————— INT 64 - Novell NetWare to v2.0a - LOW-LEVEL API Note: equivalent to INT 7A for NetWare versions through 2.0a only; later
versions do not use this interrupt for IPX/SPX access, instead getting an entry point from INT 2F/AX=7A00h
SeeAlso: INT 2F/AX=7A00h,INT 7A”Novell“ ———-64——————————— INT 64 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE SeeAlso: INT 65”DG10“,INT 66”DG10“ ———-64——————————— INT 64 - Extended Batch Language v3.14+
AH = function 00h to 5Fh chained to previous handler 60h to 6Ch reserved, return immediately 80h to FFh chained to previous handler 6Dh (v4.01+) insert tone in queue AL = ??? CX = frequency in Hertz DL = duration in clock ticks Return: AL = 00h if note stored = 01h if no room to store 6Eh clear ??? counter/flag 6Fh return counter/flag that AH=6Eh clears 70h ??? AL = ??? 71h ??? AL = ??? 72h ??? 73h insert byte at end of keyboard buffer AL = byte to insert Return: AL = 00h if byte inserted = 01h if no room to store 74h insert byte at front of keyboard buffer AL = byte to insert Return: AL = 00h if byte inserted = 01h if no room to store 75h ??? 76h get keyboard "stack" status AL = 'K' if kbd read will read physical keyboard 'S' if it will read EBL internal keyboard buffer AH = ??? 77h clear internal keyboard buffer 78h ??? AL = ??? 79h ??? 7Ah ??? AL = ??? 7Bh ??? AL = ??? 7Ch ??? AL = ??? 7Dh ??? AL = ??? 7Eh clear buffer for ??? 7Fh installation check Return: CX = version in BCD DI = segment of ??? BX = segment of next program's PSP???
Notes: Extended Batch Language is a batch-file enhancer by Seaware
the chaining does not check whether the interrupt had been hooked before, so if you try to chain when the previous vector was 0000h:0000h, you'll be in trouble functions 72h and 7Ah-7Dh appear to be interfaces to the optional floating-point and extended function packages
———-64——————————— INT 64 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information Note: This vector is overwritten by Pdisk to install custom harddrive types.
It can either destroy 4 vectors and take no memory or TSR and take up some memory.
SeeAlso: INT 65”Pdisk“ ———-65——————————— INT 65 - reserved for user interrupt ———-65——————————— INT 65 - Adaptec controllers - DRIVE 1 DATA Note: this vector stores the second four bytes of the parameter table for
hard disk 1
SeeAlso: INT 64”Adaptec“,INT 66”Adaptec“,INT 67”Adaptec“ ———-65——————————— INT 65 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE SeeAlso: INT 64”DG10“,INT 66”DG10“ ———-65——————————— INT 65 - FTP Software NDIS-Packet Driver adapter - POST PROCESSING INTERRUPT ———-65——————————— INT 65 - SD.COM v6.2
The unregistered version of SD62.COM uses the low byte of this vector to count the number of invocations, displaying a registration reminder each time after the 20th use.
———-65——————————— INT 65 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information SeeAlso: INT 64”Pdisk“,INT 66”Pdisk“ ———-65——————————— INT 65 - Ad Lib SOUND.COM - INTERFACE
SI = function number (see separate entries for details on several) = 0000h Init = 0002h RelTimeStart = 0003h SetState = 0004h GetState = 0005h Flush = 0006h SetMode = 0007h GetMode = 0008h SetRelVolume = 0009h SetTempo = 000Ah SetTranspose = 000Bh GetTranspose = 000Ch SetActVoice = 000Dh GetActVoice = 000Eh PlayNoteDel = 000Fh PlayNote = 0010h SetTimbre = 0011h SetPitch = 0012h SetTickBeat = 0013h NoteOn = 0014h NoteOff = 0015h Timbre = 0016h SetPitchBend = 0017h WaveForm ES:BX -> arguments
Note: the installation check consists of checking for the signature block
immediately preceding the interrupt handler (see below)
Format of signature block: Offset Size Description 00h WORD version number 02h 19 BYTEs “SOUND-DRIVER-AD-LIB” 15h BYTE 01h 16h BYTE 01h 17h BYTE 00h ———-65—-SI0000———————– INT 65 - Ad Lib SOUND.COM - INITIALIZE (RESET)
SI = 0000h
———-65—-SI0003———————– INT 65 - Ad Lib SOUND.COM - SET STATE
SI = 0003h ES:BX -> WORD state = 0000h disabled = 0001h enabled
SeeAlso: SI=0004h ———-65—-SI0004———————– INT 65 - Ad Lib SOUND.COM - GET STATE
SI = 0004h
Return: AX = 0000h all done playing sounds
= else still playing sounds
SeeAlso: SI=0003h ———-65—-SI0006———————– INT 65 - Ad Lib SOUND.COM - SET MODE
SI = 0006h ES:BX -> WORD mode = 0000h melodic = 0001h percussive
SeeAlso: SI=0007h ———-65—-SI0007———————– INT 65 - Ad Lib SOUND.COM - GET MODE
SI = 0007h
Return: AX = 0000h melodic
= 0001h percussive
SeeAlso: SI=0006h ———-65—-SI000C———————– INT 65 - Ad Lib SOUND.COM - SET ACTIVE VOICE
SI = 000Ch ES:BX -> WORD voice = 0000h to 0008h
SeeAlso: SI=000Dh ———-65—-SI000D———————– INT 65 - Ad Lib SOUND.COM - GET ACTIVE VOICE
SI = 000Dh
Return: AX = voice (0000h to 0008h) SeeAlso: SI=000Ch ———-66——————————— INT 66 - reserved for user interrupt ———-66——————————— INT 66 - Adaptec controllers - DRIVE 1 DATA Note: this vector stores the third four bytes of the parameter table for
hard disk 1
SeeAlso: INT 64”Adaptec“,INT 65”Adaptec“,INT 67”Adaptec“ ———-66——————————— INT 66 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE SeeAlso: INT 64”DG10“ ———-66——————————— INT 66 - Nanosoft, Inc. TurboNET - NETWORK PROCESSING ??? Notes: hooked but not used (IRET) by both redirector and server; called from
server's INT 28 handler TurboNET is a NetBIOS-based file redirector and server
SeeAlso: INT 2F/AX=8100h ———-66——————————— INT 66 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information SeeAlso: INT 64”Pdisk“,INT 67”Pdisk“ ———-66——————————— INT 66 - Microsoft Windows VITD.386 Virtual Interval Timer Note: This Windows 3.x Virtual Device Driver implements a virtual timer
which will expire and call INT 66. This timer can be used to calculate elapsed execution time etc.
———-6601——————————- INT 66 - BitFax Scheduler - SET MODE???
AH = 01h
SeeAlso: AH=02h ———-6602——————————- INT 66 - BitFax Scheduler - SET MODE???
AH = 02h
SeeAlso: AH=01h ———-6603——————————- INT 66 - BitFax Scheduler - SCHEDULE FAX TRANSMISSIONS
AH = 03h ???
Return: ??? SeeAlso: AH=05h ———-6604——————————- INT 66 - BitFax Scheduler - GET STATUS???
AH = 04h
Return: AX = ??? (0000h or 0001h)
DX = BitSched version??? (for versions >= 3.00) 9796h (ver. 3.00) 97E6h (ver. 3.02) 92D0h (ver. 3.04.06) 9510h (ver. 3.06.02)
SeeAlso: AH=06h,AX=3345h,INT 2F/AX=8000h”FaxBIOS“ ———-6605——————————- INT 66 - BitFax Scheduler - CONVERT FILE AND SEND FAX
AH = 05h BX:CX -> command block (see below) ???
Return: ??? SeeAlso: AH=03h
Format of command block: Offset Size Description 00h 18 BYTEs configuration bytes??? 12h BYTEs ASCIZ temporary file name to place converted fax 52h BYTEs ASCIZ directory containing BitFax executables 92h BYTEs ASCIZ telephone number C2h BYTE 00h don't send cover page
01h send cover page
C3h 15 BYTEs configuration bytes??? E2h BYTEs ASCIZ path of BITFAX.TRA file (containing additional
configuration information???)
122h BYTEs configuration bytes??? 12Ch BYTE 00h don't send cover page
01h send cover page
12Dh 7 BYTEs configuration bytes??? 134h BYTEs ASCIZ path of file to send 174h BYTEs more configuration bytes???
???
———-6606——————————- INT 66 - BitFax Scheduler - SET MODE???
AH = 06h
Return: DX = BitSched version??? (same as AH=04h) SeeAlso: AH=04h ———-660688—————————– INT 66 - John W. Ratcliff (The IBM Digitized Sound Package)
AX = 0688h ???
Return: ??? SeeAlso: AX=0689h ———-660689—————————– INT 66 - John W. Ratcliff (The IBM Digitized Sound Package)
AX = 0689h ???
Return: ??? SeeAlso: AX=0688h ———-663345—————————– INT 66 - BitFax Scheduler - REMOVE TSR FROM MEMORY
AX = 3345h
Return: AX = FFFFh error removing TSR Note: the installation check consists of checking for the signature
"BitFax Scheduler" beginning two bytes past the interrupt handler
SeeAlso: AH=04h,INT 2F/AH=2Ah,INT 2F/AX=CB00h ———-66FFFBBXFFFB———————– INT 66 - MicroHelp Stay-Res Plus - ???
AX = FFFBh BX = FFFBh ???
Return: ??? SeeAlso: AX=FFFEh,INT 2D”AMIS“ ———-66FFFEBXFFFE———————– INT 66 - MicroHelp Stay-Res/Stay-Res Plus - UNINSTALL
AX = FFFEh BX = FFFEh
Return: only if unsuccessful Notes: installation check is for the interrupt handler to begin with the bytes
FBh 9Ch or 9Ch FAh, and the program name (not case-sensitive) to appear at offset 0005h (older versions) or the offset returned by AX=FFFFh/BX=FFF0h in the interrupt handler segment. Programs which use Stay-Res include ThesPlus (program name "THESPLUS") and Personal Calendar (program name "CAL") by Paul Mun~oz-Colman.
SeeAlso: AX=FFFBh,AX=FFFFh,INT 2D”AMIS“ ———-66FFFFBXFFF0———————– INT 66 - MicroHelp Stay-Res Plus - FIND PROGRAM NAME
AX = FFFFh BX = FFF0h
Return: DI = offset of program name in interrupt handler segment SeeAlso: AX=FFFBh,AX=FFFEh,INT 2D”AMIS“ ———-67——————————— INT 67 - Adaptec controllers - DRIVE 1 DATA Note: this vector stores the last four bytes of the parameter table for
hard disk 1
SeeAlso: INT 64”Adaptec“,INT 65”Adaptec“,INT 66”Adaptec“ ———-67——————————— INT 67 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information SeeAlso: INT 64”Pdisk“,INT 66”Pdisk“ ———-67——————————— INT 67 - Sangoma CCPOP 3270 resident module SeeAlso: INT 61”Sangoma“,INT 68”Sangoma“ ———-67——————————— INT 67 - CUCKOO.COM - INSTALLATION CHECK Notes: this is not a vector; when loaded for the first time, CUCKOO.COM uses
the last unused (0000h:0000h) vector in the range 60h-67h to store the signature value 434Ch:4F4Bh ('CLOK') CUCKOO is a resident on-screen clock with optional hourly chime or cuckoo by an unknown author with revisions by Thomas A. Lundin
———-6700——————————- INT 67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE AND WAIT
AH = 00h DS:DX -> ASCIZ semaphore name (max 64 bytes)
Return: AL = status
00h successful 01h invalid function 02h semaphore already locked 03h unable to lock semaphore 04h semaphore space exhausted AH = semaphore owner if status=02h
SeeAlso: AH=01h,AH=02h”PC-NET“,INT 7F/AH=00h ———-6701——————————- INT 67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE
AH = 01h DS:DX -> ASCIZ semaphore name (max 64 bytes)
Return: AL = status (see AH=00h)
AH = semaphore owner if status=02h
SeeAlso: AH=00h,AH=02h”PC-NET“,INT 7F/AH=01h”Alloy“ ———-6702——————————- INT 67 - PC-NET, Alloy NTNX - UNLOCK SEMAPHORE
AH = 02h DS:DX -> ASCIZ semaphore name (max 64 bytes)
Return: AL = status (see AH=00h)
AH = semaphore owner if status=02h
SeeAlso: AH=00h,AH=01h”PC-NET“,INT 7F/AH=02h ———-673F–CX5145———————– INT 67 U - QEMM-386 v4.23+ - INSTALLATION CHECK
AH = 3Fh CX = 5145h ("QE") DX = 4D4Dh ("MM")
Return: AH = 00h if installed
ES:DI -> QEMM API entry point
Notes: if no other program has hooked INT 67, an alternate installation
check is to test for the string "QUARTERDECK EXPANDED MEMORY MANAGER 386" at offset 14h in the INT 67 handler's segment; the word at offset 12h contains the offset in the handler's segment of the API entry point MICEMM (Micronics Expanded Memory Manager) versions 2.0C and 4D support the alternate QEMM installation check and entry point functions 00h, 02h, and 03h; version 4D only provides the signature string if the commandline argument "DV" is provided 386MAX v6.01 responds to this call, but DESQview 2.42 does not recognize the returned entry point as providing QEMM's capabilities because a) only functions 0Ch (different from QEMM 0Ch) and 1000h-1009h are supported, b) status is returned as for EMS functions, not QEMM funcs c) the protected-mode entry point returned by function 1000h only supports functions 0Ch, 1004h, 1005h, and 100Ah the string check mentioned above is not supported by 386MAX
SeeAlso: AH=DDh,AX=5BF0h,AX=FFA5h,INT 15/AX=11DEh,INT 21/AX=4402h”QEMM“ SeeAlso: INT 21/AX=4402h”386MAX“,INT 2F/AX=D201h/BX=5145h
Call QEMM entry point with:
AH = 00h get QEMM state Return: CF clear AL = QEMM state bit 0 set if QEMM turned OFF bit 1 set if in "Auto" mode AH = 01h set QEMM state AL = new state bit 0 set: place QEMM in OFF state Return: CF clear if successful CF set on error AH = 02h get ??? Return: CF clear AX = segment of ??? data structure Data Structure Offset Size Description 00h BYTE ??? 01h WORD ??? ??? AH = 03h get QEMM version Return: CF clear AX = BX = version in BCD Notes: the official docs only state that the version is returned in BX MICEMM returns AX=0001h, BX unchanged AH = 04h allocate 4K page and set AUTO/ON mode Return: CF clear if successful DX = page number of a 4K page CF set if unable to allocate page Note: QEMM mode unchanged if not AUTO/OFF AH = 05h free 4K page and turn QEMM off DX = page number returned by function 04h Return: CF clear Note: QEMM mode unchanged if not AUTO/ON AH = 06h make new mapping context??? DX = page number of 4K page to hold page table Return: CF clear Note: copies page table into given page and then sets ??? page table entry to point at copy AH = 07h get mapping context??? Return: CF clear DX = page table number??? AH = 08h ??? DX = linear page number Return: CF clear AH = 09h get linear page number for page table entry CX = page table index Return: CF clear DX = linear page number AH = 0Ah set linear page number for page table entry CX = page table index DX = linear page number Return: CF clear AH = 0Bh map 4K pages??? BX = number of pages??? CX = first page number??? (must be 0100h to allocate HMA) DX = EMS handle??? Return: AH = 00h AH = 0Ch get available memory Return: CF clear BX = 0001h CX = total 4K pages??? DX = number of 4K pages free AH = 0Dh ??? (related to callbacks) AL = 00h/01h/02h ??? Return: CF clear AH = 0Eh set ??? callbacks DS:BX -> FAR routine for ??? ES:DX -> FAR routine for ??? Return: CF clear Note: DS:BX callback should return BX=???; ES:DX is called with BX=???, and should set the ??? from which the other handler read the value of BX. BH and BL appear to be separate values. AH = 0Fh unmap 4K pages??? CX = first page number DX = number of pages Return: CF clear AL = 00h/01h if ??? Note: if CX=0100h and DX=0010h, the HMA is remapped to simulate a disabled A20 AX = 1000h get protected-mode interface DS:SI -> 16-byte buffer for two GDT entries ES:DI -> buffer for 4K page table Return: CF clear EAX = offset of protected-mode API entry point DS:SI buffer filled with two GDT descriptors first is QEMM code segment, second is data??? ES:DI buffer filled with 4K page table DI points to first unused page table entry SeeAlso: INT 67/AX=DE01h AX = 1001h get CPU debug registers ES:DI -> buffer for debug registers (8 DWORDs) Return: CF clear BL = INT01 handling (see function 1002h) ES:DI buffer filled AX = 1002h set CPU debug registers BL = INT01 handling 00h reflect all debugging exceptions as V86-mode INT 01's else convert debugging exceptions other than single-step into V86-mode INT 03's, single-step to INT 01's ES:DI -> buffer containing debug registers (8 DWORDs) Return: CF clear Notes: identical to INT 67/AX=DE09h if BL=01h the INT01 handling flag is set to 01h by the general- protection violation handler for certain privileged instructions AX = 1003h get machine status word CR0 Return: CF clear EAX = contents of CR0 SeeAlso: INT 67/AX=DE07h AX = 1004h allocate a 4K page Return: CF clear if successful EDX = linear address of allocated page CF set on error SeeAlso: INT 67/AX=DE04h AX = 1005h free 4K page EDX = linear address of page to free Return: CF clear SeeAlso: INT 67/AX=DE05h AX = 1006h NOP Return: CF set AX = 1007h get maximum physical memory address Return: CF clear EDX = physical address of highest 4K memory page SeeAlso: INT 67/AX=DE02h AX = 1008h get physical address of page in first megabyte CX = page number (linear address shifted right 12 bits) Return: CF clear EDX = linear address of page SeeAlso: function 1F00h AX = 1009h switch to protected mode ESI = linear address in first megabyte of system reg values (see INT 67/AX=DE0Ch) interrupts disabled Return: interrupts disabled GDTR, IDTR, LDTR, TR loaded SS:ESP must have at least 16 bytes space, and the entry point is required to set up a new stack before enabling interrupts EAX, ESI, DS, ES, FS, GS destroyed AX = 100Ah switch back to virtual-86 mode DS = selector for data segment from function 1000h SS:ESP in first megabyte of linear memory interrupts disabled STACK: QWORD return address from FAR call to 32-bit segment DWORD EIP DWORD CS DWORD reserved for EFLAGS DWORD ESP DWORD SS DWORD ES DWORD DS DWORD FS DWORD GS will switch to virtual86 mode with interrupts disabled, all segment registers loaded, and EAX destroyed. AH = 11h get memory type map AL = zero/nonzero ??? (set by QEMM.COM but apparently ignored by QEMM 6.00) ES:DI -> 256-byte buffer for memory types Return: CF clear BL = ??? ES:DI buffer filled Note: each byte of the buffer corresponds to a 4K page, and contains the type of that page: 00h = mappable, 02h = mapped ROM, 03h = high RAM, 04h = excluded, 05h = video, 06h = ROM, 07h = adapter ROM, 08h = split ROM, 09h = page frame, 0Ah = RAMmable, 0Bh = conventional AH = 12h get HIRAM chain Return: CF clear BX = segment of first MCB in high memory 0000h if no high memory AX = 1300h VIDRAMEGA??? BL = 00h copy ??? nonzero copy ??? (reverse) Return: CF clear AL = 00h if all pages clean = 01h if any page dirty AX = 1301h check if ??? DX:DI = start address of range to check ??? CX = length of range Return: CF clear CX = ??? (0000h or 1000h) AX = 1302h ??? BL = ??? BH = ??? CX = ??? SI = offset of ??? DI = offset of ??? ??? Return: CF clear ??? Note: disables certain interrupts at the two 8259 PICs during execution; also modifies CRT controller during execution under certain circumstances AX = 1303h ??? EMS allocation BX = number of pages of EMS to allocate ??? Return: CF clear if successful CF set on error ??? AX = 1304h EMS deallocation DX = EMS handle Return: CF clear AX = 1305h ??? CX = ??? Return: CF clear Note: disables certain interrupts at the two 8259 PICs during execution (see AX=130Ch) AX = 1306h set DESQview critical section counter address ES:BX -> WORD DESQview critical section counter or 0000h:0000h Return: CF clear Note: also sets pointer in low-memory part of QEMM to current value of INT 15 if ES:BX not 0000h:0000h AX = 1307h ??? ??? Return: CF clear Note: disables certain interrupts at the two 8259 PICs during execution (see AX=130Ch) AX = 1308h ??? BL = ??? (zero/nonzero) Return: CF clear AX = 1309h Hercules mode-change support ES:BX -> new address for Hercules mode-change callback Return: CF clear Note: the callback function is called whenever the CRTC mode register is written, with AL set to the value written AX = 130Ah virtualize EGA/VGA I/O ports 03C8h/03C9h??? CX:DX -> buffer for storing CRTC register contents??? or 0000h:0000h to disable Return: CF clear AX = 130Bh ??? BL = ??? Return: CF clear ??? AX = 130Ch set interrupts to mask BX = interrupts to mask out during AX=1302h,AX=1307h,AX=1308h, AX=130Dh,AX=1310h (BL = master PIC, BH = slave PIC) Return: CF clear AX = 130Dh ??? ??? Return: CF clear Note: disables certain interrupts at the two 8259 PICs during execution (see AX=130Ch) AX = 130Eh ??? (modifies CRT controller setup) ??? Return: CF clear AX = 130Fh reset ??? Return: CF clear AX = 1310h ??? ??? Return: CF clear Note: disables certain interrupts at the two 8259 PICs during execution (see AX=130Ch) AX = 1311h set ??? BL = ??? Return: CF clear AX = 1312h (v6.02) NOP??? Note: called by DV 2.42, but appears to be a NOP in QEMM 6.02 AX = 1400h ??? ES:DI -> ??? data structure (at least 24 bytes) BL = ??? Return: AX = ??? Data structure Offset Size Description 00h WORD ??? 02h DWORD far pointer to ??? 06h DWORD far pointer to ??? pointer array (see below) 0Ah DWORD far pointer to ??? 0Eh DWORD ??? 12h WORD segment of ??? 14h DWORD far pointer to ??? Pointer array Offset Size Description 00h WORD number of pointers to follow 02h N DWORDs far pointers to ??? Note: QEMM converts the pointers into linear addresses in place AX = 1401h ??? Return: CF clear ??? AX = 1402h ??? BL = function 00h NOP 01h ??? 02h ??? other ??? ES:DI -> ??? Return: CF clear ??? Data structure Offset Size Description 00h WORD segment of ??? (X, word at X:0136h set to X) 02h WORD segment of ??? (word at X:0124h set to this) 04h WORD number of paragraphs of ??? 06h 3 WORDs ??? (copied to X:0000h) 0Ch WORD ??? AX = 1403h add ??? to list and ??? (execute func 1406h) ES:DI -> ??? structure added to end of ??? list (at least 31 bytes, DWORD at offset 06h used for storing pointer to next struc, WORD at offset 00h seems to be a key or index) Return: CF clear AX = 1404h NOP AX = 1405h remove ??? from ??? list BX = key??? Return: CF clear AX = 1406h ??? ??? Return: CF clear ??? AX = 1407h ??? ??? Return: CF clear ??? AX = 1408h ??? ??? Return: CF clear ??? AX = 1409h ??? ??? Return: CF clear ??? AX = 140Ah ??? BX = ??? Return: CF clear ??? AX = 140Bh ??? BX = ??? Return: CF clear SI = segment of 256-byte buffer??? AH = 15h ??? ES:BX -> ??? or 0000h:0000h Return: CF clear ---QEMM v5.00+ --- AX = 1600h get memory access status ES:DI -> 256-byte buffer Return: ES:DI buffer filled Note: each byte of the buffer indicates the status of a 4K page (bit 0 set if read, bit 1 set if written) AX = 1601h set memory access status ES:DI -> 256-byte buffer containing access statuses (see above) AH = 17h get memory usage statistics ES:DI -> 81-byte buffer for memory statistics (see below) Return: CF clear ---QEMM v5.11+ --- AH = 18h check whether conventional memory mapped into address range ES:BX = starting address CX = number of 4K pages Return: CF clear AL = 00h one or more pages is remapped 01h all pages in range are conventional memory (physical address == virtual address) AH = 19h NOP Return: CF set AH = 1Ah I/O port access AL = subfunction 00h get byte from I/O port Return: BL = port value 01h send byte to I/O port BL = value to send 02h send byte to I/O port, get byte from following port BH = value to send Return: BL = value read 03h send bytes to two consecutive I/O ports BH = value for first I/O port (DX) BL = value for second I/O port (DX+1) DX = port number Return: CF clear AH = 1Bh MS Windows 3 support AL = subfunction 00h get ??? ES:DI -> buffer for ??? data structure Return: CF set on error CF clear if successful Data structure: Offset Size Description 00h DWORD pointer to ??? 04h BYTE ??? (v6.00 sets to 01h) 05h BYTE ??? (v6.00 sets to 00h or 0Bh) SeeAlso: INT 21/AX=4402h"QEMM" 01h ??? Return: CF set on error CF clear if successful 02h ??? Return: CF set on error CF clear if successful 03h MS Windows initializing CX = segment from which Windows init broadcast made??? DL = Windows startup flags??? DI = Windows version number (major in upper byte) Return: ??? SeeAlso: INT 2F/AX=1605h 04h MS Windows terminating Return: CF clear 05h determine whether program is driver??? DS:DX -> ASCIZ filename Return: CF clear AL = 01h if string ends in ".DRV" = FFh if string ends in "GDI.EXE" = 00h otherwise 06h ??? CX = length of data pointed at by DS:DX DS:DX -> ??? Return: CF clear 07h BUG: QEMM 6.00-6.03 accept this and branch randomly else Return: CF set AH = 1Ch protected-mode hardware interrupt handlers ??? AL = subfunction 00h restore??? IRQ0-7 handlers 01h set??? IRQ0-7 handlers ES:DI -> 8 DWORDs containing ??? 02h restore??? IRQ8-15 handlers 03h set??? IRQ8-15 handlers ES:DI -> 8 DWORDs containing ??? BUG: although the jump table only contains four entries, QEMM 6.00 will attempt to use it for any value of AL between 00h and 2Ah, thus branching unpredictably for AL=04h-2Ah ---QEMM v6.00+ --- AH = 1Dh Stealth interrupts AL = subfunction 00h switch to pre-Stealth interrupt vector table Note: also switches VGA Save table pointer (0040h:00A8h) and overwrites the vectors currently assigned for use by the two interrupt controllers (see INT 67/AX=DE0Ah) with the vectors for INT 08-0F and 70-77 (to avoid crashing the system). 01h restore user interrupt vector table Notes: interrupts should be disabled around the AX=1D00h and AX=1D01h calls because QEMM does not modify the memory maps to map in ROM, so an interrupt could be disastrous clears any pending IRQ7 at end of function else Return: CF set AH = 1Eh Stealth information AL = subfunction 00h get Stealth configuration Return: BL = flags bit 0: conventional memory sorted bit 1: conventional memory filled bit 2: ??? bit 3: ??? bit 4: expanded memory is in use bit 5: ??? BH = ??? (always 00h for v6.00) CL = stealth type (00h none,46h Frame,4Dh Map) CH = ??? (zero/nonzero important) DX = ??? (always 0000h for v6.00) SI = ??? (always 0000h for v6.00) DI = ??? (always 0000h for v6.00) 01h get number of Stealth'ed ROMs Return: CF clear BX = number of Stealth'ed ROMs 02h get Stealth'ed ROM info ES:DI -> buffer for Stealth ROM info (see below) Return: CF clear BX = number of Stealth'ed ROMs ES:DI buffer filled else Return: CF set AH = 1Fh page table manipulation AL = subfunction 00h get page table entry CX = page number Return: EDX = page table entry CF clear 01h set page table entry CX = page number EDX = page table entry Return: CF clear SeeAlso: function 1008h else Return: CF set AH = 20h asynchronous disk access support??? AL = subfunction 00h get ??? Return: CF clear BL = flags bit 7: ??? (set if Stealth:F or :M active) bit 0: ??? 01h set ??? BL = ??? (bit 0 only) Return: CF clear else Return: CF set AH = 21h Stealth support AL = subfunction 00h copy data from Stealthed address space DS:SI -> start address of hidden memory to copy ES:DI -> buffer for copied data ECX = number of bytes to copy Return: CF clear if successful CF set on error (DS:SI < C000h:0000h or DS:SI + ECX > 1M) else Return: CF set ---QEMM v6.03 only--- AH = 22h DESQview/X support??? AL = subfunction 00h get ??? Return: CF clear ES:DI -> ??? 01h set ??? ES:DI -> ??? or 0000h:0000h Return: ??? other Return: CF set
Format of QEMM 6.0 memory statistics: Offset Size Description 00h BYTE 01h if Shadow RAM found, 00h otherwise 01h DWORD initial conventional memory in bytes 05h DWORD initial extended memory in bytes 09h DWORD initial expanded memory in bytes 0Dh DWORD initial “top” or “shadow” memory in bytes 11h DWORD Unavailable conventional memory in bytes 15h DWORD Unavailable extended memory in bytes 19h DWORD Unavailable expanded memory in bytes 1Dh DWORD Unavailable “top” or “shadow” memory in bytes
Add to offset 49h for Total unavailable top/shadow.
21h DWORD QEMM code size in bytes 25h DWORD QEMM data size in bytes 29h DWORD bytes used for TASKS= 2Dh DWORD DMA buffer size 31h DWORD bytes used for MAPS= 35h DWORD bytes of high RAM 39h DWORD bytes used by mapped ROMs 3Dh DWORD bytes of conventional memory provided by QEMM 41h DWORD bytes of extended memory NOT converted by QEMM (EXT=xxx) 45h DWORD bytes of EMS/XMS pool memory provided by QEMM 49h DWORD Unavailable “top” or “shadow” memory in bytes
Add to offset 1Dh for Total unavailable top/shadow.
4Dh DWORD conventional memory overhead in bytes (set to 0 by QEMM.COM prior to call)
Format of Stealth ROM info [array]: Offset Size Description 00h WORD starting segment of ROM 02h WORD length of ROM in paragraphs ———-6740——————————- INT 67 - LIM EMS - GET MANAGER STATUS
AH = 40h
Return: AH = status
00h successful 80h internal error 81h hardware malfunction 84h undefined function requested by application
Note: this call can be used only after establishing that the EMS driver is in
fact present
SeeAlso: AH=3Fh,AX=FFA5h ———-6741——————————- INT 67 - LIM EMS - GET PAGE FRAME SEGMENT
AH = 41h
Return: AH = 00h function successful
BX = segment of page frame AH = error code (see AH=40h)
SeeAlso: AH=58h,AH=68h ———-6742——————————- INT 67 - LIM EMS - GET NUMBER OF PAGES
AH = 42h
Return: AH = 00h function successful
BX = number of unallocated pages DX = total number of pages AH = error code (see AH=40h)
SeeAlso: INT 2F/AX=2702h ———-6743——————————- INT 67 - LIM EMS - GET HANDLE AND ALLOCATE MEMORY
AH = 43h BX = number of logical pages to allocate
Return: AH = status
00h function successful DX = handle 80h internal error 81h hardware malfunction 84h undefined function requested 85h no more handles available 87h more pages requested than physically exist 88h more pages requested than currently available 89h zero pages requested
SeeAlso: AH=45h ———-6744——————————- INT 67 - LIM EMS - MAP MEMORY
AH = 44h AL = physical page number (0-3) BX = logical page number DX = handle
Return: AH = status
00h function successful 80h internal error 81h hardware malfunction 83h invalid handle 84h undefined function requested 8Ah invalid logical page number 8Bh illegal physical-page number
SeeAlso: AH=69h ———-6745——————————- INT 67 - LIM EMS - RELEASE HANDLE AND MEMORY
AH = 45h DX = EMM handle
Return: AH = status
00h successful 80h internal error 81h hardware malfunction 83h invalid handle 84h undefined function requested 86h error in save or restore of mapping context
SeeAlso: AH=43h ———-6746——————————- INT 67 - LIM EMS - GET EMM VERSION
AH = 46h
Return: AH = status
00h successful AL = EMM version number 80h internal error 81h hardware malfunction 84h undefined function requested
———-6747——————————- INT 67 - LIM EMS - SAVE MAPPING CONTEXT
AH = 47h DX = handle
Return: AH = status
00h successful 80h internal error 81h hardware malfunction 83h invalid handle 84h undefined function requested 8Ch page-mapping hardware state save area is full 8Dh save of mapping context failed
SeeAlso: AH=48h ———-6748——————————- INT 67 - LIM EMS - RESTORE MAPPING CONTEXT
AH = 48h DX = handle
Return: AH = status
00h successful 80h internal error 81h hardware malfunction 83h invalid handle 84h undefined function requested 8Eh restore of mapping context failed
SeeAlso: AH=47h ———-6749——————————- INT 67 - LIM EMS - reserved - GET I/O PORT ADDRESSES
AH = 49h
Note: defined in EMS 3.0, but undocumented in EMS 3.2 ———-674A——————————- INT 67 - LIM EMS - reserved - GET TRANSLATION ARRAY
AH = 4Ah
Note: defined in EMS 3.0, but undocumented in EMS 3.2 ———-674B——————————- INT 67 - LIM EMS - GET NUMBER OF EMM HANDLES
AH = 4Bh
Return: AH = status
00h successful BX = number of EMM handles 80h internal error 81h hardware malfunction 83h invalid handle 84h undefined function requested
———-674C——————————- INT 67 - LIM EMS - GET PAGES OWNED BY HANDLE
AH = 4Ch DX = EMM handle
Return: AH = status
00h successful BX = number of logical pages 80h internal error 81h hardware malfunction 83h invalid handle 84h undefined function requested
SeeAlso: AH=4Dh ———-674D——————————- INT 67 - LIM EMS - GET PAGES FOR ALL HANDLES
AH = 4Dh ES:DI -> array to receive information
Return: AH = status
00h successful BX = number of active EMM handles array filled with 2-word entries, consisting of a handle and the number of pages allocated to that handle 80h internal error 81h hardware malfunction 84h undefined function requested
SeeAlso: AH=4Ch ———-674E——————————- INT 67 - LIM EMS - GET OR SET PAGE MAP
AH = 4Eh AL = 00h if getting mapping registers 01h if setting mapping registers 02h if getting and setting mapping registers at once 03h if getting size of page-mapping array DS:SI -> array holding information (AL=01/02) ES:DI -> array to receive information (AL=00/02)
Return: AH = status
00h successful AL = bytes in page-mapping array (AL=03h only) array pointed to by ES:DI receives mapping info (AL=00h/02h) 80h internal error 81h hardware malfunction 84h undefined function requested 8Fh undefined subfunction parameter A3h contents of source array corrupted (EMS 4.0?)
Note: this function was designed to be used by multitasking operating systems
and should not ordinarily be used by appplication software.
SeeAlso: AH=4Fh ———-674F——————————- INT 67 - LIM EMS 4.0 - GET/SET PARTIAL PAGE MAP
AH = 4Fh AL = subfunction 00h get partial page map DS:SI -> structure containing list of segments whose mapping contexts are to be saved ES:DI -> array to receive page map 01h set partial page map DS:SI -> structure containing saved partial page map 02h get size of partial page map BX = number of mappable segments in the partial map to be saved
Return: AH = status
00h successful 80h internal error 81h hardware malfunction 84h undefined function requested 8Bh one of specified segments is not mappable 8Fh undefined subfunction parameter A3h contents of partial page map corrupted or count of mappable segments exceeds total number of mappable segments in system AL = size of partial page map for subfunction 02h
SeeAlso: AH=4Eh ———-6750——————————- INT 67 - LIM EMS 4.0 - MAP/UNMAP MULTIPLE HANDLE PAGES
AH = 50h AL = subfunction 00h use physical page numbers 01h use segment addresses DX = handle CX = number of entries in array DS:SI -> mapping array (see below)
Return: AH = status
00h successful 80h internal error 81h hardware malfunction 83h invalid handle 84h undefined function requested 8Ah one or more logical pages are invalid 8Bh one or more physical pages are invalid 8Fh invalid subfunction
SeeAlso: AH=40h
Format of mapping array entry: Offset Size Description 00h WORD logical page number or FFFFh to unmap physical page 02h WORD physical page number or segment address ———-6751——————————- INT 67 - LIM EMS 4.0 - REALLOCATE PAGES
AH = 51h DX = handle BX = number of pages to be allocated to handle
Return: BX = actual number of pages allocated to handle
AH = status 00h successful 80h internal error 81h hardware malfunction 83h invalid handle 84h undefined function requested 87h more pages requested than present in system 88h more pages requested than currently available
———-6752——————————- INT 67 - LIM EMS 4.0 - GET/SET HANDLE ATTRIBUTES
AH = 52h AL = subfunction 00h get handle attributes Return: AL = attribute 00h handle is volatile 01h handle is nonvolatile 01h set handle attributes BL = new attribute (see returned AL) 02h get attribute capability Return: AL = attribute capability 00h only volatile handles supported 01h both volatile and non-volatile supported DX = handle
Return: AH = status
00h successful 80h internal error 81h hardware malfunction 83h invalid handle 84h undefined function requested 8Fh undefined subfunction 90h undefined attribute type 91h feature not supported
SeeAlso: AH=53h ———-6753——————————- INT 67 - LIM EMS 4.0 - GET/SET HANDLE NAME
AH = 53h AL = subfunction 00h get handle name ES:DI -> 8-byte buffer for handle name 01h set handle name DS:SI -> 8-byte handle name DX = handle
Return: AH = status
00h successful 80h internal error 81h hardware malfunction 83h invalid handle 84h undefined function requested 8Fh undefined subfunction A1h duplicate handle name
SeeAlso: AH=52h ———-6754——————————- INT 67 - LIM EMS 4.0 - GET HANDLE DIRECTORY
AH = 54h AL = subfunction 00h get handle directory ES:DI -> buffer for handle directory (see below) 01h search for named handle DS:SI -> 8-byte name 02h get total number of handles
Return: AL = number of entries in handle directory (subfunction 00h)
DX = value of named handle (subfunction 01h) BX = total number of handles (subfunction 02h) AH = status 00h successful 80h internal error 81h hardware malfunction 84h undefined function requested 8Fh undefined subfunction A0h no such handle name A1h a handle found had no name
Format of handle directory entry: Offset Size Description 00h WORD handle 02h 8 BYTEs handle's name ———-6755——————————- INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND JUMP
AH = 55h AL = subfunction 00h physical page numbers provided by caller 01h segment addresses provided by caller DX = handle DS:SI -> structure containing map and jump address
Return: (at target address unless error)
AH = status 00h successful 80h internal error 81h hardware failure 83h invalid handle 84h undefined function requested 8Ah invalid logical page number encountered 8Bh invalid physical page number encountered 8Fh invalid subfunction
SeeAlso: AH=56h ———-6756——————————- INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND CALL
AH = 56h AL = subfunction 00h physical page numbers provided by caller DX = handle DS:SI -> structure containing page map and call address 01h segment addresses provided by caller DX = handle DS:SI -> structure containing page map and call address 02h get page map stack space required Return: BX = stack space required
Return: (if successful, the target address is called. Use a RETF to return and
restore mapping context) AH = status (see AH=55h)
SeeAlso: AH=55h ———-6757——————————- INT 67 - LIM EMS 4.0 - MOVE/EXCHANGE MEMORY REGION
AH = 57h AL = subfunction 00h move memory region 01h exchange memory region DS:SI -> structure describing source and destination (see below)
Return: AH = status
00h successful 80h internal error 81h hardware failure 83h invalid handle 84h undefined function requested 8Ah invalid logical page number encountered 8Fh undefined subfunction 92h successful, but a portion of the source region has been overwritten 93h length of source or destination region exceeds length of region allocated to either source or destination handle 94h conventional and expanded memory regions overlap 95h offset within logical page exceeds size of logical page 96h region length exceeds 1M 97h source and destination EMS regions have same handle and overlap 98h memory source or destination type undefined A2h attempted to wrap around 1M conventional address space
Note: source and destination may overlap for a move, in which case the copy
direction is chosen such that the destination receives an intact copy of the source region
Format of EMS copy data: Offset Size Description 00h DWORD region length in bytes 04h BYTE source memory type
00h conventional 01h expanded
05h WORD source handle (0000h if conventional memory) 07h WORD source initial offset (within page if EMS, segment if convent) 09h WORD source initial segment (conv mem) or logical page (EMS) 0Bh BYTE destination memory type
00h conventional 01h expanded
0Ch WORD destination handle 0Eh WORD destination initial offset 10h WORD destination initial segment or page ———-6758——————————- INT 67 - LIM EMS 4.0 - GET MAPPABLE PHYSICAL ADDRESS ARRAY
AH = 58h AL = subfunction 00h get mappable physical address array ES:DI -> buffer to be filled with array 01h get number of entries in m.p.a. array
Return: CX = number of entries in array
AH = status 00h successful 80h internal error 81h hardware failure 84h undefined function requested 8Fh undefined subfunction
Note: the returned array for subfunction 00h is filled in physical segment
address order
Format of mappable physical address entry: Offset Size Description 00h WORD physical page segment 02h WORD physical page number ———-6759——————————- INT 67 - LIM EMS 4.0 - GET EXPANDED MEMORY HARDWARE INFORMATION
AH = 59h AL = subfunction 00h get hardware configuration array ES:DI -> buffer to be filled with array (see below) 01h get unallocated raw page count Return: BX = unallocated raw pages DX = total raw pages
Return: AH = status
00h successful 80h internal error 81h hardware failure 84h undefined function requested 8Fh undefined subfunction A4h access denied by operating system
Note: subfunction 00h is for use by operating systems only, and can be
enabled or disabled at any time by the operating system
Format of hardware configuration array: Offset Size Description 00h WORD size of raw EMM pages in paragraphs 02h WORD number of alternate register sets 04h WORD size of mapping-context save area in bytes 06h WORD number of register sets assignable to DMA 08h WORD DMA operation type
0000h DMA with alternate register sets 0001h only one DMA register set
———-675A——————————- INT 67 - LIM EMS 4.0 - ALLOCATE STANDARD/RAW PAGES
AH = 5Ah AL = subfunction 00h allocate standard pages 01h allocate raw pages BX = number of pages to allocate
Return: DX = handle
AH = status 00h successful 80h internal error 81h hardware failure 84h undefined function requested 85h no more handles available 87h insufficient memory pages in system 88h insufficient memory pages available 8Fh undefined subfunction
———-675B——————————- INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET
AH = 5Bh AL = subfunction 00h get alternate map register set Return: BL = current active alternate map register set number ES:DI -> map register context save area if BL=00h 01h set alternate map register set BL = new alternate map register set number ES:DI -> map register context save area if BL=0 02h get alternate map save array size Return: DX = array size in bytes 03h allocate alternate map register set Return: BL = number of map register set; 00h = not supported 04h deallocate alternate map register set BL = number of alternate map register set
Return: AH = status
00h successful 80h internal error 81h hardware malfunction 84h undefined function requested 8Fh undefined subfunction 9Ah specified alternate map register set not supported 9Bh all alternate map register sets currently allocated 9Ch alternate map register sets not supported 9Dh undefined or unallocated alternate map register set A3h source array corrupted A4h operating system denied access
Note: this function is for use by operating systems only, and can be
enabled or disabled at any time by the operating system
———-675B——————————- INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET - DMA REGISTERS
AH = 5Bh AL = subfunction 05h allocate DMA register set Return: BL = DMA register set number, 00h if not supported 06h enable DMA on alternate map register set BL = DMA register set number DL = DMA channel number 07h disable DMA on alternate map register set BL = DMA register set number 08h deallocate DMA register set BL = DMA register set number
Return: AH = status
00h successful 80h internal error 81h hardware malfunction 84h undefined function requested 8Fh undefined subfunction 9Ah specified DMA register set not supported 9Bh all DMA register sets currently allocated 9Ch alternate DMA sets not supported 9Dh undefined or unallocated DMA register set 9Eh dedicated DMA channels not supported 9Fh specified dedicated DMA channel not supported A3h source array corrupted A4h operating system denied access
Note: this function is for use by operating systems only, and can be
enabled or disabled at any time by the operating system
———-675BE0—————————– INT 67 - MICEMM v4D - GET LINEAR ADDRESS OF MEMORY
AX = 5BE0h ES:BX -> memory for which to get linear address
Return: AH = 00h
DX:CX = linear address of physical memory corresponding to ES:BX
SeeAlso: AX=5BF0h,AX=5BF1h ———-675BF0—————————– INT 67 - MICEMM v4D - INSTALLATION CHECK
AX = 5BF0h
Return: AH = 00h if MICEMM present
BX = code segment of driver
Note: MICEMM is the Micronics Expanded Memory Manager SeeAlso: AH=3Fh,AX=5BE0h,AX=5BF1h ———-675BF1—————————– INT 67 - MICEMM v4D - GET MEMORY TYPES
AX = 5BF1h ES:BX -> 256-byte buffer for memory types
Return: AH = 00h
ES:BX buffer filled
Note: each byte in the buffer specifies the type of a 4K page of memory:
00h unused 02h DOS extension 04h shadowed ROM 08h mappable EMS 10h page frame 20h ROM 40h reserved (video memory, etc) 80h RAM
SeeAlso: AX=5BE0h,AX=5BF0h ———-675C——————————- INT 67 - LIM EMS 4.0 - PREPARE EXPANDED MEMORY HARDWARE FOR WARM BOOT
AH = 5Ch
Return: AH = status
00h successful 80h internal error 81h hardware malfunction 84h undefined function requested
———-675D——————————- INT 67 - LIM EMS 4.0 - ENABLE/DISABLE OS FUNCTION SET FUNCTIONS
AH = 5Dh AL = subfunction 00h enable OS Function Set 01h disable OS Function Set 02h return access key (resets memory manager, returns access key at next invocation) BX,CX = access key returned by first invocation
Return: BX,CX = access key, returned only on first invocation of function
AH = status 00h successful 80h internal error 81h hardware malfunction 84h undefined function requested 8Fh undefined subfunction A4h operating system denied access
———-6760——————————- INT 67 - EEMS - GET PHYSICAL WINDOW ARRAY
AH = 60h ES:DI -> buffer
Return: AH = status
AL = number of entries buffer at ES:DI filled
———-6761——————————- INT 67 - EEMS - GENERIC ACCELERATOR CARD SUPPORT
AH = 61h ???
Return: ??? Note: can be used by accelerator card manufacturer to flush RAM cache,
ensuring that the cache accurately reflects what the processor would see without the cache.
———-6768——————————- INT 67 - EEMS - GET ADDRESSES OF ALL PAGE FRAMES IN SYSTEM
AH = 68h ES:DI -> buffer
Return: AH = status
AL = number of entries buffer at ES:DI filled
Note: equivalent to LIM 4.0 function 58h ———-6769——————————- INT 67 - EEMS - MAP PAGE INTO FRAME
AH = 69h AL = frame number BX = page number DX = handle
Return: AH = status Note: similar to EMS function 44h SeeAlso: AH=44h,AH=50h,AH=6Ah ———-676A——————————- INT 67 - EEMS - PAGE MAPPING
AH = 6Ah AL = subfunction 00h save partial page map CH = first page frame CL = number of frames ES:DI -> buffer which is to be filled 01h restore partial page map CH = first page frame CL = number of frames DI:SI -> previously saved page map 02h save and restore partial page map CH = first page frame CL = number of frames ES:DI = buffer for current page map DI:SI = new page map 03h get size of save array CH = first page frame CL = number of frames Return: AL = size of array in bytes 04h switch to standard map register setting 05h switch to alternate map register setting 06h deallocate pages mapped to frames in conventional memory CH = first page frame CL = number of frames
Return: AH = status Note: similar to EMS function 4Eh, except that a subrange of pages can be
specified
SeeAlso: AH=69h ———-67DD——————————- INT 67 - Quadtel QMAPS - API
AH = DDh AL = function ???
Return: ??? Notes: details are not yet available
Hewlett-Packard's HPMM.SYS is a licensed version of QMAPS, and thus supports this API
SeeAlso: AH=3Fh,AX=FFA5h ———-67DE00—————————– INT 67 - Virtual Control Program Interface - INSTALLATION CHECK
AX = DE00h
Return: AH = 00h VCPI is present
BH = major version number BL = minor version number AH nonzero VCPI not present
———-67DE01—————————– INT 67 - Virtual Control Program Interface - GET PROTECTED MODE INTERFACE
AX = DE01h ES:DI -> 4K page table buffer DS:SI -> three descriptor table entries in GDT first becomes code segment descriptor, other two for use by main control program
Return: AH = 00h successful
DI -> first unused page table entry in buffer EBX -> protected mode entry point in code segment AH = nonzero failed
Note: protected mode entry point may be called with AX=DE00h-DE05h and
AX=DE0Ch (in each case, all other registers as appropriate for the function)
SeeAlso: INT 67/AH=3Fh
QEMM v6.03 protected mode entry point may also be called with:
AX = DF00h ??? ??? Return: ??? AX = DF01h ??? ??? Return: ???
———-67DE02—————————– INT 67 - Virtual Control Program Interface - GET MAX PHYSICAL MEMORY ADDRESS
AX = DE02h
Return: AH = 00h successful
EDX = physical address of highest 4K memory page AH nonzero: failed
SeeAlso: AH=3Fh ———-67DE03—————————– INT 67 - Virtual Control Program Interface - GET NUMBER OF FREE 4K PAGES
AX = DE03h
Return: AH = 00h successful
EDX = number of free 4K pages AH nonzero: failed
Notes: returns total number of pages available to ALL tasks in system
also available in protected mode by calling the protected-mode VCPI entry point
SeeAlso: AX=DE04h ———-67DE04—————————– INT 67 - Virtual Control Program Interface - ALLOCATE A 4K PAGE
AX = DE04h
Return: AH = 00h successful
EDX = physical address of allocated page AH nonzero: failed
Notes: the client program is responsible for freeing all memory allocated
with this call before terminating also available in protected mode by calling the protected-mode VCPI entry point
SeeAlso: AH=3Fh,AX=DE03h,AX=DE05h ———-67DE05—————————– INT 67 - Virtual Control Program Interface - FREE 4K PAGE
AX = DE05h EDX = physical address of 4K page
Return: AH = 00h successful
AH nonzero: failed
Note: also available in protected mode by calling the protected-mode VCPI
entry point
SeeAlso: AH=3Fh,AX=DE04h ———-67DE06—————————– INT 67 - Virtual Control Program Interface - GET PHYS ADDR OF PAGE IN FIRST MB
AX = DE06h CX = page number (linear address shifted right 12 bits)
Return: AH = 00h successful
EDX = physical address of page AH nonzero: invalid page number (AH = 8Bh recommended)
———-67DE07—————————– INT 67 - Virtual Control Program Interface - READ CR0
AX = DE07h
Return: AH = 00h
EBX = value of Control Register 0
SeeAlso: AH=3Fh,AX=DE07h ———-67DE08—————————– INT 67 - Virtual Control Program Interface - READ DEBUG REGISTERS
AX = DE08h ES:DI -> array of 8 DWORDs
Return: AH = 00h
buffer filled with DR0 first, DR7 last, DR4 and DR5 unused
SeeAlso: AH=3Fh,AX=DE09h ———-67DE09—————————– INT 67 - Virtual Control Program Interface - SET DEBUG REGISTERS
AX = DE09h ES:DI -> array of 8 DWORDs holding new values of debug registers
Return: AH = 00h Note: values for DR4 and DR5 ignored SeeAlso: AH=3Fh,AX=DE08h ———-67DE0A—————————– INT 67 - Virtual Control Program Interface - GET 8259 INTERRUPT VECTOR MAPPINGS
AX = DE0Ah
Return: AH = 00h successful
BX = first vector used by master 8259 (IRQ0) CX = first vector used by slave 8259 (IRQ8) AH nonzero: failed
Note: CX is undefined in systems without a slave 8259 SeeAlso: AX=DE0Bh ———-67DE0B—————————– INT 67 - Virtual Control Program Interface - SET 8259 INTERRUPT VECTOR MAPPINGS
AX = DE0Bh BX = first vector used by master 8259 CX = first vector used by slave 8259 interrupts disabled
Return: AH = 00h successful
AH nonzero: failed
Notes: This call merely informs the server that the client has changed the
interrupt mappings. The client may not change the mappings if they have already been changed by the server or another client, and is responsible for restoring the original mappings before terminating.
SeeAlso: AX=DE0Ah ———-67DE0C—————————– INT 67 - Virtual Control Program Interface - SWITCH TO PROTECTED MODE
AX = DE0Ch ESI = linear address in first megabyte of values for system registers interrupts disabled
Return: interrupts disabled
GDTR, IDTR, LDTR, TR loaded SS:ESP must have at least 16 bytes space, and the entry point is required to set up a new stack before enabling interrupts EAX, ESI, DS, ES, FS, GS destroyed
SeeAlso: AH=3Fh,INT 15/AH=89h
Note: in protected mode, calling the protected-mode VCPI entry point with
AX = DE0Ch DS = segment selector from function DE01h SS:ESP in first megabyte of linear memory STACK:QWORD return address from FAR call to 32-bit segment DWORD EIP DWORD CS DWORD reserved for EFLAGS DWORD ESP DWORD SS DWORD ES DWORD DS DWORD FS DWORD GS and interrupts disabled, will switch to virtual86 mode with interrupts disabled, all segment registers loaded, and EAX destroyed.
Format of system register values for switch to protected mode: Offset Size Description 00h DWORD value for CR3 04h DWORD linear address in first megabyte of value for GDTR 08h DWORD linear address in first megabyte of value for IDTR 0Ch WORD value for LDTR 0Eh WORD value for TR 10h PWORD CS:EIP of protected mode entry-point ———-67FFA5—————————– INT 67 - Microsoft EMM386.EXE v4.20+ - INSTALLATION CHECK
AX = FFA5h
Return: AX = 845Ah if loaded
BX:CX -> API entry point
Notes: this call is available even if EMM386 is not providing EMS
if no other program has hooked INT 67, an alternate installation check is to search for the string "MICROSOFT EXPANDED MEMORY MANAGER 386" early in the INT 67 handler's segment, usually at offset 14h
SeeAlso: AH=3Fh
Call API entry point with:
AH = 00h get memory manager's status Return: AH = status bit 0: not active (OFF) bit 1: in "Auto" mode AH = 01h set memory manager's state AL = new state (00h ON, 01h OFF, 02h AUTO) AH = 02h Weitek coprocessor support AL = subfunction 00h get Weitek support state Return: AL = status bit 0: Weitek coprocessor is present bit 1: Weitek support is enabled 01h turn on Weitek support 02h turn off Weitek support --- v4.20-4.41 only --- AH = 03h Windows support??? AL = subfunction (00h, 01h) AH = 04h print copyright notice to standard output (using INT 21/AH=09h) AH = 05h print available report (the one shown when running EMM386 from the DOS prompt)
——————————————— Interrupt List, part 7 of 7 This compilation is Copyright © 1989,1990,1991,1992 Ralf Brown ———-68——————————— INT 68 - Sangoma CCPOP 3270 resident module SeeAlso: INT 67”Sangoma“,INT 92”Sangoma“ ———-6801——————————- INT 68 - APPC/PC - NETWORK DEVICE CONTROL
AH = 01h DS:DX -> control block
Format of control block: Offset Size Description 00h 12 BYTEs reserved 0Ch WORD verb (action) 0Eh 6 BYTEs 00h 14h DWORD (high byte first) return code (see below) —if verb = 1B00h (DISPLAY)— 18h WORD 00h 1Ah 8 BYTEs (high byte first) logical unit ID 22h 8 BYTEs (high byte first) partner logical unit name 2Ah 8 BYTEs (high byte first) mode name 32h BYTE logical unit session limit 33h BYTE partner logical unit session limit 34h BYTE node maximum negotiable session limit 35h BYTE current session limit 36h BYTE minimum negotiated winner limit 37h BYTE maximum negotiated loser limit 38h BYTE active session count 39h BYTE active CONWINNER session count 3Ah BYTE active CONLOSER session count 3Bh BYTE session termination count 3Ch BYTE bit 7: SESSION_TERMINATION_TARGET_DRAIN
bit 6: SESSION_TERMINATION_SOURCE_DRAIN
—if verb=2000h (Attach Physical Unit)— 18h WORD 00h 1Ah BYTE version 1Bh BYTE release 1Ch 8 BYTEs (high byte first) net name 24h 8 BYTEs (high byte first) physical unit name 2Ch 8 BYTEs 00h 34h DWORD pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors 38h DWORD 00h 3Ch BYTE 00h RETURN_CONTROL: COMPLETE
01h RETURN_CONTROL: INCOMPLETE
—if verb=2100h (Attach Logical Unit)— 18h WORD 70 offset to partner logical unit record 1Ah 8 BYTEs (high byte first) logical unit name 22h 8 BYTEs (high byte first) logical unit ID 2Ah BYTE logical unit local address 2Bh BYTE logical unit session limit 2Ch DWORD pointer to CREATE_TP_EXIT routine,
FFFFFFFFh = reject incoming ALLOCATEs 00000000h = queue ALLOCATEs
30h DWORD 00h 34h DWORD pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors 38h DWORD 00h 3Ch BYTE maximum TPs 3Dh BYTE queue depth 3Eh DWORD pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh=no pswd exit 42h DWORD 00h 46h WORD total length of partner records
for each partner logical unit: WORD length of this partner logical unit record WORD 42 offset to mode records 8 BYTEs (high byte first) partner logical unit name BYTE partner logical unit security capabilities bit 7: already verified bit 6: conversation level security bit 5: session level security BYTE partner logical unit session limit WORD partner logical unit maximum MC_SEND_LL 8 BYTEs (high byte first) partner logical unit DLC name BYTE partner logical unit adapter number 17 BYTEs (counted string) partner logical unit adapter address WORD total length of mode records for each mode: WORD 16 length of this mode record 8 BYTEs (high byte first) mode name WORD RU_SIZE high bound WORD RU_SIZE low bound BYTE mode maximum negotiable session limit BYTE pacing size for receive
—if verb=2200h (Detach Logical Unit)— 18h 8 BYTEs (high byte first) logical unit ID 20h BYTE 00h —if verb=2700h (Detach Physical Unit)— 18h BYTE 00h type: hard
01h type: soft
—if verb=2B00h (Activate DLC)— 18h 8 BYTEs (high byte first) DLC name 20h BYTE adapter number
Values for return code:
0000h successful 0001h BAD_TP_ID 0002h BAD_CONV_ID 0003h bad logical unit ID 0008h no physical unit attached 0110h bad state 01B1h BAD_PART_LUNAME 01B2h bad mode name 0201h physical unit already active 0211h logical unit already active 0212h BAD_PART_SESS 0213h BAD_RU_SIZES 0214h BAD_MODE_SESS 0216h BAD_PACING_CNT 0219h EXTREME_RUS 021Ah SNASVCMG_1 0223h SSCP_CONNECTED_LU 0230h invalid change 0243h too many TPs 0272h adapter close failure 0281h GET_ALLOC_BAD_TYPE 0282h unsuccessful 0283h DLC failure 0284h unrecognized DLC 0286h duplicate DLC 0301h SSCP_PU_SESSION_NOT_ACTIVE 0302h data exceeds RU size 0401h invalid direction 0402h invalid type 0403h segment overlap 0404h invalid first character 0405h table error 0406h conversion error F0010000h APPC disabled F0020000h APPC busy F0030000h APPC abended F0040000h incomplete
Routines defined by LU_LU_PASSWORD_EXIT, CREATE_TP_EXIT, and SYSTEM_LOG_EXIT pointers are called by pushing the DWORD pointer to the verb on the stack and then performing a FAR call.
Format of ACCESS_LU_LU_PW verb: Offset Size Description 00h 12 BYTEs reserved 0Ch WORD 1900h 0Eh 8 BYTEs (high byte first) logical unit ID 16h 8 BYTEs (high byte first) logical unit name 1Eh 8 BYTEs (high byte first) partner logical unit name 26h 17 BYTEs (counted string) partner fully qualified logical unit name 37h BYTE password available (0=no, 1=yes) 38h 8 BYTEs password
Format of CREATE_TP verb: Offset Size Description 00h 12 BYTEs reserved 0Ch WORD 2300h 0Eh 6 BYTEs 00h 14h DWORD (high byte first) sense code
00000000h Ok 080F6051h SECURITY_NOT_VALID 084B6031h TP_NOT_AVAIL_RETRY 084C0000h TP_NOT_AVAIL_NO_RETRY 10086021h TP_NAME_NOT_RECOGNIZED 10086034h CONVERSATION_TYPE_MISMATCH 10086041h SYNC_LEVEL_NOT_SUPPORTED
18h 8 BYTEs (high byte first) TP ID 20h 8 BYTEs (high byte first) logical unit ID 28h DWORD (high byte first) conversation ID 2Ch BYTE 0 basic conversation, 1 mapped conversation 2Dh BYTE 0 no sync level, 1 confirm 2Eh BYTE reserved 2Fh 65 BYTEs (counted string) transaction program name 70h 6 BYTEs 00h 76h WORD length of ERROR_LOG_DATA to return 78h DWORD pointer to ERROR_LOG_DATA buffer 7Ch 8 BYTEs (high byte first) partner logical unit name 84h 18 BYTEs (counted string) partner fully qualified logical unit name 96h 8 BYTEs (high byte first) mode name 9Eh 12 BYTEs 00h AAh 11 BYTEs (counted string) password B5h 11 BYTEs (counted string) user ID C0h BYTE 0 verification should be performed
1 already verified
Format of SYSLOG verb: Offset Size Description 00h 12 BYTEs reserved 0Ch WORD 2600h 0Eh 10 BYTEs 00h 18h WORD (high byte first) type 1Ah DWORD (high byte first) subtype 1Eh DWORD pointer to ADDITIONAL_INFO 22h DWORD (high byte first) conversation ID 26h 8 BYTEs (high byte first) TP ID 2Eh 8 BYTEs (high byte first) physical unit or logical unit name 36h WORD length of data 38h DWORD pointer to data 3Ch BYTE 00h ———-6802——————————- INT 68 - APPC/PC - CONNECTION CONTROL
AH = 02h DS:DX -> control block
Format of control block: Offset Size Description 00h 12 BYTEs reserved 0Ch WORD verb (action) 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
0 if basic verb
0Fh 5 BYTEs reserved (0) 14h WORD (high byte first) primary return code (see below) 16h DWORD (high byte first) error code (see below) 1Ah 8 BYTEs (high byte first) TP_ID 22h DWORD (high byte first) conversation ID —if verb=0100h (Allocate or MC_Allocate)— 26h BYTE (MC_Allocate only) 0 basic conversation
1 mapped conversation
27h BYTE 00h SYNC_LEVEL = none
01h SYNC_LEVEL = confirm
28h WORD 0000h 2Ah BYTE 00h RETURN_CONTROL: when session allocated
01h RETURN_CONTROL: immediate 02h RETURN_CONTROL: when session free
2Bh 8 BYTEs 00h 33h 8 BYTEs (high byte first) partner logical unit name 3Bh 8 BYTEs (high byte first) mode name 43h 65 BYTEs (counted string) TP name 84h BYTE 00h security: none
01h security: same 02h security: pgm
85h 11 BYTEs 00h 90h 11 BYTEs (counted string) password 9Bh 11 BYTEs (counted string) user ID A6h WORD PIP_DATA length A8h DWORD pointer to PIP_DATA —if verb=0300h (Confirm or MC_Confirm)— 26h BYTE request to send received (0=no, 1=yes) —if verb=0400h (Confirmed or MC_Confirmed), no additional fields— —if verb=0500h (Deallocate or MC_Deallocate)— 26h BYTE 00h 27h BYTE type 0 SYNC_LEVEL
1 FLUSH 2 ABEND_PROC 3 ABEND_SVC 4 ABEND_TIMER 5 ABEND
28h WORD (MC_Deallocate only) length of error log data 2Ah DWORD (MC_Deallocate only) pointer to error log data —if verb=0600h (Flush or MC_Flush), no additional fields— —if verb=0700h (Get_Attributes or MC_Get_Attributes)— 26h 8 BYTEs (high byte first) logical unit ID 2Eh BYTE 00h 2Fh BYTE SYNC_LEVEL (0=none, 1=confirm) 30h 8 BYTEs (high byte first) mode name 38h 8 BYTEs (high byte first) own net name 40h 8 BYTEs (high byte first) own logical unit name 48h 8 BYTEs (high byte first) partner logical unit name 50h 18 BYTEs (counted string) partner's fully qualified logical unit name 62h BYTE 00h 63h 11 BYTEs (counted string) user ID —if verb=0800h (Get_Type)— 26h BYTE type (0=basic conversation, 1=mapped conversation) —if verb=0900h (Post_on_Receipt)— 26h WORD maximum length 28h BYTE fill (0=buffer, 1=LL) —if verb=0A00h (Prepare_to_Receive or MC_Prepare_to_Receive)— 26h BYTE type (0=SYNC_LEVEL, 1=FLUSH) 27h BYTE locks (0=short, 1=long) —if verb=0B00h (Receive_and_Wait or MC_Receive_and_Wait)— 26h BYTE what received
00h data 01h data complete 02h data incomplete 03h confirm 04h confirm send 05h confirm deallocate 06h send
27h BYTE (MC_Receive_and_Wait only) fill (0=buffer, 1=LL) 28h BYTE Request_to_Send_Received (0=no, 1=yes) 29h WORD maximum length 2Bh WORD data length 2Dh DWORD pointer to data —if verb=0C00h (Receive_Immediate or MC_Receive_Immediate)— 26h BYTE what received
00h data 01h data complete 02h data incomplete 03h confirm 04h confirm send 05h confirm deallocate 06h send
27h BYTE (MC_Receive_Immediate only) fill (0=buffer, 1=LL) 28h BYTE Request_to_Send_Received (0=no, 1=yes) 29h WORD maximum length 2Bh WORD data length 2Dh DWORD pointer to data —if verb=0E00h (Request_to_Send or MC_Request_to_Send), no other fields— —if verb=0F00h (Send_Data or MC_Send_Data)— 26h BYTE request to send received (0=no, 1=yes) 27h BYTE 00h 28h WORD data length 2Ah DWORD pointer to data —if verb=1000h (Send_Error or MC_Send_Error)— 26h BYTE request to send received (0=no, 1=yes) 27h BYTE type (0=program, 1=SVC) 28h DWORD 00h 2Ch WORD (MC_Send_Error only) LOG_DATA length 2Eh DWORD (MC_Send_Error only) pointer to LOG_DATA —if verb=1200h (Test or MC_Test)— 26h BYTE (MC_Test only) test (0=posted, 1=request_to_send received)
Note: error code has different interpretations for: 0 posted data 1 posted not data (primary return code = 0) 1 bad TP_ID (primary return code = 1)
—if verb=1300h (Wait)— 26h BYTE number of conversations to wait on
Note: error codes have interpretations as for 1200h above
Values for primary return code: 0000h successful 0001h parameter check 0002h state check 0003h allocation error 0005h deallocate abended 0006h deallocate abended program 0007h deallocate abended SVC 0008h deallocate abended timer 0009h deallocate normal return 000Ah data posting blocked 000Bh posting not active 000Ch PROG_ERROR_NO_TRUNC 000Dh PROG_ERROR_TRUNC 000Eh PROG_ERROR_PURGING 000Fh CONV_FAILURE_RETRY 0010h CONV_FAILURE_NO_RETRY 0011h SVC_ERROR_NO_TRUNC 0012h SVC_ERROR_TRUNC 0013h SVC_ERROR_PURGING 0014h unsuccessful 0018h CNOS partner logical unit reject 0019h conversation type mixed F001h APPC disabled F002h APPC busy F003h APPC abended F004h incomplete
Values for error code: 0001h bad TP ID 0002h bad conversation ID 0004h allocation error, no retry 0005h allocation error, retry 0006h data area crosses segment boundary 0010h bad TPN length 0011h bad CONV length 0012h bad SYNC level 0013h bad security selection 0014h bad return control 0015h SEC_TOKENS too big 0016h PIP_LEN incorrect 0017h no use of SNASVCMG 0018h unknown partner mode 0031h confirm: SYNC_NONE 0032h confirm: bad state 0033h confirm: NOT_LL_BDY 0041h confirmed: bad state 0051h deallocate: bad type 0052h deallocate: flush bad state 0053h deallocate: confirm bad state 0055h deallocate: NOT_LL_BDY 0057h deallocate: log LL_WRONG 0061h flush: not send state 0091h post on receipt: invalid length 0092h post on receipt: not in receive state 0093h post on receipt: bad fill 00A1h prepare to receive:invalid type 00A2h prepare to receive: unfinished LL 00A3h prepare to receive: not in send state 00B1h receive and wait: bad state 00B2h receive and wait: NOT_LL_BDY 00B5h receive and wait: bad fill 00C1h receive immediate: not in receive state 00C4h receive immediate: bad fill 00E1h request to send: not in receive state 00F1h send data: bad LL 00F2h send data: not in send state 0102h send error: log LL wrong 0103h send error: bad type 0121h test: invalid type 0122h test: not in receive state ———-6803——————————- INT 68 - APPC/PC
AH = 03h DS:DX -> control block (see below)
Format of control block: Offset Size Description 00h 12 BYTEs reserved 0Ch WORD verb (action) 0Eh 6 BYTEs 0 14h DWORD (high byte first) return code (see AH=01h) 18h WORD 0 1Ah 8 BYTEs (high byte first) logical unit ID —if verb=2400h (TP Started), control block continues— 22h 8 BYTEs (high byte first) TP ID —if verb=2800h (Get ALLOCATE), control block continues— 22h BYTE type
00h dequeue 01h test
23h DWORD pointer to CREATE_TP record —if verb=2A00h (Change Logical Unit). control block continues— 22h DWORD pointer to CREATE_TP_EXIT routine
FFFFFFFFh reject incoming ALLOCATEs 00000000h queue ALLOCATEs
26h DWORD 00000000h 2Ah DWORD pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh= don't log errors 2Eh DWORD 00000000h 32h BYTE maximum TPs 33h BYTE 00h stop QUEUE_ALLOCATEs
01h resume QUEUE_ALLOCATEs
34h DWORD pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh = no exit 38h DWORD 00000000h ———-6804——————————- INT 68 - APPC/PC
AH = 04h DS:DX -> control block (see below)
Format of control block: Offset Size Description 00h 12 BYTEs reserved 0Ch WORD verb (action)
2500h TP_ENDED 2900h TP_VALID
0Eh 6 BYTEs 0 14h DWORD (high byte first) return code (see AH=01h) 18h WORD 0 1Ah 8 BYTEs (high byte first) TP_ID 22h DWORD → CREATE_TP record (only if verb = 2900h) ———-6805——————————- INT 68 - APPC/PC - TRANSFER MSG DATA
AH = 05h DS:DX -> control block (see below)
Format of control block: Offset Size Description 00h 12 BYTEs reserved 0Ch WORD 1C00h 0Eh BYTE 00h user defined
01h NMVT 02h alert subvectors 03h PDSTATS subvectors
0Fh 5 BYTEs 0 14h DWORD (high byte first) return code (see AH=01h) 18h 12 BYTEs 0 24h BYTE if bit 0 clear, add correlation subvector
if bit 1 clear, add product set ID subvector if bit 2 clear, do SYSLOG if bit 3 clear, send SSCP_PU_SESSION
25h BYTE 0 26h WORD length of data 28h N BYTEs data ———-6806——————————- INT 68 - APPC/PC - CHANGE NUMBER OF SESSIONS
AH = 06h DS:DX -> control block (see below)
Format of control block: Offset Size Description 00h 12 BYTEs reserved 0Ch WORD 1500h 0Eh 6 BYTEs 0 14h WORD (high byte first) primary return code (see AH=02h) 16h DWORD (high byte first) secondary return code (see below, AH=01h) 1Ah 8 BYTEs (high byte first) logical unit ID 22h 8 BYTEs blanks 2Ah 8 BYTEs (high byte first) partner logical unit name 32h 8 BYTEs (high byte first) mode name 3Ah BYTE bit 7: use MODE_NAME_SELECT_ALL rather than MODE_NAME
bit 6: set negotiable values
3Bh BYTE partner logical unit mode session limit 3Ch BYTE minimum CONWINNERS_SOURCE 3Dh BYTE maximum CONWINNERS_TARGET 3Eh BYTE automatic activation 3Fh BYTE 0 40h BYTE bit 7: drain target
bit 6: drain source bit 5: target responsible, not source
Values for secondary return code (see also AH=01h):
0000h accepted 0001h negotiated 0003h bad logical unit ID 0004h allocation failure, no retry 0005h allocation failure, retry 0151h can't raise limits 0153h all modes must reset 0154h bad SNASVCMG limits 0155h minimum greater than total 0156h mode closed (prim return code = 1) CNOS mode closed (prim return code = 18h) 0157h bad mode name (prim return code = 1) CNOS bad mode name (prim return code = 18h) 0159h reset SNA drains 015Ah single not SRC response 015Bh bad partner logical unit 015Ch exceeds maximum allowed 015Dh change SRC drains 015Eh logical unit detached 015Fh CNOS command race reject
———-6807——————————- INT 68 - APPC/PC - PASSTHROUGH
AH = 07h DS:DX -> control block (format depends on application subsystem)
SeeAlso: AH=FFh ———-68FA——————————- INT 68 - APPC/PC - ENABLE/DISABLE APPC
AH = FAh AL bit 0 = 0 enable 1 disable
———-68FB——————————- INT 68 - APPC/PC - CONVERT
AH = FBh DS:DX -> control block (see below)
Format of control block: Offset Size Description 00h 12 BYTEs reserved 0Ch WORD 1A00h 0Eh 6 BYTEs 0 14h DWORD (high byte first) return code 18h BYTE conversion
00h ASCII to EBCDIC 01h EBCDIC to ASCII
19h BYTE character set
00h AE 01h A 02h G
1Ah WORD length of string to convert 1Ch DWORD pointer to source 20h DWORD pointer to target ———-68FC——————————- INT 68 - APPC/PC - ENABLE/DISABLE MESSAGE TRACING
AH = FCh AL = 00h disable tracing = 01h enable tracing DX = number of bytes to keep (0=all)
SeeAlso: AH=FDh ———-68FD——————————- INT 68 - APPC/PC - ENABLE/DISABLE API VERB TRACING
AH = FDh AL = 00h disable tracing 01h enable tracing
SeeAlso: AH=FCh,AH=FEh ———-68FE——————————- INT 68 - APPC/PC - SET TRACE DESTINATION
AH = FEh AL = trace destinations bit 0 storage (DS:DX -> trace stats record) bit 1 display bit 2 file (trace written to file OUTPUT.PC) bit 3 printer
SeeAlso: AH=FDh
Format of Trace Statistics Record: Offset Size Description 00h DWORD pointer to storage trace buffer 04h WORD max number of 80-byte records in trace 06h WORD (high-order byte first!) current record number (must init to 0) 08h DWORD (high-order byte first!) number of records written (init to 0) 0Ch DWORD reserved Note: do not move record while trace is active ———-68FF——————————- INT 68 - APPC/PC - SET PASSTHROUGH
AH = FFh DS:DX -> passthrough exit routine
SeeAlso: AH=07h ———-69——————————— INT 69 - Zenith AT BIOS - ???
called by INT 09 handler
———-690100—————————– INT 69 - DECnet DOS CTERM - INSTALLATION CHECK
AX = 0100h
Return: AL = FFh if present SeeAlso: AX=010Fh ———-690101—————————– INT 69 - DECnet DOS CTERM - SEND BYTE
AX = 0101h BL = character DX = session handle
Return: AH >= 80h on error SeeAlso: AX=0102h ———-690102—————————– INT 69 - DECnet DOS CTERM - READ BYTE
AX = 0102h DX = session handle
Return: AH >= 80h on error
AH < 80h if successful AL = character
SeeAlso: AX=0101h ———-690103—————————– INT 69 - DECnet DOS CTERM - STATUS
AX = 0103h DX = session handle
Return: AH status flags
bit 7 session has been aborted 6 DECnet error 1 trace data available 0 receive data available AL = reason code if DECnet error 00h normal disconnect 01h unknown message from host 02h protocol violation from host 03h could not process the initiate message 04h error receiving message from host 05h error sending message to host 06h error checking for message from host 07h remote system does not support CTERM 08h remote system does not support correct protocol version 09h did not receive BIND message from host 0Ah could not send BIND message to host 0Bh no more sessions available 0Ch session does not exist 0Dh not enough memory to complete operation 0Eh connection has broken
SeeAlso: AX=0104h ———-690104—————————– INT 69 - DECnet DOS CTERM - DECnet STATUS
AX = 0104h DX = session handle
Return: AX = reason code (see AX=0103h) Note: use this call when AX=0103h returns a DECnet error SeeAlso: AX=0103h ———-690105—————————– INT 69 - DECnet DOS CTERM - OPEN SESSION
AX = 0105h DS:BX -> ASCIZ node name ES:DX -> buffer for session control block (see INT 6A/AH=D0h)
Return: AX ⇐ 0 on error
AX > 0 session handle
SeeAlso: AX=0103h,AX=0106h,AX=010Ah ———-690106—————————– INT 69 - DECnet DOS CTERM - CLOSE SESSION
AX = 0106h DX = session handle
Return: AH = 00h good close
other error code (see AX=0103h)
SeeAlso: AX=0103h,AX=0105h ———-69010A—————————– INT 69 - DECnet DOS CTERM - GET SESSION CONTROL BLOCK SIZE
AX = 010Ah
Return: AX = length of session control block in bytes SeeAlso: AX=0105h ———-69010B—————————– INT 69 - DECnet DOS CTERM - GET DECnet SOCKET
AX = 010Bh DX = session handle
Return: AX > 0 DECnet socket for the session
= 0 no match for handle
———-69010F—————————– INT 69 - DECnet DOS CTERM - DEINSTALL CTERM
AX = 010Fh
Return: AH = 00h succesful uninstall
other error code
Note: CTERM must have been the last TSR loaded in order to deinstall it SeeAlso: AX=0100h ———-690A——————————- INT 69 - DECnet DOS 2.1+ - DATA LINK LAYER
AH = 0Ah AL = function 00h initialize 01h open portal 02h close portal 03h enable multicast address 04h disable multicast address 05h transmit 06h request transmit buffer 07h deallocate transmit buffer 08h read channel status 09h read datalink portal list 0Ah read information about a datalink portal 0Bh read and/or clear counters 0Ch request to boot from a network server 0Dh enable Ethernet channel 0Eh disable Ethernet channel 0Fh start MOP/send a System ID message 10h stop MOP 11h get DECPARM 12h set DECPARM 13h external loopback ES:BX -> Datalink Communication Block
Return: AX = status
00h successful 01h hardware failed to initialize 02h channel state was not off (must be off to execute that command) 03h channel state is off (must be on to execute that command) 04h address not set 05h hardware missing 06h buffer too small 07h no more buffers available 08h no more resources available 09h promiscuous receiver active 0Ah non exclusive 0Bh unrecognized portal 0Ch protocol type in use 0Dh not a valid Multicast address 0Eh outstanding calls 0Fh hardware doesn't support receiving bad frames 10h none outstanding 11h no events 12h broken 13h buffer quota exceeded 14h already initialized 15h loopback failure
SeeAlso: INT 6D”DECnet“
Format of Datalink Communication Block Offset Type Description 00h WORD portal ID 02h 6 BYTEs source address 08h 6 BYTEs destination address 0Eh DWORD buffer pointer 12h WORD buffer length 14h WORD operation 16h BYTE pad flag (used on open)
00h no pad 01h pad
17h BYTE mode flag (used on open)
00h 802.3 01h Ethernet 02h promiscuous
18h DWORD line status change function 1Ch DWORD received data function 20h DWORD transmitted data function 24h BYTE maximum outstanding transmits/receives 25h 2 BYTEs protocol type 27h WORD buffers lost ———-696996—————————– INT 69 - ISR.COM v1.00 - SPECIFY INTERRUPT HANDLER
AX = 6996h DS:DX -> interrupt handler or 0000h:0000h to disable
Return: AX = 9669h Notes: ISR (Interrupt Service Reflector) is a TSR by Rich Bono which permits
a program to provide hardware interrupt handlers even while being debugged with a debugger that swaps interrupt vectors during debugging. the interrupt vector which is to be reflected is set at installation time and cannot be changed
———-6A——————————— INT 6A - OPTHELP.COM Notes: OPTHELP is an optionally-resident help system for SLR Systems's OPTASM
assembler may be configured to use any interrupt from 60h to 7Fh (default 6Ah)
———-6A——————————— INT 6A - DECnet DOS - LOCAL AREA TRANSPORT PROGRAM Note: the 3 bytes preceding the interrupt handler are “LAT”; this serves as
the installation check
———-6A01–DHFF————————- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BYTE
AH = 01h DH = FFh AL = character DL = handle
Return: AH >= 80h on error SeeAlso: AH=02h ———-6A02–DHFF————————- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - READ BYTE
AH = 02h DH = FFh DL = handle
Return: AH < 80h if successful
AL = character AH >= 80h on error
SeeAlso: AH=01h ———-6A03–DHFF————————- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - STATUS
AH = 03h DH = FFh DL = handle
Return: AH = status flags
bit 5 transmit buffer empty 3 session in start state 2 session not active 1 unable to queue transmit data 0 receive data available
———-6AD0–DHFF————————- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - OPEN SESSION
AH = D0h DH = FFh AL = FFh no password = 0Fh password at ES:DI ES:BX -> LAT session control block (see below) ES:DI -> 16-byte blank-padded password
Return: AH = 00h success
DL = handle
SeeAlso: AX=D000h
Format of LAT Session Control Block: Offset Size Description 00h 18 BYTEs service name 12h 18 BYTEs node name (future use) 24h 18 BYTEs port name (future use) 36h DWORD → session stopped post routine 3Ah DWORD → service table overflow post routine 3Eh DWORD → transmit post routine 42h DWORD → receive post routine 46h WORD session status
04h circuit failure 08h stop slot received
48h WORD slot state (LAT driver use) 4Ah WORD local credits (LAT driver use) 4Ch DWORD → VCB (LAT driver use) 50h WORD backward slot (LAT driver use) 52h WORD forward slot (LAT driver use) 54h WORD remote slot ID (LAT driver use) 56h WORD local slot ID (LAT driver use) 58h WORD slot byte count (LAT driver use) 5Ah BYTE remote credits (LAT driver use) 5Bh 255 BYTEs transmitted data slot 15Ah BYTE number of receive data slots (4 recommended) 15Bh BYTE number of occupied slots 15Ch BYTE index of next receive slot to use 15Dh BYTE index of current receive slot 15Eh WORD pointer to first received character 160h N WORDs pointers to receive slots (buffers); each is 259 bytes Note: set post routines to 0000h:0000h if polled operation will be used ———-6AD000DHFF————————- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - CLOSE SESSION
AX = D000h DH = FFh DL = handle
Return: AX = 0000h successful
= 0001h no such session = 0002h session not running, try again later
SeeAlso: AH=D0h ———-6AD100DHFF————————- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BREAK
AX = D100h DH = FFh DL = handle
Return: AX = 0000h if successful
AH bit 7 set if unable to send break
———-6AD300DHFF————————- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - RESET LAT COUNTERS
AX = D300h DH = FFh
SeeAlso: AX=D400h ———-6AD400DHFF————————- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - COPY LAT COUNTERS
AX = D400h DH = FFh CX = buffer size ES:BX -> buffer for LAT counters
Return: AX = 0000h counters copied into buffer
= FFFFh buffer too small
SeeAlso: AX=D300h ———-6AD500DHFF————————- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - GET NEXT LAT SERVICE NAME
AX = D500h DH = FFh ES:BX -> 17-byte buffer for name
Return: AH = 00h if successful
ES:BX buffer filled AX = FFFFh if end of table or no name available
Notes: use this function to get the names of the hosts on the network
successive calls are necessary to get all names
SeeAlso: AX=D600h ———-6AD600DHFF————————- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - LAT SERVICE TABLE RESET
AX = D600h DH = FFh
Return: AX = number of service table entries
BX = 0000h service table has not overflowed = FFFFh service table has overflowed
SeeAlso: AX=D500h ———-6B0000—————————– INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED WRITE
AX = 0000h CX = length ES:BX -> buffer
Return: CX = number of bytes written Note: also supported by NPC NCSI SeeAlso: AX=0100h,AH=18h,INT 14/AH=19h ———-6B0100—————————– INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ
AX = 0100h CX = length of buffer ES:BX -> buffer
Return: CX = number of bytes read Note: also supported by NPC NCSI SeeAlso: AX=0000h,AH=19h,INT 14/AH=18h,INT 14/AX=FF02h ———-6B02——————————- INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK
AH = 02h AL nonzero
Return: AL = 00h if present and OK Note: also supported by NPC NCSI SeeAlso: AX=0700h ———-6B0600—————————– INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL
AX = 0600h CX = command 02h send break 04h disconnect 06h hold
Note: also supported by NPC NCSI ———-6B0700—————————– INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS
AX = 0700h
Return: CH <> 00h if connection active Note: also supported by NPC NCSI SeeAlso: AH=02h,AH=10h ———-6B10——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS
AH = 10h ???
Return: ??? SeeAlso: AX=0700h,AH=12h,AH=1Fh ———-6B11——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT
AH = 11h ???
Return: ??? SeeAlso: AH=12h,AH=15h,AH=16h,AH=17h,AH=18h ———-6B12——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS
AH = 12h ???
Return: ??? SeeAlso: AH=10h,AH=15h,AH=1Ah,AH=1Bh,AH=1Fh ———-6B13——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE REQUEST/REPLY SERVICE NAME
AH = 13h ???
Return: ??? SeeAlso: AH=14h,AH=15h ———-6B14——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE SERVICE ADDRESS
AH = 14h ???
Return: ??? SeeAlso: AH=13h,AH=15h,AH=21h ———-6B15——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE VIRTUAL CIRCUIT CONFIG
AH = 15h ???
Return: ??? SeeAlso: AH=13h,AH=14h ———-6B16——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT
AH = 16h ???
Return: ??? SeeAlso: AH=11h,AH=12h,AH=17h ———-6B17——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT
AH = 17h ???
Return: ??? SeeAlso: AH=11h,AH=16h ———-6B18——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT
AH = 18h ???
Return: ??? SeeAlso: AX=0000h,AH=12h,AH=19h ———-6B19——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT
AH = 19h ???
Return: ??? SeeAlso: AX=0100h,AH=12h,AH=18h ———-6B1A——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS
AH = 1Ah ???
Return: ??? SeeAlso: AH=12h,AH=1Bh ———-6B1B——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS
AH = 1Bh ???
Return: ??? SeeAlso: AH=12h,AH=1Ah ———-6B1C——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE BUFFER CONTROL
AH = 1Ch ???
Return: ??? SeeAlso: AH=1Dh,AH=1Eh ———-6B1D——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL
AH = 1Dh ???
Return: ??? SeeAlso: AH=1Ch,AH=1Eh ———-6B1E——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST
AH = 1Eh ???
Return: ??? SeeAlso: AH=1Ch,AH=1Dh ———-6B1F——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS
AH = 1Fh ???
Return: ??? SeeAlso: AH=10h,AH=12h ———-6B21——————————- INT 6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE
AH = 21h ???
Return: ??? SeeAlso: AH=14h ———-6B6B——————————- INT 6B - Tandy SCHOOLMATE PLUS - API
AH = 6Bh AL = E0h to FFh
———-6B——————————— INT 6B - VIRUS - “Saddam” - ??? SeeAlso: INT 21/AX=FFFFh,INT 61”VIRUS“,INT 70”VIRUS“ ———-6C——————————— INT 6C - system resume vector (CONVERTIBLE) ———-6C——————————— INT 6C - DOS 3.2 Realtime Clock update ———-6C——————————— INT 6C - DECnet DOS network scheduler SeeAlso: INT 6D”DECnet“,INT 6E”DECnet“ ———-6D——————————— INT 6D - VGA - internal Note: used by IBM, Paradise, Video7, and NCR ———-6D——————————— INT 6D - ATI VGA Wonder - VIDEO BIOS ENTRY POINT
points at the original INT 10 entry point set up by the ATI BIOS
SeeAlso: INT 10 ———-6D——————————— INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM
AH = function ???
Return: ??? SeeAlso: INT 69/AH=0Ah,INT 6C”DECnet“,INT 6E”DECnet“ ———-6E——————————— INT 6E - DECnet DOS - DECnet NETWORK PROCESS API Notes: this is the main DECnet DOS access, and is described in Digital manual
AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual") there is a signature/data area immediately prior to the interrupt handler which may be used as an installation check
Format of signature area: Offset Size Description -5 BYTE major version number -4 BYTE minor version number -3 3 BYTEs signature (ASCII “DNP”) ———-6F—-BP0012———————– INT 6F - HP ES-12 EXTENDED BIOS - READ CMOS MEMORY
BP = 0012h AH = 22h BL = address of CMOS byte to read
Return: AH = status
AL = byte read BP, DS destroyed
SeeAlso: BP=0012h/AH=24h ———-6F—-BP0012———————– INT 6F - HP ES-12 EXTENDED BIOS - WRITE CMOS MEMORY
BP = 0012h AH = 24h BL = address of CMOS byte to write AL = new value
Return: AH = status
BP, DS destroyed
SeeAlso: BP=0012h/AH=22h ———-6F——————————— INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface) ———-6F00——————————- INT 6F - 10-NET - LOGIN
AH = 00h DS:DX -> login record (see below)
Return: CL = security level
AX = status 0000h successful 01FFh time out on response 02FFh network (hardware) error 03FFh invalid password 04FFh local resource not available 05FFh server resource not available 06FFh already logged in under different name 07FFh login security failure (node) 08FFh not logged in 09FFh position calc error 0AFFh receive subfunction not = send subfunction (i.e. read, write) 0BFFh request function not in range 0CFFh no more server file handle entries left 0DFFh no more shared file table entries left 0EFFh no more user file handle entries left 0FFFh chat permit not on 10FFh not a server on request 11FFh no transporter board error 12FFh time out on send 13FFh item not found (spool item not on queue) 14FFh DOS access incompatible 15FFh record already locked 16FFh invalid parameter 17FFh record lock time out error 18FFh currently spooling to named device 19FFh dropped receive message (throttle) 1AFFh open sharing violation 1BFFh no more tuf entries left 1CFFh not file owner on open 1DFFh read security not passed 1EFFh write security not passed 1FFFh group security not passed 20FFh security file failure 21FFh activity file failure 22FFh spool cntrl file failure 23FFh device not mounted (spooling) 24FFh spool file has not been terminated 25FFh device not mounted or is not being shared 26FFh duplicate node id 27FFh file not found error 28FFh no more files 29FFh unknown internal system error 2AFFh print queue is full or corrupted 2BFFh invalid function 2CFFh invalid handle 2DFFh too many files opened 2EFFh path not found 2FFFh named file is active
/* I've gotten one submission which says FFxxh, and another with xxFFh */ /* I don't know which way around these should be, does somebody else know? */
FF01h timeout FF02h network error FF03h invalid password FF04h no local buffer FF05h superstation not available FF06h node already logged in FF07h login not valid from this node FF08h node ID already in use FF16h invalid parameter (bad length, invalid node ID, etc) FF17h record locked by another user FF18h sent message has been dropped
SeeAlso: AH=01h
Format of login record: Offset Size Description 00h 8 BYTEs user name 08h 8 BYTEs password 10h 12 BYTEs name of SuperStation ———-6F01——————————- INT 6F - 10-NET - LOGOFF
AH = 01h DS:DX -> superstation ID or nulls (12 bytes)
Return: CX = number of files closed
AX = status (see AH=00h) FF08h superstation ID not already logged in
SeeAlso: AH=00h ———-6F02——————————- INT 6F - 10-NET - STATUS OF NODE
AH = 02h DS:DX -> 512-byte status record (see below)
Return: CF set on error
AX = error code (see AH=00h) CF clear if successful
Format of node status record: Offset Size Description 00h 8 BYTEs user name (0 if none) 08h BYTE station type
00h workstation 01h superstation 02h gateway station 03h gateway active 04h logged into multiple superstations 05h reserved
09h 24 BYTEs list of superstations logged into more than one superstation 21h 12 BYTEs node ID 2Dh WORD message count for this station (send for user node, receive for
superstations)
—for superstations only— 2Fh WORD drives allocated (bit 0=A:, bit 1=B:,…) 31h BYTE user service flag
bit 7: gate 6: print permit on 4: SUBMIT is on 3: mail waiting for node 2: calendar waiting for you 1: news waiting for you 0: mail waiting for you
32h BYTE printers allocated (bit 0=LPT1,…) 33h BYTE number of unprinted spool files 34h BYTE number of opened files 35h BYTE number of logged on nodes 36h BYTE primary drive (1=A:) 37h BYTE reserved 38h N BYTEs list of logged on node IDs (each 12 bytes, max 37 IDs) 1F4h 3 BYTEs time: sec/min/hrs 1F7h 3 BYTEs date: day/mon/year-1980 ———-6F03——————————- INT 6F - 10-NET - GET ADDRESS OF CONFIGURATION TABLE
AH = 03h DS:DI -> node ID (optional)
Return: ES:BX → configuration table SeeAlso: AH=13h
Format of configuration table: Offset Size Description -41 WORD local device table address -39 WORD extended network error mapping table address -37 WORD shared device table address -35 WORD mounted device table address -33 BYTE receive buffer counter -32 BYTE collect buffer counter -31 WORD TUF address -29 BYTE enable flag -28 BYTE FCB keep flag -27 WORD reserved —up to here, 10-Net v3.3— -25 WORD count of dropped Send6F -23 WORD buffer start address -21 WORD comm driver base address -19 WORD send/receive retry count -17 BYTE number of 550ms loops before timeout -16 WORD UFH address -14 WORD CDIR address -12 WORD LTAB address -10 WORD SFH address -8 WORD FTAB address -6 WORD RLTAB address -4 WORD SMI address -2 WORD NTAB address 00h WORD address of first CT_DRV 02h BYTE number of DRV entries 03h 8 BYTEs login name 0Bh 12 BYTEs node ID (blank-padded) 17h 6 BYTEs node address 1Dh BYTE flag 1Eh BYTE CT_CFLG (chat permit)
bit 1: sound bell bit 0: CHAT permit
1Fh BYTE CT_PSFLG
bit 5: PRINT permit bit 4: KB initiated bit 3: CHAT called FOXPTRM bit 2: SUBMIT active bit 1: SUBMIT received bit 0: SUBMIT permit
20h BYTE in 10Net flag 21h WORD receive message count 23h WORD send message count 25h WORD retry count 27h WORD failed count 29h WORD driver errors 2Bh WORD dropped responses/CHATs 2Dh 9 BYTEs LIST ID/NTAB address (3 entries–LPT1-3) 36h 6 BYTEs AUX ID/NTAB address (2 entries–COM1-2) 3Ch BYTE active CB channel 3Dh BYTE received 6F messages on queue 3Eh 9 BYTEs activity counters for channels 1-9 —beyond here, 10-Net v3.3— 47h BYTE bit 0 = RS232 gate
1 = Send6F gate (user set)
48h DWORD pointer into gate (user set) 4Ch DWORD pointer into 10Net send 50h N WORDs addresses of timer blocks ———-6F04——————————- INT 6F - 10-NET - SEND
AH = 04h DS:BX -> record 12 BYTEs receiving node's ID if first byte has high-order bit set, message is directed to the CT_RGATE vector at the receiver if second byte is 00h, first byte is taken as a CB channel number and delivered to all nodes on same channel WORD length of data at DX DS:DX -> data (max 1024 bytes)
Return: CF set on error
AX = error code (see AH=00h) CF clear if successful
SeeAlso: AH=05h ———-6F05——————————- INT 6F - 10-NET - RECEIVE
AH = 05h CX = number of seconds before timeout DS:DX -> receive buffer (see below)
Return: CF set on error
AX = error code (see AH=00h) CF clear if successful AH = FEh if dequeued message is a CB message
SeeAlso: AH=04h
Format of receive buffer: Offset Size Description 00h 12 BYTEs sending node's ID 0Ch WORD length of message 0Eh N BYTEs message (maximum 1024 bytes) ———-6F07——————————- INT 6F - 10-NET - LOCK HANDLE
AH = 07h BX = file handle CX:DX = starting offset in file SI = record length
Return: CF set on error
AX = error code (see also AH=00h) 0002h file not found CF clear if successful
SeeAlso: AH=08h,INT 21/AH=5Ch ———-6F08——————————- INT 6F - 10-NET - UNLOCK HANDLE
AH = 08h BX = file handle AL = mode 00h unlock all 01h unlock record at CX:DX
Return: CF set on error
AX = error code (see also AH=00h) 0002h file not found CF clear if successful
SeeAlso: AH=07h,INT 21/AH=5Ch ———-6F09——————————- INT 6F - 10-NET - SUBMIT
AH = 09h DS:BX -> submit record (see below)
Format of submit record: Offset Size Description 00h 12 BYTEs destination node ID (must be logged in) 0Ch WORD length+2 of following 'command line' text 0Eh N BYTEs command line text (⇐100 bytes), system adds CR ———-6F0A——————————- INT 6F - 10-NET - CHAT
AH = 0Ah DS:BX -> control parameters (see below) DS:DX -> chat message (see below)
Format of control parameters: Offset Size Description 00h 8 BYTEs sender ID, defaults to node's userID if nulls 08h 8 BYTEs destination user ID, 'EVERYONE' may be used 10h 12 BYTEs destination node ID
Format of chat message: Offset Size Description 00h WORD length+2 of following text 02h N BYTEs text, max 101 bytes ———-6F0B——————————- INT 6F - 10-NET - LOCK SEMAPHORE, RETURN IMMEDIATELY
AH = 0Bh AL = drive number or 0 ES:SI = Ethernet address or 0 DS:BX -> 31-byte ASCIZ semaphore name
Return: AL = status
00h successful 01h semaphore currently locked 02h server not responding 03h invalid semaphore name 04h semaphore list is full 05h invalid drive ID 06h invalid Ethernet address 07h not logged in 08h write to network failed 09h semaphore already logged in this CPU
Note: same as INT 60/AH=12h SeeAlso: AH=0Ch,INT 60/AH=12h ———-6F0C——————————- INT 6F - 10-NET - UNLOCK SEMAPHORE
AH = 0Ch AL = drive number or 0 ES:SI = Ethernet address or 0 DS:BX -> 31-byte ASCIZ semaphore name
Return: AL = status (see also AH=0Bh)
01h semaphore not locked
Note: same as INT 60/AH=13h SeeAlso: AH=0Bh,INT 60/AH=13h ———-6F0D——————————- INT 6F - 10-NET - WHO
AH = 0Dh AL = type code 01h return superstations only 02h return non-superstations only otherwise return all CX = length of data DS:DX -> array of records to be filled (see below)
Return: CL = number of records returned (responding stations)
Format of station record: Offset Size Description 00h 12 BYTEs node ID 0Ch BYTE flags
bit 1 = workstation 2 = superstation 3 = xgate 4 = active gate
—if AL = 01h— 0Dh BYTE version number
WORD level number of 10Net software in responding node
—if AL = 02h— 0Dh 8 BYTEs user ID 15h BYTE version number 16h WORD level number ———-6F0E——————————- INT 6F - 10-NET - SPOOL/PRINT
AH = 0Eh DS:DX -> spool/print record (see below)
Return: CF set on error
AX = error code (see also AH=00h) FF17h device not mounted FF18h already spooling to named device CF clear if successful
Format of Spool/Print record: Offset Size Description 00h WORD operation code
00h initiate spool 01h abort print 02h close spool 03h delete spool 04h print 05h get report info 06h set chat template 07h queue 08h return queue 09h queue non-spooled file for printing
02h 11 BYTEs file name in FCB format —if operation code = 00h or 06h— 0Dh BYTE notification
bit 7: queue to top bit 6: do ID page bit 5: no form feed bit 4: reserved bit 3: explicity queuing only bit 2: notify at print completion bit 1: notify server operator/reply bit 0: notify at print start
0Eh BYTE days to keep (FFh=forever) 0Fh BYTE bits 0,1: device (1=LPT1)
bits 4-7: remote drive to store spool file (1=A,...)
10h WORD length of following data area 12h N BYTEs up to 64 bytes of description —if operation code = 03h— 0Dh 8 BYTEs user ID to associate with filename —if operation code = 04h— 0Dh WORD block number 0Fh 8 BYTEs user ID to associate with filename —if operation code = 05h— 0Dh BYTE RRN to start retrieve 0Eh BYTE bits 0,1: local print device (LPTx)
bit 3: if set, return entries for all users
0Fh WORD length of following area 11h N BYTEs up to 1500 bytes to receive $SCNTL records returned —if operation code = 07h— 0Dh BYTE queue number 0Eh BYTE bits 0,1: local print device (LPTx) 0Fh WORD number of bytes of test print to be done 11h BYTE code: 01h print device
02h test print count 03h prn
—if operation code = 08h— 0Dh BYTE queue location or $SCNTL location to start access
returns next item for access: 00h-7Fh queued items 80h-FEh non-queued, non-printed items FFh no more items
0Eh WORD unused 10h WORD length of following area 12h N BYTEs up to 64 bytes to receive $SCNTL records —if operation code = 09h— 0Dh 3 BYTEs unused 10h N BYTEs path to non-spooled file to be queued for printing
Format of $SCNTL record: Offset Size Description 00h 8 BYTEs user ID 08h 11 BYTEs filename in FCB format 13h 6 BYTEs node ID 19h 3 BYTEs creation date 1Ch BYTE flags
bit 7: queue to top 6: do ID page 5: no form feed at end 4: reserved 3: explicit queueing only 2: notify at completion 1: notify server operator/reply 0: notify at start
1Dh BYTE retention time in days 1Eh BYTE printing device (LPTx) 1Fh 3 BYTEs date last printed (0 = never) 22h BYTE device containing spoolfile 23h WORD bytes to print for test print 25h WORD block number to start print 27h BYTE reserved ———-6F10——————————- INT 6F - 10-NET - ATTACH/DETACH PRINTER
AH = 10h AL = subfunction 00h initiate spooling if LPT1 is mounted 01h terminate spooling if LPT1 is mounted
SeeAlso: INT 21/AX=5D08h ———-6F11——————————- INT 6F - 10-NET - LOCK FCB
AH = 11h AL = mode 01h sequential 02h random 03h random block CX = number of records DS:DX -> FCB (see INT 21/AH=0Fh)
Return: CF set on error
AX = error code (see also AH=00h) 0002h file not found CF clear if successful
SeeAlso: AH=12h ———-6F12——————————- INT 6F - 10-NET - UNLOCK FCB
AH = 12h AL = mode 00h sequential 01h random 02h random block CX = number of records DS:DX -> FCB (see INT 21/AH=0Fh)
Return: CF set on error
AX = error code (see also AH=00h) 0002h file not found CF clear if successful
SeeAlso: AH=11h ———-6F13——————————- INT 6F - 10-NET v3.3 - GET REMOTE CONFIGURATION TABLE ADDRESS
AH = 13h DS:DX -> node ID, 12 bytes blank-padded
Return: CF set on error
AX = error code (see AH=00h) CF clear if successful ES:BX = configuration table address on given machine
SeeAlso: AH=03h ———-6F14——————————- INT 6F - 10-NET v3.3 - GET REMOTE MEMORY
AH = 14h BX:SI = address of remote memory CX = length (<=1024 bytes) DS:DX -> node ID, 12 bytes blank-padded DS:DI -> area to receive remote memory image
Return: CF set on error
AX = error code (see AH=00h) CF clear if successful CX = amount of memory copied to DS:SI
———-6F1501—————————– INT 6F - 10-NET v3.3 - GET SHARED DEVICE ENTRY
AX = 1501h BX = zero-based index DS:SI -> node ID, 12 bytes blank-padded ES:DI -> 85-byte buffer for shared device table entry (see below)
Return: CF set on error
AX = error code (see AH=00h) CF clear if successful ES:DI buffer contains shared device table entry of BXth device:
SeeAlso: AX=1502h,AX=1503h
Format of shared device table entry: Offset Size Description 00h 8 BYTEs device 08h 8 BYTEs alias 10h 64 BYTEs path 50h 8 BYTEs password 58h BYTE access 59h 4 BYTEs mask ———-6F1502—————————– INT 6F - 10-NET v3.3 - SET SHARED DEVICE ENTRY
AX = 1502h DS:SI -> node ID, 12 bytes blank-padded ES:DI -> valid shared device table entry
Return: CF set on error
AX = error code (see AH=00h) CF clear if successful
SeeAlso: AX=1501h,AX=1503h ———-6F1503—————————– INT 6F - 10-NET v3.3 - DELETE SHARED DEVICE ENTRY
AX = 1503h BX = zero-based index DS:SI -> node ID, 12 bytes blank-padded
Return: CF set on error
AX = error code (see AH=00h) CF clear if successful
SeeAlso: AX=1501h,AX=1502h ———-6F17——————————- INT 6F - 10-NET v3.3 - MOUNT
AH = 17h AL = local drive number (0=A:) BL = remote drive letter or '1'..'3' for LPTn or '4' or '5' for COMx DS:DX -> node ID, 12 bytes blank-padded
Return: CF set on error
AX = error code (see AH=00h) CF clear if successful
SeeAlso: AH=18h ———-6F18——————————- INT 6F - 10-NET v3.3 - UNMOUNT
AH = 18h AL = local drive number (0=A:) BL = type 00h disk 01h-03h LPTn 04h,05h COMx
Return: CF set on error
AX = error code (see AH=00h) CF clear if successful
SeeAlso: AH=17h ———-70——————————— INT 70 - IRQ8 - CMOS REAL-TIME CLOCK Notes: this interrupt is called when the real-time clock chip generates an
alarm or periodic interrupt, among others. The periodic interrupt occurs 1024 times per second, although many BIOSes turn it off in the INT 70h handler unless in an event wait (see INT 15/AH=83h or INT 15/AH=86h). may be masked by setting bit 0 on I/O port A1h
SeeAlso: INT 08,INT 0F”HP 95LX“,INT 15/AH=01h”Amstrad“,INT 15/AH=83h SeeAlso: INT 15/AH=86h,INT 1A/AH=02h,INT 58”DESQview“ ———-70——————————— INT 70 - VIRUS “Stupid” - ??? SeeAlso: INT 6B”VIRUS“,INT E0”VIRUS“ ———-71——————————— INT 71 - IRQ9 - REDIRECTED TO INT 0A BY BIOS Notes: may be masked by setting bit 1 on I/O port A1h
the default BIOS handler invokes INT 0A for compatibility, since the pin for IRQ2 on the PC expansion bus became the pin for IRQ9 on the AT expansion bus. under DESQview, only the INT 15h vector and BASIC segment address (the word at 0000h:0510h) may be assumed to be valid for the handler's process
SeeAlso: INT 0A,INT 59 ———-72——————————— INT 72 - IRQ10 - RESERVED Note: may be masked by setting bit 2 on I/O port A1h SeeAlso: INT 5A ———-73——————————— INT 73 - IRQ11 - RESERVED Note: may be masked by setting bit 3 on I/O port A1h SeeAlso: INT 5B ———-74——————————— INT 74 - IRQ12 - POINTING DEVICE (PS) Notes: may be masked by setting bit 4 on I/O port A1h
under DESQview, only the INT 15h vector and BASIC segment address (the word at 0000h:0510h) may be assumed to be valid for the handler's process
SeeAlso: INT 33,INT 5C ———-75——————————— INT 75 - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up)
redirected to INT 02 by the BIOS, for compatibility with the PC
Notes: may be masked by setting bit 5 on I/O port A1h
not all clones wire the coprocessor to generate this IRQ; some systems generate an NMI (see INT 02) or assert the -ERROR pin on the CPU (see INT 10"COPROCESSOR") under DESQview, only the INT 15h vector and BASIC segment address (the word at 0000h:0510h) may be assumed to be valid for the handler's process
SeeAlso: INT 10”COPROCESSOR“,INT 5D ———-76——————————— INT 76 - IRQ14 - HARD DISK CONTROLLER (AT and later) Note: may be masked by setting bit 6 on I/O port A1h SeeAlso: INT 0E”IRQ6“,INT 5E ———-77——————————— INT 77 - IRQ15 - RESERVED (AT,PS) Note: may be masked by setting bit 7 on I/O port A1h SeeAlso: INT 5F ———-77——————————— INT 77 - IRQ15 - POWER CONSERVATION (Compaq SLT/286) Note: may be masked by setting bit 7 on I/O port A1h SeeAlso: INT 15/AX=4600h,INT 5F ———-78——————————— INT 78 - UofSalford DBOS DOS extender - API
BYTE following INT instruction contains function code 03h switch to protected mode 1Eh set real-mode memory size (specify how much real-mode memory to leave free when running FTN77 programs) 22h uninstall ???
Return: ??? Note: DBOS supports functions 00h through 50h ———-78——————————— INT 78 - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ0 Note: this vector is overwritten when GO32 starts but is not restored SeeAlso: INT 08,INT 10/AH=FFh”GO32“,INT 79”GO32“ ———-78——————————— INT 78 - AutoCAD 10 ADI for Plotters
AX = function 0001h initialize comm port and reset plotter BX = ??? (comm port?) 0002h close plotter 0003h move (pen up) BX = new X position CX = new Y position 0004h move (pen down) BX = new X position CX = new Y position 0005h select pen BX = pen number 0006h select drawing speed BX = drawing speed N 0007h select line style BX = line style N 0008h return pen to pen carrier??? (called before change-pen cmd)
Return: ??? SeeAlso: INT 7A”AutoCAD“,INT 7B”AutoCAD“ ———-78——————————— INT 78 - ADP-60 IDE controller - ORIGINAL INT 13 SeeAlso: INT 79”ADP-60“ ———-7800——————————- INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT
AH = 00h DX = interface board I/O port
Return: CF set on error
AL = error code 00h illegal command given to SCSI code 01h invalid I/O port specified (must be from 100H to 3F8H, and must be on an 8-port boundary) 02h invalid DMA channel specified (must be from 1 to 3) 03h invalid SCSI board number specified (must be from 0 to 7) 04h error from data register test during self-test 05h SCSI input signals not all 0 when SCSI RST activated 06h SCSI input signals not all 0 before selecting a SCSI device 07h BSY signal is active; SCSI bus is busy 08h SCSI board not selected, BSY signal did not come on in response to raising SEL 09h time-out waiting for status state, signifying end of DMA transfer
Note: if this routine is not called, the port is the driver's default
(usually 0280h or 0300h) an installation check is performed by TARGA.DEV upon initialization by checking for the string "SCSI" at offset 03h into the interrupt handler
SeeAlso: AH=01h,AH=02h ———-7801——————————- INT 78 - TARGA.DEV - GET I/O PORT
AH = 01h
Return: DX = current interface board I/O port SeeAlso: AH=00h,AH=03h”TARGA“ ———-7802——————————- INT 78 - TARGA.DEV - SET DMA CHANNEL
AH = 02h AL = interface board DMA channel
Return: CF set on error
AL = error code (see AH=00h)
Note: if this routine is not called, the DMA channel is the driver's default
(usually 3)
SeeAlso: AH=00h,AH=03h”TARGA“ ———-7803——————————- INT 78 - TARGA.DEV - GET DMA CHANNEL
AH = 03h
Return: AL = current interface board DMA channel SeeAlso: AH=01h,AH=02h ———-7804——————————- INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER
AH = 04h AL = SCSI device number
Return: CF set on error
AL = error code (see AH=00h)
Note: if this routine is not called, the device number used is the driver's
default (usually 0)
SeeAlso: AH=02h,AH=05h ———-7805——————————- INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER
AH = 05h
Return: AL = current SCSI device number SeeAlso: AH=03h”TARGA“,AH=04h ———-7806——————————- INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE
AH = 06h AL = 00h clear early return mode = 01h set early return mode
Note: if early return mode is set then SCSI will return with no errors
when the last DMA transfer is started in a call with AH=13h or AH=14h if this routine is not called, early return mode is cleared
SeeAlso: AH=13h,AH=14h,AH=15h ———-7808——————————- INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST
AH = 08h
Return: CF set on error
AL = error code (see AH=00h)
Note: the SCSI bus is also reset SeeAlso: AH=09h ———-7809——————————- INT 78 - TARGA.DEV - RESET SCSI BUS
AH = 09h
Return: AL = error code if carry set (see AH=00h) SeeAlso: AH=08h ———-7810——————————- INT 78 - TARGA.DEV - SEND SCSI COMMAND
AH = 10h DS:SI -> command bytes
Return: AH = SCSI status byte
CF clear if successful AL = SCSI message byte CF set on error AL = error code (see AH=00h)
SeeAlso: AH=11h,INT 21/AX=4403h”ST-01“
Format of SCSI Command: Offset Size Description 00h BYTE length of command 01h ??? command bytes ———-7811——————————- INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)
AH = 11h DS:SI -> command bytes ES:BX -> data storage area CX = number of data bytes to transfer
Return: AH = SCSI status byte
CF clear if successful AL = SCSI message byte CF set on error AL = error code (see AH=00h)
Note: this command receives data internally one byte at a time SeeAlso: AH=10h,AH=13h
Format of SCSI Command: Offset Size Description 00h BYTE length of command 01h ??? command bytes ———-7812——————————- INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)
AH = 12h DS:SI -> command bytes ES:BX -> data storage area CX = number of data bytes to transfer
Return: AH = SCSI status byte
CF clear if successful AL = SCSI message byte CF set on error AL = error code (see AH=00h)
Note: this command sends data internally one byte at a time SeeAlso: AH=14h
Format of SCSI Command: Offset Size Description 00h BYTE length of command 01h ??? command bytes ———-7813——————————- INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)
AH = 13h DS:SI -> command bytes ES:BX -> data storage area DX:CX = number of data bytes to transfer
Return: AH = SCSI status byte (if early return mode is clear)
CF clear if successful AL = SCSI message byte (if early return mode is clear) CF set on error AL = error code (see AH=00h)
Note: this command receives data using DMA SeeAlso: AH=11h,AH=12h
Format of SCSI Command: Offset Size Description 00h BYTE length of command 01h ??? command bytes ———-7814——————————- INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)
AH = 14h DS:SI -> command bytes ES:BX -> data storage area DX:CX = number of data bytes to transfer
Return: AH = SCSI status byte (if early return mode is clear)
CF clear if successful AL = SCSI message byte (if early return mode is clear) CF set on error AL = error code (see AH=00h)
Note: this command sends data using DMA SeeAlso: AH=12h,AH=13h
Format of SCSI Command: Offset Size Description 00h BYTE length of command 01h ??? command bytes ———-7815——————————- INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)
AH = 15h
Return: AH = SCSI status byte
CF clear if successful AL = SCSI message byte CF set on error AL = error code (see AH=00h)
Note: if AH=06h was previously called to set the early return mode, this
function finishes a command AH=13h or AH=14h which returned before the last DMA transfer was finished
SeeAlso: AH=06h,AH=13h,AH=14h ———-79——————————— INT 79 - AVATAR.SYS - FAST GET KEYSTROKE Return: CF set if no keystroke available
AX = FFFFh CF clear if key pressed AX = keystroke
Notes: if a keystroke is available, it is removed from the keyboard buffer
before being returned AVATAR.SYS is a CON driver by George Adam Stanislav which interprets AVATAR command codes just as ANSI.SYS interprets ANSI commands
SeeAlso: INT 29 ———-79——————————— INT 79 - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ1 Note: this vector is overwritten when GO32 starts but is not restored SeeAlso: INT 09,INT 78”GO32“,INT 7A”GO32“ ———-79——————————— INT 79 U - ADP-60 IDE adapter - ??? SeeAlso: INT 78”ADP-60“ ———-790001—————————– INT 79 U - AutoCAD Device Interface - DIGITIZER - INITIALIZE
AX = 0001h
Return: AX = 0001h ??? self-test result???
BX = 0001h
SeeAlso: AX=0002h,AX=0003h,INT 7A”AutoCAD“ ———-790002—————————– INT 79 U - AutoCAD Device Interface - DIGITIZER - CLOSE
AX = 0002h
SeeAlso: AX=0001h,AX=0003h ———-790003—————————– INT 79 U - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS
AX = 0003h
Return: AX = button state
0002h no button pressed BX = X coordinate CX = Y coordinate 0003h Pick button (0,A,B,C,D) pressed BX = X coordinate CX = Y coordinate 0005h other button (1-9) pressed BX = number of button - 1 CX = X coordinate DX = Y coordinate
Note: these return values are valid for the Houston Instruments HiPad Plus
9236 digitizer with a 16-button cursor
SeeAlso: AX=0001h,AX=0002h ———-7A——————————— INT 7A U - Topware Network Operating System - ???
AL = ??? ???
Return: ??? SeeAlso: INT 21/AH=FFh”Topware“,INT 2F/AX=FF00h ———-7A——————————— INT 7A - AutoCAD Device Interface
???
SeeAlso: INT 61/AX=0007h”OPTIMA“,INT 78”AutoCAD“,INT 79/AX=0001h SeeAlso: INT 7B”AutoCAD“ ———-7A——————————— INT 7A - X.PC Packet software interface
ES:BX -> parameter block
SeeAlso: INT 60/AX=01FFh ———-7A——————————— INT 7A - Novell NetWare - LOW-LEVEL API - Notes Note: this interrupt is used for IPX/SPX access in NetWare versions through
2.0a; in later versions, you should use INT 2F/AX=7A00h to get an entry point even though INT 7A still exists. For both INT 7A and the FAR entry point, BX contains the function number; IPX is sometimes called internally with BX bit 15 set.
SeeAlso: INT 2F/AX=7A00h,INT 64”Novell“,INT 7A/BX=0000h ———-7A——————————— INT 7A - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ2 Note: this vector is overwritten when GO32 starts but is not restored SeeAlso: INT 0A,INT 79”GO32“,INT 7B”GO32“ ———-7A—-BX0000———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - OPEN SOCKET
BX = 0000h AL = mode 00h open until close or terminate FFh open until close DX = socket number (high byte in DL) 0000h dynamic allocation else socket to open
Return: AL = return code
00h success DX = socket number FEh socket table full FFh socket already open
SeeAlso: BX=0001h ———-7A—-BX0001———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - CLOSE SOCKET
BX = 0001h DX = socket (high byte in DL)
SeeAlso: BX=0000h ———-7A—-BX0002———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - GET LOCAL TARGET
BX = 0002h ES:SI -> target internetwork address ES:DI -> 6-byte buffer for local target
Return: AL = return code
00h success CX = expected one-way transfer time (clock ticks) ES:DI -> local target FAh unsuccessful
Note: The internetwork address consists of a 4-byte network address followed
by a 6-byte node address. The local target is only a 6-byte node address. If the target is in the same network, the local target is just the node address of target; otherwise, the local target is the node address of the bridge that leads to the target.
SeeAlso: BX=0009h ———-7A—-BX0003———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - SEND PACKET
BX = 0003h ES:SI -> Event Control Block (see below)
SeeAlso: BX=0004h,BX=000Fh
Format of Event Control Block: Offset Size Description 00h DWORD Link 04h DWORD → Event Service Routine (00000000h if none) 08h BYTE in use flag 09h BYTE completion code 0Ah WORD socket (high byte first [big-endian]) 0Ch 4 BYTES IPX workspace 10h 12 BYTES driver workspace 1Ch 6 BYTES immediate local node address 22h WORD fragment count 26h var fragment descriptors
Offset Size Description 00h DWORD -> fragment data 04h WORD size of fragment in bytes.
Notes: ESR is a far procedure that is called when the ECB has been handled.
On call, the in use flag is zero if the ECB has been handled, non-zero otherwise. If the flag is zero, the completion code holds the result of the event: 00h success F9h event should not be cancelled FCh cancelled FDh malformed packet FEh packet undeliverable FFh physical error the first fragment should start with an IPX header all fragments are concatenated and sent in one piece node address FF FF FF FF FF FF broadcasts to all nodes
Event Service Routine called with:
AL = caller's identity (00h = AES, FFh = IPX) ES:SI -> event control block interrupts disabled
Format of IPX header: Offset Size Description 00h WORD checksum (high byte first [big-endian]) 02h WORD length in bytes (high byte first) of total packet 04h BYTE transport control 05h BYTE packet type
00h unknown packet type 01h routing information packet 02h echo packet 03h error packet 04h packet exchange packet (always use this one) 05h SPX packet 11h (used internally)
06h 10 BYTES destination internetwork address 10h WORD destination socket (high byte first) 12h 10 BYTES source internetwork address 1Ch WORD source socket ———-7A—-BX0004———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - LISTEN FOR PACKET
BX = 0004h ES:SI -> Event Control Block (see BX=0003h)
SeeAlso: BX=0003h ———-7A—-BX0005———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - SCHEDULE IPX EVENT
BX = 0005h AX = delay time ES:SI -> Event Control Block (see BX=0003h)
SeeAlso: BX=0006h,BX=0007h,BX=0008h ———-7A—-BX0006———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - CANCEL EVENT
BX = 0006h ES:SI -> Event Control Block (see BX=0003h)
Return: AL = return code
00h success F9h event in use FFh unsuccessful, event not in use
SeeAlso: BX=0005h ———-7A—-BX0007———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - SCHEDULE SPECIAL EVENT
BX = 0007h AX = delay time ES:SI -> Event Control Block (see BX=0003h)
SeeAlso: BX=0006h ———-7A—-BX0008———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - GET INTERVAL MARKER
BX = 0008h
Return: AX = interval marker in clock ticks SeeAlso: BX=0005h ———-7A—-BX0009———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - GET INTERNETWORK ADDRESS
BX = 0009h ES:SI -> 10-byte buffer
Return: ES:SI → own internetwork address SeeAlso: BX=0002h,BX=000Bh ———-7A—-BX000A———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - RELINQUISH CONTROL
BX = 000Ah
Note: this call permits the IPX driver to do some work SeeAlso: INT 15/AX=1000h,INT 2F/AX=1680h ———-7A—-BX000B———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - DISCONNECT FROM TARGET
BX = 000Bh ES:SI -> internetwork address
Note: only use in point-to-point networks SeeAlso: BX=0002h,BX=0009h ———-7A—-BX000C———————– INT 7A U - Novell NetWare Low-Level API (IPX) Driver - INTERNAL
BX = 000Ch ???
Return: ??? ———-7A—-BX000D———————– INT 7A U - Novell NetWare Low-Level API (IPX) Driver - INTERNAL
BX = 000Dh ???
Return: ??? ———-7A—-BX000E———————– INT 7A U - Novell NetWare Low-Level API (IPX) Driver - INTERNAL
BX = 000Eh ???
Return: ??? ———-7A—-BX000F———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - INTERNAL - SEND PACKET
BX = 000Fh ES:SI -> Event Control Block (see BX=0003h)
Note: similar to function 0003h, but apparently does not allow multiple
fragments
SeeAlso: BX=0003h ———-7A—-BX0010———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - SPX INSTALLATION CHECK
BX = 0010h AL = 00h
Return: AL = FFh if SPX loaded SeeAlso: BX=0015h ———-7A—-BX0011———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - ESTABLISH SPX CONNECTION
BX = 0011h AL = retry count AH = watchdog flag ES:SI -> Event Control Block (see BX=0003h)
Return: DX = assigned connection number Notes: there should always be at least two SPX ECB's listening to a socket, so
that NetWare can perform its internal packet exchanges The first fragment should start with a SPX header. Fill in all destination addresses.
SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h
Format of SPX header: Offset Size Description 00h WORD checksum (high byte first [big-endian]) 02h WORD length in bytes of total packet (high byte first) 04h BYTE transport control 05h BYTE packet type 06h 10 BYTEs destination internet address 10h WORD destination socket (high byte first) 12h 10 BYTEs source internet address 1Ch WORD source socket (high byte first) 1Eh BYTE connection control 1Fh BYTE datastreamtype 20h WORD source connection ID 22h WORD destination connection ID 24h WORD sequence number 26h WORD acknowledge number 28h WORD allocation number ———-7A—-BX0012———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - LISTEN FOR SPX CONNECTION
BX = 0012h AL = retry count AH = watchdog flag ES:SI -> Event Control Block (see BX=0003h)
Notes: there should always be at least two SPX ECB's listening to a socket, so
that NetWare can perform its internal packet exchanges
SeeAlso: BX=0011h,BX=0013h,BX=0014h ———-7A—-BX0013———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - TERMINATE SPX CONNECTION
BX = 0013h DX = connection ID to terminate ES:SI -> Event Control Block (see BX=0003h)
SeeAlso: BX=0011h,BX=0012h,BX=0014h ———-7A—-BX0014———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - ABORT SPX CONNECTION
BX = 0014h DX = connection ID to terminate
Note: this function does not tell the other side that the connection has been
terminated
SeeAlso: BX=0011h,BX=0013h ———-7A—-BX0015———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - GET SPX STATUS
BX = 0015h DX = connection ID ES:SI -> status buffer (see below)
Return: AL = return code
00h connection still valid ES:SI -> status buffer filled
SeeAlso: BX=0010h
Format of status buffer: Offset Size Description 00h BYTE status 01h BYTE flag 02h WORD source connection (high byte first [big-endian]) 04h WORD destination connection (high byte first) 06h WORD sequence number (high byte first) 08h WORD acknowledge number (high byte first) 0Ah WORD allocation number (high byte first) 0Ch WORD remote acknowledge number (high byte first) 0Eh WORD remote allocation number (high byte first) 10h WORD connection socket (high byte first) 12h 6 BYTEs immediate node address 18h 10 BYTEs destination internet address 22h WORD retransmit count (high byte first) 24h WORD estimated roundtrip delay 26h WORD retransmitted packets 28h WORD suppressed packets ———-7A—-BX0016———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - SEND SPX PACKET
BX = 0016h DX = connection ID ES:SI -> Event Control Block (see BX=0003h)
Note: CX may need to be 0001h ??? SeeAlso: BX=0011h,BX=0017h ———-7A—-BX0017———————– INT 7A - Novell NetWare Low-Level API (IPX) Driver - LISTEN FOR SPX PACKET
BX = 0017h DX = connection ID ES:SI -> Event Control Block (see BX=0003h)
Note: CX may need to be 0001h ??? SeeAlso: BX=0011h,BX=0016h ———-7A—-BX0018———————– INT 7A U - Novell NetWare Low-Level API (IPX) Driver - INTERNAL
BX = 0018h ???
Return: ??? ———-7A—-BX0019———————– INT 7A U - Novell NetWare Low-Level API (IPX) Driver - INTERNAL
BX = 0019h ???
Return: ??? ———-7A—-BX001A———————– INT 7A U - Novell NetWare Low-Level API (IPX) Driver - INTERNAL
BX = 001Ah ???
Return: ??? ———-7A—-BX001B———————– INT 7A U - Novell NetWare Low-Level API (IPX) Driver - INTERNAL
BX = 001Bh ???
Return: ??? ———-7A04——————————- INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE
AH = 04h ???
Return: ??? SeeAlso: AH=06h ———-7A06——————————- INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE
AH = 06h ???
Return: ??? SeeAlso: AH=04h ———-7A09–BX8020———————– INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES
AH = 09h BX = 8020h (synchronous request) CX = 0000h DX = ID of session manager (SESSMGR) AL = service 01h get session ID 02h get session info 04h dettach from session 05h attach to session 06h get list of windows available 07h get environment of window 08h get 'PIF' (program information file) info 0Ah get base window ID 0Bh get cursor info ES:DI -> control block
Return: ??? ———-7A09–BX8020———————– INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES
AH = 09h BX = 8020h (synchronous request) CX = 0000h DX = ID of keyboard manager AL = service 01h connect to keyboard 02h disconnect from keyboard 03h read from keyboard 04h send keystroke to session 05h disable input 06h enable input 07h update status code ES:DI -> control block
Return: ??? ———-7A09–BX8020———————– INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES
AH = 09h BX = 8020h (synchronous request) CX = 00FFh DX = ID of window service controller (WSCTRL) AL = service 01h connect to WS control 02h disconnect from WS control 03h add a window 04h change window's position on screen 05h change window's size 06h change window's color 07h change window's position in the presentation space 08h hide/unhide toggle 09h enlarge/reduce toggle 0Ah change screen background color 0Bh get window's position on screen 0Ch get window's size 0Dh get window's color 0Eh get window's position in the presentation space 0Fh determine whether hidden 10h determine whether enlarged 11h get background color 12h get window names 13h delete all windows from profile 14h pick active window 15h redraw screen 16h redraw window 17h delete a window from profile 18h get active window 19h get active screen 1Ah get window data 1Bh change window data 1Ch select active screen ES:DI -> control block
Return: ??? ———-7A09–BX8020———————– INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES
AH = 09h BX = 8020h CX = 00FFh DX = ID of PCPSM AL = service 01h define presentation space 02h delete presentation space 03h display presentation space 04h position cursor in presentation space 05h change default presentation space ES:DI -> control block
Return: ??? ———-7A09–BX8020———————– INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION
AH = 09h BX = 8020h CX = 00FFh DX = ID of 3270EML AL = service 01h connect 02h disconnect ES:DI -> control block
Return: ??? ———-7A09–BX8020———————– INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA
AH = 09h BX = 8020h CX = 00FFh DX = ID of OIAM AL = service 01h read Operator Information Area 02h read OIA subset ES:DI -> control block
Return: ??? Note: the OIA is the 25th line on the Host session ———-7A09–BX8020———————– INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA
AH = 09h BX = 8020h CX = 00FFh DX = ID of XLATE AL = service 01h translate from host characters to ASCII and vice versa (determined by control block byte 11) ES:DI -> control block
Return: ??? ———-7A09–BX8020———————– INT 7A - IBM 3270 Workstation Program API - COPY SERVICE
AH = 09h BX = 8020h CX = 00FFh DX = ID of copy service AL = service 01h copy string from one presentation space to another 02h copy block from one presentation space to another 03h connect to PC session for copy 04h disconnect PC session from copy ES:DI -> control block
Return: ??? ———-7A09–BX8020———————– INT 7A - IBM 3270 Workstation Program API - Multi-DOS
AH = 09h BX = 8020h CX = 00FFh ES:DI -> control block DX = ID of INDJQRY get environment size = ID of INDJASY request DOS functions from workstation = ID of MEMORY AL = function 01h allocate memory 02h deallocate memory 03h modify allocated size
Return: ??? ———-7A09——————————- INT 7A - IBM 3270 Workstation Program API - HOST SERVICES
AH = 09h BX = request type (4000h async, 8028h synchronous) CX = 0000h DX = ID of MFIC AL = service 01h connect to host 02h disconnect from host 03h read DFT structured data from host 04h write DFT structured data to host 05h create a host buffer ES:DI -> control block
———-7A13——————————- INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE
AH = 13h ???
Return: ??? ———-7A7A——————————- INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE
AH = 7Ah ???
Return: AX = 0000h success
000Eh undefined function code
Note: this interface is normally on INT 7A but can be changed via device
driver command line arguments
———-7A81——————————- INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME
AH = 81h ES:DI -> 8-char blank-padded gate name "SESSMGR ", "KEYBOARD", "WSCTRL ", "MFIC ", "PCPSM ", "3270EML ", "COPY ", "XLATE ", "OIAM ", "MEMORY ", "INDJQRY ", or "INDJASY "
Return: DX = gate ID ———-7A83——————————- INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS
AH = 83h ???
Return: ??? ———-7AFDCB—————————– INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK
AX = FDCBh
Return: DX:AX → PCS/3270 signature block if loaded (see below)
Format of signature block: Offset Size Description 04h WORD PCS/3270 signature (5741h) 06h WORD version (0501h = PCS/3270 v1.0) ———-7AFE01—————————– INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
AX = FE01h ???
Return: ??? SeeAlso: AX=FE02h ———-7AFE02—————————– INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
AX = FE02h ???
Return: ??? SeeAlso: AX=FE01h ———-7AFF01—————————– INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
AX = FF01h ES:DI -> API function handler routine
Return: CX = 1200h SeeAlso: AX=FF02h,AX=FF03h ———-7AFF02—————————– INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION
AX = FF02h
Return: CX = 1200h SeeAlso: AX=FF01h ———-7AFF03—————————– INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
AX = FF03h ES:DI -> send/receive function handler routine
Return: CX = 1200h SeeAlso: AX=FF01h ———-7AFF04—————————– INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???
AX = FF04h ES:DI -> ???
Return: CX = 1200h ———-7B——————————— INT 7B - Btrieve API (single user)
DS:DX -> 38-byte parameter record (see below)
Return: return code field set Note: Btrieve sets low byte of vector to 33h; this serves as the installation
check
SeeAlso: INT 21/AX=3000h”Btrieve“,INT 2F/AX=AB01h,INT 7F/AX=0200h
Format of Btrieve parameter record: Offset Size Description 00h DWORD pointer to data buffer 04h WORD data buffer length 06h DWORD pointer to 90-byte record containing positioning info
(should be same for all calls for same file)
0Ah DWORD pointer to 38-byte FCB info buffer
(should be same for all calls for same file)
0Eh WORD function code (see below) 10h DWORD pointer to file name/key buffer 14h BYTE key length 15h BYTE key number 16h DWORD pointer to status code (see below) 1Ah WORD interface code (version specific) 6176h version 5.10
Values for function code: 00h open 01h close 02h insert 03h update 04h delete 05h get_equal 06h get_next 07h get_prev 08h get_greater 09h get_gr_eql 0Ah get_less 0Bh get_less_eq 0Ch get_first 0Dh get_last 0Eh create 0Fh stat 10h extend 11h set_dir: set directory information 12h get_dir: get directory information 13h begin_trans 14h end_trans 15h abort_trans 16h get_pos: get record position number 17h get_direct: get data by sending record position 18h step_next 19h stop 1Ah version 1Bh unlock 1Ch reset 1Dh set owner 1Eh clear owner 1Fh create supplemental index 20h drop supplemental index 21h step first 22h step last 23h step previous 24h get next extended: get multiple records using a filter 25h get previous extended: get multiple records using a filter 26h step next extended: get multiple records using a filter 27h step previous extended: get multiple records using a filter 28h insert extended: insert one or more records 31h ??? add 50 (32h) to any “get” operation to just return the key data add 100 (64h) for a single-record wait lock (automatically released on next
get)
add 200 (C8h) for a single-record nowait lock (nowait lock returns error 54h
or 55h if record already locked)
add 300 (12Ch) for a multiple-record wait lock (not released until unlock
called)
add 400 (190h) for a multiple-record nowait lock (nowait lock returns error
54h or 55h if record already locked)
Values for status code: 00h successful 01h invalid operation 02h I/O error 03h file not open 04h key value not found 05h duplicate key value 06h invalid key number 07h different key number 08h invalid positioning 09h end of file 0Ah modifiable key value error 0Bh invalid file name 0Ch file not found 0Dh extended file error 0Eh pre-image open error 0Fh pre-image I/O error 10h expansion error 11h close error 12h disk full 13h unrecoverable error 14h record manager inactive 15h key buffer too short 16h data buffer length overrun 17h position block length 18h page size error 19h create I/O error 1Ah number of keys 1Bh invalid key position 1Ch invalid record length 1Dh invalid key length 1Eh not a Btrieve file 1Fh file already extended 20h extended I/O error 22h invalid extension name 23h directory error 24h transaction error 25h transaction is active 26h transaction control file I/O error 27h end/abort transaction error 28h transaction max files 29h operation not allowed 2Ah incomplete accelerated access 2Bh invalid record address 2Ch null key path 2Dh inconsistent key flags 2Eh access to file denied 2Fh maximum open files 30h invalid alternate sequence definition 31h key type error 32h owner already set 33h invalid owner 34h error writing cache 35h invalid interface 36h variable page error 37h autoincrement error 38h incomplete index 39h expanded memory error 3Ah compression buffer too short 3Bh file already exists 3Ch reject count reached 3Dh work space too small 3Eh incorrect descriptor 3Fh invalid extended insert 40h filter limit reached 41h incorrect field offset 4Ah automatic transaction abort 4Eh deadlock detected 50h conflict 51h lock error 52h lost position 53h read outside transaction 54h record in use 55h file in use 56h file table full 57h handle table full 58h incompatible open mode 5Ah redirected device table full 5Bh server error 5Ch transaction table full 5Dh incompatible lock type 5Eh permission error 5Fh session no longer valid 60h communications environment error 61h data message too small 62h internal transaction error ———-7B——————————— INT 7B - Eicon Access API (3270/5250 gateways) ———-7B——————————— INT 7B U - AutoCAD ADI INTERFACE
AX = function 0000h output blank line other ???
Return: ??? Note: called by AutoCAD to perform its output SeeAlso: INT 78”AutoCAD“,INT 7A”AutoCAD“ ———-7B——————————— INT 7B - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ3 Note: this vector is overwritten when GO32 starts but is not restored SeeAlso: INT 0B,INT 10/AH=FFh”GO32“,INT 7A”GO32“,INT 7C”GO32“ ———-7C——————————— INT 7C U - IBM REXX88PC command language
???
———-7C——————————— INT 7C - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ4 Note: this vector is overwritten when GO32 starts but is not restored SeeAlso: INT 0C,INT 7B”GO32“,INT 7D”GO32“ ———-7D——————————— INT 7D - [proposed] - ALTERNATE MULTIPLEX INTERRUPT Note: this interface proposal has been moved to INT 2D; there are no known
implementations on INT 7D
SeeAlso: INT 2D, INT 2F ———-7D——————————— INT 7D U - YTERM 1.4 - CLOCK SUPPORT SeeAlso: INT 7E”YTERM“ ———-7D——————————— INT 7D - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ5 Note: this vector is overwritten when GO32 starts but is not restored SeeAlso: INT 0D,INT 7C”GO32“,INT 7E”GO32“ ———-7E——————————— INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY ———-7E——————————— INT 7E U - YTERM 1.4 - ??? SeeAlso: INT 7D”YTERM“,INT 7F”YTERM“ ———-7E——————————— INT 7E - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ6 Note: this vector is overwritten when GO32 starts but is not restored SeeAlso: INT 0E,INT 7D”GO32“,INT 7F”GO32“ ———-7F——————————— INT 7F - IBM XGA - ??? ———-7F——————————— INT 7F - Halo88 - API
BX = 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 additional parameters on stack
Return: ??? Notes: Halo88 is a suite of graphics routines
according to Stuart Kemp, the code appears to make no provisions for chaining
———-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
———-7F——————————— INT 7F - Telebit ACS SERIAL I/O
ES:SI-> parameter block
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
Format of Telebit ACS parameter block: Offset Size Description 00h BYTE 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
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 below)
Values for 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 gw_no/port already in use 15h invalid connection response 16h port invalid 17h incorrect version in server response 18h gw_no/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 used 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 ———-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/AX=DE00h.
SeeAlso: INT 21/AX=DE00h ———-7F——————————— INT 7F U - YTERM - ??? SeeAlso: INT 7E”YTERM“ ———-7F——————————— INT 7F - DJGPP GO32 DOS EXTENDER - RELOCATED IRQ7 Note: this vector is overwritten when GO32 starts but is not restored SeeAlso: INT 0F,INT 7E”GO32“ ———-7F——————————— INT 7F - Canon IXHND2 Scanner Interface ———-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
———-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
———-7F00——————————- INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
AH = 00h DS:DX -> ASCIZ semaphore name (max 64 bytes)
Return: AL = status
00h successful 01h invalid function 02h semaphore already locked 03h unable to lock semaphore 04h semaphore space exhausted 05h host/target PC did not respond (NTNX) AH = semaphore owner if status=02h
SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h ———-7F01——————————- INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
AH = 01h DS:DX -> ASCIZ semaphore name (max 64 bytes)
Return: AL = status (see AH=00h)
AH = semaphore owner if status=02h
SeeAlso: AH=00h,AH=02h,AH=41h ———-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 below)
Return: parameter control block updated
Format of parameter control block: Offset Size Description 00h 3 BYTEs signature = 'PCB' 03h BYTE function number (see below) 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 0Dh WORD maximum length of control string (IBM)
unused (Rabbit)
Values for HLLAPI function number: 00h Query system (Attachmate implementation only) 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 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 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 FFh Get info on DCA implementation
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)
Session Parameters for function 09h: 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 interruptible 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 ———-7F0105—————————– INT 7F - HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE
AX = 0105h get 8514/A entry points
Return: CF set on error
CF clear if successful CX:DX -> array of FAR pointers to entry points
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
Function numbers: (do FAR call via entry_points+4*function) 08h HOPEN 10h HINT 13h HLDPAL 15h HBBW 17h HBBR 18h HBBCHN 1Dh HQMODE 22h HCLOSE 30h HINIT 31h HSYNC 39h HSPAL 3Ah HRPAL ———-7F02——————————- INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
AH = 02h DS:DX -> ASCIZ semaphore name (max 64 bytes)
Return: AL = status
00h successful 01h invalid function 02h semaphore locked by other user AH = semaphore owner 03h unable to unlock semaphore 05h target PC did not respond
SeeAlso: AH=00h,AH=01h,AH=42h ———-7F0200—————————– INT 7F - Btrieve Multi-User - GIVE UP TIME???
AX = 0200h
SeeAlso: INT 21/AX=3000h”Btrieve“,INT 2F/AX=AB01h,INT 2F/AX=AB02h SeeAlso: INT 7B”Btrieve“ ———-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 ———-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 ———-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 ———-7F05——————————- INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
AH = 05h DX:DI -> buffer for user information record (see below)
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 user information record: Offset Size Description 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 MSDOS 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 ———-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 below)
Return: AX = status
0000h successful ES:DI buffer filled 0001h not shared drive
Format of drive info record: Offset Size Description 00h WORD segment of drive IO-REQUEST structure (MSDOS 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) ———-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)
———-7F07——————————- INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
AH = 07h
Return: ES:DI → shared drive list (see below) Note: MW386 considers all fixed disks to be shared drives; only C and D will
be returned as shared
Format of shared drive list: Offset Size Description 00h BYTE string length 01h BYTE number of shared drives 02h N BYTEs one byte per shared drive ———-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 ———-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
———-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
———-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
———-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
———-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 ———-7F0A–CL00————————- INT 7F - Alloy NTNX - GET SYSTEM FLAGS
AH = 0Ah CL = 00h ES:DI -> buffer for system flags (see below)
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 system flags: Offset Size Description 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 ———-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
———-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 successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction 0Dh unable to open
Note: may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h ———-7F10–CL01————————- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
AH = 10h CL = 01h AL = channel number
Return: AL = status
00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction 0Ah channel not open
Note: may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h ———-7F10–CL02————————- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
AH = 10h CL = 02h AL = channel number
Return: AL = status
00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction 0Ah channel not open 0Ch channel already locked
Note: may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h ———-7F10–CL03————————- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
AH = 10h CL = 03h AL = channel number
Return: AL = status (see AH=10h/CL=02h) 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 ———-7F10–CL04————————- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
AH = 10h CL = 04h AL = channel number
Return: AL = status
00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction
Notes: unlocks buffer after received datagram has been processed
may not be invoked from within a hardware interrupt handler
SeeAlso: AH=10h/CL=00h ———-7F10–CL05————————- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
AH = 10h CL = 05h
Return: AL = status
00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction
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 ———-7F10–CL06————————- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
AH = 10h CL = 06h
Return: AL = status
00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction
Note: may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h ———-7F10–CL07————————- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
AH = 10h CL = 07h
Return: AL = status
00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction
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 ———-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 successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction
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 ———-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 successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction
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 ———-7F11——————————- INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
AH = 11h DX:SI -> request block (see below)
Return: AL = 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)
Note: if wildcard channel FFh used, actual channel number will be filled in SeeAlso: AH=12h
Format of request block: Offset Size Description 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 ———-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
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
Note: also unlocks the channel, allowing the next datagram to be received SeeAlso: AH=11h,AH=15h/CL=04h ———-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
———-7F14–CL00————————- INT 7F - Alloy NTNX, MW386 - SET RECEIVE ISR
AH = 14h CL = 00h DX:DI -> application FAR receive service routine (see below)
Return: AL = status
00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction
SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
Service routine 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
———-7F14–CL01————————- INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
AH = 14h CL = 01h DX:DI -> application FAR acknowledge service routine (see below)
Return: AL = status
00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction
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=15/CL=04h
Service routine called with:
DS:SI -> acknowledge structure (see AH=15h/CL=04h)
Return: AL = response code
00h application busy, network executive should call again later 01h acknowledge accepted AH,DX,SI may be destroyed
———-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 successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction
Note: may be called from within a receive ISR or when a datagram is pending SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h ———-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 ———-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 ———-7F14–CL05————————- INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
AH = 14h CL = 05h DX:DI -> buffer for busy structure (see below)
Return: DX:DI buffer filled
Format of busy structure: Offset Size Description 00h DWORD pointer to busy flag byte 04h WORD fixed port address (FF00h) ———-7F15–CL00————————- INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
AH = 15h CL = 00h AL = channel number DX:DI -> status structure (see below)
Return: AL = status
00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction
SeeAlso: AH=15h/CL=01h
Format of status structure: Offset Size Description 00h BYTE channel status
bit 0: channel open 1: channel buffer contains received data 7: channel locked
01h BYTE sender ID ———-7F15–CL01————————- INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
AH = 15h CL = 01h DX:DI -> full-channel structure
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 full-channel structure: Offset Size Description 00h BYTE number of channel with oldest datagram 01h BYTE sender ID ———-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 ———-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 ———-7F15–CL04————————- INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
AH = 15h CL = 04h DX:DI -> status structure (see below)
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 status structure: Offset Size Description 00h BYTE sender ID 01h BYTE channel number 02h 4 BYTEs receiver status (see AH=12h) ———-7F16——————————- INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
AH = 16h DX:SI -> transfer structure (see below)
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 transfer structure: Offset Size Description 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 ———-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 below)
Note: messages or commands are ignored if disabled by the destination user SeeAlso: AH=22h
Format of control packet: Offset Size Description 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 ———-7F22——————————- INT 7F - Alloy NTNX - GET MESSAGE
AH = 22h
Return: pending messages displayed on user's screen SeeAlso: AH=21h ———-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
00h successful 01h invalid request 02h already attached 03h not attached 04h lock table full
Note: only drives on the current machine may be attached ———-7F24——————————- INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
AH = 24h CL = function 02h attach host 03h release host
Return: AX = status
00h successful 01h invalid request 02h already attached 03h not attached 04h lock table full
Note: the host processor may be attached in order to perform I/O via the host ———-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 ———-7F25–CL01————————- INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
AH = 25h CL = 01h
Return: CL = type
00h RTNX 01h ATNX 02h NTNX 03h BTNX 04h MW386 05h ANSK
SeeAlso: AH=25h/CL=00h ———-7F26–CL00————————- INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
AH = 26h CL = 00h
Return: AX = file mode bits
bit 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
Note: MW386 does not support file modes, and always returns AX=001Fh SeeAlso: AH=26h,AH=26h/CL=06h ———-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 ———-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 ———-7F30——————————- INT 7F - Alloy MW386 - GET PORT INFORMATION
AH = 30h CX = MW386 port number
Return: AL = 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 ———-7F31——————————- INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
AH = 31h ???
Return: ??? ———-7F37——————————- INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
AH = 37h
Return: ES:AX → semaphore table ———-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 ———-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 ———-7F39——————————- INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
AH = 39h AL = new terminal driver number 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 ———-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 ———-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 ———-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 ———-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 ———-7F41——————————- INT 7F - Alloy NTNX - LOCK FILE FOR USER
AH = 41h AL = user ID DS:DX -> ASCIZ filename
Return: AL = status
00h successful 01h invalid function 02h already locked 03h unable to lock 04h lock table full
Note: requests exclusive read/write access to file SeeAlso: AH=00h,,AH=41h”MW386“,AH=42h”NTNX“ ———-7F41——————————- INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
AH = 41h AL = user ID DS:DX -> ASCIZ semaphore name
Return: AL = status
00h successful 01h invalid function 02h semaphore already locked 03h unable to lock semaphore 04h semaphore space exhausted
SeeAlso: AH=00h,AH=42h”MW386“ ———-7F42——————————- INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
AH = 42h AL = user ID DS:DX -> ASCIZ filename
Return: AL = status
00h successful 01h invalid function 02h already locked 03h unable to lock 04h lock table full
SeeAlso: AH=00h,AH=41h”NTNX“,AH=42h”MW386“ ———-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“ ———-7F4E——————————- INT 7F - Alloy MW386 v2+ - SET ERROR MODE
AH = 4Eh AL = error mode flags bit 0: display critical disk errors 1: display sharing errors DX = 4E58h ("NX")
Return: AL = status
00h successful
SeeAlso: AH=4Fh ———-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
———-7F81——————————- INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
AH = 81h AL = user ID DS:DX -> ASCIZ device name
SeeAlso: AH=82h ———-7F82——————————- INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
AH = 82h AL = user ID DS:DX -> ASCIZ device name
SeeAlso: AH=81h ———-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 ———-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 ———-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 ———-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 ———-7FA4——————————- INT 7F - Alloy MW386 - VERIFY USER PASSWORD
AH = A4h DS:DX -> ASCIZ password (null-padded to 16 bytes)
Return: AL = 00h if accepted
else invalid password
———-7FA5——————————- INT 7F - Alloy MW386 - GET/SET USER STATUS
AH = A5h AL = function 00h get status Return: 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 01h set status BX = user flags (see above) 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 ———-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 ———-7FB1——————————- INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
AH = B1h 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 ———-7FB2——————————- INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
AH = B2h AL = (bits 7-5) 001 (bits 4-0) user ID
SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h ———-7FB3——————————- INT 7F - Alloy NTNX - RELEASE FILES FOR USER
AH = B3h AL = (bits 7-5) 010 (bits 4-0) user ID
SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h ———-7FB4——————————- INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
AH = B4h AL = user ID
SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h ———-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 ———-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
———-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 ———-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 ———-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 ———-7FCF——————————- INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
AH = CFh DS:DX -> ASCIZ string containing user number to be reset
SeeAlso: AH=D6h ———-7FD6——————————- INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
AH = D6h DS:DX -> reset packet (see below)
Return: never if succesful Note: all users will be shut down immediately if successful SeeAlso: AH=CFh
Format of reset packet: Offset Size Description 00h DWORD reset code (60606060h) 04h 16 BYTEs ASCIZ supervisor password padded with nulls ———-7FD7——————————- INT 7F - Alloy MW386 - POST EVENT
AH = D7h AL = user number (if local event) DX = event number
———-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 ———-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) ———-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 ———-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 ———-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 ———-7FE3——————————- INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
AH = E3h
—v1.x—
AL = user number
—v2+—
BH = user number BL = task number
—
DS:DX -> ASCIZ task name
Return: CF set on error (invalid process number) SeeAlso: AH=E0h,AH=E4h,AH=E5h ———-7FE4——————————- INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
AH = E4h
—v1.x—
AL = user number
—v2+—
BH = user number BL = task number
—
ES:DI -> buffer for task name
Return: CF clear if successful
CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K) DX = task flags bit 7: MSDOS process ES:DI buffer filled CF set on error (invalid process number)
SeeAlso: AH=E3h,AH=E5h ———-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 ———-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 ———-7FE7——————————- INT 7F - Alloy MW386 - REMOVE DOS TASK
AH = E7h AL = DOS process number
Return: CF set on error (invalid process number or first process) Note: can only be called by a foreground task SeeAlso: AH=E0h ———-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 21/AH=EEh”DoubleDOS“,INT 2F/AX=1680h ———-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 ———-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 ———-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 ———-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 ———-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 ———-7FF9——————————- INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
AH = F9h AL = group number DL = user number DH = machine number (currently 00h)
Return: CF set if failed SeeAlso: AH=F8h,AH=FAh ———-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 ———-7FFB——————————- INT 7F - Alloy MW386 - ASSIGN GROUP NAME
AH = FBh CL = group number ES:DI -> ASCIZ group name (max 17 bytes)
SeeAlso: AH=FCh ———-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 - ??? ———-80——————————— INT 80 - reserved for BASIC ———-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,INT 2F/AX=FBFBh ———-80—-BX0001———————– INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
BX = 0001h DX:AX -> music status byte
SeeAlso: BX=0000h,BX=0002h,BX=0003h ———-80—-BX0002———————– INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
BX = 0002h CX = number of instruments DX:AX -> instrument table
SeeAlso: BX=0000h,BX=0001h,BX=0005h ———-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,BX=0001h,BX=0004h ———-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,BX=0003h ———-80—-BX0005———————– INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
BX = 0005h AX = semi-tone offset
SeeAlso: BX=0000h,BX=0002h,BX=0006h ———-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,BX=0007h,BX=000Ah ———-80—-BX0007———————– INT 80 - SoundBlaster SBFM driver - STOP MUSIC
BX = 0007h
Return: AX = status
0000h successful 0001h music not active
SeeAlso: BX=0000h,BX=0006h,BX=0009h ———-80—-BX0008———————– INT 80 - SoundBlaster SBFM driver - RESET DRIVER
BX = 0008h
Return: AX = status
0000h successful 0001h music is active
SeeAlso: BX=0000h ———-80—-BX0009———————– INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
BX = 0009h
Return: AX = status
0000h successful 0001h no music active
SeeAlso: BX=0000h,BX=0007h,BX=000Ah ———-80—-BX000A———————– INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
BX = 000Ah
Return: AX = status
0000h successful 0001h no music paused
SeeAlso: BX=0000h,BX=0006h,BX=0009h ———-80—-BX000B———————– INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
BX = 000Bh DX:AX -> trap routine
SeeAlso: BX=0000h ———-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
———-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 ———-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 ———-8004——————————- INT 80 - QPC Software PKTINT.COM - ENABLE???
AH = 04h BX = ???
Return: ??? ———-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 ———-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 ———-81——————————— INT 81 - reserved for BASIC ———-81——————————— INT 81 - IBM TOKEN RING ADAPTER - ??? ———-82——————————— INT 82 - reserved for BASIC ———-82——————————— INT 82 - IBM TOKEN RING ADAPTER - ???
AH = function 00h display message??? DS:BX -> string ???
Return: ??? ———-83——————————— INT 83 - reserved for BASIC ———-84——————————— INT 84 - reserved for BASIC ———-85——————————— INT 85 - reserved for BASIC ———-86——————————— INT 86 - NetBIOS - ORIGINAL INT 18 Note: some implementations of NetBIOS reportedly relocate INT 18 here SeeAlso: INT 18 ———-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
———-86——————————— INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS ———-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
———-87——————————— INT 87 - APL*PLUS/PC - ???? ———-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
———-88—-AL00————————- 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 below)
Return: ES:DI → first data byte of object
DX:CX = number of elements in the object
SeeAlso: INT C8”APL“
Format of shape model: Offset Size Description 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 WORD/DWORD first dimension of shape N WORD/DWORD second dimension of shape
...
———-88—-AL01————————- 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“ ———-88—-AL02————————- 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“ ———-88—-AL08————————- 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“ ———-88—-ALF5————————- INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
AL = F5h BX = STPTR of object
SeeAlso: INT C8”APL“ ———-88—-ALF6————————- INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
AL = F6h BX = STPTR of object
SeeAlso: AL=F7h,AL=F8h,INT C8”APL“ ———-88—-ALF7————————- INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
AL = F7h BX = STPTR of object
SeeAlso: AL=F6h,AL=F8h,INT C8”APL“ ———-88—-ALF8————————- INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
AL = F8h BX = STPTR of object
Return: BX = 0000h eligible
0001h not eligible
SeeAlso: AL=F6h,AL=F7h,INT C8”APL“ ———-88—-ALF9————————- 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“ ———-88—-ALFC————————- 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“ ———-88—-ALFD————————- 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“ ———-88—-ALFE————————- 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“ ———-88—-ALFF————————- 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“ ———-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
———-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
———-8A——————————— INT 8A - APL*PLUS/PC - PRINT SCREEN Note: same as INT 05 SeeAlso: INT 05,INT 8C”APL“,INT CA”APL“ ———-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
———-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“ ———-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
———-8C——————————— INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY
AX = flag 0000h do not save display attributes 0001h save attributes
SeeAlso: INT CC”APL“ ———-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
———-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
———-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
———-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
———-90——————————— INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER ———-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
———-91——————————— INT 91 - IBM TOKEN RING ADAPTER - ??? ———-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
———-92——————————— INT 92 - Sangoma X.25 INTERFACE PROGRAM
BX:DX -> control block
SeeAlso: INT 68”Sangoma“ ———-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
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"
Note: preserves BP, DS, SI, DI; other registers may be destroyed ———-92E100BX000A———————– INT 92 - Da Vinci eMail Dispatcher - “NetInitStart”
AX = E100h BX = 000Ah CX:DX -> parameter block (see below)
Return: AX = 0001h success Note: this function is used to initialize the dispatcher SeeAlso: AX=E101h,AX=E103h
Format of parameter block: Offset Size Description 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 ??? ———-92E101BX0000———————– INT 92 - Da Vinci eMail Dispatcher - “NetInitCheck”
AX = E101h BX = 0000h CX:DX ignored
Return: AX = 0001h success SeeAlso: AX=E100h ———-92E102BX0000———————– INT 92 - Da Vinci eMail Dispatcher - “NetCheckDriver”
AX = E102h BX = 0000h CX:DX ignored
Return: AX = 0001h success Note: this function is used to determine if the dispatcher is loaded SeeAlso: AX=E10Bh,AX=E180h ———-92E103BX0000———————– INT 92 - Da Vinci eMail Dispatcher - “NetTerminate”
AX = E103h BX = 0000h CX:DX ignored
Return: AX = status (see AH=E1h) SeeAlso: AX=E100h ———-92E104BX0006———————– INT 92 - Da Vinci eMail Dispatcher - “NetWhereIs”
AX = E104h BX = 0006h CX:DX -> parameter block (see below)
Return: AX = status (see AH=E1h) Note: this function is used to verify node address for usernames
Format of parameter block: Offset Size Description 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” ———-92E105BX0007———————– INT 92 - Da Vinci eMail Dispatcher - “NetOpen”
AX = E105h BX = 0007h CX:DX -> parameter block (see below)
Return: AX = 0000h Error
AX = handle
Note: this function is used to open a submission channel SeeAlso: AX=E10Ah
Format of parameter block: Offset Size Description 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 ———-92E106BX0004———————– INT 92 - Da Vinci eMail Dispatcher - “NetRead”
AX = E106h BX = 0004h CX:DX -> parameter block
Return: AX = 0001h SeeAlso: AX=E108h ———-92E107BX0002———————– INT 92 - Da Vinci eMail Dispatcher - “NetGetError”
AX = E107h BX = 0002h CX:DX -> parameter block
Return: AX = 0001h ———-92E108BX0004———————– INT 92 - Da Vinci eMail Dispatcher - “NetWrite”
AX = E108h BX = 0004h CX:DX -> parameter block (see below)
Return: AX = amount written Note: 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 parameter block: Offset Size Description 00h WORD buffer count 02h WORD segment of command buffer 04h WORD offset of command buffer 06h WORD handle from NetOpen
Format of command buffer: Offset Size Description 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 message header buffer: Offset Size Description 00h 30 BYTEs subject line 1Eh 24 BYTEs To 36h 24 BYTEs From 4Eh DWORD Time
BYTE 0 BYTE hour BYTE minute BYTE second
52h DWORD Date
BYTE 0 BYTE year BYTE month BYTE day
56h DWORD serial number (0L) 5Ah WORD mail types
bit 7 blind carbon copy bit 6 carbon copy bit 5 priority bit 4 confidential bit 3 certified bit 2 bulk bits 1-0 class (first, second, third, bulk)
5Ch WORD special types (0) ———-92E109BX0001———————– INT 92 - Da Vinci eMail Dispatcher - “NetErrorFix” (UNUSED)
AX = E109h BX = 0001h CX:DX -> ???
Return: AX = FF97h (ERS_NOT_AVAILABLE) ———-92E10ABX0001———————– INT 92 - Da Vinci eMail Dispatcher - “NetClose”
AX = E10Ah BX = 0001h CX:DX -> parameter block (see below)
Return: AX = 0001h Note: this function is used to close a dispatcher handle SeeAlso: AX=E105h
Format of parameter block: Offset Size Description 00h WORD handle from NetOpen ———-92E10BBX0004———————– INT 92 - Da Vinci eMail Dispatcher - “NetCheckQueue”
AX = E10Bh BX = 0004h CX:DX -> parameter block (see below)
Return: AX = 0001h SeeAlso: AX=E102h,AX=E10Ch
Format of parameter block: Offset Size Description 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 ———-92E10CBX0002———————– INT 92 - Da Vinci eMail Dispatcher - “NetReadQueue”
AX = E10Ch BX = 0002h CX:DX -> parameter block (see below)
Return: AX = 0001h SeeAlso: AX=E10Bh
Format of parameter block: Offset Size Description 00h WORD Segment of 128 byte node address buffer 02h WORD Offset of 128 byte node address buffer ———-92E10DBX0006———————– INT 92 - Da Vinci eMail Dispatcher - “NetSubmitName”
AX = E10Dh BX = 0006h CX:DX -> parameter block (see below)
Return: AX = status (see AH=E1h) Note: this function is used to verify username/password SeeAlso: AX=E10Eh
Format of parameter block: Offset Size Description 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” ———-92E10EBX0004———————– INT 92 - Da Vinci eMail Dispatcher - “NetRemoveName”
AX = E10Eh BX = 0004h CX:DX -> parameter block (see below)
Return: AX = 0001h Note: this function is used to remove a username SeeAlso: AX=E10Dh
Format of parameter block: Offset Type Description 00h WORD segment of uppercase username 02h WORD offset of uppercase username 04h WORD segment of “DVSEMAIL” 06h WORD offset of “DVSEMAIL” ———-92E10FBX0000———————– INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY
AX = E10Fh BX = 0000h CX:DX ignored
Return: AX = 0001h ———-92E110BX0006———————– INT 92 - Da Vinci eMail Dispatcher - “NetGetAltRoute”
AX = E110h BX = 0006h CX:DX -> ???
Return: AX = 0001h SeeAlso: AX=E111h,AX=E113h ———-92E111BX0004———————– INT 92 - Da Vinci eMail Dispatcher - “NetDeleteAltRoutes”
AX = E111h BX = 0004h CX:DX -> ???
Return: AX = 0001h SeeAlso: AX=E110h,AX=E113h ———-92E112BX0008———————– INT 92 - Da Vinci eMail Dispatcher - “NetChangePassword”
AX = E112h BX = 0008h CX:DX -> ???
Return: AX = 0001h ———-92E113BX0008———————– INT 92 - Da Vinci eMail Dispatcher - “NetSetAltRoute”
AX = E113h BX = 0008h CX:DX -> ???
Return: AX = 0001h SeeAlso: AX=E110h,AX=E111h ———-92E175—————————– INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR
AX = E175h
Return: AX = 0012h
BX = PSP
———-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 ———-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
———-93——————————— INT 93 - IBM TOKEN RING ADAPTER - ??? ———-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
———-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
———-95——————————— INT 95 - APL*PLUS/PC - DETERMINE R= SPACE Note: use only when the R= option is invoked on entering APL ———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-A0——————————— INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE SeeAlso: INT 59 ———-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
———-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
———-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
———-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
———-A4——————————— INT A4 U - Right Hand Man API
function number in AH
Note: Right-Hand Man is a TSR desk-top utility, and only hooks this interrupt
while popped up
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
Return: AX destroyed Notes: 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) ZIPKEY is a resident ZIPCODE database by Eric Isaacson
———-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 ———-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 ———-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 ———-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
———-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 ———-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 ———-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
———-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 ———-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 ———-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 ———-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 FFh if none CX:DX = internal code identifying last city search AX destroyed
SeeAlso: AH=7Ch ———-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 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 ———-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 = FDh already busy with another request = FEh illegal function CF clear if successful AX destroyed window popped up and was closed by the user
———-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
———-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
———-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
———-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
———-B4——————————— INT B4 - STACKMAN - REQUEST NEW STACK Return: SS:SP → new stack 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“ ———-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
———-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“ ———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-BE——————————— INT BE - DESQview/X - ??? Note: points at an IRET SeeAlso: INT 15/AX=BFDEh/BX=0006h,INT 63”DESQview“ ———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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“ ———-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
———-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“ ———-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
———-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“ ———-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
———-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“ ———-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
———-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“ ———-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
———-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“ ———-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
———-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“ ———-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
———-CD——————————— INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES ———-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
———-CE——————————— INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES ———-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
———-CF——————————— INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION SeeAlso: INT E0”APL“ ———-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
———-D0——————————— INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR Notes: NJFRERAM is a resident free-memory display utility by Mike “Nifty
James" Blaszczak if NJFRERAM is installed, this vector points at the signature "NJ"
———-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
———-D1——————————— INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES ———-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
———-D2——————————— INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES ———-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
———-D3——————————— INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES ———-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
———-D4——————————— INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES ———-D4——————————— INT D4 - PC-MOS/386 - API ———-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
———-D5——————————— INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES ———-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
———-D6——————————— INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES ———-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
———-D7——————————— INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES ———-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
———-D8——————————— INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES ———-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
———-D9——————————— INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES ———-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
———-DA——————————— INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES ———-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
———-DB——————————— INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES ———-DC——————————— INT DC - PC/370 v4.1- - API SeeAlso: INT 60”PC/370” ———-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
———-DC——————————— INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES ———-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
———-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 ———-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
———-DE——————————— INT DE - APL*PLUS/PC - ??? Note: appears to be the same as INT 16 ———-DF——————————— INT DF - Victor 9000 - SuperBIOS ———-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
———-DF——————————— INT DF - APL*PLUS/PC - SAME AS INT 10 SeeAlso: INT 10 ———-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
———-E0——————————— INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION SeeAlso: INT CF“APL” ———-E0——————————— INT E0 - VIRUS - “Micro-128” - ??? Note: Micro-128 also overwrites the upper half of the interrupt table SeeAlso: INT 70“VIRUS” ———-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 Note: several functions are covered in more detail in following entries SeeAlso: INT 21/AX=4459h
Values for function number: 00h terminate calling process (see also INT 21/AH=00h) 02h write character to default console (see also INT 21/AH=02h) 03h read character from default AUX (see also INT 21/AH=03h) 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) 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 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 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 30h flush write-deferred buffers 32h call BIOS character routine 33h set DMA address segment 34h get DMA buffer address 35h CP/M-86 allocate maximum memory 36h allocate maximum memory segment absolute 37h CP/M-86 allocate memory segment (see also INT 21/AH=48h) 38h allocate memory segment absolute 39h CP/M-86 free specified memory segment (see also INT 21/AH=49h) 3Ah CP/M-86 free all memory 3Bh load .CMD file into memory 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 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 8Fh terminate calling process 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 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 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
DR Multiuser DOS Error Return Codes: 00h no error 01h system call not implmented 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 ———-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 ———-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 ———-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
SeeAlso: INT E0/CL=03h,INT E0/CL=08h ———-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
SeeAlso: INT E0/CL=04h,INT E0/CL=07h ———-E0—-CL59————————- INT E0 - ConcCP/M,DR Multiuser DOS - “S_MEMORY” - RESERVE MEMORY IN GLOBAL AREA
CL = 59h DX = size in bytes
Return: AX = FFFFh if failed
AX = other if successful ES:BX -> reserved memory
———-E0—-CL86————————- INT E0 - ConcCP/M,DR Multiuser DOS - “Q_MAKE” - CREATE MESSAGE QUEUE
CL = 86h DS:DX -> queue descriptor (see below)
Return: AX = status
0000h success FFFFh failure CX = error code
SeeAlso: INT E0/CL=87h
Format of queue descriptor: Offset Size Description 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 ———-E0—-CL87————————- INT E0 - ConcCP/M,DR Multiuser DOS - “Q_OPEN” - OPEN MESSAGE QUEUE
CL = 87h DS:DX -> queue parameter block (see below)
Return: AX = status
0000h success FFFFh failure CX = error code
SeeAlso: INT E0/CL=86h,INT E0/CL=89h
Format of queue parameter block: Offset Size Description 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 ———-E0—-CL89————————- INT E0 - ConcCP/M,DR Multiuser DOS - “Q_READ” - READ MESSAGE QUEUE
CL = 89h DS:DX -> queue parameter block (see INT E0/CL=87h)
Return: AX = status
0000h success FFFFh failure CX = error code
SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh ———-E0—-CL8A————————- INT E0 - ConcCP/M,DR Multiuser DOS - “Q_CREAD” - CONDITIONALLY READ MSG QUEUE
CL = 8Ah DS:DX -> queue parameter block (see INT E0/CL=87h)
Return: AX = status
0000h success FFFFh failure CX = error code
SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch ———-E0—-CL8B————————- INT E0 - ConcCP/M,DR Multiuser DOS - “Q_WRITE” - WRITE MESSAGE QUEUE
CL = 8Bh DS:DX -> queue parameter block (see INT E0/CL=87h)
Return: AX = status
0000h success FFFFh failure CX = error code
SeeAlso: INT E0/CL=89h,INT E0/CL=8Ch ———-E0—-CL8B————————- INT E0 - ConcCP/M,DR Multiuser DOS - “Q_CWRITE” - CONDITIONALLY WRITE MSG QUEUE
CL = 8Bh DS:DX -> queue parameter block (see INT E0/CL=87h)
Return: AX = status
0000h success FFFFh failure CX = error code
SeeAlso: INT E0/CL=8Ah,INT E0/CL=8Bh ———-E0—-CL8E————————- INT E0 - ConcCP/M,DR Multiuser DOS - “P_DISPATCH” - CALL DISPATCHER
CL = 8Eh DX = FFFFh (optional) to force dispatch
Return: nothing Note: if DX=FFFFh, a dispatch is forced even if no other process is ready SeeAlso: INT E0/CL=91h ———-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 ———-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
———-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 ———-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=A5h,INT E0/CL=A7h ———-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 ———-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
SeeAlso: INT E0/CL=A5h,INT E0/CL=A9h ———-E0—-CLA9————————- INT E0 - DR Multiuser DOS - “A_GET” - GET DEFAULT AUX DEVICE NUMBER
CL = A9h
Return: AL = current default auxiliary device number SeeAlso: INT E0/CL=A8h ———-E0—-CLAC————————- INT E0 - DR Multiuser DOS - “A_READBLK” - READ STRING FROM AUX DEVICE
CL = ACh DS:DX -> character control block (CHCB) (see below)
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 character control block (CHCB): Offset Size Description 00h DWORD pointer to character buffer 04h WORD length of character buffer ———-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 ———-E0—-CLB0————————- INT E0 - DR Multiuser DOS - “A_CONFIG” - GET/SET AUX DEVICE PARAMETERS
CL = B0h DX:DX -> AUX device parameter block (see below)
Return: AX = status
0000h successful parameter block updated FFFFh failed CX = error code
SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
Format of AUX device parameter block: Offset Size Description 00h BYTE function (00h get, 01h set) 01h BYTE baud rate (see below) FFh = don't change/unknown 02h BYTE parity 00h none
01h odd 02h none 03h even 04h stick parity bit FFh don't change/unknown
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
Values for 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 ———-E0—-CLB1————————- INT E0 - DR Multiuser DOS - “A_CONTROL” - GET/SET AUX CONTROL PARAMETERS
CL = B1h DS:DX -> AUX device control block (see below)
Return: AX = status
0000h successful control block updated FFFFh failed CX = error code
SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h
Format of AUX device control block: Offset Size Description 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) ———-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 ———-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
———-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
———-E1——————————— INT E1 - PC Cluster Disk Server Information SeeAlso: INT E2 ———-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
———-E2——————————— INT E2 - PC Cluster Program ———-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
———-E40005—————————– INT E4 - Logitech Modula v2.0 - MonitorEntry
AX = 0005h BX = priority
SeeAlso: AX=0006h ———-E40006—————————– INT E4 - Logitech Modula v2.0 - MonitorExit
AX = 0006h
SeeAlso: AX=0005h ———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-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
———-EC——————————— INT EC - used by Alloy NTNX ———-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 Notes: 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 MSDOS. the interrupt handler removes the return address and flags placed on the stack by the INT EC, then jumps to the appropriate function
———-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
———-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
———-EF——————————— INT EF - BASIC - ORIGINAL INT 09 VECTOR Note: BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT F0“BASIC” ———-EF—-CX0473———————– INT EF - GEM - INTERFACE
CX = 0473h DS:DX -> GEM parameter block
———-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 ———-F1——————————— INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
DS:BX -> '$'-terminated text string
Note: SPEECH.COM is a resident text-to-speech converter by Douglas Sisco ———-F1——————————— INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM SeeAlso: INT F2“SPEECH” ———-F1——————————— INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS Return: AX:BX → data area Notes: AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1
and COM2 in software 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
———-F2——————————— INT F2 - reserved for user interrupt ———-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 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 ???
Return: ??? Note: ImageCapture is a product of International Computers SeeAlso: INT F3“ICCTSR” ———-F3——————————— INT F3 - reserved for user interrupt ———-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 Note: ImageCapture is a product of International Computers SeeAlso: INT F2“ICCTSR” ———-F4——————————— INT F4 - reserved for user interrupt ———-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 ———-F5——————————— INT F5 - DoubleDOS - ??? ———-F6——————————— INT F6 - reserved for user interrupt ———-F6——————————— INT F6 - DoubleDOS - ??? ———-F7——————————— INT F7 - reserved for user interrupt ———-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 - TANDY??? - 100 HZ INTERRUPT SeeAlso: INT FA“USART” ———-F8——————————— INT F8 - DoubleDOS - ??? ———-F9——————————— INT F9 - reserved for user interrupt ———-F9——————————— INT F9 - DoubleDOS - ??? ———-FA——————————— INT FA - TANDY??? - SERIAL PORT USART INTERRUPT SeeAlso: INT F8“100 HZ”,INT FB“USART” ———-FA——————————— INT FA - DoubleDOS - TURN OFF TIMESHARING SeeAlso: INT 21/AH=EAh“DoubleDOS”,INT FB“DoubleDOS” ———-FB——————————— INT FB - TANDY??? - KEYBOARD USART RECEIVE INTERRUPT SeeAlso: INT FA“USART” ———-FB——————————— INT FB - DoubleDOS - TURN ON TIMESHARING SeeAlso: INT 21/AH=EBh“DoubleDOS”,INT FA“DoubleDOS” ———-FC——————————— INT FC - reserved for user interrupt ———-FC——————————— INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS Return: ES = segment of display buffer 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 ———-FD——————————— INT FD - DoubleDOS - ??? ———-FE——————————— INT FE - AT/XT286/PS50+ - destroyed by return from protected mode SeeAlso: INT FF“XT286” ———-FE——————————— INT FE - DoubleDOS - GIVE UP TIME
AL = number of 55ms time slices to give away
SeeAlso: INT 21/AH=EEh“DoubleDOS”,INT F4“DoubleDOS” ———-FE——————————— INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER SeeAlso: INT 3F ———-FF——————————— INT FF - AT/XT286/PS50+ - destroyed by return from protected mode SeeAlso: INT FE“XT286” ———-FF——————————— INT FF - Z100 - WARM BOOT SeeAlso: INT 40“Z100”