You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

9968 lines
346 KiB

Interrupt List, part 13 of 18
Copyright (c) 1989-1999,2000 Ralf Brown
--------N-2F7A00-----------------------------
INT 2F - Novell NetWare - LOW-LEVEL API (IPX) INSTALLATION CHECK
AX = 7A00h
Return: AL = status
00h not installed
FFh installed
ES:DI -> FAR entry point for routines accessed exclusively
through INT 7A in NetWare versions through 2.0a.
Call with same values as INT 7A
ES:BX -> two bytes containing IPX major/minor version
(IPXODI v2.12; BX unchanged by older IPX drivers)
CX = ES ???
SeeAlso: AX=7AFFh/BX=0000h,AX=D800h,INT 64"Novell",INT 7A"LOW-LEVEL API"
--------N-2F7A10-----------------------------
INT 2F U - Novell NetWare - TBMI v1.1+ - GET TBMI STATUS
AX = 7A10h
Return: DH = major TBMI version number
DL = minor TBMI version number (01h for v1.1)
CX = segment address of TBMI resident part
BX = status word of TBMI (see #02857)
Note: TBMI is the Task-Switched Buffer Manager Interface
SeeAlso: AX=7A11h,AX=7A12h,AX=7A13h,AX=7A14h
Bitfields for NetWare TBMI status word:
Bit(s) Description (Table 02857)
0 INT2F intercepted by TBMI
1 INT7A intercepted by TBMI
2 INT64 intercepted by TBMI
3-14 reserved or unused ???
15 outstanding task ID was detected
--------N-2F7A11-----------------------------
INT 2F U - Novell NetWare - TBMI v1.1+ - GET INT2F HANDLERS
AX = 7A11h
Return: ES:BX -> old INT 2F handler
DS:DX -> TBMI INT 2F handler
SeeAlso: AX=7A10h,AX=7A12h,AX=7A13h,AX=7A1Ah
--------N-2F7A12-----------------------------
INT 2F U - Novell NetWare - TBMI v1.1+ - GET INT64 HANDLERS
AX = 7A12h
Return: ES:BX -> old INT 64 handler
DS:DX -> TBMI INT 64 handler
SeeAlso: AX=7A10h,AX=7A11h,AX=7A13h
--------N-2F7A13-----------------------------
INT 2F U - Novell NetWare - TBMI v1.1+ - GET INT7A HANDLERS
AX = 7A13h
Return: ES:BX -> old INT 7A handler
DS:DX -> TBMI INT 7A handler
SeeAlso: AX=7A10h,AX=7A11h,AX=7A12h
--------N-2F7A14-----------------------------
INT 2F U - Novell NetWare - TBMI v1.1+ - GET STATISTICS
AX = 7A14h
CX = statistic to retrieve
0000h available diagnostic functions???
Return: CX = maximum available function??? (000Ch for v2.0)
0001h buffers in use
Return: CX = TBMI buffers currently in use
0002h maximum buffers used
Return: CX = maximum number of buffers ever in use
0003h unavailable buffers
Return: CX = count of unavailable TBMI buffers
0004h old interrupt usage
Return: CX = TBMI accesses to intercepted old vectors INT 2F,
INT 64, and INT 7A
0005h far call usage
Return: CX = TBMI accesses to IPX/SPX far call handler (not
including internal accesses)
0006h task buffering
Return: CX = TBMI task buffering status (enabled/disabled or
disable/enable switch count???)
0007h current task ID
Return: CX = TBMI current task ID number (0000h if ???)
0008h outstanding ID count
Return: CX = number of outstanding TBMI IDs
0009h configured ECBs
Return: CX = number of TBMI Event Control Blocks configured
000Ah configured data ECBs
Return: CX = number of TBMI data ECBs configured
000Bh configured sockets
Return: CX = number of TBMI sockets configured (from NETCFG)
000Ch current sockets
Return: CX = number of TBMI sockets currently in use
Return: BX = maximum supported subfunction (000Ch)
SeeAlso: AX=7A10h
--------N-2F7A15-----------------------------
INT 2F OU - Novell NetWare - TBMI v1.1 only - RESET ???
AX = 7A15h
Return: BX = new value of ???
Desc: set ??? to its default value
Note: this call is a NOP under TBMI v2.0 (TBMI2)
SeeAlso: AX=7A17h
--------N-2F7A16-----------------------------
INT 2F OU - Novell NetWare - TBMI v1.1 only - ???
AX = 7A16h
CX = ???
???
Return: ???
Note: this call is a NOP under TBMI v2.0 (TBMI2)
--------N-2F7A17-----------------------------
INT 2F OU - Novell NetWare - TBMI v1.1 only - ???
AX = 7A17h
???
Return: BX = old value of ???
CX = new value of ???
Note: this call is a NOP under TBMI v2.0 (TBMI2)
SeeAlso: AX=7A15h
--------N-2F7A18-----------------------------
INT 2F U - Novell NetWare - TASKID v1.0 - INSTALLATION CHECK
AX = 7A18h
Return: AL = FFh if installed
BX = configuration flags (see #02858)
CX = resident code segment
SeeAlso: AX=7A10h
Bitfields for NetWare TASKID configuration flags:
Bit(s) Description (Table 02858)
0 INT 2F hooked
3 INT 08 hooked
other unused
--------N-2F7A19-----------------------------
INT 2F U - Novell NetWare - TASKID v1.0 - GET INT 08 HANDLERS
AX = 7A19h
Return: AL = FFh
DS:DX -> TASKID INT 08 handler
ES:BX -> original INT 08 handler
--------N-2F7A1A-----------------------------
INT 2F U - Novell NetWare - TASKID v1.0 - GET INT 2F HANDLERS
AX = 7A1Ah
Return: AL = FFh
DX:DX -> TASKID INT 2F handler
ES:BX -> original INT 2F handler
SeeAlso: AX=7A11h,AX=7A19h
--------N-2F7A1B-----------------------------
INT 2F U - Novell NetWare - TASKID v1.0 - GET DIAGNOSTICS INFORMATION
AX = 7A1Bh
CX = desired information
0000h supported functions
0001h TASKID ID number
Return: CX = ID number
0002h set-ID count
Return: CX = ID set count
Return: AL = FFh
BX = highest supported subfunction number (0002h)
SeeAlso: AX=7A14h,AX=7A18h
--------N-2F7A1C-----------------------------
INT 2F U - Novell NetWare - TBMI v1.1+ - ???
AX = 7A1Ch
BP = ???
CX:DX = ???
Return: AX = 70FFh
--------N-2F7A1D-----------------------------
INT 2F U - Novell NetWare - TBMI v1.1+ - ???
AX = 7A1Dh
???
Return: ES = ???
???
SI destroyed
--------N-2F7A1E-----------------------------
INT 2F U - Novell NetWare - TBMI v1.1+ - ???
AX = 7A1Eh
ES:SI -> ???
???
Return: ???
--------N-2F7A20BX0000-----------------------
INT 2F - Novell NetWare - Adv NetWare 4.0 DOS Requester - GET VLM CALL ADDRESS
AX = 7A20h
BX = 0000h
Return: AX = 0000h on success (installed)
ES:BX -> far call address for DOS Requester (see #02859)
Notes: the DOS Requester replaces the NetWare Shell (ANETx, NETx) on
NetWare LAN's as of the release of Advanced NetWare 4.0 (1993). It
is backward compatible with NetWare 2.1x through 3.11 servers as
well. Note that there was a NetWare 4.0 in the early 1980's, which
can cause confusion.
this call is used as the installation check by VLM.EXE, which is the
loader for all the modules of the DOS Requester
.VLMs are standard old .EXE format executables whose normal entry point
merely terminates to prevent loading from the command line (Novell's
VLMs all return errorlevel 6). The real entry point is found by
looking at the VLM header at the beginning of the load image
(see #02862)
Index: installation check;NetWare 4.0 DOS Requester
SeeAlso: AX=7A20h/BX=0001h,AX=7A20h/BX=0002h
(Table 02859)
Call DOS Requester entry point with:
STACK: WORD destination function
WORD destination VLM ID (see #02861)
WORD source VLM ID (0000h = application program)
other registers (except BP) as appropriate for function
Return: AX = status code (0000h,8811h,8846h,8848h,8853h) (see #02860)
ZF set if successful, clear on error
other registers as appropriate for function
STACK popped
BP destroyed
(Table 02860)
Values for VLM status code:
0000h successful
88xxh error generated by requester
8801h invalid or non-attached connection handle
8802h drive in use (OS/2 only)
8803h cannot add CDS
8804h bad path
8805h error sending or receiving NCP packets
8806h unknown network error
8807h invalid server connection slot
8808h no connection slots available
880Ah no route to server
880Bh "BAD_LOCAL_TARGET" (OS/2 only)
880Ch too many request fragments
880Dh "CONNECT_LIST_OVERFLOW" (OS/2 only)
880Eh buffer overflow on receive
880Fh no connection to server
8810h no router found (OS/2 only)
8811h nonexistent function called
8830h internal server request attempted between two separate connections
8831h no primary connection set
8833h invalid buffer length
8834h invalid user name
8835h no local print spooler installed
8836h attempted function with invalid parameter
8837h failed to open configuration file (OS/2 only)
8838h no configuration file (OS/2 only)
8839h configuration file read failed (OS/2 only)
883Ah line too long in configuration file (OS/2 only)
883Bh configuration lines ignored (OS/2 only)
883Ch foreign resource
883Dh daemon already installed (OS/2 only)
883Eh print spooler already installed
883Fh local connection table already full
8840h configuration section not found (OS/2 only)
8841h invalid transport type
8842h TDS tag in use (OS/2 only)
8843h TDS out of memory (OS/2 only)
8844h called TDS function with invalid tag
8845h TDS write was truncated
8846h called partially asynchronous function while it was busy
8847h unable to find any responding servers
8848h non-loaded or nonexistent VLM called
8849h network drive already mapped
884Ah attempted map to local drive which was already in use
884Bh no more drives available for mapping
884Ch device is not redirected
884Dh no more SFT entries (too many handles)
884Eh unable to unload
884Fh connection entry was already in use
8850h too many reply fragments
8851h name table already full
8852h socket not open
8853h memory management error
8854h SFT III switch occurred in mid-transfer
8855h preferred server was not found (alternate returned)
8856h device not recognized
8857h bad network byte
88A0h memory allocation error
88A1h connection timeout failure
88A2h transport: bad request
88A3h specified transport not installed
88A4h unable to open connection with specified parameters
88A6h unsupported function
88A7h no such task
88A8h too many tasks
88A9h version mismatch
88AAh request cancelled
88ABh invalid NDS name
88ACh unable to perform operation while logged into NDS
88ADh requester not available for use
88AEh MacIPX not configured properly
88AFh no servers found
88B0h no volume or session associated with identifier
88B1h not a NetWare volume
88B2h MacIPX version incompatible with Requester
88B4h MacIPX not open
88B5h insufficient stack
88B6h client API already initialized
88B7h checksums required by client are not available
88B8h packet signing required by client are not available
88B9h server requires checksum
88BAh server requires packet signing
88BBh already logged in
88BCh negotiated checksums but connection timed out
89xxh error generated by server
low byte = return code from server (see also #01927,#01961)
8900h server successful
8901h out of disk space
897Eh NCP boundary check failed
897Fh ???
8980h lock failed; file in use
8981h out of handles
8982h no open privileges
8983h hard (non-correctable) I/O error
8984h no creation privileges
8985h no create/delete privileges
8986h attempted to create a file which already exists read-only
8987h filename error during creation (wildcards in name)
8988h invalid file handle
8989h no search privileges
898Ah no deletion privileges
898Bh no rename privileges
898Ch no modify privileges
898Dh some affected files are in use
898Eh all affected files are in use
898Fh some affected files are read-only
8990h all affected files are read-only; volume read-only
8991h some files could not be renamed because target names already exist
8992h all affected names exist
8993h no read privileges
8994h no write privileges
8995h file detached
8996h server out of memory
8997h no disk space for spool file
8998h disk map error; volume does not exist
8999h directory full
899Ah attempt to rename across volumes
899Bh bad directory handle
899Ch invalid path; no more trustees
899Dh no directory handles
899Eh bad filename
899Fh directory active
89A0h directory not empty
89A1h directory I/O error
89A2h I/O lock error
89A3h-89A5h ???
89A6h auditing is active
89A7h auditing version error
89A8h no auditing rights
89A3h-89BEh ???
89BFh invalid name space
89C0h no account privileges
89C1h no account balance
89C2h credit limit exceeded
89C4h account disabled
89C5h login lockout (intruder detection activated)
89C6h no console rights
89C7h-89CFh
89D0h queue error
89D1h no queue
89D2h no queue server
89D3h no queue rights
89D4h queue full
89D5h no queue job
89D6h no job rights; unencrypted password
89D7h queue servicing error; duplicate password; bad account
89D8h queue not active; password too short
89D9h station not queue server; maximum logins exceeded
89DAh queue halted; bad login time
89DBh maximum queue servers; unauthorized login station
89DCh account disabled or expired
89DEh password expired (all grace logins used up)
89DFh password expired but login allowed (grace login)
89E0h-89E6h ???
89E7h no disk track
89E8h property is not an item property; write to group
89E9h member exists
89EAh no such member
89EBh property is not a set property
89ECh no such set
89EDh property exists
89EEh object exists
89EFh illegal name
89F0h illegal wildcard
89F1h invalid bindery security level
89F2h not allowed to read object
89F3h not allowed to write/rename object
89F4h not allowed to delete object
89F5h not allowed to create object
89F6h not allowed to delete property
89F7h not allowed to create property; attempt to use non-local drive
89F8h not allowed to write property; already attached to server
89F9h not allowed to read property; no free connection slots
89FAh temporary remap error; no more server slots
89FBh no such property; invalid parameters
89FCh no such object; internet packet request canceled; unknown file server
89FDh bad station number; lock collision
89FEh directory locked; bindery locked; timeout
89FFh general error; hard error; lock error
Note: some server-generated error codes have multiple interpretations; use
the one appropriate to the failing call
(Table 02861)
Values for VLM identifier:
0001h VLM.EXE Virtual Loadable Modules manager (see also #02864)
0010h CONN.VLM connection table manager (see also #02867)
0020h TRAN.VLM transport protocol multiplexor (see also #02871)
0021h IPXNCP.VLM transport protocol implementation using IPX (see #02873)
0022h TCPNCP.VLM TCP/IP transport
0030h NWP.VLM NetWare protocol multiplexor (see also #02875)
0031h BIND.VLM bindery
0032h NDS.VLM NetWare Directory Services (see also #02877)
0033h PNW.VLM Personal NetWare
0034h RSA.VLM RSA encryption for directory services re-authentication
0040h REDIR.VLM DOS redirector (see also #02879)
0041h FIO.VLM file I/O (see also #02882)
0042h PRINT.VLM printer redirector (see also #02884)
0043h GENERAL.VLM misc functions for NETx and REDIR (see also #02888)
0050h NETX.VLM NetWare shell compatibility (see also #02890)
0060h AUTO.VLM auto-reconnect/auto-retry
0061h SECURITY.VLM enhanced security module (see #02892)
0100h NMR.VLM NetWare management responder
09F2h DRVPRN.VLM Desktop SNMP Services - Drive/Printer Mappings
09F5h SAA.VLM SAA client API for Netware
09F6h IPXMIB.VLM SNMP IPX-monitoring Module???
09F7h PNWMIB.VLM Personal Netware SNMP Instrumentation Module
09F8h PNWTRAP.VLM Personal Netware SNMP Trap Module
09F9h MIB2PROT.VLM MIB-II Protocol Groups
09FAh MIB2IF.VLM MIB-II Interfaces Group
09FBh NVT.VLM ???
09FCh WSTRAP.VLM Desktop SNMP Services - Trap Module
09FDh WSREG.VLM Desktop SNMP Services - Registration Module
09FEh WSASN1.VLM Desktop SNMP Services - ASN.1 Module
09FFh WSSNMP.VLM Desktop SNMP Services - Agent Module
Format of VLM header:
Offset Size Description (Table 02862)
00h DWORD -> initialization entry point
04h DWORD -> VLM API entry point
08h DWORD -> ??? entry point
0Ch DWORD -> ??? entry point
10h DWORD -> ??? entry point
...
var DWORD 00000000h (end of entry point list)
4 BYTEs signature "NVlm"
WORD VLM identifier (see #02861)
---v1.20+ ---
1Eh WORD ???
20h WORD Transient Switch Count
22h WORD VLM Call Count
24h WORD Offset ControlBlocks (See #02863)
26h WORD Current VLMID
28h BYTE Memory Type
00h=Conventional 02h=EMS 04h=XMS
29h BYTE Modules Loaded
2Ah WORD BlockId
2Ch WORD Transient Block
2Eh WORD Global Segment
30h 3 DWORDs pointers to AsyncQueue head, tail, and s???
3Ch 3 DWORDs pointers BusyQueue head, tail, and s???
48h WORD ReEntrance Level
4Ah WORD Full Map Count
4Ch WORD ???
4Eh 80 BYTEs ASCIZ configuration file filename
Note: the number of entry points in the header is reported as "Func" in the
VLM /D display.
Format of VLM Control Block for VLM v1.20 [array]:
Offset Size Description (Table 02863)
00h WORD Flag
02h WORD VLM Identifier (See #02861)
04h WORD Func
06h WORD Maps
08h WORD number of times called
0Ah WORD ???
0Ch WORD Transient Segment
0Eh WORD Global Segment
10h WORD Address Low
12h WORD Address High
14h WORD TSegSize
16h WORD GSegSize
18h WORD SSegSize
1Ah BYTE VLMName[9] ASCIZ
Note: this information is shown in VLM /d under the dashed line. There are
as many 35-byte blocks as modules loaded
SeeAlso: #02862
(Table 02864)
Call VLM Manager (VLM.EXE, ID 0001h) with:
Func Description/Registers
01h VLM Notify
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h VLM Statistics
CX = length of buffer
ES:DI -> buffer for statistics (see #02865)
Return: AX = status (0000h if successful)
buffer filled if successful
04h VLM internal use
BX = function
0000h get interrupt vector (calls INT 21/AH=35h)
0001h begin critical section (calls INT 2F/AX=1681h)
0002h end critical section (calls INT 2F/AX=1682h)
0003h ???
Format of VLM.EXE statistics:
Offset Size Description (Table 02865)
00h WORD size of statistics record in bytes (including this word)
02h WORD number of times a VLM has been mapped into memory
04h WORD number of times a VLM has been called
06h WORD offset of vcbArray buffer
08h WORD VLM ID of VLM currently mapped into memory
0Ah BYTE memory type: conventional/EMS/XMS
0Bh BYTE number of loaded VLMs
0Ch WORD EMS/XMS handle or 0000h if conventional memory
0Eh WORD start segment for conventional memory swap
10h WORD segment for global memory, or 0000h if conventional memory
12h 12 BYTEs queue structure for asynchronous calls (see #02866)
1Eh 12 BYTEs queue structure for synchronous calls (see #02866)
2Ah WORD current re-entrance level
2Ch WORD number of times EMS/XMS map-out performed
2Eh BYTE stack switch control
2Fh BYTE flag: nonzero if switcher loaded
30h 80 BYTEs pathname of configuration file
SeeAlso: #02864
Format of VLM.EXE queue structure:
Offset Size Description (Table 02866)
00h DWORD queue head (initially 00000000h)
04h DWORD queue tail (initialized to be same as head)
08h WORD current queue size (number of nodes in queue)
0Ah WORD maximum queue size (in nodes)
SeeAlso: #02865
(Table 02867)
Call Connection Manager (CONN.VLM, ID 0010h) with:
Func Description/Registers
01h Conn Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h Conn Statistics
CX = length of buffer
ES:DI -> buffer for connection statistics (see #02868)
Return: AX = status (0000h successful)
04h Conn Alloc Handle
Return: AX = status (0000h successful)
CX = connection handle
05h Conn Validate Handle
CX = connection handle
Return: AX = 0000h if valid handle
06h Conn Free Handle
CX = connection handle
Return: AX = status (0000h successful)
07h Conn Get Entry Field
BH = connection parameter (see #02870)
CX = connection handle
DX = value if BH is non-array parameter
DH = offset in array if BH is array parameter
DL = number of bytes to copy if BH is array
ES:DI -> return buffer if BH is array
Return: AX = 0000h if successful
DL/DX = value if non-array parameter
DH = maximum number of bytes in buffer if array parameter
DL = number of bytes copied if array
BX destroyed
08h Conn Set Entry Field
BH = connection parameter (see #02870)
CX = connection handle
DL/DX = value if BH is non-array parameter
DH = offset in array if BH is array parameter
DL = number of bytes to copy if BH is array
DS:SI -> buffer if BH is array
Return: AX = 0000h if successful
DH = maximum number of bytes in buffer
DL = number of bytes copied
BX destroyed
09h Conn Reset Entry Field
BH = connection parameter (see #02870)
CX = connection handle
Return: AX = 0000h if successful
BX,DX destroyed
0Ah Conn Lookup Handle
BL = lookup type (00h equal, 40h not equal)
BH = connection parameter (see #02870)
CX = connection handle, 0000h if first
DL/DX = value if BH is non-array parameter
DH = offset in array if BH is array parameter
DL = number of bytes to copy if BH is array
DS:SI (ES:DI???) -> buffer if BH is array
Return: AX = 0000h if successful
CX = handle matching given parameters
0Dh Conn Name Lookup
CX = connection handle
ES:DI -> 49-byte buffer for server name or 0000h:0000h
Return: AX = 0000h if successful
BX = length of server name
ES:DI buffer filled if pointer not 0000h:0000h
0Eh Conn Name To Handle
DS:SI -> uppercased server name
CX = length of server name, 0000h if ASCIZ name
Return: AX = error code or 0000h if successful
CX = connection handle if successful
0Fh Conn Get Num Connections
Return: AX = status (0000h if successful)
DX = number of connections
CX = segment of connection table
first entry in table (See #02869)
Format of VLM connection statistics:
Offset Size Description (Table 02868)
00h WORD total length of statistics record (including this word)
02h WORD number of connection handles allocated
04h WORD average name length (configured in NET.CFG)
06h WORD maximum number of tasks (configured in NET.CFG)
08h WORD number of failed "allocate handle" calls
0Ah WORD number of failed "add name" calls
0Ch WORD number of failed task calls
Note: some versions of the NetWare requester reportedly do not implement
this correctly
SeeAlso: #02867
Format of NetWare VLM Connection Table [array]:
Offset Size Description (Table 02869)
00h WORD Protocol VLMid 0032(NDS) 0031(BIND) Func 07 equiv.
0033(PNW) 0000(unused) BH=01h
02h BYTE (connection status)
bit 6: connection locked BH=16h
bit 5: authenticated BH=03h
bit 4: permanent BH=02h
bit 2: broadcast msg waiting BH=12h
03h BYTE (connection capabilities)
bit 5: Large Internet Packets none
bit 3: Packet Burst Reset BH=07h
bit 2: Max I/O BH=06h
bit 1: SFT3 change BH=05h
bit 0: Packet Burst Support BH=04h
04h WORD reference count BH=09h
06h WORD soft resource count BH=15h
08h BYTE NCP Order Number BH=0Eh
09h BYTE Server security options BH=14h
bit 0: CRC enabled
bit 1: packet signing required
bit 5: packet signing enabled
0Ah BYTE OS Major Version BH=08h
0Bh BYTE OS Minor Version BH=08h
0Ch WORD Hops to Server BH=0Ah
0Eh WORD Maximum Packet Size for this connection BH=0Bh
10h WORD LIP Parameters BH=13h
12h WORD NCP Request Type BH=10h
14h BYTE NCP Sequence BH=0Ch
15h WORD Connection Number BH=0Dh
17h BYTE ??? none
18h WORD Transport VLMid 21(IPXNCP) 22(TCPNCP) BH=0Fh
1Ah BYTE Node Address[4] BH=11h
1Eh BYTE Network[6] BH=11h
24h BYTE Socket[2] BH=11h
26h BYTE Local Target[6] BH=11h
2Ch WORD Round Trip Time BH=11h
2Eh WORD ??? none
SeeAlso: #02867
(Table 02870)
Values for NetWare Connection Manager CEI (Connection Entry Information):
number flags description
00h FR error
01h WL VLM id of transport protocol (NDS/BIND/PNW)
00h = wildcard
02h FR permanent flag (01h if connection is permanent)
03h F authenticated flag (01h if connection is authenticated)
04h F packet burst supported
05h FR SFT3 change status
06h FR connection needs maximum I/O transmission
07h FR packet burst reset needed
08h W server version
09h W reference count (tasks using connection, 00h = dynamic)
0Ah W distance to server associated with connection
0Bh W maximum packet size supported by transport protocol
0Ch B NCP sequence number
0Dh W connection number
0Eh B NCP order number
0Fh WL VLM id for transport protocol
00h = wildcard, 21h = IPX, 22h = TCP
10h W NCP request type
11h A transport specific buffer
12 byte server address
6 byte router address
2 byte round trip time
12h FR broadcast message waiting
13h W large internet packets supported
14h B security options
bit 0: CRC enabled
bit 1: packet signing enabled
bit 5: packet signing active
15h W soft resource count
16h FR connection locked
Note: flag meanings
F=flag value
B=byte value
W=word value
A=array
R=resettable
L=settable only before authentication
others=read only
SeeAlso: #02867
(Table 02871)
Call TRAN.VLM (VLM ID 0020h) with:
Func Description/Registers
01h TRAN Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h TRAN Statistics
06h TRAN Request Reply (see INT 21/AH=F2h)
AL = NCP request code (see #02095 at INT 21/AH=F2h)
BH = error handler flag
00h default error handler
01h return network errors to caller
02h handle network errors in requester
BL = request list length (max 5 fragments) (see #02872)
CX = connection handle
DH = 00h (reserved)
DL = reply list length (max 5 fragments) (see #02872)
DS:SI -> address list (each element is DWORD address + WORD length)
ES:DI -> address list
Return: AX = error code, 0000h if successful (see #02860)
BX,DX destroyed
ES:DI buffer filled with reply packet fragments
08h TRAN Schedule/Cancel Event
BX = subfunction
0000h schedule event
AX = number of timer ticks to delay before calling function
ES:SI -> event control block (including valid call address)
0001h cancel event
ES:SI -> event control block (including call address)
Return: AX = status (0000h = successful) (see #02860)
09h TRAN Get Max Phys Size
BX = subfunction
00h get maximum node size
Return: AX = status (0000h = successful) (see #02860)
BX = maximum supported physical packet size
DX = size of protocol header
SI = RequestReply socket number
01h get maximum route size to specified server
CX = connection handle for route to be checked
Return: AX = status (0000h = successful) (see #02860)
DX = maximum supported packet size for current route
0Ah TRAN Broadcast Mux
BX = subfunction
0001h get stored broadcast (Personal NetWare)
ES:DI -> 60-byte buffer for counted ASCIZ message string
Return: AX = status (0000h = successful) (see #02860)
Format of TRAN.VLM request/reply fragment descriptor (array):
Offset Size Description (Table 02872)
00h DWORD address of buffer
04h WORD length of buffer
(Table 02873)
Call IPXNCP.VLM (VLM ID 0021h) with:
Func Description/Registers
01h IPX Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h IPX Statistics
CX = length of buffer
ES:DI -> buffer for statistics (see #02874)
Return: AX = status (see #02860)
06h IPXNCP Request Reply???
functionally equivalent to Tran Request Reply???
Format of NetWare IPX statistics:
Offset Size Description (Table 02874)
00h WORD size of statistics, including this word
02h DWORD number of TRAN Request Reply calls made
06h WORD number of user aborts
08h WORD number of user retries
0Ah WORD IPX receive errors
0Ch WORD IPX send errors
0Eh WORD number of unrecognized responses
10h WORD number of bad connection numbers in requests
12h WORD number of bad sequence responses
14h WORD receive buffer overflows
16h WORD number of times route to attached server was lost
18h WORD number of times server responded "busy"
1Ah WORD number of unknown "NCPRepCompCode" values
1Ch WORD number of bad connection numbers in responses
1Eh WORD padding for NETX compatibility
20h WORD padding for NETX compatibility
22h WORD number of attach requests to server without route
24h WORD number of times server responded to attach without slot
26h WORD number of times a server went down during a request
28h DWORD same-server optimizations
2Ch WORD local route changes
2Eh WORD IPX CRC errors
30h WORD number of user fails
32h BYTE flag: CRCs enabled
33h BYTE flag: LIP enabled
34h BYTE flag: configurable NET error handler
SeeAlso: #02873
(Table 02875)
Call NWP.VLM (VLM ID 0030h) with:
Func Description/Registers
01h NWP Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h NWP Statistics
CX = size of buffer for statistics
ES:DI -> buffer for statistics (see #02876)
Return: AX = status (see #02860)
04h NWP Connect
DL = resource count state (NDS connections only)
CX = proposed connection handle (not yet connected to server)
DS:SI -> 48-byte server name (NUL-terminated if less than 48 bytes)
Return: AX = status (0000h = successful) (see #02860)
CX = actual connection handle to use
Note: if the returned handle differs from the proposed handle, the
proposed handle should be freed
05h NWP Disconnect
DL = ???
00h global disconnect -- clear all resources associated with conn.
01h destroy connection -- send disconnect request to server
CX = connected connection handle
Return: AX = status (0000h = successful) (see #02860)
06h NWP Attach
DL = resource count state (NDS connections only)
CX = connection handle (allocated by not yet attached to server)
DS:SI -> full network address for desired server
Return: AX = status (0000h = successful) (see #02860)
08h NWP Login
BX = object type
CX = connection handle (must be connected) to be authenticated
DS:SI -> ASCIZ user name (max 48 bytes)
ES:DI -> ASCIZ user password (max 128 bytes)
Return: AX = status (0000h = successful) (see #02860)
09h NWP Logout
CX = connection handle
Return: AX = status (0000h = successful) (see #02860)
0Ah NWP Get Bindery Object/Get Message Handler
BX = subfunction
0002h set workstation's broadcast message mode
DL = message mode
00h client hold client message set on, retrieve/display on
01h client hold client message set off, retr/display on
02h client hold client message set on, retrieve/dislay off
03h client hold client message set off, retr/display off
04h get current message mode
05h set broadcast callback
CX:SI -> callback handler
06h get broadcast timeout
07h set broadcast timeout
CX = timeout in timer ticks (0000h = never)
CX = connection handle, or 0000h to notify all servers
0003h get object ID for object name
AX = object type (big-endian)
CX = connection handle
DX = length of object name
ES:DI -> uppercased ASCIZ object name
Return: AX = status (see #02860)
DX:BX = object ID
0004h get object name for object ID
DX:SI = object ID
CX = connection handle for server which is to do the lookup
ES:DI -> 48-byte buffer for object name
Return: AX = status (see #02860)
0005h retrieve broadcast message
0Ch NDS Fragment Request (passed to NDS.VLM's function 0Ch) (see #02877)
AX = verb or request type
CX = connection handle
DS:SI -> request structure (DWORD data address followed by WORD size)
ES:DI -> buffer for reply structure (same format as request)
Return: AX = status (0000h = successful) (see #02860)
0Eh NWP Ordered Send To All
AL = NCP request code
AH = inverse request code (FFh if none) to back out from failures
BX = number of fragments in request list
DX = number of fragments in reply list buffer
DS:SI -> request fragment list
ES:DI -> reply fragment list
Return: AX = status (see #02860)
BX, CX, DX destroyed
Note: the available functions are described under INT 21/AX=F2xxh
0Fh NWP Preferred Handler
BX = subfunction
0000h get preferred connection name
DX = VLM ID (NDS/BIND/PNW)
ES:DI -> 49-byte buffer for connection name
Return: ES:DI buffer filled
0001h set preferred connection name
DX = VLM ID (NDS/BIND/PNW)
CX = length of connection name (may be 0000h, max 48)
DS:SI -> name of preferred connection
0002h get preferred connection ID
DX = VLM ID (NDS/BIND/PNW)
Return: AX = status (see #02860)
CX = connection handle if successful
0003h get server address
CX = connection handle or 0000h
DS:SI -> ASCIZ name to be resolved
ES:DI -> 12-byte buffer for server address
10h NWP Security???
BX = subfunction
0001h get security flags (see also INT 21/AX=B301h)
Return: BX:CX indicates signature level
= 0100h:0000h if signature level=0
= 0300h:0000h if signature level=1
= 0302h:0000h if signature level=2
= 0302h:0202h if signature level=3
0002h create session keys (see also INT 21/AX=B302h)
CX = server connection handle
DS:SI -> 24-byte input buffer
0004h set security flags (see also INT 21/AX=B304h)
BL:CL = new flags
0006h renegotiate security level (see also INT 21/AX=B306h)
CX = server connection number (01h-08h)
Format of NWP.VLM statistics:
Offset Size Description (Table 02876)
00h WORD size of statistics record (including this byte)
02h BYTE flag: Large Internet Packets enabled
03h BYTE bit flags: enabled security features
04h BYTE bit flags: preferred security features
05h BYTE bit flags: required security features
06h BYTE minimum level of required security
SeeAlso: #02875
(Table 02877)
Call NDS.VLM (VLM ID 0032h) with:
Func Description/Registers
01h NDS Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h NDS Statistics
06h NDS Attach
CX = allocated connection handle
DS:SI -> server address
08h NDS Fragment Requst
Return: AX = 8836h (invalid parameter)
Note: this function was documented but does not work
0Ch NDS context
BX = subfunction
0000h get default name context
CX = length of buffer for default context
ES:DI -> buffer to receive name
Return: ES:DI buffer filled
0001h set default context
CX = length of new default context name
DS:SI -> context name
0002h read from TDS
CX = reply buffer length
DX = 0110h ???
SI = offset in TDS
ES:DI -> reply buffer
0003h write to TDS
0005h "NWDSChangeResourceConnection/Lock Connection"
CX = connection handle
DL = subfunction (00h-09h)
04h = NWDSChangeResourceOnConnection
07h = NWDSChangeResourceOnConnection
08h = NWDSLockConnection
0006h NDS change connection state (internal)
CX = connection handle
AL = 00h or 01h
0007h "NWDSSetMonitoredConnection"
AX = subfunction
0001h get monitored connection
Return: CX = connection handle???
0002h set monitored connection
CX = connection handle???
0008h send NDS request
AX = NDS function
CX = connection handle
DS:SI -> request buffer descriptor (see #02878)
ES:DI -> reply buffer descriptor (see #02878)
000Ah set NDS CEI Info
DL = buffer length
DS:SI -> input buffer
Format of NetWare NDS request/reply buffer descriptor:
Offset Size Description (Table 02878)
00h DWORD -> buffer
04h WORD length of buffer in bytes
SeeAlso: #02877
(Table 02879)
Call REDIR.VLM (VLM ID 0040h) with:
Func Description/Registers
01h Redir Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h Redir Statistics
CX = length of buffer
ES:DI -> buffer for statistics (see #02880)
Return: AX = status (0000h if successful) (see #02860)
buffer filled if successful
04h Redir Build SFT (see INT 21/AH=B4h"NetWare")
CX = connection handle
ES:DI -> SFT build request (see #02881)
Return: AX = 0000h if successful
BX = DOS file handle
05h Redir DOS To NW Handle
BX = DOS file handle
ES:DI -> 11-byte buffer for NetWare handle
08h Redir Specific
BX = 0000h get item
DS:SI -> ASCIZ string "LPTx" (x='1'-'9') or drive spec ("d:")
ES:DI -> 512-byte reply buffer for
"\\server\resource",00h,"path",00h
Return: AX = status (0000h if successful) (see #02860)
Format of REDIR.VLM statistics:
Offset Size Description (Table 02880)
00h WORD size of statistics record (including this word)
02h WORD number of network errors causing a critical error (see INT 24)
04h WORD number of drives currently redirected
SeeAlso: #02879
Format of NetWare SFT build request:
Offset Size Description (Table 02881)
00h 6 BYTEs NetWare handle
06h WORD reserved for internal use
08h 14 BYTEs ASCIZ filename
16h BYTE DOS file attributes
bit 7: file is shareable
17h BYTE reserved
18h LONG file size
1Ch WORD creation date
1Eh WORD last access date or 0000h
20h WORD last update date or 0000h
22h WORD last update time or 0000h
(Table 02882)
Call File I/O FIO.VLM (VLM ID 0041h) with:
Func Description/Registers
01h FIO Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h FIO Statistics
CX = length of buffer
ES:DI -> buffer for statistics (see #02883)
Return: AX = status (0000h if successful)
buffer filled if successful
04h FIO Remote Copy
Format of NetWare FIO statistics:
Offset Size Description (Table 02883)
00h WORD length of statistics record (including this word)
02h WORD number of read requests
04h WORD number of write requests
06h WORD number of cache read hits
08h WORD number of cache write hits
0Ah WORD number of cacheable files with free blocks
0Ch WORD number of cacheable files without free blocks
0Eh WORD number of standard read requests
10h WORD number of standard write requests
12h WORD number of burst read requests
14h WORD number of burst write requests
16h BYTE flag: cache writes enabled
17h BYTE flag: true commits enabled
18h WORD number of cache blocks
1Ah WORD size of a cache buffer
1Ch WORD number of ECBs for packet bursts (0000h if bursts disabled)
SeeAlso: #02882
(Table 02884)
Call PRINT.VLM (VLM ID 0042h) with:
Func Description/Registers
01h Print Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h Print Statistics
CX = length of buffer
ES:DI -> buffer for statistics (see #02885)
Return: AX = status (0000h if successful) (see #02860)
buffer filled if successful
04h Print Get/Set Data
BX = subfunction
00h set printer control flags (see #02886)
01h get printer control flags
02h set extended printer control flags (see #02887)
03h get extended printer control flags
AX = offset within Print structures at which to start read/write
CX = number of bytes to transfer
DX = printing device number (00h=LPT1/PRN, 01h=LPT2, etc.)
DS:SI -> buffer containing values for flags (subfunctions 00h/02h)
ES:DI -> buffer for flags (subfunctions 01h/03h
Return: AX = status (see #02860)
---if successful---
CX = number of bytes returned (subfunctions 01h/03h)
DX = maximum supported size for function/type of data
05h Print Open Capture File
07h Print Get Num Of Printers
BX = subfunction
0000h get number of physical printers
nonzero: get configured printer (from NET.CFG)
Return: AX = status (see #02860)
---if successful---
BX = number of physical/configured printers
08h Print Redirection
BX = subfunction
0000h redirect device to queue
AX = length of queue name, 0000h to use queue ID
CX = connection handle
DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.)
DS:SI -> uppercased ASCIZ queue name
ES:DI -> DWORD queue ID, 00000000h to use queue name
0001h test whether device is redirected
DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.)
0002h cancel redirection
DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.)
0003h redirect device to file
AX = 0000h or 4E57h ('NW')
CX = connection handle
DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.)
ES:DI -> ASCIZ path of file
0004h get extended redirection information (see #02886)
DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.)
ES:DI -> buffer for server/queue name
Return: ES:DI buffer filled
Return: AX = 0000h if successful
09h Print Flush And Close Job
BX = subfunction
0000h unconditional close
nonzero: conditional close -- close only if concatenate flag is
clear
DX = index of printing device (00h=LPT1/PRN, 01h=LPT2, etc.)
Return: AX = status (see #02860)
0Ch Print Get/Set Banner Name
BL = subfunction
00h set banner name
DS:SI -> ASCIZ banner name (12 bytes, including NUL)
01h get banner name
ES:DI -> 12-byte buffer for banner name
Return: AX = status (see #02860)
Format of PRINT.VLM statistics:
Offset Size Description (Table 02885)
00h WOFD size of statistics buffer (including this word)
02h DWORD -> old INT 17 handler
06h WORD number of physical printers reported by BIOS
SeeAlso: #02884
Format of PRINT.VLM standard print control information:
Offset Size Description (Table 02886)
00h BYTE PFStatus (reserved, 00h)
01h BYTE print flags (default 80h)
bit 2: release job for printing if capture interrupted
bit 3: suppress form feed
bit 4: notify
bit 6: text file
bit 7: print banner
02h BYTE tab size (01h-12h, default 08h)
03h BYTE number of copies (default 01h)
04h BYTE ??? (may be number of copies instead of offset 03h)
05h BYTE form type to be mounted in printer (default 00h)
06h BYTE reserved (00h)
07h 14 BYTEs banner
15h BYTE capture printer (LPT) number
16h WORD capture timeout in seconds
18h BYTE job concatenation flag (00h or 01h, default 00h)
19h BYTE maximum lines per page (default 66)
1Ah BYTE ??? (may be maximum lines instead of offset 19h)
1Bh BYTE maximum characters per line (default 132)
1Ch BYTE ??? (may be maximum characters instead of offset 1Ch)
1Dh 13 BYTEs name of form to be mounted in printer
2Ah BYTE flag: capture active (00h or FFh, default 00h)
2Bh BYTE flag: capturing to file (00h or 01h, default 00h)
2Ch BYTE flag: timeout field is being decremented (default 00h)
2Dh DWORD -> printer setup string
31h DWORD -> printer reset string
35h BYTE reserved (01h)
---remainder is read-only---
36h BYTE flag: job has started printing (00h or FFh, default 00h)
37h BYTE flag: job placed in queue (00h or FFh, default 00h)
38h BYTE flag: PJobValid (00h or FFh, default 00h)
FFh if associated capture file is open for capturing data
39h DWORD print-queue ID
3Dh WORD print-job number (default 00h) (1-999)
3Fh BYTE number of chars in INT 17h print cache buffer (default 00h)
40h BYTE ???
41h WORD high word of print-job number (default 00h)
SeeAlso: #02884,#02887
Format of PRINT.VLM extended print control information:
Offset Size Description (Table 02887)
00h DWORD NDS printer object ID or directory entry number (when capturing
to a file)
04h BYTE connection handle for server
06h 48 BYTEs ASCIZ print queue name on server
36h DWORD ID of target server, or FFFFFFFFh if any server may be used
3Ah 6 BYTEs target print time, FFFFFFFFFFFFh for immediate printing
40h BYTE status flags
41h BYTE ???
42h 13 BYTEs client's banner name (overrides global banner if set)
4Fh 13 BYTEs job description
5Ch 4 BYTEs reserved (0)
SeeAlso: #02884,#02886
(Table 02888)
Call GENERAL.VLM (VLM ID 0043h) with:
Func Description/Registers
01h Gen Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h Gen Statistics
CX = length of statistics buffer
ES:DI -> buffer for statistics (see #02889)
Return: AX = status (see #02860)
04h Gen Get/Set Primary
BX = subfunction
0001h get primary connection
CX = primary connection handle to be retrieved
Return: AX = status (see #02860)
CX = primary connection handle
0002h set primary connection
CX = primary connection handle to be stored
Return: AX = status (see #02860)
06h Gen Specific
BX = subfunction
0000h get command processor and master environment addresses
Return: DX = segment of master environment
ES:DI -> command processor's private COMSPEC= copy
0001h get default or primary connection
Return: AX = status (0000h successful)
CX = connection handle if successful
0002h last queue information
AL = operation
00h zap
01h set
02h get
DI:DX = queue file handle
CX = connection handle
Return: AX = status (0000h successful)
DI:DX = queue file handle
CX = connection handle or 0000h if queue info invalid
0003h get/set machine name(s)
AX = name type
00h get short machine name
02h get long machine name
04h set short machine name
06h set long machine name
08h get DOS name
0Ah set DOS name
ES:SI -> ASCIZ name if setting
Return: AX = status (0000h if successful)
ES:SI -> ASCIZ name if getting
0004h set per-task EXEC search mode
Return: AX = status (0000h if successful)
09h Gen Return Drive Info
BX = subfunction
0000h get first available drive
Return: AX = status (see #02860)
BX = drive letter of first drive
0001h get Lastdrive
Return: AX = status (see #02860)
CH = number lastdrive 1=A: - 1Ah=Z:
Format of NetWare GENERAL.VLM statistics:
Offset Size Description (Table 02889)
00h WORD size of statistics record, including this word
02h DWORD previous INT 21 vector
SeeAlso: #02888
(Table 02890)
Call NETX.VLM (VLM ID 0050h) with:
Func Description/Registers
01h NetX Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h NetX Statistics
CX = length of statistics buffer
ES:DI -> buffer for statistics (see #02891)
Return: AX = status (see #02860)
Format of NETX.VLM statistics:
Offset Size Description (Table 02891)
00h WORD buffer size, including this word
02h DWORD previous INT 21 handler
SeeAlso: #02890
(Table 02892)
Call SECURITY.VLM (VLM ID 0061h) with:
Func Description/Registers
01h Security Get Version
BX = function
0000h get version
Return: AX = status (see #02860)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h Security Statistics
04h ???
AL = subfunction
01h compute session key
DS:SI -> 24-byte input buffer
ES:DI -> 8-byte output buffer
--------N-2F7A20BX0001-----------------------
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM CallA ADDRESS
AX = 7A20h
BX = 0001h
Return: AX = 0000h if request was handled
ES:BX -> CallA entry point (see #02893)
SeeAlso: AX=7A20h/BX=0000h
(Table 02893)
Call VLM CallA entry point with:
AX = function
0000h submit
0001h cancel (not implemented)
ES:DI -> Overlay Asynchronous Control Block structure (see #02894)
Return: DI, DS, ES preserved; all other registers may be destroyed
interrupts disabled
Desc: asychronously call the specified VLM and then return to caller, which
might be another VLM
Format of Overlay Asynchronous Control Block (OACB):
Offset Size Description (Table 02894)
00h DWORD link to next OACB, 0000h:0000h if last (filled by VLM.EXE)
04h DWORD callback address or 0000h:0000h
08h BYTE InUse flag (00h if complete) (set by VLM.EXE)
09h BYTE flag, reserved for VLM use
0Ah WORD destination VLM
0Ch WORD destination function
0Eh WORD temporary storage for VLM.EXE
10h 6 BYTEs reserved
16h 6 DWORDs EAX,EBX,ECX,EDX,ESI,EDI
2Eh 4 WORDs DS,ES,FS,GS (FS and GS not used)
--------N-2F7A20BX0002-----------------------
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM MULTIPLEX ADDRESS
AX = 7A20h
BX = 0002h
Return: AX = 0000h
ES:BX -> VLM multiplex entry point (see #02895)
Note: for v1.10, this function is only available while VLM.EXE is loading
the .VLM modules, because ES is destroyed on return
SeeAlso: AX=7A20h/BX=0000h,AX=7A20h/BX=0001h,AX=7A20h/BX=0003h
(Table 02895)
Call DOS Requester entry point with:
BX = function???
0000h
DX = ???
DI = ???
BP = ???
0002h
CX = ???
0003h
DX = ???
BP = ???
0006h
AH = subfunction???
AL = ???
STACK: variable (0, 4, 10, 14 bytes seen)
--------N-2F7A20BX0003-----------------------
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM PARSE API ADDRESS
AX = 7A20h
BX = 0003h
Return: AX = 0000h if request was handled
ES:BX -> VLM parse API entry point
--------N-2F7A20BX0004-----------------------
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM MULTICAST CALLOUT
AX = 7A20h
BX = 0004h
Return: AX = 0000h if request was handled
ES:BX -> VLM multicast data (see #02896)
SeeAlso: AX=7A20h/BX=0000h,AX=7A20h/BX=0002h,AX=7A20h/BX=0005h
Format of DOS Requester data:
Offset Size Description (Table 02896)
00h DWORD pointer to ??? (code)
04h 4 BYTEs ???
08h DWORD pointer to ??? (code) (see #02897)
???
(Table 02897)
Call offset 08h function with:
AL = function (00h-07h)
???
Return: ???
--------N-2F7A20BX0005-----------------------
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM INT 24 ADDRESS
AX = 7A20h
BX = 0005h
Return: AX = 0000h if request was handled
ES:BX -> VLM INT 24 handler
SeeAlso: AX=7A20h/BX=0000h,AX=7A20h/BX=0002h,AX=7A20h/BX=0004h
--------N-2F7A20BX0006-----------------------
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
AX = 7A20h
BX = 0006h
Return: AX = 0000h if request was handled
ES:BX -> ??? entry point (RETF in v1.03 and v1.10)
--------N-2F7A20BX0007-----------------------
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
AX = 7A20h
BX = 0007h
Return: AX = 0000h
ES:BX -> ??? entry point (RETF in v1.03 and v1.10)
--------N-2F7A20BX0008-----------------------
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
AX = 7A20h
BX = 0008h
Return: AX = 0000h
ES:BX -> ??? entry point (RETF in v1.03 and v1.10)
--------N-2F7A20BX0080-----------------------
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
AX = 7A20h
BX = 0080h
Return: AX = 0000h
ES:BX -> ??? entry point (RETF in v1.03 and v1.10)
Note: this function is identical to AX=7A20h/BX=0006h in v1.03 and v1.10
--------N-2F7A20BX0081-----------------------
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
AX = 7A20h
BX = 0081h
Return: AX = 0000h
ES:BX -> ??? entry point (RETF in v1.03 and v1.10)
Note: this function is identical to AX=7A20h/BX=0007h in v1.03 and v1.10
--------N-2F7A20BX0082-----------------------
INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
AX = 7A20h
BX = 0082h
Return: AX = 0000h
ES:BX -> ??? entry point (RETF in v1.03 and v1.10)
Note: this function is identical to AX=7A20h/BX=0008h in v1.03 and v1.10
--------N-2F7A21-----------------------------
INT 2F C - Novell NetWare - DOS Requester - BROADCAST CALLBACK
AX = 7A21h
CX = server connection (FFFFh if message from Personal NetWare user)
interrupts disabled
Return: CX = 0000h if broadcast handled
interrupts disabled
Note: this function is only linked into INT 2F when INT 21/AH=DEh/DL=05h
has been issued
SeeAlso: AX=7A22h,AX=7A85h,INT 21/AH=DEh
--------N-2F7A22-----------------------------
INT 2F C - Novell NetWare - DOS Requester - BROADCAST/SFT3 INFORM
AX = 7A22h
DL = function
21h ('!') broadcast waiting for workstation
40h ('@') SFT3 server-change inform
BX = transport type
0021h IPX
0022h TCP
ES:SI -> transport-specific data block
(ECB for IPX, undefined for TCP)
interrupts disabled
Return: AX = 0000h if event handled, unchanged if not
interrupts disabled
Note: this callback is made from within a hardware interrupt handler; a
separate call to AX=7A21h is made once the system is in a safe
state for receiving the message
SeeAlso: AX=7A21h
--------N-2F7A2F-----------------------------
INT 2F - Novell NetWare - IPXODI v2.12 - GET GNMA SUPPORT
AX = 7A2Fh
Return: AX = 0000h if supported and active
BX = support level (0001h)
ES:DI -> GNMA entry point (see #02898)
Program: GNMA is the Generic NetWare Management Agent
Note: IPXODI v2.12 is distributed as part of the Personal NetWare system
bundled with Novell DOS 7
SeeAlso: INT 7A/BX=001Fh
(Table 02898)
Call IPXODI GNMA entry point with:
BX = function
0000h Register Responder
ES:SI -> responder structure (see #02899)
Return: CF clear if successful
CF set on error
AX = status
FFFFh if specified responder is already registered
interrupts enabled
all other registers except DS, CS:IP, SS:SP destroyed
Note: the responder structure must not be deallocated until
the responder is deregistered
0001h Deregister Responder
AX = type of responder to deregister
Return: AX = status
FFFFh if specified responder not registered
interrupts enabled
ES:SI buffer from original registration may now be
freed
all other registers except DS, CS:IP, SS:SP destroyed
0002h Get Responders
Return: ES:SI -> head of responder structure list (read-only)
interrupts enabled
all other registers except DS, CS:IP, SS:SP destroyed
Note: the returned list may change as tasks are swapped in
and out
0003h Send Acknowledgement
AL = completion code
00h successful
01h-FCh responder-specific
FDh invalid function
CX = length of return data (0000h if none)
DX:SI -> return data
Return: interrupts enabled
all other registers except DS, CS:IP, SS:SP destroyed
Format of NetWare GNMA responder structure:
Offset Size Description (Table 02899)
00h DWORD -> next responder structure (used by GNMA)
04h DWORD -> responder's request handler (called by GNMA) (see #02900)
08h WORD responder ID
0Ah WORD number of functions supported by responder
0Ch DWORD reserved for use by GNMA
SeeAlso: #02898
(Table 02900)
Values GNMA responder's request handler is called with:
AL = function
00h responder request
CX = length of request data (not including header) (see #02901)
DS:DI -> request data (see #02901)
DS:BX -> 528-byte reply buffer
ES:SI -> responder structure (see #02899) from registration
DF clear
interrupts disabled
Return: AH = acknowledement status
00h acknowledgment being returned synchronously
nonzero: acknowledgment will be sent via GNMA
function 0003h (see #02898)
CX = length of acknowledement data
DX:BX -> acknowledgment (may use provided
buffer or another buffer)
AL = completion code
00h successful
01h-FCh responder-specific
FDh invalid request
DF clear
interrupts disabled
other registers may be destroyed
01h responder acknowledgement complete
ES:SI -> responder structure (see #02899) from registration
DF clear
interrupts disabled
Return: DF clear
interrupts disabled
all registers (except SS:SP) may be destroyed
Note: this function is called if function 00h returned a
responder-provided data buffer; once this function
is called, the responder may deallocate the buffer
02h responder reset
ES:SI -> responder structure (see #02899) from registration
DF clear
interrupts disabled
Return: DF clear
interrupts disabled
all registers (except SS:SP) may be destroyed
Note: called whenever a network managment application
terminates
Note: the responder handler should switch to a local stack if it enables
interrupts or uses more than a few words of stack space
SeeAlso: #02899
Format of GNMA responder request data:
Offset Size Description (Table 02901)
00h WORD responder's assigned ID
02h WORD function number (defined by responder)
04h N BYTEs data for request (max 528 bytes; actual amount is determined
by CX)
SeeAlso: #02900
--------N-2F7A2FBX0EDC-----------------------
INT 2F U - Personal NetWare - HRMIB - UNINSTALL
AX = 7A2Fh
BX = 0EDCh ('EDC' = Novell European Development Center)
Return: ???
SeeAlso: AX=7AA0h
--------N-2F7A40-----------------------------
INT 2F - Novell NetWare - TCP/IP Protocol Stack - INSTALLATION CHECK
AX = 7A40h
Return: AX = 7AFFh if installed
0000h:BX = address of interrupt vector for MLID ISR
CX = version (CH=major, CL=minor)
DX = 0000h
ES:DI -> entry point for TCP/IP stack (see #02903)
Notes: Novell's LAN Workplace for DOS TCPIP.EXE also supports this interface
this function is also supported by the Beame&Whiteside BWLWP40 shim,
but it only returns AL and ES:DI, and does not support AX=7A41h
SeeAlso: AX=7A41h,INT 15/AX=DE2Eh,INT 60"Excelan"
(Table 02902)
Values for NetWare TCP/IP function code:
01h "accept" accept a network connection request
02h "bind" associate an address with a socket
03h close socket
Call: socket number field set
04h "connect" connect to a remote host
05h "getmyipaddr" get IP address
Call: socket number field in sockaddr set to 0000h
06h "getmymacaddr" get hardware address
07h "getpeername"
08h "getsockname" get socket name
09h "getsockopt" get socket options
0Ah "getsubnetmask" get subnet mask
0Bh "ioctl"
0Ch "listen" wait for connection request on socket
0Dh "select"
Return: socket bitmap updated (1=active)
0Eh "setmyipaddr" (obsolete) set IP address
0Fh "setsockopt" set socket options
10h "shutdown"
11h "socket" open socket
Call: socket number field set to 0000h
Return: socket number set
12h "recv" get data from peer
13h "recvfrom" get data from specified remote host
Call: socket number set
packet length and buffer descriptors set
Return: packet length and receive buffers updated
sockaddr field set to source port number + IP address
14h "send" write data to socket
15h "sendto" write data to specified recipient
Call: socket number set
flags at offset 18h = 0000h
packet length and buffer descriptors set
---v4.02+ ---
16h get BOOTP data
Return: BOOTP data stored in parameter block (see #02906)
17h "getsnmpinfo"
18h "getpathinfo" get/set configuration???
---v4.??? ---
19h "getifn" get interface number
1Ah "setipinfo" set IP information
1Bh "getipinfo" get IP information
1Ch "setdnsinfo" set DNS information
1Dh "getdnsinfo" get DNS information
1Eh "setroutes" set/modify route entry(ies)
1Fh "getroutes" get route entry(ies)
20h "removeroutes" remove route entry(ies)
21h "setarpe" set/modify ARP entry(ies)
22h "getarpe" get ARP entry(ies)
23h "removearpe" remove ARP entry(ies)
Notes: these functions are based on the Unix socket interface
OR function number with 80h to call ESR
SeeAlso: #02904
(Table 02903)
Call NetWare TCP/IP entry point with:
ES:SI -> parameter block (see #02904)
Return: ES:SI parameter block updated
DX may be destroyed
Format of NetWare TCP/IP Request Control Block (RCB):
Offset Size Description (Table 02904)
00h DWORD -> next RCB
04h DWORD -> previous RCB
08h DWORD -> FAR post routine called if bit 7 of function code set
0Ch BYTE flags (internal use)
bit 0: request in progress
bit 1: posted
bit 2: Windows
bit 3: "PROTBUF"
bit 4: "ABORTRCB" for Ctrl-Break handling
bit 5: call INT 21/AX=0B00h while blocking
0Dh 7 BYTEs ???
14h BYTE (ret) temporary result code
15h BYTE (call) function code (bit 7 set if non-blocking) (see #02902)
16h BYTE socket number
17h BYTE (ret) result or error code (see #02905)
---accept/bind/connect/getmyipaddr/getpeername/getsockname commands---
18h sockaddr structure (WORD port + DWORD IP address)
---close comand---
no additional fields
---getmymacaddr command---
18h 6 BYTEs low-level hardware network address
---BOOTP command---
18h 64 BYTEs BOOTP VSA data (see #02906)
---getpathinfo command
18h 8 BYTEs key
"TCP_CFG" used by PING.EXE
20h 128 BYTEs path
A0h WORD length of path in previous field
---getsockopt/setsockopt commands---
18h WORD option name
0004h SO_REUSEADDR
0008h SO_KEEPALIVE
0080h SO_LINGER
1Ah WORD option value
1Ch WORD "linger"
---getsubnetmask command---
18h DWORD sockaddr structure (WORD port + DWORD subnet mask)
---ioctl command---
18h DWORD argument value
1Ch WORD ioctl number
---listen command---
18h WORD maximum allowable connection backlog
---select command---
18h WORD number of sockets
1Ah fd_set readfds (bitmap of sockets)
fd_set writefds
fd_set expectionfds
DWORD timeout in clock ticks
---shutdown command---
18h WORD shutdown type
---socket command---
18h WORD protocol (1 = ICMP, 6 = TCP, 17 = UDP)
---I/O commands (recv,recvfrom,send,sendto)---
18h WORD flags
1Ah 6 BYTEs sockaddr from/to
WORD port number
DWORD IP address
20h WORD length of packet sent/received
22h WORD number of pointer/length pairs following (max 8)
24h 6N BYTEs buffer descriptors, each
Offset Size Description
00h DWORD pointer to buffer
04h WORD length of buffer
---getsnmpinfo command---
18h DWORD (ret) -> ??? data in TCPIP code segment
--getifn command---
18h WORD interface number
1Ah WORD MLID instance number
1Ch 128 BYTEs MLID name
---getipinfo/setipinfo commands---
18h WORD interface number (00h = default)
1Ah DWORD IP address
1Eh DWORD IP netmask
22h 3 DWORDs router addresses (00000000h = unused entry)
---getdnsinfo/setdnsinfo commands---
18h WORD interface number (00h = default)
1Ah 3 DWORDs name server IP addresses (00000000h = unused entry)
26h 128 BYTEs domain name
---getroutes/setroutes/removeroutes commands---
18h WORD number of route entries to follow (max 5)
1Ah 10N BYTEs route entries
DWORD destination host/net IP address
DWORD IP address of first router
WORD route type
---getarpe/setarpe/removearpe commands---
18h WORD number of ARP entries to follow (max 16)
1Ah 10N BYTEs ARP entries
DWORD destination IP address
6 BYTEs destination hardware address
---other commands---
18h 4 WORDs parameter words 0 to 3 (see #02902 for usage)
(Table 02905)
Values for NetWare TCP/IP status:
00h successful
04h would block
09h invalid socket
23h would block
24h operation in progress
25h already in progress
26h not a socket
27h destination address required
28h message too long
29h wrong protocol type for socket
2Ah protocol not available
2Bh protocol not supported
2Ch socket type not supported
2Dh operation not supported on socket
2Eh protocol family not supported
2Fh address family not supported by protocol family
30h address already in use
31h unable to assign requested address
32h network is down
33h network is unreachable
34h network dropped connection
35h software caused connection abort
36h connection reset by peer
37h no buffer space
38h socket is already connected
39h socket is not connected
3Ah socket is in shutdown mode
3Bh too many references
3Ch connection timed out
3Dh connection refused
3Eh too many levels of symbolic links
3Fh file name too long
40h host is down
41h host unreachable
42h protocol stack not installed
43h asynchronous operation not supported
44h synchronous operation not supported
45h no RCB available
FFh blocking (call has not yet returned)
SeeAlso: #02904
Format of BOOTP data (stored in parameter block):
Offset Size Description (Table 02906)
18h 4 BYTEs ???
1Ch BYTE ??? (01h)
1Dh BYTE address length (04h)
1Eh 4 BYTEs subnet mask
22h BYTE ??? (03h)
23h BYTE ??? (04h)
24h 4 BYTEs IP address of nearest router
28h BYTE ??? (06h)
29h BYTE length of following data (08h)
2Ah 4 BYTEs IP address of nameserver 1
2Eh 4 BYTEs IP address of nameserver 2
32h BYTE ??? (0Ch)
33h BYTE length of local name
34h N BYTEs local host name
BYTE FFh (end marker)
SeeAlso: #02904,#02902
--------N-2F7A41-----------------------------
INT 2F U - Novell NetWare - TCP/IP Protocol Stack - WINDOWS SUPPORT???
AX = 7A41h
ES:DI -> FAR entry point for ??? (will be called with BX=1,2,3,4)
Return: AX = 7AFFh if supported
0000h:BX = address of interrupt vector for MLID ISR
CX = version (CH=major, CL=minor)
DX = 0000h
ES:SI -> DWORD containing passed value of ES:DI
ES:DI -> entry point for TCP/IP stack
Notes: Novell's LAN Workplace for DOS TCPIP.EXE also supports this interface
the pointer which is set to ES:DI is cleared to 0000h:0000h when
a Windows exit broadcast is received
SeeAlso: AX=7A40h
--------N-2F7A42-----------------------------
INT 2F U - Novell NetWare - TCPIP.EXE v4.1 - GET ??? ENTRY POINT
AX = 7A42h
Return: AX = 7AFFh if supported
ES:DI -> ??? entry point (see #02907)
(Table 02907)
Call NetWare TCPIP.EXE entry point with:
DX = ???
ES:DI -> ??? (see #02908)
Return: AX = 0000h
other registers destroyed
Format of data buffer:
Offset Size Description (Table 02908)
00h WORD offset of WORD ??? or 0000h
02h WORD offset of DWORD ??? or 0000h
04h WORD offset of DWORD ??? or 0000h
--------N-2F7A43-----------------------------
INT 2F U - Novell NetWare - TCPIP.EXE v4.1 - GET ???
AX = 7A43h
Return: AX = 7AFFh if supported
DX = offset of ???
SeeAlso: AX=7A44h
--------N-2F7A44-----------------------------
INT 2F U - Novell NetWare - TCPIP.EXE v4.1 - SET ???
AX = 7A44h
DX = offset of ??? (see AX=7A43h)
Return: AX = 7AFFh if supported
SeeAlso: AX=7A43h
--------N-2F7A4C-----------------------------
INT 2F U - Novell NetWare - TCPIP.EXE v4.1 - GET ???
AX = 7A4Ch
Return: AX = 7AFFh if supported
BX = ??? (0037h)
CX = ??? (001Ch)
--------N-2F7A4DBX0001-----------------------
INT 2F U - Novell NetWare - ???
AX = 7A4Dh
BX = 0001h
ES:DI -> ???
Return: AL = FFh if ???
ES:DI -> ???
Note: called by NETBIOS.EXE v3.01
--------N-2F7A4E-----------------------------
INT 2F U - Novell LAN Workplace for DOS - RARPD.EXE - INSTALLATION CHECK
AX = 7A4Eh
Return: AX = 7AFFh if installed
SeeAlso: AX=7A4Fh"RARPD"
--------N-2F7A4F-----------------------------
INT 2F U - Novell LAN Workplace for DOS - RARPD.EXE - UNINSTALL
AX = 7A4Fh
Return: AX = 7AFFh if installed
DX,ES destroyed
Note: this call conflicts with SNMP.EXE (both RARPD and SNMP are supplied
with LAN Workplace for DOS!), such that running SNMP will uninstall
RARPD as SNMP checks whether it is already installed!
SeeAlso: AX=7A4Eh"RARPD",AX=7A4Fh/BX=0001h
--------N-2F7A4FBX0001-----------------------
INT 2F U - Novell NetWare - SNMP.EXE - INSTALLATION CHECK
AX = 7A4Fh
BX = 0001h
Return: AX = 7AFFh if installed
Note: this call conflicts with RARPD.EXE (both SNMP and RARPD are supplied
with LAN Workplace for DOS!), such that running SNMP will uninstall
RARPD as SNMP checks whether it is already installed!
SeeAlso: AX=7A4Fh"RARPD",AX=7A4Fh/BX=0002h
--------N-2F7A4FBX0002-----------------------
INT 2F U - Novell NetWare - SNMP.EXE - ???
AX = 7A4Fh
BX = 0002h
Return: AL = status
4Fh if failed
FFh if successful
SeeAlso: AX=7A4Fh/BX=0001h
--------N-2F7A80-----------------------------
INT 2F C - Novell NetWare - SHELL 3.01d BROADCAST - ABNORMAL EXIT
AX = 7A80h
Return: nothing
Notes: called on abnormal exit of the NetWare shell to notify other Novell
TSRs that it is unsafe to call the shell in the future; also called
by NETX.VLM when it is unloaded
must be passed through so that all interested programs see the exit
on receiving this call, IPXODI clears an internal pointer to a
default value; Novell's NETBIOS.EXE clears its INT 21h pointer to
0000h:0000h and stops calling it
SeeAlso: AX=7A81h
--------N-2F7A81-----------------------------
INT 2F C - Novell NetWare - SHELL 3.01d BROADCAST - SET SHELL INT 21 HANDLER
AX = 7A81h
CX:DX -> shell's INT 21h entry point
Return: nothing
Notes: the shell calls this function as it loads to allow interested TSRs
and drivers to make a local copy of the shell's entry point
must be passed through so that all interested programs see it
--------N-2F7A85-----------------------------
INT 2F C - Novell NetWare - shell 3.01 - BROADCAST INFORM
AX = 7A85h
CX = broadcast server number
Return: CX = 0000h if broadcast message handled by another program
CX unchanged if broadcast not handled
SeeAlso: AX=7A21h
--------N-2F7A90-----------------------------
INT 2F U - Novell NetWare - NETBIOS.EXE 3+ - INSTALLATION CHECK
AX = 7A90h
Return: AL = 00h if present
BX = ???
CX = PSP segment of NETBIOS resident code
SeeAlso: AX=7AFEh
--------N-2F7AA0-----------------------------
INT 2F U - Personal NetWare - HRMIB - ???
AX = 7AA0h
BX = function
0000h ???
0001h ???
Return: ???
SeeAlso: AX=7A2Fh/BX=0EDCh
--------N-2F7AC1-----------------------------
INT 2F - LAN HiJack - LHR - DISABLE???
AX = 7AC1h
Program: LAN HiJack is a NetWare utility by KDS Software which allows a user
to take over control of a workstation remotely; LHR is the program
run on the slave workstation
SeeAlso: AX=7AC8h,AX=7AC9h,AX=7ACFh
--------N-2F7AC2-----------------------------
INT 2F - LAN HiJack - LHR - SYNCHRONIZE SHIFT STATES???
AX = 7AC2h
Note: sets BIOS keyboard status byte to an internal variable
SeeAlso: AX=7AC3h,AX=7ACFh
--------N-2F7AC3-----------------------------
INT 2F - LAN HiJack - LHR - CLEAR ??? FLAG
AX = 7AC3h
SeeAlso: AX=7AC2h,AX=7ACFh
--------N-2F7AC8-----------------------------
INT 2F - LAN HiJack - LHR - ENABLE FUNCTIONS
AX = 7AC8h
BL = function(s) to enable (see #02909)
SeeAlso: AX=7AC1h,AX=7AC9h,AX=7ACFh
Bitfields for LAN HiJack function(s) to enable/disable:
Bit(s) Description (Table 02909)
0 ???
1 remote keyboard enabled
2 support remote's mouse
3-7 unused
--------N-2F7AC9-----------------------------
INT 2F - LAN HiJack - LHR - DISABLE FUNCTIONS
AX = 7AC9h
BL = function(s) to disable (see #02909)
SeeAlso: AX=7AC1h,AX=7AC8h
--------N-2F7ACA-----------------------------
INT 2F - LAN HiJack - LHJ - ???
AX = 7ACAh
BL = ???
Return: ???
Program: LAN HiJack is a NetWare utility by KDS Software which allows a user
to take over control of a workstation remotely; LHJ is the program
run on the controlling workstation
--------N-2F7ACB-----------------------------
INT 2F - LAN HiJack - LHJ - ???
AX = 7ACBh
BX = ???
Return: ???
Note: this function appears to be related to the keyboard
SeeAlso: AX=7ACCh
--------N-2F7ACC-----------------------------
INT 2F - LAN HiJack - LHJ - ???
AX = 7ACCh
BX = ???
Return: ???
Note: this function appears to be related to the mouse
SeeAlso: AX=7ACBh
--------N-2F7ACFBX0000-----------------------
INT 2F - LAN HiJack - LHR - INSTALLATION CHECK
AX = 7ACFh
BX = 0000h
Return: BX = segment of resident code if installed
Program: LAN HiJack is a NetWare utility by KDS Software which allows a user
to take over control of a workstation remotely; LHR is the program
run on the slave workstation
--------N-2F7AF0-----------------------------
INT 2F - Novell NetWare - DOSNP.EXE v1.30G - INSTALLATION CHECK
AX = 7AF0h
Return: AL = FFh if present
ES = 7AF0h
CX = PSP segment of resident code
--------N-2F7AF1-----------------------------
INT 2F - Novell NetWare - Access Server Driver - INSTALLATION CHECK
AX = 7AF1h
BL = sequence number (01h first driver, 02h second, 00h no driver)
Return: AX <> 7AF1h if present
BH = total number of drivers
---if BL nonzero on entry---
AL = number of ports provided by specified driver
ES:DI -> driver entry point
(see #02910,#02911,#02912,#02913,#02914,#02915,#02916,#02917)
ES:DX -> ID string
SeeAlso: INT 7A/BX=001Ch
(Table 02910)
Call Access Server driver "initialize port" function with:
AH = 01h
AL = port number (00h-0Fh)
ES:BX -> configuration parameter block (see #02923)
interrupts disabled
Return: CF clear if successful
CF set on error
SeeAlso: #02911
(Table 02911)
Call Access Server driver "get port status" function with:
AH = 02h
AL = port number (00h-0Fh)
interrupts disabled
Return: CF clear if successful
BL = transmitter status (see #02920)
BH = receiver status (see #02921)
DL = external status signals (see #02922)
CF set on error
interrupts disabled
SeeAlso: #02910,#02912,#02915
(Table 02912)
Call Access Server driver "get input from port" function with:
AH = 03h
AL = port number (00h-0Fh)
CX = size of data buffer
ES:BX -> buffer for data
interrupts disabled
Return: CF clear if successful
CF set on error
interrupts disabled
CX = number of bytes read
Note: the driver will add a NUL to the buffer when a break signal is detected
SeeAlso: #02912,#02913
(Table 02913)
Call driver "send output data to port" function with:
AH = 04h
AL = port number (00h-0Fh)
CX = number of bytes to send
ES:BX -> buffer containing data
interrupts disabled
Return: CF clear if successful
CF set on error
interrupts disabled
CX = number of bytes actually written
SeeAlso: #02912,#02914
(Table 02914)
Call driver "get I/O character counts" function with:
AH = 05h
AL = port number (00h-0Fh)
interrupts disabled
Return: CF clear if successful
BX = number of bytes pending transmission
CX = number of bytes available for reading
CF set on error
interrupts disabled
SeeAlso: #02912,#02913
(Table 02915)
Call driver "control XON/XOFF" function with:
AH = 06h
AL = port number (00h-0Fh)
DL = new state
(00h software flow control disabled, else enabled)
interrupts disabled
Return: CF clear if successful
CF set on error
interrupts disabled
SeeAlso: #02916
(Table 02916)
Call driver "get error counts and statistics" function with:
AH = 07h
AL = port number (00h-0Fh)
ES:BX -> buffer for statistics (see #02924)
interrupts disabled
Return: CF clear if successful
ES:BX buffer filled
CF set on error
interrupts disabled
SeeAlso: #02917,#02918,#02919
(Table 02917)
Call driver "general request" function with:
AH = 08h
AL = port number (00h-0Fh)
DX = requested operations
bit 0: flush transmit buffers
bit 1: flush receive buffers
bit 4: define XON/XOFF characters
ES:BX -> XON/XOFF characters (see #02925) if DX bit 4 set
interrupts disabled
Return: CF clear if successful
CF set on error
interrupts disabled
(Table 02918)
Call driver "deadman timer management" function with:
AH = 09h
AL = port number (00h-0Fh)
BX = next time interval in seconds (0000h to disable timer)
interrupts disabled
Return: CF clear
interrupts disabled
SeeAlso: #02919
(Table 02919)
Call driver "get buffer sizes" function with:
AH = 0Ah
AL = port number (00h-0Fh)
interrupts disabled
Return: CF clear if successful
BX = size of transmit buffer
CX = size of receive buffer
CF set on error
interrupts disabled
SeeAlso: #02918
(Table 02920)
Values for Access Server transmitter status:
00h uninitialized
01h ready, not transmitting
02h transmitting
03h XOFF received
04h transmitting, buffer full
05h XOFF received and buffer full
(Table 02921)
Values for Access Server receiver status:
00h uninitialized
01h ready
02h receive buffer full, data may have been lost
Bitfields for external status signals:
Bit(s) Description (Table 02922)
7,6 undefined
5 CTS active
4 DSR active
3 DCD active
2,1 undefined
0 ring indicator
Format of Access Server configuration parameter block:
Offset Size Description (Table 02923)
00h BYTE receive baud rate index
00h 50 bps, 01h 75 bps, 02h 110 bps, 03h 134.5 bps,
04h 150 bps, 05h 300 bps, 06h 600 bps, 07h 1200 bps,
08h 1800 bps, 09h 2000 bps, 0Ah 2400 bps, 0Bh 3600 bps,
0Ch 4800 bps, 0Dh 7200 bps, 0Eh 9600 bps, 0Fh 19200 bps,
10h 38400 bps, 11h 57600 bps, 12h 115200 bps
01h BYTE receive bits per character (0=5 bits..3=8 bits)
02h BYTE receive stop bits
03h BYTE receive parity
00h none, 01h odd, 02h even, 03h mark, 04h space
04h BYTE transmit baud rate index (same as receive baud rate)
05h BYTE transmit bits per character (0=5 bits..3=8 bits)
06h BYTE transmit stop bits
07h BYTE transmit parity (same as receive parity)
08h BYTE DTR state (00h off, 01h on)
09h BYTE RTS state (00h off, 01h on)
0Ah BYTE flow control (00h none, 01h XON/XOFF, 02h RTS/CTS, 03h both)
0Bh BYTE break control (00h off, 01h on)
Format of Access Server statistics:
Offset Size Description (Table 02924)
00h BYTE port number
01h BYTE external status signals (see #02922)
02h BYTE transmitter status (see #02920)
03h BYTE receiver status (see #02921)
04h DWORD number of characters received
08h DWORD number of characters transmitted
0Ch WORD input parity errors
0Eh WORD input framing errors
10h WORD lost characters due to hardware overrun
12h WORD lost characters due to data buffer overrun
Note: the counts are not allowed to wrap around; once a count reaches FFFFh
or FFFFFFFFh, it is no longer incremented
Format of Access Server XON/XOFF characters:
Offset Size Description (Table 02925)
00h BYTE 04h (number of bytes following)
01h BYTE transmit XON character
02h BYTE transmit XOFF character
03h BYTE receive XON character
04h BYTE receive XOFF character
--------N-2F7AFE-----------------------------
INT 2F U - Novell NetWare - DOSNP.EXE - INSTALLATION CHECK
AX = 7AFEh
Return: AL = FFh if present
ES = (data???) segment of DOSNP
Program: DOSNP.EXE provides "named pipes" support for DOS workstations running
NetWare
Note: the NetWare shell calls this function and refuses to load if DOSNP is
present
SeeAlso: AX=7A90h
--------N-2F7AFFBX0000-----------------------
INT 2F - Novell NetWare - TBMI v1.1+ - INSTALLATION CHECK / Windows SUPPORT
AX = 7AFFh
BX = 0000h
CX = 4E65h ("Ne")
DX = 7457h ("tW")
ES:DI -> Windows support procedure (see #02926)
Return: AL = FFh if installed
CX = configured sockets (14h)
DS:SI -> data table ???
ES:DI -> IPX far call handler
Notes: for IPX/SPX this call reportedly returns DS:SI pointing to the table
of pointers to service events queue head and tail
this function is also supported by IPXODI; v2.12 does not change DS,
but does set SI to an internal address
SeeAlso: AX=7AFFh/BX=0001h
(Table 02926)
Values Windows support procedure called with:
BP = function
0001h Get ECB
BX = socket number
Return: ES:SI -> ECB or 0000h:0000h if none available
0002h Count Listen ECBs
AX = BX = socket
Return: CX = number of listen ECBs for socket
(must be >= 2 for SPX to work)
0003h ???
0004h Inform task switcher of ECB locations
Note: registers other than those listed above are equal
to the values when IPX was called
Note: the support function will not be called if IPX is called with BX
bit 15 set
--------N-2F7AFFBX0001-----------------------
INT 2F - Novell NetWare - TBMI v1.1+, shell v3.01d - INSTALLATION CHECK???
AX = 7AFFh
BX = 0001h
CX = 4E65h ("Ne")
DX = 7457h ("tW")
Return: AL = FFh if installed
CX = ??? (8000h)
SI = ??? (or -> ???) (0002h and 0007h seen)
ES:DI -> IPX far call handler
ES:DX -> 6-byte data area ???
Note: this function is also supported by IPXODI, but IPXODI v2.12 does not
return ES:DX
SeeAlso: AX=7AFFh/BX=0000h
--------d-2F7F00-----------------------------
INT 2F - Jim Harper's CD-ROM redirector SCSI driver - INSTALLATION CHECK
AX = 7F00h
Return: AL = FFh if installed
SeeAlso: AX=7F01h"Harper",AX=7F02h"Harper",AX=7F03h"Harper"
--------P-2F7F00-----------------------------
INT 2F - PRINDIR v9.0 - INSTALLATION CHECK
AX = 7F00h
Return: AL = FFh if installed
BX = version (BH = major, BL = minor)
CX:DX -> ASCIZ signature "PRINDIR"
Range: AH=7Fh is the default, may be changed at installation time
Note: prior versions of PRINDIR used INT 7C or INT 7A
SeeAlso: AX=7F01h"PRINDIR",AX=7F02h"PRINDIR",AX=7F03h"PRINDIR"
SeeAlso: AX=7F06h"PRINDIR",AX=7F08h,AX=7F0Ah,AX=7F0Ch,AX=7F0Eh,INT 7C"PRINDIR"
--------d-2F7F01-----------------------------
INT 2F - Jim Harper's CD-ROM redirector SCSI driver - DO COMMAND
AX = 7F01h
DS:DX -> command record (see #02927)
Return: AL = status
00h successful
else error code
SeeAlso: AX=7F00h"Harper",AX=7F02h"Harper",INT 11/AH=FFh"SDLP"
SeeAlso: INT 21/AX=4402h"ASPI",INT 4F/AX=8100h
Format of CD-ROM redirector command record:
Offset Size Description (Table 02927)
00h BYTE ID
01h 10 BYTEs CDB (Command Descriptor Block) for operation (see #03236,#03237)
0Bh WORD segment of buffer
0Dh WORD offset of buffer
0Fh BYTE status
10h BYTE sense
12h WORD count
--------P-2F7F01-----------------------------
INT 2F - PRINDIR v9.0 - SET CAPTURE DEVICE
AX = 7F01h
DX = capture device (as used by /GET commandline option)
Return: AX = status
0000h successful
FFFFh invalid device
SeeAlso: AX=7F00h"PRINDIR",AX=7F02h"PRINDIR",AX=7F03h"PRINDIR"
SeeAlso: AX=7F05h"PRINDIR"
--------d-2F7F02-----------------------------
INT 2F - Jim Harper's CD-ROM redirector SCSI driver - DO RESET
AX = 7F02h
SeeAlso: AX=7F00h,AX=7F01h
--------P-2F7F02-----------------------------
INT 2F - PRINDIR v9.0 - SET DESTINATION DEVICE
AX = 7F02h
DX = destination device number (as used by /PUT commandline option)
Return: AX = status
0000h successful
FFFFh invalid device number
SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F04h"PRINDIR"
SeeAlso: AX=7F06h"PRINDIR"
--------d-2F7F03-----------------------------
INT 2F - Jim Harper's CD-ROM redirector SCSI driver - UNINSTALL
AX = 7F03h
Return: AL = status
00h successful
01h unable to uninstall
SeeAlso: AX=7F00h
--------P-2F7F03-----------------------------
INT 2F - PRINDIR v9.0 - SET CAPTURE FILENAME
AX = 7F03h
CX:DX -> ASCIZ name of capture file
Return: AX = status
0000h successful
FFFFh name too long
SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F04h"PRINDIR"
SeeAlso: AX=7F05h"PRINDIR",AX=7F07h"PRINDIR"
--------P-2F7F04-----------------------------
INT 2F - PRINDIR v9.0 - SET LOCK FILENAME
AX = 7F04h
CX:DX -> ASCIZ name of lock file
Return: AX = status
0000h successful
FFFFh invalid device number
SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F03h"PRINDIR"
SeeAlso: AX=7F05h,AX=7F06h,AX=7F08h,AX=7F0Ah,AX=7F0Bh
--------P-2F7F05-----------------------------
INT 2F - PRINDIR v9.0 - DUMP CAPTURE BUFFER
AX = 7F05h
Return: AX = status
0000h successful
SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F04h"PRINDIR",AX=7F06h
--------P-2F7F06-----------------------------
INT 2F - PRINDIR v9.0 - SET NORMAL TEXT COLOR
AX = 7F06h
DH = new attribute for normal text
Return: AX = status
0000h successful
SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F05h"PRINDIR",AX=7F07h
--------P-2F7F07-----------------------------
INT 2F - PRINDIR v9.0 - SET HIGHLIGHT TEXT COLOR
AX = 7F07h
DH = new attribute for highlighted text
Return: AX = status
0000h successful
SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F06h"PRINDIR",AX=7F08h
--------P-2F7F08-----------------------------
INT 2F - PRINDIR v9.0 - SET POPUP HOTKEY
AX = 7F08h
DH = new scancode for hotkey
Return: AX = status
0000h successful
SeeAlso: AX=7F00h"PRINDIR",AX=7F05h"PRINDIR",AX=7F09h,AX=7F0Bh,AX=7F0Dh
--------P-2F7F09-----------------------------
INT 2F - PRINDIR v9.0 - SET BYTE COUNTER DISPLAY
AX = 7F09h
DH = new state (00h off, 01h on)
Return: AX = status
0000h successful
SeeAlso: AX=7F00h"PRINDIR",AX=7F07h"PRINDIR",AX=7F08h,AX=7F0Ah,AX=7F0Ch
--------P-2F7F0A-----------------------------
INT 2F - PRINDIR v9.0 - SET FLUSH DELAY
AX = 7F0Ah
DX = number of clock ticks before flushing
Return: AX = status
0000h successful
SeeAlso: AX=7F00h"PRINDIR",AX=7F07h"PRINDIR",AX=7F09h,AX=7F0Bh,AX=7F0Ch
--------P-2F7F0B-----------------------------
INT 2F - PRINDIR v9.0 - SET MINIMUM DUMP SIZE
AX = 7F0Bh
DX = number of kilobytes to accumulate before dumping
Return: AX = status
0000h successful
SeeAlso: AX=7F00h"PRINDIR",AX=7F0Ah,AX=7F0Ch,AX=7F0Dh,AX=7F0Eh
--------P-2F7F0C-----------------------------
INT 2F - PRINDIR v9.0 - SET ECHO STATE
AX = 7F0Ch
DX = new state (00h echo off, 01h echo on)
Return: AX = status
0000h successful
SeeAlso: AX=7F00h"PRINDIR",AX=7F0Ah,AX=7F0Bh,AX=7F0Dh,AX=7F0Eh
--------P-2F7F0D-----------------------------
INT 2F - PRINDIR v9.0 - SHOW POPUP PARAMETER MENU
AX = 7F0Dh
Return: AX = status
0000h successful
else failed
SeeAlso: AX=7F00h"PRINDIR",AX=7F0Ah,AX=7F0Bh,AX=7F0Ch,AX=7F0Eh
--------P-2F7F0E-----------------------------
INT 2F - PRINDIR v9.0 - SUBMIT BYTE TO CURRENT DESTINATION DEVICE
AX = 7F0Eh
DL = byte to send to destination device
Return: AX = status
0000h successful
else failed
SeeAlso: AX=7F00h"PRINDIR",AX=7F0Ah,AX=7F0Bh,AX=7F0Ch,AX=7F0Dh
----------2F7F24-----------------------------
INT 2F - Multiplex - ???
AX = 7F24h
???
Return: ???
Note: called by PC/370, an IBM 370 emulator by Donald S. Higgins
----------2F7F26-----------------------------
INT 2F - Multiplex - ???
AX = 7F26h
???
Return: ???
Note: called by PC/370, an IBM 370 emulator by Donald S. Higgins
--------N-2F8000-----------------------------
INT 2F - EASY-NET - INSTALLATION CHECK
AX = 8000h
Return: AL = 00h not installed
FFh installed
Program: EASY-NET is a shareware two-machine serial-port network
--------N-2F8000-----------------------------
INT 2F - Nanosoft, Inc. TurboNET server - INSTALLATION CHECK
AX = 8000h
Return: AL = FFh if installed
BX = CS of resident code
CX = ??? (03FCh)
Program: TurboNET is a NetBIOS-based file redirector and server; a
demonstration version may be downloaded from Nanosoft's BBS
SeeAlso: AX=8100h
--------t-2F8000-----------------------------
INT 2F - CS_TSR specification - TSR INSTALLATION CHECK
AX = 8000h
DS:SI -> 4-byte CS_TSR signature (11h 43h 53h 10h)
Return: AL = status
00h no CS_TSR-compliant TSRs installed
01h installed, but signature did not match
FFh installed, signature matches
ES:DI -> resident process block (see #02928) of last installed
TSR (if DS:SI pointed at signature on entry)
Program: the CS_TSR specification is a standardized TSR interface by Compact
Soft group in Kiev, Ukraine
Desc: determine whether any CS_TSR-compliant TSRs are installed on the
selected multiplex number
Range: AH=80h to AH=FFh
SeeAlso: AX=8001h"CS_TSR",AX=8002h"CS_TSR",AX=8003h"CS_TSR"
Format of CS_TSR process block:
Offset Size Description (Table 02928)
00h 4 BYTEs CS_TSR signature 11h 43h 53h 10h
04h BYTE INT 2F multiplex number
05h WORD virtual process handle (unique among loaded TSRs)
07h 2 BYTEs version (binary minor version, then major version)
09h WORD PSP segment of TSR
0Bh DWORD pointer to ASCIZ program name
0Fh 3 BYTEs program creation date (day, month, year)
12h 3 BYTEs process start time (seconds, minutes, hours)
15h 3 BYTEs process start date (day, month, year)
--------F-2F8000DX0000-----------------------
INT 2F - FaxBIOS interface - INSTALLATION CHECK
AX = 8000h
DX = 0000h
DI = 0000h
Return: AL = FFh if installed
DX:DI -> signature "FaxBiosjpc"
Range: AH=80h to AH=FFh, selected by scanning multiplex numbers for signature
SeeAlso: AH=2Ah,AX=80FBh
--------N-2F8001-----------------------------
INT 2F - Nanosoft, Inc. TurboNET server - ???
AX = 8001h
DS:SI -> 16-byte buffer for ???
Return: AH = status
00h successful
01h error (TurboNET busy)
Note: makes NetBIOS calls
--------t-2F8001-----------------------------
INT 2F - CS_TSR specification - GET HANDLE (TSR-SPECIFIC INSTALLATION CHECK)
AX = 8001h
DS:SI -> ASCIZ signature string for desired TSR (see #02929)
Return: BX = process handle or 0000h if specified TSR not installed
ES:DI -> process block for TSR (see #02928) if BX<>0000h
Note: A widely-available copy of ASCII billing itself as "ASCII 2.OO by
Nick Zaikin Jr." is in fact a hacked copy of the Compact Soft
ASCII v4.23 which is identical except for the changed attribution
and version (in fact, some instances of "4.23" were missed); the
hacked copy requires the signature string
"ASCII 2.OO by Nick Zaikin Jr." instead of the unhacked version's
simple signature "ASCII"
SeeAlso: AX=8000h"CS_TSR",AX=8002h"CS_TSR"
(Table 02929)
Values for CS_TSR signature strings:
"ASCII" ASCII, a popup ASCII table with character input
"Halculator" HALC, a 32-bit RPN WYSIWIH calculator with undo and ptr support
"AntiTurbo" AT!, an intelligent system slow-down utility
--------t-2F8002-----------------------------
INT 2F - CS_TSR specification - GET PROCESS BLOCK BY PROCESS HANDLE
AX = 8002h
BX = process handle for TSR (see AX=8001h"CS_TSR")
Return: ES:DI -> process block for specified TSR (see #02928)
unchanged if no match for process handle
Note: This function is used to allocate a process handle when the TSR
installs itself, by setting ES:DI to point at something other than
a CS_TSR process block's signature string and iterating through the
possible process handles (0001h to FFFFh) until ES:DI is returned
unchanged
SeeAlso: AX=8000h"CS_TSR",AX=8001h"CS_TSR",AX=8003h"CS_TSR"
--------t-2F8003-----------------------------
INT 2F - CS_TSR specification - CUSTOM SUBFUNCTION
AX = 8003h
BX = process handle for TSR (see AX=8001h"CS_TSR")
other registers vary by TSR
Return: vary by TSR, unchanged if not supported
Program: the CS_TSR specification is a standardized TSR interface by Compact
Soft group in Kiev, Ukraine
SeeAlso: AX=8000h"CS_TSR",AX=8001h"CS_TSR",AX=8002h"CS_TSR"
--------F-2F80FB-----------------------------
INT 2F - FaxBIOS interface - COMMAND SUBMISSION
AX = 80FBh
BX = function number (see #02930)
DX:DI -> command buffer
(see #02932,#02935,#02936,#02937,#02938,#02939,#02944,#02950,#02957)
Return: AL = FFh if submitted OK
CX = result code (see #02931)
Range: AH=80h to AH=FFh, selected by scanning multiplex numbers for signature
SeeAlso: AX=8000h"FaxBIOS",AX=CBDDh
(Table 02930)
Values for FaxBIOS function number:
0001h SYS_LOGIN
0002h SYS_LOGOUT
0003h SYS_GET_FAXAPP_INFO
0004h STAT_IO_GET
0005h STAT_FAXBIOS_GET
0006h PDIR_OPEN
0007h PDIR_CLOSE (see #02940)
0008h PDIR_READ_PERSON (see #02941)
0009h PDIR_PARTIAL_READ
000Ah PDIR_READ_GROUP
000Bh PDIR_READ_MEMBER_LIST
000Ch PDIR_WRITE_PERSON
000Dh PDIR_WRITE_GROUP
000Eh PDIR_DELETE_PERSON
000Fh PDIR_DELETE_GROUP
0010h PDIR_READ_GROUP_LIST
0011h PDIR_IN_GROUP
0012h PDIR_OUT_GROUP
0013h SCHED_OPEN (see #02942)
0014h SCHED_ADD_DEST (see #02943)
0015h SCHED_ADD_FILE (see #02944)
0016h SCHED_SET_PARAMS (see #02945)
0017h SCHED_CANCEL (see #02942)
0018h SCHED_CLOSE (see #02946)
0019h SLOG_OPEN (see #02947)
001Ah SLOG_CLOSE (see #02947)
001Bh SLOG_SHORT_ENV_STAT
001Ch SLOG_LONG_ENV_STAT
001Dh SLOG_DEST_STAT
001Eh SLOG_FILE_STAT
001Fh SLOG_CANCEL_ENV
0020h RLOG_OPEN (see #02947)
0021h RLOG_CLOSE (see #02947)
0022h RLOG_READ
0023h GRAPH_GET_FILE_TYPE (see #02948)
0024h GRAPH_EXPORT_FILE
0025h GRAPH_GET_LAYOUT_INFO
0026h GRAPH_CREATE_FILE (see #02949)
0027h GRAPH_CLOSE_FILE (see #02950)
0028h GRAPH_CREATE_PAGE (see #02951)
0029h GRAPH_WRITE (see #02952)
002Ah GRAPH_END_PAGE
002Bh GRAPH_OPEN_FILE (see #02953)
002Ch GRAPH_GOTO_PAGE (see #02954)
002Dh GRAPH_READ (see #02955)
002Eh IOCTL_GET
002Fh IOCTL_SET
0030h IOCTL_ANSWER_FAX (see #02956)
0031h IOCTL_DIAL (see #02957)
(Table 02931)
Values for FaxBIOS result code:
0000h successful
0001h not prepared or servicing another client (busy)
0002h call failed due to sharing (LOCKED)
0003h logged-in client limit reached (FULL)
0004h transport denied (TRANSPORT_DENIED)
0005h not implemented (NOT_IMPLEMENTED)
0006h aborted while in progress (ABORTED)
0007h permissions denied (PERMISSION_DENIED)
0008h requested data is no longer valid (NO_LONGER_VALID)
0080h unspecified system error occurred
0081h an internal file was not found
0082h an internal file could not be created
0083h an internal file could not be opened
0084h an internal file could not be closed
0085h error occurred writing to an internal file
0086h error occurred reading from an internal file
0087h bad or corrupted file encountered
0088h an access violation occurred
0089h an internal file is empty
008Ah insufficient memory to process request
008Bh FaxBIOS was unable to issue a handle
008Ch an error internal to FaxBIOS occurred
008Dh no room on disk
0100h unspecified error accessing client file
0101h file not found
0102h creation fault
0103h open fault
0104h close fault
0105h write fault
0106h read fault
0107h file corrupted
0108h access violation
0109h empty file
0200h unspecified argument error
0201h bad function
0202h bad option
0203h bad structure size
0204h bad buffer size
0205h bad client ID
0300h unspecified error with token
0301h cover sheet token was invalid
0302h logo token was invalid
0303h signature token was invalid
0304h font token was invalid
0305h phone directory token was invalid
0306h outbound route token was invalid
0307h priority token was invalid
0308h sort token was invalid
0309h billing token was invalid
0400h unspecified handle error
0401h bad Phone Directory handle
0402h bad scheduling handle
0403h bad read send log handle
0404h bad read receive log handle
0405h bad graphics handle
0500h data passed in structure was invalid
0501h name field given is invalid
0502h phone number given is invalid
0503h poll code submitted is invalid
0504h file type constant was invalid
0505h BFT constant not defined or supported
0506h resolution not defined or supported
0507h page length not defined or supported
0508h page width not defined or supported
0509h date & time requested are ridiculous
050Ah Subject text was not an ASCIZ string
050Bh From text was not an ASCIZ string
050Ch requested envelope ID was not found
050Dh requested envelope ID is not valid
050Eh envelope requested was not found
050Fh destination index is out of range
0510h file index is out of range
0511h index into receive log is out of range
0512h file name specified was incomplete or invalid
0513h page selected was out of range
0514h bit width more than byte width
0515h mode for open is not defined
0516h person index is out of range
0517h person ID is out of range
0518h group index out of range or invalid
0519h group ID out of range or invalid
051Ah range of indices to read is invalid
051Bh group name given is invalid
051Ch field_to_use is badly specified
051Dh predicate invalid for field specified
0600h unspecified client procedure error
0601h device of interest is not present
0602h device of interest has been removed
0603h device of interest is not responding
0604h device of interest is disabled
0605h could not dial because device was in use
0606h maximum destination limit exceeded
0607h maximum file limit exceeded
0608h scheduling closed with no destination
0609h scheduling closed with no files or poll
060Ah scheduling closed with no parameters specified
060Bh file type specified does not match file
060Ch file type specified is not supported
060Dh file submitted is not exportable
060Eh file type specified is not imageable
060Fh error converting file
0610h envelope could not be cancelled
0611h Phone Directory is full
0612h record is already in the Phone Directory
0613h selected group in Phone Directory is full
0614h person is already in the group
0615h person is not in the group & cannot be removed
0616h a graphics file to be created already exists
0617h a graphics file to be read is empty
0618h GRAPH_CREATE_PAGE called before GRAPH_END_PAGE
0619h graph read or write attempted without goto or create
061Ah graph page contains no data
061Bh Phone Directory is already open for this client
061Ch schedule log is already open for this client
061Dh receive log is aready open for this client
061Eh Phone Directory function requires write mode
0800h denied exclusive use of the API
Format of FaxBIOS SYS_LOGIN command buffer:
Offset Size Description (Table 02932)
00h WORD structure size
02h WORD function number
04h WORD return code
06h WORD client ID
08h WORD API Major Version
0Ah WORD API Minor Version
0Ch DWORD reserved for manufacturer's use
10h 22 BYTEs manufacturer's ID
26h WORD highest possible device number
28h WORD maximum destinations per envelope
2Ah WORD maximum files per envelope
2Ch WORD FaxBIOS capabilities (see #02933)
2Eh DWORD T.30 capabilities (see #02934)
32h WORD IPC handle
34h DWORD amount of memory needed to load
38h WORD scope (00h for public, nonzero for private)
3Ah 6 BYTEs future expansion
40h WORD structure size
Bitfields for FaxBIOS capabilities:
Bit(s) Description (Table 02933)
0 transmit supported
1 receive supported
2 IOCTL supported
3 IOCTL_DIAL supported
4 IOCTL_ANSWER_FAX supported
5 manual transmit supported
6 optional phone services supported
7 canonical phone objects
8 seam with next supported
Bitfields for T.30 capabilities:
Bit(s) Description (Table 02934)
0 low vertical resolution (minimum)
1 high vertical resolution
2 page width 107mm (4.21 in)
3 page width 151mm (5.91 in)
4 page width 215mm (8.46 in) (minimum)
5 page width 255mm (10.04 in)
6 page width 303mm (11.93 in)
7 unused
8 page length 297mm (11.69 in) (minimum)
9 page length 364mm (14.33 in)
10 page length 279mm (11 in)
11 page length unlimited
12 Group 4 resolution 300x300
13 Group 4 resolution 400x400
14 able to respond to poll from remote
15 able to poll remote
16 binary file transfer supported
Format of FaxBIOS SYS_LOGOUT command buffer:
Offset Size Description (Table 02935)
00h WORD structure size
02h WORD function number
04h WORD return code
06h WORD client ID
08h DWORD client tag (for client's internal use)
0Ch 6 BYTEs future expansion
12h WORD structure size
Format of FaxBIOS SYS_GET_FAXAPP_INFO command buffer:
Offset Size Description (Table 02936)
00h 12 BYTEs common data (see #02935)
0Ch 80 BYTEs FaxBIOS data
5Ch 80 BYTEs default cover
ACh 80 BYTEs default logo
FCh 80 BYTEs default signature
14Ch 80 BYTEs default font 10
19Ch 80 BYTEs default font 165
1ECh 80 BYTEs default user font
23Ch 80 BYTEs default Pdir
28Ch 80 BYTEs default sort
2DCh 10 BYTEs default bill
2E6h 10 BYTEs default route
2F0h 40 BYTEs default cover sheet form
318h 34 BYTEs valid dial characters
33Ah 6 BYTEs local country code
340h 6 BYTEs local city or area code
346h 6 BYTEs future expansion
34Ch WORD structure size
Format of FaxBIOS STAT_IO_GET command buffer:
Offset Size Description (Table 02937)
00h 12 BYTEs common data (see #02935)
0Ch WORD device number
0Eh WORD current activity
10h WORD number of rings (if ringing)
12h WORD number of fascimiles transmitted
14h WORD number of fascimiles received
16h WORD status of last transmission
18h WORD envelope number of last transmission
1Ah WORD index of last destination in envelope
1Ch WORD status of last reception
1Eh WORD current page (if session in progress)
20h 80 BYTEs current file
70h 104 BYTEs remote number
D8h 20 BYTEs last name
ECh 20 BYTEs first name
100h 32 BYTEs company name
120h 32 BYTEs notes
140h WORD current envelope ID (if sending)
142h WORD total pages in transmission (if sending)
144h 6 BYTEs future expansion
14h WORD structure size
Format of FaxBIOS STAT_FAXBIOS_GET command buffer:
Offset Size Description (Table 02938)
00h 12 BYTEs common data (see #02935)
0Ch WORD status ID
0Eh WORD currenty FaxBIOS function number
10h WORD current Client ID being serviced
12h WORD number of things to do
14h WORD number of them done
16h WORD number of pages to do (if any)
18h WORD number of them done
1Ah WORD number of files to do
1Ch WORD number of them done
1Eh 80 BYTEs current File
6Eh WORD 0 if all devices are idle
70h WORD number of fascimiles transmitted
72h WORD number of fascimiles received
74h WORD status of last transmission in system
76h WORD envelope ID of last transmission
78h WORD index of last destination in envelope
7Ah WORD status of last reception in system
7Ch DWORD time of next transmission
80h 6 BYTEs future expansion
86h WORD structure size
Format of FaxBIOS PDIR_OPEN command buffer:
Offset Size Description (Table 02939)
00h 12 BYTEs common data (see #02935)
0Ch 80 BYTEs Phone Directory token
5Ch 80 BYTEs sort order token
ACh WORD open Mode (0 = read, 1 = write)
AEh WORD Phone Directory handle
B0h WORD number of people
B2h WORD number of groups
B4h WORD bitmap of fields supported by partial read
B6h 6 BYTEs future expansion
BCh WORD structure size
Format of FaxBIOS PDIR_CLOSE command buffer:
Offset Size Description (Table 02940)
00h 12 BYTEs common data (see #02935)
0Ch WORD Phone Directory handle
0Eh 6 BYTEs future expansion
14h WORD structure size
Format of FaxBIOS PDIR_READ_PERSON command buffer:
Offset Size Description (Table 02941)
00h 12 BYTEs common data (see #02935)
0Ch WORD Phone Directory handle
0Eh WORD retrieve by index
10h WORD person ID or index
12h WORD how many groups person is in
14h WORD person ID
16h 20 BYTEs last name
2Ah 20 BYTEs first name
3Eh 32 BYTEs company
5Eh 32 BYTEs notes
7Eh 6 BYTEs FAX country code
84h 6 BYTEs FAX city/area code
8Ah 14 BYTEs FAX local number
98h 14 BYTEs FAX extension
A6h 24 BYTEs reserved
BEh 6 BYTEs voice country code
C4h 6 BYTEs voice city/area code
CAh 14 BYTEs voice local number
D8h 14 BYTEs voice extension
E6h 24 BYTEs reserved
FEh 10 BYTEs outbound routing information
108h 10 BYTEs billing information, credit card etc
112h DWORD remote FAX capabilities
116h 21 BYTEs T.30 poll code of FAX number
12Bh 15 BYTEs reserved
13Ah 6 BYTEs future expansion
140h WORD structure size
Format of FaxBIOS SCHED_OPEN, SCHED_CANCEL command buffer:
Offset Size Description (Table 02942)
00h 12 BYTEs common data (see #02935)
0Ch WORD scheduler handle
0Eh 6 BYTEs future expansion
14h WORD structure size
Format of FaxBIOS SCHED_ADD_DEST command buffer:
Offset Size Description (Table 02943)
00h 12 BYTEs common data (see #02935)
0Ch WORD schedule handle
0Eh WORD device number if manual send wanted
10h WORD non-zero if poll desired
12h WORD person ID
14h 20 BYTEs last name
28h 20 BYTEs first name
3Ch 32 BYTEs company
5Ch 32 BYTEs notes
7Ch 6 BYTEs FAX country code
82h 6 BYTEs FAX city/area code
88h 14 BYTEs FAX local number
96h 14 BYTEs FAX extension
A4h 24 BYTEs reserved
BCh 6 BYTEs voice country code
C2h 6 BYTEs voice city/area code
C8h 14 BYTEs voice local number
D6h 14 BYTEs voice extension
E4h 24 BYTEs reserved
FCh 10 BYTEs outbound routing information
106h 10 BYTEs billing information, credit card etc
110h DWORD remote FAX capabilities
114h 21 BYTEs T.30 poll code of FAX number
129h 15 BYTEs reserved
138h 6 BYTEs future expansion
13Eh WORD structure size
SeeAlso: #02944
Format of FaxBIOS SCHED_ADD_FILE command buffer:
Offset Size Description (Table 02944)
00h 12 BYTEs common data (see #02935)
0Ch WORD schedule handle
0Eh WORD file type
0000h unidentified
0001h native file format
0002h ASCII
0003h FaxBIOS Tiff Class F
10h 80 BYTEs file name
60h 80 BYTEs font token
B0h WORD conversion options bitmap
B2h WORD resolution
0000h standard 98 lines per inch, 204 dpi
0001h fine 196 lines per inch, 204 dpi
0002h Group4 300 dpi
0003h Group4 400 dpi
B4h WORD page length
0000h 279 mm (11 in)
0001h 297 mm (11.69 in)
0002h 364 mm (14.33 in)
0003h unlimited
B6h WORD page width
0000h 215 mm (8.46 in)
0001h 255 mm (10.04 in)
0002h 303 mm (11.93 in)
0003h 151 mm (5.91 in)
0004h 107 mm (4.21 in)
B8h WORD binary file transfer specification
0000h only as FAX
0001h only as file (for non-faxable files)
0002h as file when possible else FAX
BAh WORD seam flag (nonzero for seam with next)
BCh WORD delete flag (nonzero to delete when done)
BEh 6 BYTEs future expansion
C4h WORD structure size
SeeAlso: #02943,#02945
Format of FaxBIOS SCHED_SET_PARAMS command buffer:
Offset Size Description (Table 02945)
00h 12 BYTEs common data (see #02935)
0Ch WORD scheduler handle
0Eh DWORD time to send
10h 10 BYTEs priority token
1Ch 80 BYTEs logo file token
6Ch 80 BYTEs signature file token
BCh 80 BYTEs cover page token
10Ch 40 BYTEs Subject text
134h 40 BYTEs From text
15Ch WORD user ID
15Eh 6 BYTEs future expansion
164h WORD structure size
SeeAlso: #02943,#02944,#02946
Format of FaxBIOS SCHED_CLOSE command buffer:
Offset Size Description (Table 02946)
00h 12 BYTEs common data (see #02935)
0Ch WORD scheduler handle
0Eh WORD envelope ID generated
10h 6 BYTEs future expansion
16h WORD structure size
SeeAlso: #02945
Format of FaxBIOS SLOG_OPEN, SLOG_CLOSE, RLOG_OPEN, RLOG_CLOSE command buffer:
Offset Size Description (Table 02947)
00h 12 BYTEs common data (see #02935)
0Ch WORD log handle
0Eh WORD number of entries
10h 6 BYTEs future expansion
16h WORD structure size
Format of FaxBIOS GRAPH_GET_FILE_TYPE command buffer:
Offset Size Description (Table 02948)
00h 12 BYTEs common data (see #02935)
0Ch 80 BYTEs filename
5Ch WORD file type
0000h unidentified
0001h native file format
0002h ASCII
0003h FaxBIOS Tiff Class F
5Eh WORD bitmap of supported capabilities
60h 6 BYTEs future expansion
66h WORD structure size
SeeAlso: #02949,#02950
Format of FaxBIOS GRAPH_CREATE_FILE command buffer:
Offset Size Description (Table 02949)
00h 12 BYTEs common data (see #02935)
0Ch 80 BYTEs filename
5Ch WORD graph handle
5Eh 6 BYTEs future expansion
64h WORD structure size
SeeAlso: #02948,#02950,#02951
Format of FaxBIOS GRAPH_CLOSE_FILE, GRAPH_END_PAGE command buffer:
Offset Size Description (Table 02950)
00h 12 BYTEs common data (see #02935)
0Ch WORD graph handle
0Eh 6 BYTEs future expansion
14h WORD structure size
SeeAlso: #02949,#02951
Format of FaxBIOS GRAPH_CREATE_PAGE command buffer:
Offset Size Description (Table 02951)
00h 12 BYTEs common data (see #02935)
0Ch WORD graph handle
0Eh WORD resolution
10h WORD page width
12h 6 BYTEs future expansion
18h WORD structure size
SeeAlso: #02949,#02950,#02952
Format of FaxBIOS GRAPH_WRITE_PAGE command buffer:
Offset Size Description (Table 02952)
00h 12 BYTEs common data (see #02935)
0Ch WORD graph handle
0Eh DWORD pointer to storage for image
12h WORD band height in lines
14h WORD width of page image in bytes
16h WORD facsimile page width constant
18h WORD width of page image in bits
1Ah WORD number of bytes actually processed
1Ch 6 BYTEs future expansion
22h WORD structure size
SeeAlso: #02951,#02953
Format of FaxBIOS GRAPH_OPEN_FILE command buffer:
Offset Size Description (Table 02953)
00h 12 BYTEs common data (see #02935)
0Ch 80 BYTEs filename
5Ch WORD file type
5Eh WORD graph handle
60h WORD number of pages
62h 6 BYTEs future expansion
68h WORD structure size
SeeAlso: #02952,#02954
Format of FaxBIOS GRAPH_GOTO_PAGE command buffer:
Offset Size Description (Table 02954)
00h 12 BYTEs common data (see #02935)
0Ch WORD graph handle
0Eh WORD page number
10h WORD vertical resolution
12h WORD page width
14h DWORD page length
18h 6 BYTEs future expansion
1Eh WORD structure size
SeeAlso: #02952,#02953,#02955
Format of FaxBIOS GRAPH_READ_PAGE command buffer:
Offset Size Description (Table 02955)
00h 12 BYTEs common data (see #02935)
0Ch WORD graph handle
0Eh DWORD pointer to storage for image
12h WORD band height in lines
14h WORD width of page image in bytes
16h WORD facsimile page width constant
18h WORD width of page image in bits
1Ah WORD number of bytes actually processed
1Ch 6 BYTEs future expansion
22h WORD structure size
Format of FaxBIOS IOCTL_ANSWER_FAX command buffer:
Offset Size Description (Table 02956)
00h 12 BYTEs common data (see #02935)
0Ch WORD device number
0Eh 6 BYTEs future expansion
14h WORD structure size
SeeAlso: #02957
Format of FaxBIOS IOCTL_DIAL command buffer:
Offset Size Description (Table 02957)
00h 12 BYTEs common data (see #02935)
0Ch WORD device number
0Eh 6 BYTEs country code
14h 6 BYTEs city or area code
1Ah 14 BYTEs local number
28h 14 BYTEs extension
36h 14 BYTEs reserved
4Eh 6 BYTEs future expansion
54h WORD structure size
SeeAlso: #02956
--------N-2F8100-----------------------------
INT 2F U - Nanosoft, Inc. TurboNET redirector - INSTALLATION CHECK
AX = 8100h
Return: AL = FFh if installed
Program: TurboNET is a NetBIOS-based file redirector and server; a
demonstration version may be downloaded from Nanosoft's BBS
SeeAlso: AX=8000h"TurboNET"
--------N-2F8101-----------------------------
INT 2F U - Nanosoft, Inc. TurboNET redirector - ???
AX = 8101h
Return: AL = ???
DL = ???
--------N-2F8102-----------------------------
INT 2F U - Nanosoft, Inc. TurboNET redirector - ???
AX = 8102h
Return: AL = ???
DL = ???
--------N-2F8103-----------------------------
INT 2F U - Nanosoft, Inc. TurboNET redirector - GET MACHINE NAME???
AX = 8103h
ES:DI -> 17-byte buffer
Return: buffer filled
--------N-2F8104-----------------------------
INT 2F U - Nanosoft, Inc. TurboNET redirector - ???
AX = 8104h
BL = ???
BH = ???
CX = ???
DX = ???
DS:SI -> 16-byte buffer containing ???
Return: AL = 00h ???
--------N-2F8105-----------------------------
INT 2F U - Nanosoft, Inc. TurboNET redirector - ???
AX = 8105h
CX = ??? (don't change current value if 0000h)
DX = ??? (don't change current value if 0000h)
Return: AL = 00h successful
--------s-2F8200-----------------------------
INT 2F - RESPLAY - SAMPLE/PLAYBACK
AX = 8200h
DX:DI -> start of sample space
CX:BX = length in bytes
Return: AX = status (see #02958)
Program: RESPLAY is a freeware sound sampling/playback utility by Mark J. Cox
SeeAlso: AX=8201h"RESPLAY",AX=8210h
(Table 02958)
Values for RESPLAY status:
1000h successful
2000h not initialized (see AX=8210h)
other RESPLAY not installed
--------G-2F8200-----------------------------
INT 2F U - Nanosoft, Inc. CAPDOS - INSTALLATION CHECK
AX = 8200h
Return: AL = FFh if installed
Program: CAPDOS is a TSR by Nanosoft, Inc. which allows INT 21h calls to be
captured and recorded for later analysis
SeeAlso: AX=8100h,AX=8201h"CAPDOS",AX=8202h"CAPDOS",AX=8203h"CAPDOS"
SeeAlso: AX=8204h"CAPDOS"
--------s-2F8201-----------------------------
INT 2F - RESPLAY - INSTALLATION CHECK
AX = 8201h
Return: AX = 7746h if installed
SeeAlso: AX=8202h"RESPLAY",AX=8210h
--------G-2F8201-----------------------------
INT 2F - Nanosoft, Inc. CAPDOS - CLEAR QUEUE
AX = 8201h
Note: resets queue of captured INT 21 calls
SeeAlso: AX=8200h"CAPDOS"
--------s-2F8202-----------------------------
INT 2F - RESPLAY - UNINSTALL
AX = 8202h
Return: AX = status
1000h successful
SeeAlso: AX=8201h"RESPLAY",AX=8210h"RESPLAY"
--------G-2F8202-----------------------------
INT 2F - Nanosoft, Inc. CAPDOS - START COLLECTION
AX = 8202h
SeeAlso: AX=8200h"CAPDOS",AX=8203h"CAPDOS"
--------G-2F8203-----------------------------
INT 2F - Nanosoft, Inc. CAPDOS - STOP COLLECTION
AX = 8203h
SeeAlso: AX=8200h"CAPDOS",AX=8202h"CAPDOS",AX=8204h"CAPDOS"
--------G-2F8204-----------------------------
INT 2F - Nanosoft, Inc. CAPDOS - GET QUEUE PARAMETERS
AX = 8204h
Return: AH = flag: queue wrapped if nonzero
BX = index of current start of queue
CX = size of queue in entries
SeeAlso: AX=8200h"CAPDOS",AX=8202h"CAPDOS",AX=8205h"CAPDOS"
--------G-2F8205-----------------------------
INT 2F - Nanosoft, Inc. CAPDOS - GET QUEUE ITEM
AX = 8205h
BX = queue item number
Return: AX,BX,CX,DX,SI,DI,DS,ES as on entry to captured DOS call
SeeAlso: AX=8200h"CAPDOS",AX=8204h"CAPDOS"
--------s-2F8210-----------------------------
INT 2F - RESPLAY - INITIALIZE
AX = 8210h
BL = sound device number (see #02959)
BH = sample rate in multiples of 250 Hz (14h to A0h)
CL = direction
00h playback
01h sample
Return: AX = status (see #02958)
SeeAlso: AX=8200h"RESPLAY",AX=8220h"MODRES"
(Table 02959)
Values for RESPLAY sound device:
00h printer port LPT1
01h printer port LPT2
02h prototype board at I/O address 0300h
03h printer port (alternative LPT1)
04h internal speaker
--------s-2F8220-----------------------------
INT 2F - MODRES - PLAY MODULE
AX = 8220h
DX:CX -> MODPARM structure (see #02960)
Return: AX = status
5722h succesful
2000h parameters out of range
other MODRES not installed
SeeAlso: AX=8221h,AX=8223h,AX=8225h,AX=8227h,AX=8200h"RESPLAY"
Format of MODPARM Structure:
Offset Size Description (Table 02960)
00h WORD signature 504Dh ("MP" = Modparm)
02h BYTE output device (see #02962 at INT 2F/AX=8221h)
03h WORD segment of start of main module (pattern) data
05h 31 WORDs segment of start of sample numbers 1-31
43h BYTE pattern at which to start playing (00h to 7Fh)
44h BYTE function
00h play from pattern [offset 43h] until end of the song
01h play indicated pattern [offset 43h] only
45h BYTE Machine speed
00h 10-12Mhz
01h 12-25Mhz (default)
02h 25Mhz+
03h mix speed 10kHz (fast 8Mhz machines)
04h mix speed 12kHz (10Mhz machines)
05h mix speed 13kHz
06h mix speed 8kHz (test for 8Mhz machines)
46h BYTE allow >64k sample playing
80h MOD has samples >64k in it
else all samples in MOD are <64k
Notes: Main module data and all samples must start on segment boundaries.
In version 2.00 (ONLY) this function carries on playing (works in
the background)
SeeAlso: #02961
--------s-2F8221-----------------------------
INT 2F - MODRES - INSTALLATION CHECK
AX = 8221h
Return: AX = status
5722h successful
other MODRES not installed
BX = BCD version number (BH = major, BL = minor)
DX:CX -> Output Device structure (read-only) (see #02961)
SeeAlso: AX=8220h,AX=8222h,AX=8225h,AX=8227h
Format of Output Device structure [array]:
Offset Size Description (Table 02961)
00h 20 BYTEs ASCIZ name of the output device
(end of list if first char is FFh)
14h WORD apparently always FFFFh
16h WORD 0000h if output device not available
else first I/O port for the output device
18h WORD second I/O port for the output device (for example
if it is stereo)
000oh if only one port used or device is not available
1Ah 7 BYTEs ???
SeeAlso: #02960,#02962
(Table 02962)
Values for MODRES v1.52 output device index:
00h PC speaker
01h D/A Converter on LPT1
02h D/A Converter on LPT2
03h D/A Converter on LPT3
04h D/A Converter on LPT4
05h D/A Converter on LPT1&LPT2 (stereo)
06h D/A Converter on LPT1&LPT2 (mono)
07h Sound Blaster (port 02x0h)
08h User Defined D/A (mono)
09h User Defined D/A (stereo)
0Ah Stereo-on-1
0Bh Disney SS su LPT1
0Ch Disney SS su LPT2
0Dh Disney SS su LPT3
0Eh Disney SS su LPT4
Note: this list may vary between versions of MODRES
--------s-2F8222-----------------------------
INT 2F - MODRES - UNINSTALL
AX = 8222h
Return: AX = code segment of the program
Note: this function does not release the TSRs memory; the caller must do so
SeeAlso: AX=8220h,AX=8221h,AX=8223h
--------s-2F8223-----------------------------
INT 2F - MODRES - PLAY SAMPLE
AX = 8223h
DX:CX -> SAMPARM structure (see #02963)
Return: AX = status
5722h succesful
2000h parameters out of range
other MODRES not installed
SeeAlso: AX=8221h,AX=8224h,AX=8225h,AX=8226h
Format of SAMPARM Structure:
Offset Size Description (Table 02963)
00h WORD signature 5053h ("SP" = SAMPARM)
02h WORD segment of start of sample to play
04h WORD length of sample (IN WORD)
06h BYTE output device (see #02962 at INT 2F/AX=8221h)
07h WORD pitch to play (see #02964)
09h BYTE volume (from 00h to 40h)
0Ah WORD loop start
0Ch WORD loop length
0Eh BYTE machine speed (see INT 2F/AX=8220h)
SeeAlso: #02960
(Table 02964)
Values for Pitch to play::
C 0 is 06B0h
C#0 is 06B0h / 2^(1/12)
D 0 is (06B0h / 2^(1/12)) / 2^(1/12)
...
Note: C 1 is 06B0h / 2
C 2 is 06B0h / 4
etc.
SeeAlso: #02963
--------s-2F8224-----------------------------
INT 2F - MODRES - ???
AX = 8224h
DX:CX -> ???
Return: ???
SeeAlso: AX=8221h,AX=8223h,AX=8224h
--------s-2F8225-----------------------------
INT 2F - MODRES v2.00+ - GET LOCATION IN MOD
AX = 8225h
Return: AL = status
00h playing
01h reached end or stopped
AH = speed of MOD
BX = position within pattern 0000h-0400h
CL = position within the song (track number)
SeeAlso: AX=8220h,AX=8221h,AX=8223h,AX=8226h
--------s-2F8226-----------------------------
INT 2F - MODRES v2.00+ - STOP PLAYING
AX = 8226h
Return: AX = status
5722h succesful
other MODRES not installed
Desc: stops playing the MOD file before performing critical operations such
as disk accesses
SeeAlso: AX=8220h,AX=8221h,AX=8223h,AX=8225h,AX=8227h
--------s-2F8227-----------------------------
INT 2F - MODRES - CONFIGURE
AX = 8227h
BX = function
0001h set default playing speed (06h)
0002h select output device
CL = output device (see #02962 at INT 2F/AX=8221h)
Return: AX = status
5722h succesful
2000h parameters out of range
other MODRES not installed
Note: function 0001h should be called every time a new module is loaded
SeeAlso: AX=8220h,AX=8221h,AX=8222h,AX=8223h
----------2F86-------------------------------
INT 2F U - ???
AH = 86h
AL = function (at least 06h and 07h)
???
Return: ???
Note: called by Codeview for Windows
SeeAlso: AH=44h
--------U-2F8900-----------------------------
INT 2F - WHOA!.COM - INSTALLATION CHECK
AX = 8900h
Return: AL = state
00h not installed
FFh installed
Program: WHOA!.COM is a system slow-down utility by Brad D Crandall
SeeAlso: AX=8901h,AX=8902h
--------U-2F8901-----------------------------
INT 2F - WHOA!.COM - UNINSTALL
AX = 8901h
Return: AL = status
FDh successful
FEh error
SeeAlso: AX=8900h
--------U-2F8902-----------------------------
INT 2F - WHOA!.COM - SET DELAY COUNT
AX = 8902h
BX = delay count (larger values slow system down more)
Return: AL = status
FDh successful
FEh error
Program: WHOA!.COM is a system slow-down utility by Brad D Crandall
SeeAlso: AX=8900h
--------U-2F9000-----------------------------
INT 2F U - RAID - INSTALLATION CHECK
AX = 9000h
Return: AL = FFh if installed
Program: RAID (Resident AID) is a TSR utility program by Ross Neilson
Wentworth that resides mostly in EMS
--------U-2F9001-----------------------------
INT 2F U - RAID - GET ???
AX = 9001h
Return: DX:AX -> ???
SeeAlso: AX=9000h
--------U-2F9002-----------------------------
INT 2F U - RAID - GET RESIDENT SEGMENT
AX = 9002h
Return: AX = segment of resident (conventional memory) portion
SeeAlso: AX=9000h
--------U-2F9003-----------------------------
INT 2F U - RAID - UNINSTALL
AX = 9003h
Return: ???
SeeAlso: AX=9000h
--------U-2F9004-----------------------------
INT 2F U - RAID - GET ???
AX = 9004h
Return: AX = first available paragraph past end of resident portion???
CX destroyed
SeeAlso: AX=9000h
--------e-2F92-------------------------------
INT 2F - Network Courier E-Mail - API
AH = 92h
AL = function
00h installation check
01h uninstall
02h pop down MICRO.EXE notification window
03h ???
04h ???
05h ???
Return: ???
Program: The Network Courier is an electronic mail package by Consumers
Software of Vancouver, BC which was bought by Microsoft in 1991 and
renamed Microsoft Mail v3.0.
SeeAlso: AX=9400h,AX=9401h,AX=9402h,AH=9Ch
Index: installation check;Network Courier E-Mail
Index: uninstall;Network Courier E-Mail
--------R-2F9200-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - BUG
AX = 9200h
Program: DRIVEMAP is a redirector which allows drives on computers connected
over the parallel or serial ports to appear as local drives
BUG: jumps to data because jump table entry is 0000h
Note: DRIVEMAP returns AX=FFFFh if not a valid function number in AL
--------R-2F9201-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - CHECK IF MAPPED DRIVE
AX = 9201h
DL = drive number (01h = A:, etc.)
Return: AL = 92h if mapped drive
AH may be destroyed (v8.0 DRIVEMAP returns AX=0000h if not mapped)
SeeAlso: AX=9204h,AX=920Bh
--------R-2F9202-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - UNINSTALL
AX = 9202h
BX = caller's CS
Return: AX = status
0000h failed
nonzero successful
SeeAlso: AX=9204h
--------R-2F9203-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - GET VERSION
AX = 9203h
Return: AH = major version
AL = minor version
CX = segment of resident code
Note: the DRIVEMAP included with PC Tools v8.0 is version 1.00
SeeAlso: AX=9204h,INT 16/AX=FF70h
--------R-2F9204-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - INSTALLATION CHECK
AX = 9204h
Return: AX = 9200h if installed
BL = ???
CX = segment of resident code
Program: DRIVEMAP is a redirector which allows drives on computers connected
over the parallel or serial ports to appear as local drives
SeeAlso: AX=9201h,AX=9202h,AX=9203h
--------R-2F9205-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - SET ???
AX = 9205h
BX = ??? to set
Return: CX = new value of ???
--------R-2F9206-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - ???
AX = 9206h
???
Return: ???
--------R-2F9207-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
AX = 9207h
???
Return: AX = ???
--------R-2F9208-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - ???
AX = 9208h
???
Return: ???
--------R-2F9209-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - ???
AX = 9209h
???
Return: AX = ???
BX = ???
CX = ???
DX = ???
--------R-2F920A-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - ???
AX = 920Ah
BX = ???
Return: AX = ??? or FFFBh on error
--------R-2F920B-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - SET DRIVE MAPPING
AX = 920Bh
BL = drive letter (41h ['A'] = A:, etc)
CX = ??? (0000h removes mapping)
Return: AX = ??? or FFF8h on error
SeeAlso: AX=9201h,AX=920Dh
--------R-2F920C-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - ???
AX = 920Ch
???
Return: AX = ??? (0002h)
CX = ??? (0000h)
--------R-2F920D-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - GET DRIVE TYPE
AX = 920Dh
BL = drive letter (41h ['A'] = A:, etc)
Return: AX = type flags
bit 0: ???
bit 1: available
bit 5: local
BX = ???
CX = segment of resident code (apparently an unintended side effect)
Program: DRIVEMAP is a redirector which allows drives on computers connected
over the parallel or serial ports to appear as local drives
SeeAlso: AX=9218h,INT 16/AX=FF70h
--------R-2F920E-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - SET LPT MAPPING
AX = 920Eh
BX = port number (0-2)
CX = ??? (0000h to unmap)
Return: ???
--------R-2F920F-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
AX = 920Fh
ES:DI -> 3-byte buffer for ???
Return: CX = 0000h
ES:DI buffer filled
--------R-2F9210-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - ???
AX = 9210h
???
Return: ???
--------R-2F9211-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
AX = 9211h
ES:DI -> 8-word buffer for ???
Return: CX = 0000h
ES:DI buffer filled
--------R-2F9212-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - CRITICAL SECTION???
AX = 9212h
BX = phase
0000h leave critical section???
nonzero enter critical section???
--------R-2F9213-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - ???
AX = 9213h
BX = function number (0000h-000Bh)
???
Return: ???
--------R-2F9214-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
AX = 9214h
ES:DI -> 6-word buffer for ???
Return: CX = 0000h
AX = ???
ES:DI buffer filled
--------R-2F9215-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
AX = 9215h
ES:DI -> 100-word buffer for ???
Return: CX = 0000h
ES:DI buffer filled
--------R-2F9216-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - ???
AX = 9216h
ES:DI -> ???
Return: ???
--------R-2F9217-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - ???
AX = 9217h
DS:SI -> 25-word buffer containing ???
Return: ???
--------R-2F9218-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - GET LPT TYPE???
AX = 9218h
BX = port number???
Return: AX = ???
BX = ??? (0000h)
CX = ??? (0000h)
Program: DRIVEMAP is a redirector which allows drives on computers connected
over the parallel or serial ports to appear as local drives
--------R-2F9219-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - ???
AX = 9219h
???
Return: ???
--------R-2F921A-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - ???
AX = 921Ah
???
Return: AH = ???
AL = ???
BX = ???
--------R-2F921B-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - ???
AX = 921Bh
???
Return: AX = ???
CX = segment of resident code (apparently an unintended side effect)
--------R-2F921C-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - ???
AX = 921Ch
???
Return: ???
--------R-2F921D-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
AX = 921Dh
Return: AX = ???
--------R-2F921E-----------------------------
INT 2F U - PC Tools v8.0 DRIVEMAP - ???
AX = 921Eh
???
Return: ???
Program: DRIVEMAP is a redirector which allows drives on computers connected
over the parallel or serial ports to appear as local drives
Note: this function sets two variables to 24h each
SeeAlso: INT 16/AX=FF70h
--------V-2F93-------------------------------
INT 2F - InnerMission v1.7+ - INSTALLATION CHECK
AH = 93h
BX = CX = AX
Return: AL = state
FFh if installed and BX=CX=AX on entry
BX = segment of resident code
01h if installed but BX or CX differ from AX (multiplex number not
available)
Program: InnerMission is a shareware graphical screen blanker by Kevin Stokes
SeeAlso: INT 14/AX=AA01h,INT 2F/AX=6400h
Index: screen saver;InnerMission
--------e-2F9400-----------------------------
INT 2F - MICRO.EXE - INSTALLATION CHECK
AX = 9400h
Return: AL = 07h or 08h if installed
Program: MICRO.EXE is a TSR of the Microsoft Mail part of Workgroup Connection
SeeAlso: AH=92h"Network Courier",AX=9401h,AX=9402h,AX=9403h,AX=9404h
SeeAlso: INT 21/AH=3Fh"WORKGRP.SYS"
--------e-2F9401-----------------------------
INT 2F - MICRO.EXE - SET ??? FLAG
AX = 9401h
SeeAlso: AX=9400h,AX=9403h
--------e-2F9402-----------------------------
INT 2F - MICRO.EXE - ???
AX = 9402h
???
Return: ???
SeeAlso: AX=9400h
--------e-2F9403-----------------------------
INT 2F - MICRO.EXE - SET ??? FLAG
AX = 9403h
SeeAlso: AX=9400h,AX=9404h
--------e-2F9404-----------------------------
INT 2F - MICRO.EXE - CLEAR ??? FLAG
AX = 9404h
ES:DI -> name of executable from which MICRO.EXE was started
Note: if the specified name is identical to the name of the program file
from which MICRO was started, the ??? flag is cleared; otherwise,
it is left unchanged
SeeAlso: AX=9400h,AX=9403h
--------V-2F96C7-----------------------------
INT 2F U - STRETCH - INSTALLATION CHECK
AX = 96C7h
Return: AX = AAAAh if installed
Program: stretch.exe is a TSR for Toshiba Laptops with WD90C24 video chip
to avoid blank screen areas in VGA text modes by increasing
inter-line spacing
----------2F97-------------------------------
INT 2F U - Micro Focus COBOL v3.1.31 internal - ???
AH = 97h
AL = function
00h installation check
Return: AL = FFh if installed
08h get ???
Return: AL = ???
BX = ???
DX = ???
AH destroyed
20h get ???
Return: AX:BX = far entry point of ???
CX = segment of ???
80h ???
Return: ???
Notes: Micro Focus COBOL compiler v3.1.31 and companion programs supply
these functions for internal use; these programs call the
installation check at startup (before installing the INT 2F
handler) and crash the system if a not authorized program answers
with AL=FFh
the handler checks AL only if an internal flag is 1, otherwise ???
SeeAlso: AH=98h"COBOL",AH=99h"COBOL",AH=9Ah"COBOL"
----------2F98-------------------------------
INT 2F U - Micro Focus COBOL v3.1.31 internal - ???
AH = 98h
AL = function
00h installation check
Return: AL = FFh if installed
10h get ???
Return: AX = ???
18h get segment of ???
Return: AX = segment of ???
19h get pointer to ???
Return: AX:BX -> ???
Notes: Micro Focus COBOL compiler v3.1.31 and companion programs supply
these functions for internal use; these programs call the
installation check at startup (before installing the INT 2F
handler) and crash the system if a not authorized program answers
with AL=FFh
the handler checks AL only if an internal flag is 0, otherwise ???
SeeAlso: AH=97h"COBOL",AH=99h"COBOL",AH=9Ah"COBOL"
--------V-2F9800-----------------------------
INT 2F U - S3RMDRV.SYS - INSTALLATION CHECK / VERSION CHECK
AX = 9800h
BX = function
0000h installation check
Return: AX = 524Dh ('RM') if installed
0001h get driver version
Return: AX = driver version (AH=major, AL=BCD minor)
Program: S3RMDRV.SYS provides support for the S3 MPEG driver FMPDRV
SeeAlso: AX=9803h
--------V-2F9803-----------------------------
INT 2F U - S3RMDRV.SYS - COPY ??? INTO USER BUFFER
AX = 9803h
DX:BX -> 116-byte buffer for ASCIZ ???
Return: AX = 0000h
DX:BX buffer filled with string stored in driver from its parameter
list when it was loaded
Note: the examined version of the driver returns CF set for any AL other
than 00h or 03h
SeeAlso: AX=9800h
----------2F99-------------------------------
INT 2F U - Micro Focus COBOL v3.1.31 internal - ???
AH = 99h
???
Return: ???
Note: used internally by Micro Focus COBOL compiler v3.1.31 and companion
programs
SeeAlso: AH=97h"COBOL",AH=98h"COBOL",AH=9Ah"COBOL"
--------l-2F9900-----------------------------
INT 2F U - DOS Navigator II - INSTALLATION CHECK
AX = 9900h
Return: BX = 444Eh ('DN') if installed
AX = number of DOS Navigator executions
CL = child process exit code
DX = version number (see #02965)
Notes: old versions of DOS Navigator II always returned AH=1, while newer
ones return AH=0 and store AL in the DN.FLG file
Program: DOS Navigator is a multi-window shell for MS-DOS by RIT S.R.L.
DOS Navigator(TM) is a registered trademark of RIT S.R.L.
SeeAlso: AX=9901h,AX=9902h,AX=9903h,AX=9904h,AX=9905h,AX=9906h
(Table 02965)
Values for DOS Navigator II version code:
2100h version 1.35
2138h version 1.38
2141h version 1.41
2150h version 1.50
--------l-2F9901-----------------------------
INT 2F U - DOS Navigator II - RETURN POINTER TO COMMAND LINE
AX = 9901h
Return: ES:BX -> command line (terminated with 0Dh)
AX = ES
SeeAlso: AX=9900h,AX=9902h,AX=9903h
--------l-2F9902-----------------------------
INT 2F U - DOS Navigator II - SET 'TRUE' EXIT CODE OF DN.PRG
AX = 9902h
CL = exit code
Return: AX destroyed
SeeAlso: AX=9900h,AX=9901h,AX=9903h
--------l-2F9903-----------------------------
INT 2F U - DOS Navigator II - SPECIFY HOW TO EXECUTE COMMANDS
AX = 9903h
CL = 1 to use INT 2E
CL <> 1 to use INT 21/AH=4Bh
SeeAlso: AX=9900h,AX=9901h,AX=9902h
--------l-2F9904-----------------------------
INT 2F U - DOS Navigator II v1.49 - SET ???
AX = 9904h
CX:DX = new value for ???
SeeAlso: AX=9900h,AX=9905h,AX=9906h
--------l-2F9905-----------------------------
INT 2F U - DOS Navigator II v1.49 - GET ???
AX = 9905h
Return: CX:DX = current value of ??? (set by AX=9904h)
SeeAlso: AX=9900h,AX=9904h,AX=9906h
--------l-2F9906-----------------------------
INT 2F U - DOS Navigator II v1.49 - GET ???
AX = 9906h
DX = new value for ??? (bit 15 must be set, otherwise not changed)
Return: CX = previous value for ???
SeeAlso: AX=9900h,AX=9904h,AX=9905h
----------2F9A-------------------------------
INT 2F U - Micro Focus COBOL v3.1.31 internal - ???
AH = 9Ah
???
Return: ???
Note: used internally by Micro Focus COBOL compiler v3.1.31 and companion
programs
SeeAlso: AH=97h"COBOL",AH=98h"COBOL",AH=99h"COBOL"
--------e-2F9C-------------------------------
INT 2F - Network Courier E-Mail OPERATOR.EXE - API
AH = 9Ch
AL = subfunction
01h uninstall
Return: ???
Program: The Network Courier is an electronic mail package by Consumers
Software of Vancouver, BC which was bought by Microsoft in 1991 and
renamed Microsoft Mail v3.0.
SeeAlso: AH=92h
Index: uninstall;Network Courier E-Mail OPERATOR.EXE
--------G-2F9E00-----------------------------
INT 2F U - INTMON v2.1 - INSTALLATION CHECK
AX = 9E00h
Return: AX = FFFFh if installed
BX = segment of resident code
Program: INTMON is a shareware interactive interrupt monitoring TSR for 386
and higher machines by Celso Minnitti, Jr.
SeeAlso: AX=9E01h,AX=9E02h,AX=9E03h,AX=9F00h
--------G-2F9E01-----------------------------
INT 2F U - INTMON v2.1 - RESET
AX = 9E01h
Return: ???
Desc: this function specifies that INTMON should assume that any interrupts
on which it is currently awaiting a return have completed (i.e.
interrupts which never return such as INT 20 and INT 27)
SeeAlso: AX=9E00h,AX=9E03h
--------G-2F9E02-----------------------------
INT 2F U - INTMON v2.1 - DISPLAY CPU REGISTERS???
AX = 9E02h
Return: ???
SeeAlso: AX=9E00h
--------G-2F9E03-----------------------------
INT 2F U - INTMON v2.1 - HOOK INTERRUPT???
AX = 9E03h
BH = interrupt number???
Return: ???
Note: if AL > 03h on entry, INTMON 2.1 returns immediately
SeeAlso: AX=9E00h,AX=9E01h
--------G-2F9F00-----------------------------
INT 2F U - INTCFG v2.1 - INSTALLATION CHECK
AX = 9F00h
Return: AX = FFFFh if installed
Program: INTCFG is an optionally-resident control program for INTMON by Celso
Minnitti, Jr.
SeeAlso: AX=9E00h,AX=9F01h,AX=9F30h,AX=9F49h
--------G-2F9F01-----------------------------
INT 2F U - INTCFG v2.1 - ???
AX = 9F01h
???
Return: ???
SeeAlso: AX=9F00h
--------G-2F9F30-----------------------------
INT 2F U - INTCFG v2.1 - GET ???
AX = 9F30h
Return: AX = ??? (0002h)
SeeAlso: AX=9F00h
--------G-2F9F49-----------------------------
INT 2F U - INTCFG v2.1 - UNINSTALL
AX = 9F49h
Return: AX,DX,DS,ES destroyed
SeeAlso: AX=9F00h
--------E-2FA1--BX0081-----------------------
INT 2F - Ergo DOS extenders - INSTALLATION CHECK
AH = A1h
BX = 0081h
AL = which
FEh OS/286,OS/386
FFh HummingBoard DOS extender
ES:DI -> 16-byte buffer
Return: if installed, first four bytes of ES:DI buffer are "IABH"
Note: since TKERNEL is a licensed version, it is likely that subfunctions
BX=0082h and BX=0084h are present and function identically to the
AX=FBA1h/BX=008xh calls
SeeAlso: AX=ED00h,AX=FBA1h/BX=0081h,INT 15/AX=BF02h
--------m-2FA189-----------------------------
INT 2F U - Biologic HRAMDEV.SYS - API
AX = A189h
BX = subfunction
0000h set ???
0001h remove ???
0002h get status ???
0003h enable ???
0004h disable ???
0005h set ??? flag
0006h clear ??? flag
0007h set ??? flag
0008h clear ??? flag
0009h set ???
ES:DI -> function-specific arguments
if func 0000h: 20-byte buffer containing ???
if func 0001h: 20-byte buffer for returned ???
if func 0002h: 16-byte buffer for returned ???
if func 0009h: WORD containing ???
Return: BX = A189h if installed
AH = status
00h successful
FFh failed or invalid function number
Program: HRAMDEV.SYS is a part of the shareware package HRAM by Biologic which
provides improved high memory access under MS-DOS 5.0
Note: functions 00h and 01h use a stack of four entries; function 01h always
removes the values stored with the most recent function 00h call
which has not yet been matched with a function 01h call.
--------U-2FA4E0-----------------------------
INT 2F - Futurus Team - INSTALLATION CHECK
AX = A4E0h
Return: AL = 52h ("R") if installed
AH = major version plus 30h ("0")
ES:BX -> ??? (INT A4 handler???)
Note: older versions of Right Hand Man (from which Team evolved) store the
signature "RH" at offset 103h in the INT 2F handler's segment
SeeAlso: INT A4"Right Hand Man"
--------U-2FA900-----------------------------
INT 2F - METZTSR.COM - INSTALLATION CHECK
AX = A900h
CF set
Return: CF clear if resident
AX = 97FFh
CF set if not present
Notes: METZTSR.COM prevents METZ applications (such as the MAGIC screen
saver) inactivity timeout while running a DOSapp under MS Windows.
the default multiplex number is A9h, but may be set to any value from
80h to FFh with a commandline switch
SeeAlso: AX=A901h,AX=A902h
--------U-2FA901-----------------------------
INT 2F - METZTSR.COM - GET TIME OF LAST KEYBOARD ACTIVITY
AX = A901h
CF set
Return: CF clear if successful
AX:DX = BIOS time at which INT 09 was last invoked
CF set if not present
SeeAlso: INT 09,INT 1A/AH=00h
--------U-2FA902-----------------------------
INT 2F - METZTSR.COM - SET METZ Ctrl-Alt-Del FLAG
AX = A902h
BL = new value
00h Ctrl-Alt-Del not allowed
else Ctrl-Alt-Del allowed (startup default is 01h)
CF set
Return: CF clear if successful
AX = 97FFh
CF set if not resident
SeeAlso: AX=A903h
--------U-2FA903-----------------------------
INT 2F - METZTSR.COM - GET METZ Ctrl-Alt-Del FLAG
AX = A903h
CF set
Return: CF clear if successful
AX = 97FFh if Ctrl-Alt-Del allowed
AX = 0000h if Ctrl-Alt-Del not allowed
CF set if not resident
SeeAlso: AX=A902h
--------U-2FAA-------------------------------
INT 2F - Player's Tool 3.996b+ - UNINSTALL
AH = AAh
Return: AL = status
00h unloaded successfully
01h unable to unload: in DOS shell
Program: Player's Tool is a game cheater by Dima Yakunin & Andy Robinson
SeeAlso: AH=ABh"Player's Tool",AH=ACh"Player's Tool",INT 10/AH=AAh
--------U-2FAA00-----------------------------
INT 2F - VIDCLOCK.COM - INSTALLATION CHECK
AX = AA00h
Return: AL = 00h not installed
FFh installed
Program: VIDCLOCK.COM is a memory-resident clock by Thomas G. Hanlin III
--------U-2FAB-------------------------------
INT 2F - Player's Tool 3.996b+ - INSTALLATION CHECK
AH = ABh
Return: BH = FFh if installed
BL = DOS shell state
01h in DOS shell
00h not in DOS shell
SeeAlso: AH=AAh"Player's Tool",AH=ACh"Player's Tool",INT 10/AH=ABh
--------f-2FAB00-----------------------------
INT 2F - Btrieve Multi-User - INSTALLATION CHECK
AX = AB00h
Return: AL = 4Dh if installed
SeeAlso: AX=AB01h,AX=AB02h,INT 7B"Btrieve"
----------2FAB00-----------------------------
INT 2F - SRSoft MODAL PC v2+ - INSTALLATION CHECK / GET VERSION
AX = AB00h
Return: AX = 5253h ('SR' byte-swapped) if installed
BX = MODAL PC version (BL = major, BH = minor)
Program: MODAL PC is an algorithm/real-system simulation package by SR Soft
using Petri-nets to describe simulated objects
SeeAlso: AX=AB01h"MODAL",AX=AB02h"MODAL",AX=AB06h"MODAL"
--------f-2FAB01-----------------------------
INT 2F - Btrieve Multi-User - EXECUTE Btrieve OPERATION
AX = AB01h
BX = process ID
DS:DX -> 38-byte parameter record (see #03840 at INT 7B"Btrieve")
Return: AL = status
00h OK
other retry after calling INT 7F/AX=0200h
SeeAlso: AX=AB00h"Btrieve",AX=AB02h"Btrieve",INT 7B"Btrieve",INT 7F/AX=0200h
----------2FAB01-----------------------------
INT 2F - SRSoft MODAL PC v2+ - GET PROCESS RUN PARAMETER
AX = AB01h
Return: AX = 5253h ('SR' byte-swapped) if installed
BL = run parameter
00h normal process
01h run with tracing enabled
02h run initialization process (first thread of main task)
SeeAlso: AX=AB00h"MODAL",AX=AB02h"MODAL"
--------f-2FAB02-----------------------------
INT 2F - Btrieve Multi-User - GET NEW PROCESS ID
AX = AB02h
Return: AL = 00h successful
BX = process ID
AL > 00h failed, retry after calling INT 7F/AX=0200h
SeeAlso: AX=AB00h,AX=AB01h,INT 7B"Btrieve",INT 7F/AX=0200h
----------2FAB02-----------------------------
INT 2F - SRSoft MODAL PC v2+ - SET PROCESS EXIT CODE
AX = AB02h
BL = exit code
Return: AX = 5253h ('SR' byte-swapped) if installed
SeeAlso: AX=AB00h"MODAL",AX=AB01h"MODAL",AX=AB03h"MODAL"
----------2FAB03-----------------------------
INT 2F - SRSoft MODAL PC v2+ - ALLOCATE COMMON MEMORY
AX = AB03h
BX = required size of common memory for variables/semaphores in bytes
Return: AX = 5253h ('SR' byte-swapped) if installed
SeeAlso: AX=AB00h"MODAL",AX=AB02h"MODAL",AX=AB04h"MODAL"
----------2FAB04-----------------------------
INT 2F - SRSoft MODAL PC v2+ - GET ALL COMMON VARIABLES AND SEMAPHORES
AX = AB04h
DS:DX -> buffer for common data
Return: AX = 5253h ('SR' byte-swapped) if installed
CF clear if successful
CF set on error
SeeAlso: AX=AB00h"MODAL",AX=AB03h"MODAL",AX=AB05h"MODAL",AX=AB06h,AX=AB07h
----------2FAB05-----------------------------
INT 2F - SRSoft MODAL PC v2+ - SET ALL COMMON VARIABLES AND SEMAPHORES
AX = AB05h
DS:DX -> buffer containing common data
Return: AX = 5253h ('SR' byte-swapped) if installed
CF clear if successful
CF set on error
SeeAlso: AX=AB00h"MODAL",AX=AB03h"MODAL",AX=AB04h"MODAL",AX=AB06h,AX=AB07h
----------2FAB06-----------------------------
INT 2F - SRSoft MODAL PC v2+ - GET A COMMON VARIABLE OR SEMAPHORE
AX = AB06h
BX = offset of variable or semaphore in common memory
CX = variable/semaphore size in bytes
DS:DX -> buffer for variable or semaphore
Return: AX = 5253h ('SR' byte-swapped) if installed
CF clear if successful
CF set on error
SeeAlso: AX=AB00h"MODAL",AX=AB04h,AX=AB05h,AX=AB07h
----------2FAB07-----------------------------
INT 2F - SRSoft MODAL PC v2+ - SET A COMMON VARIABLE OR SEMAPHORE
AX = AB07h
BX = offset of variable or semaphore in common memory
CX = variable/semaphore size in bytes
DS:DX -> buffer containing variable or semaphore
Return: AX = 5253h ('SR' byte-swapped) if installed
CF clear if successful
CF set on error
SeeAlso: AX=AB00h"MODAL",AX=AB04h,AX=AB05h,AX=AB06h
--------U-2FAC-------------------------------
INT 2F u - Player's Tool 3.996b+ - POP UP
AH = ACh
Return: AX = 1001h
SeeAlso: AH=AAh"Player's Tool",AH=ABh"Player's Tool"
--------V-2FAC00-----------------------------
INT 2F - DOS 4.01+ GRAPHICS.COM - INSTALLATION CHECK
AX = AC00h
Return: AX = FFFFh
ES:DI -> ??? (graphics data?) (not documented)
Note: this installation check was moved here to avoid the conflict with the
CD-ROM extensions that occurred in DOS 4.00
SeeAlso: AX=1500h"GRAPHICS"
--------V-2FAC00DI1092-----------------------
INT 2F - QRIP/TSR - GIVE CPU TO QRIP
AX = AC00h
DI = 1092h
Return: nothing
Program: QRIP/TSR is a shareware TSR by Shane Hathaway implementing the Remote
Imaging Protocol (RIP, RIPscrip) used by several BBS systems to
provide a graphical user interface
Desc: give QRIP some CPU time to update music and flashing timers
Notes: if DI <> 1092h on entry, QRIP chains the call
this function should be called regularly whenever the terminal program
is otherwise idle; the updates are automatically performed on any
other QRIP call
SeeAlso: AX=AC01h,AX=ACF0h
--------V-2FAC01DI1092-----------------------
INT 2F - QRIP/TSR - CHANGE INTERNAL FLAGS
AX = AC01h
DI = 1092h
BX = flags to be turned on (see #02966)
CX = flags to be turned off (see #02966)
Return: AX = 9142h if installed
DX = DOS-takeover flag (nonzero if QRIP able to take over DOS)
---if DX nonzero---
BX = QRIP version number in hex (BH = major, BL = minor)
CX = new flags (see #02966)
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC00h/DI=1092h,AX=ACF0h
Bitfields for QRIP internal flags:
Bit(s) Description (Table 02966)
0 ANSI emulation enabled (default on)
1 RIP emulation enabled (default on)
2 graphical commands allowed (default on)
3 TTY text allowed (default on)
4 disable @ variables (default off in TSR mode)
5 wait for key on RIP "end scene" command (default off)
6 anti-stripping (default off in TSR mode)
7 sound enabled (default on)
8 automatic message filter (default off in TSR mode)
9 display-only mode (no user prompts)
10 TTY text suppression (default off in TSR mode)
11-15 reserved
--------V-2FAC02DI1092-----------------------
INT 2F - QRIP/TSR - TURN OFF GRAPHICS SCREEN
AX = AC02h
DI = 1092h
Return: nothing
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC03h,AX=ACF0h
--------V-2FAC03DI1092-----------------------
INT 2F - QRIP/TSR - TURN ON GRAPHICS SCREEN
AX = AC03h
DI = 1092h
Return: nothing
Notes: if DI <> 1092h on entry, QRIP chains the call
this function does not restore the contents of the screen (see AX=AC15h)
SeeAlso: AX=AC02h,AX=AC14h,AX=AC15h
--------V-2FAC04DI1092-----------------------
INT 2F - QRIP/TSR - OUTPUT STRING THROUGH QRIP
AX = AC04h
DI = 1092h
DX:BX -> string
CX = length of string
Return: nothing
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC05h,AX=AC09h,AX=AC0Ah,AX=ACF0h
--------V-2FAC05DI1092-----------------------
INT 2F - QRIP/TSR - OUTPUT NULL-TERMINATED STRING THROUGH QRIP
AX = AC05h
DI = 1092h
DX:BX -> ASCIZ string
Return: nothing
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC04h,AX=AC06h,AX=AC09h,AX=AC0Ah,AX=ACF0h
--------V-2FAC06DI1092-----------------------
INT 2F - QRIP/TSR - RECEIVE CHARACTERS FROM QRIP
AX = AC06h
DI = 1092h
Return: AX = character to send to BBS (0001h-00FFh) or special code (see #02967)
BX = string-waiting flag
0001h entire string waiting to be sent to terminal (call AX=AC0Ch)
CX = DX = AX
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC04h,AX=AC05h,AX=AC0Ch,AX=AC16h,AX=AC18h,AX=AC1Ah
(Table 02967)
Values for QRIP special codes:
0000h if none
0100h wait for user keypress (must call AX=AC16h/BL=00h or AX=AC18h)
0101h both/middle mouse button pressed
0102h entering block mode (up/download) (call AX=AC1Ah)
0103h right mouse button pressed
0104h BBS requested status bar on
0105h BBS requested status bar off
0106h BBS requested VT-102 terminal emulation
(keypad keys should send VT-102 escape codes)
0107h BBS requested VT-102 mode off
0108h BBS requested doorway mode (raw IBM keyboard ASCII/scan code pairs)
0109h BBS requested doorway mode off
010Ah hotkey mode on
010Bh hotkey mode off
010Ch BBS requested Tab-key button changing on
010Dh BBS requested Tab-key mode off
010Eh XOFF (use flow control to stop incoming characters)
010Fh XON (use flow control to resume incoming characters)
0110h-0119h BBS requested application (0-9) be run
application 0 should be a standard text editor
01FFh send ASCII 00h to BBS
Note: for special codes 0104h to 010Dh, the terminal program should report
any mode changes it make in response by calling AX=AC16h
--------V-2FAC07DI1092-----------------------
INT 2F - QRIP/TSR - GET FONT DIRECTORY
AX = AC07h
DI = 1092h
Return: DX:BX -> 80-byte internal buffer containing ASCIZ font directory name
Notes: if DI <> 1092h on entry, QRIP chains the call
the application may change the font directory by overwriting the
returned buffer, ensuring that it does not exceed 80 bytes incl. NUL
if changed, the new path will not become effective until the graphics
screen is reinitialized
SeeAlso: AX=AC08h,AX=ACF0h
--------V-2FAC08DI1092-----------------------
INT 2F - QRIP/TSR - GET ICON DIRECTORY
AX = AC08h
DI = 1092h
Return: DX:BX -> 80-byte internal buffer containing ASCIZ icon directory name
Notes: if DI <> 1092h on entry, QRIP chains the call
the application may change the icon directory by overwriting the
returned buffer, ensuring that it does not exceed 80 bytes incl. NUL,
and includes a trailing backslash
if changed, the new path becomes effective immediately
SeeAlso: AX=AC07h,AX=ACF0h
--------V-2FAC09DI1092-----------------------
INT 2F - QRIP/TSR - OUTPUT STRING THROUGH QRIP
AX = AC09h
DI = 1092h
DX:BX -> string
CX = length of string
Return: AX = character to send to BBS (0001h-00FFh) or special code (see #02967)
BX = string-waiting flag
0001h entire string waiting to be sent to terminal (call AX=AC0Ch)
CX = DX = AX
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC04h,AX=AC06h,AX=AC0Ah,AX=ACF0h
--------V-2FAC0ADI1092-----------------------
INT 2F - QRIP/TSR - OUTPUT NULL-TERMINATED STRING THROUGH QRIP
AX = AC0Ah
DI = 1092h
DX:BX -> ASCIZ string
Return: AX = character to send to BBS (0001h-00FFh) or special code (see #02967)
BX = string-waiting flag
0001h entire string waiting to be sent to terminal (call AX=AC0Ch)
CX = DX = AX
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC05h,AX=AC06h,AX=AC09h,AX=ACF0h
--------V-2FAC0BDI1092-----------------------
INT 2F - QRIP/TSR - EXECUTE RIP "END SCENE" COMMAND
AX = AC0Bh
DI = 1092h
Return: nothing
Notes: if DI <> 1092h on entry, QRIP chains the call
enables all mouse buttons and cancels the RIP timeout
SeeAlso: AX=AC01h,AX=AC04h,AX=ACF0h
--------V-2FAC0CDI1092-----------------------
INT 2F - QRIP/TSR - GET STRING TO BE SENT TO BBS
AX = AC0Ch
DI = 1092h
Return: AX = status
0000h nothing to be sent
0001h a string is waiting to be sent
DX:BX -> string to be sent (may contain NULs)
CX = length of string
0002h special code waiting (call AX=AC06h)
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC06h,AX=ACF0h
--------V-2FAC0DDI1092-----------------------
INT 2F - QRIP/TSR - SET PROTECTED SCREEN AREA
AX = AC0Dh
DI = 1092h
CL = number of text lines at bottom of screen to protect (00h = off)
BL = attribute with which to fill area (bit 7 = high-int. background)
Return: nothing
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC0Eh,AX=AC0Fh,AX=AC10h,AX=ACF0h
--------V-2FAC0EDI1092-----------------------
INT 2F - QRIP/TSR - WRITE ASCIZ STRING IN PROTECTED AREA
AX = AC0Eh
DI = 1092h
DX:BX -> ASCIZ string to be written
CL = column at which to begin writing
CH = row number within protected area (00h = first line)
Return: nothing
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC0Dh,AX=AC0Fh,AX=AC10h,AX=ACF0h
--------V-2FAC0FDI1092-----------------------
INT 2F - QRIP/TSR - SCROLL PROTECTED AREA
AX = AC0Fh
DI = 1092h
BH,BL = row,column of upper-left corner in protected area
DH,DL = row,column of lower-right corner
CL = number of lines to scroll up
Return: nothing
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC0Dh,AX=AC0Eh,AX=AC10h,AX=ACF0h
--------V-2FAC10DI1092-----------------------
INT 2F - QRIP/TSR - SET OUTPUT COLOR FOR PROTECTED AREA
AX = AC10h
DI = 1092h
BL = new attribute (bit 7 set for high-intensity background)
Return: nothing
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC0Dh,AX=AC0Eh,AX=AC0Fh,AX=AC11h,AX=ACF0h
--------V-2FAC11DI1092-----------------------
INT 2F - QRIP/TSR - CONVERT PROTECTED AREA TO ENTIRE SCREEN
AX = AC11h
DI = 1092h
BX = mode (0000h = normal protect, 0001h = allow full-screen access)
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC0Dh,AX=AC0Eh,AX=AC0Fh,AX=AC10h,AX=AC12h,AX=ACF0h
--------V-2FAC12DI1092-----------------------
INT 2F - QRIP/TSR - BEGIN POPUP-WINDOW MODE
AX = AC12h
DI = 1092h
Return: nothing
Notes: if DI <> 1092h on entry, QRIP chains the call
while popup-mode is in effect, the terminal program can write to the
screen (and easily restore it) by outputting a RIP file with AX=AC04h
or AX=AC05h
QRIP will automatically drop out of popup-window mode if the terminal
program invokes RIP pick-lists
any changes to the protected area will be restored when popup-window
mode is cancelled
SeeAlso: AX=AC04h,AX=AC11h,AX=AC13h,AX=ACF0h
--------V-2FAC13DI1092-----------------------
INT 2F - QRIP/TSR - END POPUP-WINDOW MODE
AX = AC13h
DI = 1092h
Return: nothing
Notes: if DI <> 1092h on entry, QRIP chains the call
restores screen
SeeAlso: AX=AC12h,AX=ACF0h
--------V-2FAC14DI1092-----------------------
INT 2F - QRIP/TSR - SAVE GRAPHICS SCREEN AND SWITCH TO TEXT MODE
AX = AC14h
DI = 1092h
Return: nothing
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC03h,AX=AC15h
--------V-2FAC15DI1092-----------------------
INT 2F - QRIP/TSR - RESTORE GRAPHICS SCREEN
AX = AC15h
DI = 1092h
Return: nothing
Desc: restores the graphics screen saved by the last call to AX=AC14h
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC03h,AX=AC14h
--------V-2FAC16DI1092-----------------------
INT 2F - QRIP/TSR - REPORT MODE CHANGE TO QRIP
AX = AC16h
DI = 1092h
BL = new mode
00h terminate key wait
01h status bar on
02h status bar off
03h VT-102 mode on
04h VT-102 mode off
05h doorway mode on
06h doorway mode off
07h hotkeys mode on
08h hotkeys mode off
09h tabkey mode on
0Ah tabkey mode off
Return: nothing
Notes: if DI <> 1092h on entry, QRIP chains the call
all modes default to OFF when QRIP is first installed
--------V-2FAC17DI1092-----------------------
INT 2F - QRIP/TSR - CALL (EXECUTE) A RIP FILE
AX = AC17h
DI = 1092h
DX:BX -> ASCIZ filename for RIP file to be executed
Return: nothing
Notes: if DI <> 1092h on entry, QRIP chains the call
the specified file may be in the current icon directory, the QRIP
startup directory, or the current directory; any pathnames specified
with the filename are ignored
--------V-2FAC18DI1092-----------------------
INT 2F - QRIP/TSR - SEND USER KEY TO QRIP
AX = AC18h
DI = 1092h
BX = key (00xxh is normal ASCII, xx00h is an extended key)
Return: nothing
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC06h,AX=ACF0h
--------V-2FAC19DI1092-----------------------
INT 2F - QRIP/TSR - HANGUP
AX = AC19h
DI = 1092h
Return: nothing
Desc: inform QRIP that carrier has been lost
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=ACF0h
--------V-2FAC1ADI1092-----------------------
INT 2F - QRIP/TSR - GET RIP_ENTER_BLOCK_MODE INFORMATION
AX = AC1Ah
DI = 1092h
Return: AH = requested protocol (see #02968)
AL = file type (see #02969)
DX:BX -> ASCIZ filename or 0000h:0000h
CX = length of filename
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=ACF0h
(Table 02968)
Values for QRIP protocol identifier:
00h Xmodem (checksum)
01h Xmodem-CRC
02h Xmodem-1K
03h Xmodem-1K-G
04h Kermit
05h Ymodem
06h Ymodem-G
07h Zmodem with crash recovery
08h-0Fh same as 00h-07h, but for uploading instead of downloading
SeeAlso: #02969
(Table 02969)
Values for QRIP file type:
00h RIP file sequence to be displayed
01h RIP file sequence to be stored in icon directory
02h ICN file sequence to be stored in icon directory
03h HLP file sequence to be stored, then auto-loaded if needed
04h COMPOSITE DYNAMIC file sequence (batch protocols only)
05h ACTIVE DYNAMIC file sequence (batch protocols only)
Note: for file types 04h and 05h, any .RIP or .ICN files are stored in
the icon directory; in mode 05h, any .RIP files are also played
back as they are received
SeeAlso: #02968
--------V-2FAC1BDI1092-----------------------
INT 2F - QRIP/TSR - SET SYSTEM FONT SIZE
AX = AC1Bh
DI = 1092h
BX = font size (see #02970)
Return: nothing
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC04h,AX=ACF0h
(Table 02970)
Values for QRIP font size specifier:
00h 8x8 font, 80x43 screen
01h 7x8 font, 90x43 screen
02h 8x14 font, 80x25 screen
03h 7x14 font, 90x25 screen
04h 16x14 font, 40x25 screen
--------V-2FACF0DI1092-----------------------
INT 2F - QRIP/TSR - INSTALLATION CHECK
AX = ACF0h
DI = 1092h
Return: AX = 9142h if installed
DX = DOS-takeover flag (nonzero if QRIP able to take over DOS)
---if DX nonzero---
BX = QRIP version number in hex (BH = major, BL = minor)
CX = current flags (see AX=AC01h)
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=AC00h/DI=1092h,AX=AC01h,AX=AC04h,AX=AC06h,AX=AC1Ah,AX=ACFFh
--------V-2FACFFDI1092-----------------------
INT 2F - QRIP/TSR - UNINSTALL
AX = ACFFh
DI = 1092h
Return: AX = status
0000h unable to remove (interrupt vector hooked by another prog)
0001h successful
0002h unable to take over DOS at this time (retry uninstall)
Note: if DI <> 1092h on entry, QRIP chains the call
SeeAlso: AX=ACF0h
--------V-2FAD00-----------------------------
INT 2F U - DOS 3.3+ DISPLAY.SYS internal - INSTALLATION CHECK
AX = AD00h
Return: AL = FFh if installed
BX = ??? (0100h for MS-DOS 3.3+)
Note: DOS 5+ DISPLAY.SYS chains to previous handler if AL is not one of the
subfunctions listed here
SeeAlso: AX=AD01h"DISPLAY",AX=AD02h"DISPLAY"
--------O-2FAD00-----------------------------
INT 2F U - DR DOS 3.41-5.0, Novell DOS 7 KEYB - INSTALLATION CHECK
AX = AD00h
Return: AX = FFFFh if installed
flags destroyed
Note: the Novell DOS 7 KEYB driver only checks AL to determine whether it
is already installed
SeeAlso: AX=AD80h"Novell"
--------V-2FAD01-----------------------------
INT 2F U - DOS 3.3+ DISPLAY.SYS internal - SET ACTIVE CODE PAGE
AX = AD01h
BX = new code page (see #01757 at INT 21/AX=6602h)
Return: CF clear if successful
AX = 0001h
CF set on error (unsupported code page)
AX = 0000h
SeeAlso: AX=AD02h"DISPLAY"
--------O-2FAD01-----------------------------
INT 2F U - DR DOS 3.41,5.0 KEYB - GET CONFIGURATION
AX = AD01h
Return: BX = current code page (see #01757 at INT 21/AX=6602h)
CX = current keyboard layout (0100h = US, 0102h = foreign)
ES = resident code segment
SeeAlso: AX=AD01h"Novell",AX=AD00h"KEYB",AX=AD02h"KEYB",AX=AD83h"KEYB"
--------O-2FAD01-----------------------------
INT 2F U - Novell DOS 7 KEYB - GET/SET??? CONFIGURATION
AX = AD01h
CX = ??? (0000h)
Return: AX = FFFFh if Novell DOS 7 KEYB installed
BX = current code page (see #01757 at INT 21/AX=6602h)
CX = current keyboard layout (0100h = US, 0102h = foreign)
ES = resident code segment
SeeAlso: AX=AD01h"DR DOS",AX=AD00h"KEYB",AX=AD02h"KEYB",AX=AD83h"KEYB"
--------V-2FAD02-----------------------------
INT 2F U - DOS 3.3+ DISPLAY.SYS internal - GET ACTIVE CODE PAGE
AX = AD02h
Return: CF set if code page never set
AX = 0001h
BX = FFFFh (assume first hardware code page)
CF clear if successful
BX = current code page (see #01757 at INT 21/AX=6602h)
SeeAlso: AX=AD01h"DISPLAY",AX=AD03h
--------O-2FAD02-----------------------------
INT 2F U - Novell DOS 7 KEYB - ???
AX = AD02h
DX = ??? (0000h)
Return: AX = FFFFh if installed
flags destroyed
SeeAlso: AX=AD01h"KEYB"
--------V-2FAD03-----------------------------
INT 2F U - DOS 3.3+ DISPLAY.SYS internal - GET CODE PAGE INFORMATION
AX = AD03h
ES:DI -> buffer for code page information (see #02971)
CX = size of buffer in bytes
Return: CF set if buffer too small
CF clear if successful
ES:DI buffer filled
SeeAlso: AX=AD01h,AX=AD02h
Format of DOS 5.0-6.0 DISPLAY.SYS code page information:
Offset Size Description (Table 02971)
00h WORD number of software code pages
02h WORD ??? (0003h)
04h WORD number of hardware code pages
06h N WORDs hardware code page numbers (see #01757 at INT 21/AX=6602h)
N WORDs software (prepared) code pages (FFFFh if not yet prepared)
--------V-2FAD04-----------------------------
INT 2F U - DOS 4.x only DISPLAY.SYS internal - ???
AX = AD04h
???
Return: ???
--------V-2FAD10-----------------------------
INT 2F U - DOS 4.x DISPLAY.SYS internal - INSTALLATION CHECK???
AX = AD10h
???
Return: AX = FFFFh
BX = ??? (0100h in PC-DOS 4.01)
--------V-2FAD10-----------------------------
INT 2F U - DOS 5+ DISPLAY.SYS internal - ???
AX = AD10h
???
Return: CF clear if successful
CF set on error
Note: this function is a NOP if the active code page has never been set
(AX=AD02h returns BX=FFFFh); its purpose otherwise is not known
--------V-2FAD40-----------------------------
INT 2F - DOS 4.0+ - ???
AX = AD40h
DX = ???
???
Return: ???
Note: called by PC-DOS 4.01 PRINT.COM
--------V-2FAD41-----------------------------
INT 2F - Arabic/Hebrew DOS 5.0???+ - GET CURRENT FONTPAGE
AX = AD41h
(CX = 0000h)
Return: CX = current fontpage
Notes: Called by Arabic/Hebrew MS-DOS 5.0 CODEPAGE.COM immediately before
a call to INT21h/6601h to get the current codepage.
The function is probably implemented in the ARABIC.COM/HEBREW.COM
driver.
The CX = 0 on call is not actually a requirement, but it should be
initialized this way to receive a fontpage 0 if ARABIC.COM/
HEBREW.COM is not loaded. A fontpage 0 indicated no fontpage
support. At least this is what CODEPAGE.COM assumes (by using
the CX=0 init status of a .COM program, when not being loaded
in DEBUG.)
Some European clones have code page 850 as their hardware font instead
of code page 437
!!!more details to follow
SeeAlso: AX=AD42h,AX=AD43h
--------V-2FAD42-----------------------------
INT 2F - Arabic/Hebrew DOS 5.0???+ SET CURRENT FONTPAGE
AX = AD42h
CX = fontpage (> 0)
Return: ???
Note: called by Arabic/Hebrew MS-DOS 5.0 CODEPAGE.COM almost immediately
before a call to INT21h/6602h to set the current codepage
(without checking any possible error codes returned from the call).
The function is probably implemented in the ARABIC.COM/HEBREW.COM
driver.
SeeAlso: AX=AD41h,AX=AD43h,INT 21/AX=6601h,INT 21/AX=6602h
--------V-2FAD43-----------------------------
INT 2F - Arabic/Hebrew DOS 5.0???+ - GET FONTPAGE STATUS???
AX = AD43h
Return: AL = status
00h successful
01h-0Ah codepage info not found
0Bh bad codepage info file
0Ch font page not found or not available with codepage
else device prepare error
Note: called by Arabic/Hebrew MS-DOS 5.0 CODEPAGE.COM when the sequence
INT 2F/AX=AD42h & INT 21/AX=6602h to set fontpage & codepage returned
with CF set and AX <> 2, and the following INT 21/AH=59h returned
error code 41h (65) (that is, the codepage was prepared, but could
not be set).
SeeAlso: AX=AD41h,AX=AD42h,INT 21/AX=6601h,INT 21/AX=6602h
--------K-2FAD80-----------------------------
INT 2F u - MS-DOS 3.3+ KEYB.COM internal - INSTALLATION CHECK
AX = AD80h
Return: AL = FFh if installed
BX = version number (BH = major, BL = minor)
ES:DI -> internal data (see #02972)
AH destroyed (set to FFh by some implementations/versions)
Notes: MS-DOS 3.30, PC-DOS 4.01, MS-DOS 5.00, and MS-DOS 6.22 all report
version 1.00.
this function was undocumented prior to the release of DOS 5.0
most versions of KEYB completely replace the BIOS INT 09 handler, but
Novell DOS's KEYB partially uses the BIOS code and thus continues
to chain to the original INT 09 at times
some utilities check for AX=FFFFh on return
SeeAlso: AX=AD80h"Novell",AX=AD81h,AX=AD82h,AX=AD83h
Format of KEYB internal data:
Offset Size Description (Table 02972)
00h DWORD original INT 09
04h DWORD original INT 2F
08h DWORD unused (0) original INT 16 in older KEYB versions???
0Ch WORD flags A (see #02973)
0Eh WORD flags B (see #02974)
10h BYTE flags??? (bit1 used)
11h BYTE ???
12h 4 BYTEs ???
16h 2 BYTEs country ID letters, default is "US"
18h WORD current code page (see #01757 at INT 21/AX=6602h)
---DOS 3.3---
1Ah WORD pointer to first item in list of code page tables???
1Ch WORD pointer to ??? item in list of code page tables
1Eh 2 BYTEs unused???
20h WORD pointer to key translation data (see #02976)
22h WORD pointer to last item in code page table list (see #02975)
24h 9 BYTEs ???
---DOS 4.01---
1Ah 2 BYTEs ???
1Ch WORD pointer to first item in list of code page tables???
1Eh WORD pointer to ??? item in list of code page tables
20h 2 BYTEs unused???
22h WORD pointer to key translation data (see #02976)
24h WORD pointer to last item in code page table list (see #02975)
26h 9 BYTEs ???
---DOS 6.22--- (checked out with 6.22, but might be earlier)
1Ah 2 BYTEs ???
1Ch WORD pointer to current (first???) item in list of code page tables
(corresponding to codepage indicated at offset 18h)
(initial value is FFFFh)
1Eh WORD pointer to (entry to) list of code page tables (see #02975)
If not FFFFh, INT 2F/AX=AD81h scans this list of code page
tables until the requested code page was found in list or
end of table was reached (FFFFh). If found, offsets 18h and
1Ch will be changed to requested new code page. If not found,
it returns with AX=0001h 'code page not supported').
20h WORD unused??? (initial value: FFFFh)
22h WORD pointer to key translation data (see #02455)
24h WORD pointer to last item in code page table list (see #02454)
26h WORD CAPSLock/ShiftLock management flags??? (0)
Note: It appears that none of the bits is ever set inside
KEYBs code!
The following is guesswork:
bit15: =1: With country specific keyboard mapping (<Ctrl>+
<Alt>+<F2>) active, <CapsLock> works as CAPSLock
instead of ShiftLock??? Pressing a key in first row
resets CapsLock???
(Effective only on PC Convertible or with Enhanced
keyboard).
bit14-10: unused (0)
bit 9: =1: With country specific keyboard mapping active:
some kind of temporary (table) shift???
bit 8-0: unused (0)
28h BYTE unused (0)
29h BYTE make code xx for <Ctrl>+<Alt>+<xx> to set keyboard mapping
to US-layout (default is 3Bh=<F1>???)
(see INT 2F/AX=AD82h,INT 2F/AX=AD83h)
2Ah BYTE make code yy for <Ctrl>+<Alt>+<yy> to set keyboard mapping
to country specific layout (default is 3Ch=<F2>???),
(see INT 2F/AX=AD82h,INT 2F/AX=AD83h)
2Bh 16 BYTEs unused (0) ???
Note: at least in MS-DOS v6.22, the signature "SHARED DATA" immediately
precedes this structure
Bitfields for MS-DOS v6.22 KEYB flags A:
Bit(s) Description (Table 02973)
15 unused??? (0)
14 set on machine with BIOS machine type FBh or FEh/FFh without enh kbd
13 not FAh: ???
12 set on start of machine detection, cleared on machine types F9h, FBh,
FEh, FFh
11 not FAh: ???
(on ATs: override bit12 NOT to set NumLock on)
10 set on machine type F9h
9 unused??? (0)
8 unused??? (0)
7 used by INT 09, but never set!
=1: after keyboard self test resulting AAh, INT 09 handler will (re)set
keyboard code-set 1 and temporarily disable a PS/2 mouseport.
6 used by INT09, but never set!
=1: after keyboard self test resulting AAh, INT 09 handler will (re)set
keyboard code-set 1 and temporarily disable a PS/2 mouseport.
5 set for JP, KO, PR, TA layouts during installation???
=1: some special codepage (>932???) management???
4-0 unused??? (0)
SeeAlso: #02974,MEM F000h:FFFEh,INT 15/AH=C0h
Bitfields for MS-DOS v6.22 KEYB flags B:
Bit(s) Description (Table 02974)
15 INT 16/AH=1xh supported (INT 16h/AH=92h call returns AH<=80h)
if clear, extended keyboard scan codes are immediately discarded
14 INT 16/AH=2xh supported (INT 16h/AH=A2h call returns AH<=80h)
13 unused (0)
12 network installed (INT 2F/AX=B800h)
11 original IBM PC (BIOS date 1981)
10 PC or PC/XT (BIOS machine type byte of FBh or FEh)
9 PC Convertible (BIOS machine type byte of F9h); use INT 15/AX=4104h
8 unused (0)
7 IBM PS/2 model 30 (BIOS machine type byte of FAh)
6 IBM AT (BIOS machine type FCh)
5 IBM PS/2 (BIOS machine type F8h)
4 PS/2 and unknown only: non-standard 8042 reported by INT 15/AH=C0h
=1: after keyboard self test resulting AAh, INT 09 handler will (re)set
keyboard code-set 1 and temporarily disable a PS/2 mouseport.
3 temporary flag???
2-0 ???
SeeAlso: #02972,#02973
Format of code page table list entries:
Offset Size Description (Table 02975)
00h WORD pointer to next item, FFFFh = last
02h WORD code page (see #01757 at INT 21/AX=6602h)
04h 2 BYTEs ???
Format of KEYB translation data:
Offset Size Description (Table 02976)
00h WORD size of data in bytes, including this word
02h N-2 BYTEs ???
--------K-2FAD80-----------------------------
INT 2F u - Novell DOS 7 KEYB.COM - INSTALLATION CHECK
AX = AD80h
Return: AX = FFFFh if installed
CX = Novell DOS KEYB version number (CL = major, CH = minor)
DX = current keyboard codepage
ES:DI -> internal data and tables (ES=FFFEh if KEYB in HMA)
flags destroyed
Notes: versions: v2.08 (original ship 4/94), v2.09 (Update 10, 11/18/94),
v2.10 (Update 12, 2/22/95), v2.11 (Update 13, 5/8/95),
v2.12 (Update 14, 7/31/95)
although the installation check is via this INT 2F call, Novell DOS 7's
KEYB has no known INT 2F entry point! Presumably, the handler is
either coded in the kernel or reached via a FAR JMP from the kernel
SeeAlso: AX=AD80h"MS-DOS"
--------K-2FAD81-----------------------------
INT 2F - DOS 3.3+ KEYB.COM - SET KEYBOARD CODE PAGE
AX = AD81h
BX = code page (see #01757 at INT 21/AX=6601h)
Return: CF set on error
AX = 0001h (code page not available)
CF clear if successful
Notes: called by DISPLAY.SYS
this function was undocumented prior to the release of DOS 5.0
SeeAlso: AX=AD80h,AX=AD82h
--------K-2FAD82-----------------------------
INT 2F - DOS 3.3+ KEYB.COM - SET KEYBOARD MAPPING
AX = AD82h
BL = new state
00h US keyboard (Control-Alt-F1)
FFh foreign keyboard (Control-Alt-F2)
Return: CF set on error (BL not 00h or FFh)
CF clear if successful
Notes: this function was undocumented prior to the release of DOS 5.0
the states 00h and FFh correspond with the byte stored at offset +02h
in KEYBs INT 09h handler
SeeAlso: AX=AD80h,AX=AD81h,AX=AD83h,AX=AD84h
--------K-2FAD83-----------------------------
INT 2F - DOS 5+ KEYB.COM - GET KEYBOARD MAPPING
AX = AD83h
Return: BL = current state
00h US keyboard
FFh foreign keyboard
Note: the states 00h and FFh correspond with the byte stored at offset +02h
in KEYBs INT 09h handler
SeeAlso: AX=AD82h,AX=AD85h,INT 09
--------K-2FAD84-----------------------------
INT 2F - PC DOS 5.0+ KEYB.COM - SET KEYBOARD SUB-MAPPING
AX = AD84h
Return: if KEYB is in foreign mode:
AL = current layout
00h primary layout
01h secondary layout
Note: This function is not supported by MS-DOS 5 - 7.10.
SeeAlso: AX=AD85h,AX=AD82h
--------K-2FAD85-----------------------------
INT 2F - PC DOS 5.0+ KEYB.COM - GET KEYBOARD SUB-MAPPING
AX = AD85h
BL = new layout
00h primary layout
01h secondary layout
Note: This function is not supported by MS-DOS 5.0 - 7.10.
SeeAlso: AX=AD84h,AX=AD83h
----------2FADC1-----------------------------
INT 2F U - DOS 4.0+ SELECT - DISPLAY FORMAT DISK PROMPT
AX = ADC1h
Return: AX destroyed???
Note: This function is called by DOS 4.0+ FORMAT utility just as it prompts
for a disk to be formatted. It is only issued when the undocumented
/SELECT option was specified and is intercepted by SELECT displaying
the prompt. However, the callout is still present in DOS 6.0 at
least.
--------l-2FAE00-----------------------------
INT 2F U - DOS 3.3+ internal - INSTALLABLE COMMAND - INSTALLATION CHECK
AX = AE00h
DX = magic value FFFFh
CH = FFh
CL = length of command line tail (4DOS v4.0)
DS:BX -> command line buffer (see #02977)
DS:SI -> command name buffer (see #02978)
DI = 0000h (4DOS v4.0)
Return: AL = FFh if this command is a TSR extension to COMMAND.COM
AL = 00h if the command should be executed as usual
Notes: This call provides a mechanism for TSRs to install permanent
extensions to the command repertoire of COMMAND.COM. It appears
that COMMAND.COM makes this call before executing the current
command line, and does not execute it itself if the return is FFh.
APPEND hooks this call, to allow subsequent APPEND commands to
execute without re-running APPEND
SeeAlso: AX=AE01h
Format of COMMAND.COM command line buffer:
Offset Size Description (Table 02977)
00h BYTE max length of command line, as in INT 21/AH=0Ah
01h BYTE count of bytes to follow, excluding terminating 0Dh
N BYTEs command line text, terminated by 0Dh
Format of command name buffer:
Offset Size Description (Table 02978)
00h BYTE length of command name
01h N BYTEs uppercased command name (blank-padded to 11 chars by 4DOS v4)
--------l-2FAE01-----------------------------
INT 2F U - DOS 3.3+ internal - INSTALLABLE COMMAND - EXECUTE
AX = AE01h
DX = magic value FFFFh
CH = 00h
CL = length of command name (4DOS v4.0)
DS:BX -> command line buffer (see #02977)
DS:SI -> command name buffer (see #02978)
Return: DS:SI buffer updated
if length byte is nonzero, the following bytes contain the uppercase
internal command to execute and the command line buffer contains the
command's parameters (the first DS:[SI] bytes are ignored)
Notes: this call requests execution of the command which a previous call to
AX=AE00h indicated was resident
APPEND hooks this call
BUG: Novell DOS 7.0's COMMAND.COM (prior to Update 12) will attempt to run
a disk program with the indicated name even if the returned length
byte is zero, because the register used to flag this case is
clobbered without first checking it. The workaround is to set the
command name buffer to "REM" followed by enough blanks to pad out
the original command's length, which will also work with MS-DOS 6.
(from padgett@tccslr.dnet.mmc.com)
SeeAlso: AX=AE00h
--------O-2FAF00-----------------------------
INT 2F - WinDOS v2.11 - INSTALLATION CHECK
AX = AF00h
Return: AL = FFh if installed
Program: WinDOS is a DOS clone (claimed to be mostly MS-DOS 5.0 API compatible)
written by Heiko Goemann
SeeAlso: AX=AF01h"WinDOS",INT 21/AH=30h
----------2FAF00-----------------------------
INT 2F U - ???
AX = AF00h
???
Return: AX = 0000h if interface supported
SeeAlso: AX=AF02h,AX=AF03h,AX=AF04h,AX=AF13h,AX=AF30h
--------O-2FAF01-----------------------------
INT 2F - WinDOS v2.11 - TURN ON ONLINE MODE
AX = AF01h
Return: nothing
Desc: indicate that the user will not exchange floppy disks, allowing WinDOS
to cache disk sectors in memory and avoid writing modified sectors
back out to the floppy disk
SeeAlso: AX=AF00h"WinDOS",AX=AF02h"WinDOS"
--------O-2FAF02-----------------------------
INT 2F - WinDOS v2.11 - TURN OFF ONLINE MODE
AX = AF02h
Return: nothing
Desc: indicate that the floppy disk may be removed, and that WinDOS should
write all buffered sectors out to the floppy disk
SeeAlso: AX=AF00h"WinDOS",AX=AF01h"WinDOS"
----------2FAF02-----------------------------
INT 2F U - ???
AX = AF02h
???
Return: ES = ???
SeeAlso: AX=AF00h
--------O-2FAF03-----------------------------
INT 2F - WinDOS v2.11 - TURN VIDMEM ON
AX = AF03h
Return: AX = status
0000h successful
0001h CPU not in mode set by DOS386=On
0002h video adapter in graphics mode
0003h memory chain corrupted
SeeAlso: AX=AF00h"WinDOS",AX=AF04h"WinDOS",AX=AF05h"WinDOS"
----------2FAF03-----------------------------
INT 2F U - ???
AX = AF03h
???
Return: DX = ???
SeeAlso: AX=AF00h
--------O-2FAF04-----------------------------
INT 2F - WinDOS v2.11 - TURN VIDMEM OFF
AX = AF04h
Return: AX = status
0000h successful
0001h video memory is in use
SeeAlso: AX=AF00h"WinDOS",AX=AF03h"WinDOS",AX=AF05h"WinDOS"
----------2FAF04-----------------------------
INT 2F U - ???
AX = AF04h
???
Return: ???
SeeAlso: AX=AF00h
--------O-2FAF05-----------------------------
INT 2F - WinDOS v2.11 - GET VIDMEM STATE
AX = AF05h
Return: AX = status (0000h off, 0001h on)
SeeAlso: AX=AF00h"WinDOS",AX=AF03h"WinDOS",AX=AF04h"WinDOS"
----------2FAF05-----------------------------
INT 2F U - ???
AX = AF05h
???
Return: ???
SeeAlso: AX=AF00h
--------O-2FAF06-----------------------------
INT 2F - WinDOS v2.11 - MAKE PROGRAM UNBREAKABLE
AX = AF06h
DS:DX -> break handler
DI:BX = stack to use for break handler
Return: nothing
Desc: set a handler which should be invoked when Ctrl-C is pressed instead of
aborting the program
SeeAlso: AX=AF00h"WinDOS",AX=AF0Ah"WinDOS",AX=AF0Ch"WinDOS"
--------O-2FAF07-----------------------------
INT 2F - WinDOS v2.11 - SIGNAL FATAL OVERLAY FAULT
AX = AF07h
Return: never -- system reset
Desc: pop up a window indicating that the system overlay file can not be
loaded
SeeAlso: AX=AF00h"WinDOS",AX=AF08h"WinDOS"
--------O-2FAF08-----------------------------
INT 2F - WinDOS v2.11 - SIGNAL RECOVERABLE OVERLAY FAULT
AX = AF08h
Return: nothing
Desc: pop up a window requesting that a disk containing SH.OVL be inserted
SeeAlso: AX=AF00h"WinDOS",AX=AF07h"WinDOS",AX=AF0Bh
--------O-2FAF09-----------------------------
INT 2F - WinDOS v2.11 - GET TERMINATED PSP
AX = AF09h
Return: DS = PSP segment of most recently ended TSR
SeeAlso: AX=AF00h"WinDOS",AX=AF0Ah
--------O-2FAF0A-----------------------------
INT 2F - WinDOS v2.11 - GET MAIN SHELL PSP
AX = AF0Ah
Return: AX = shell's PSP (same as DS on last call to AX=AF06h)
Desc: get the PSP address of the last program to call AX=AF06h (normally
the main command interpreter)
SeeAlso: AX=AF00h"WinDOS",AX=AF06h"WinDOS",AX=AF09h
--------O-2FAF0B-----------------------------
INT 2F - WinDOS v2.11 - SIGNAL FATAL ERROR
AX = AF0Bh
Return: never -- system reset
Desc: pop up a window indicating a terminal system error
SeeAlso: AX=AF00h"WinDOS",AX=AF07h,AX=AF08h,AX=AF15h"WinDOS"
--------O-2FAF0C-----------------------------
INT 2F - WinDOS v2.11 - GET OTHER MAIN SHELL PARAMETERS
AX = AF0Ch
Return: DI:AX = stack
SI = offset of break handler
Desc: retrieve the parameters last set by AX=AF06h (normally by the main
command interpreter)
SeeAlso: AX=AF00h"WinDOS",AX=AF06h"WinDOS"
--------O-2FAF0D-----------------------------
INT 2F - WinDOS v2.11 - GET CURRENT PARAMETER
AX = AF0Dh
BX = offset of desired parameter in global data area
Return: AX = current value of parameter (AH undefined if byte value)
SeeAlso: AX=AF00h"WinDOS",AX=AF0Eh
--------O-2FAF0E-----------------------------
INT 2F - WinDOS v2.11 - SET CURRENT PARAMETER BYTE VALUE
AX = AF0Eh
BX = offset of desired parameter in global data area
DL = new value of parameter
Return: nothing
SeeAlso: AX=AF00h"WinDOS",AX=AF0Dh
--------O-2FAF0F-----------------------------
INT 2F - WinDOS v2.11 - GET HISTORY SEGMENT
AX = AF0Fh
Return: AX = segment of buffer for input history, or 0000h if none
SeeAlso: AX=AF00h"WinDOS",AX=AF10h"WinDOS"
--------O-2FAF10-----------------------------
INT 2F - WinDOS v2.11 - SET HISTORY SEGMENT
AX = AF10h
BX = segment of new buffer for input history
Return: nothing
Note: the buffer must have been allocated with INT 21/AH=48h
SeeAlso: AX=AF00h"WinDOS",AX=AF0Fh"WinDOS"
--------O-2FAF11-----------------------------
INT 2F - WinDOS v2.11 - FREE XMS BLOCKS
AX = AF11h
Return: nothing
Desc: free all XMS blocks whose XMS identification value (see AX=AF12h)
equals the current PSP
SeeAlso: AX=AF00h"WinDOS",AX=AF12h"WinDOS",INT 21/AH=50h
--------O-2FAF12-----------------------------
INT 2F - WinDOS v2.11 - SET XMS IDENTIFICATION VALUE
AX = AF12h
DS = new XMS identification value (normally caller's PSP segment)
Return: nothing
SeeAlso: AX=AF00h"WinDOS",AX=AF11h"WinDOS"
----------2FAF12-----------------------------
INT 2F U - ???
AX = AF12h
???
Return: ES = ???
SeeAlso: AX=AF00h
--------O-2FAF13-----------------------------
INT 2F - WinDOS v2.11 - SET ASSIGN VALUE
AX = AF13h
BL = number of drive to remap (00h = A:)
DL = number of drive to be accessed via drive number BL
Return: nothing
Desc: remap a drive letter
Note: the remapping can be canceled by specifying DL=BL
SeeAlso: AX=AF00h"WinDOS",AX=AF14h"WinDOS",AX=0601h
----------2FAF13-----------------------------
INT 2F U - ???
AX = AF13h
???
Return: ???
SeeAlso: AX=AF00h
--------O-2FAF14-----------------------------
INT 2F - WinDOS v2.11 - GET ASSIGN VALUE
AX = AF14h
BL = drive number (00h = A:)
Return: DL = drive number which is actually accessed by drive number BL
Desc: determine the current mapping for a drive
SeeAlso: AX=AF00h"WinDOS",AX=AF13h"WinDOS",AX=0601h
--------O-2FAF15-----------------------------
INT 2F - WinDOS v2.11 - SIGNAL STACK ERROR
AX = AF15h
Return: never -- system reset
Desc: pop up a window indicating a stack overflow
SeeAlso: AX=AF00h"WinDOS",AX=AF0Bh"WinDOS"
--------O-2FAF16-----------------------------
INT 2F - WinDOS v2.11 - GET SIMPLE TRUENAME
AX = AF16h
DS:SI -> path to be canonicalized
ES:DI -> buffer for canonicalized filename/pathname
Return: CF clear if successful
AX = 0000h
CF set on error
AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
Desc: partially canonicalize a path, omitting SUBST, JOIN, ASSIGN, and
network redirections
SeeAlso: AX=AF00h"WinDOS",INT 21/AH=60h
--------O-2FAF17-----------------------------
INT 2F - WinDOS v2.11 - QUERY FOR NEW CURRENT DRIVE
AX = AF17h
Return: nothing
Desc: pop up a dialog allowing the user to select a new default drive
SeeAlso: AX=AF00h"WinDOS"
--------O-2FAF18-----------------------------
INT 2F - WinDOS v2.11 - SET CTRL-C/CTRL-BREAK DISABLE FLAG
AX = AF18h
DL = new break-checking state (00h enabled, 01h disabled)
Return: nothing
SeeAlso: AX=AF00h"WinDOS"
--------O-2FAF19-----------------------------
INT 2F - WinDOS v2.11 - SET HEAD SETTLE FLAG
AX = AF19h
DL = new state
00h diskette head settling time reset to 15ms before each access
01h no additional head settling time used between accesses
Return: nothing
SeeAlso: AX=AF00h"WinDOS"
--------O-2FAF1A-----------------------------
INT 2F - WinDOS v2.11 - SEARCH FOR NON-FRAGMENTED DISK AREA
AX = AF1Ah
BL = drive (00h = current, 01h = A:, etc.)
CX = number of clusters desired
Return: CF clear if successful
DI = first free cluster on logical drive
BP = first cluster of contiguous free area
AX destroyed
CF set on error
AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
Desc: attempt to find an area of the disk containing the specified number
of contiguous unallocated clusters
SeeAlso: AX=AF00h"WinDOS"
----------2FAF30-----------------------------
INT 2F U - ???
AX = AF30h
???
Return: ???
SeeAlso: AX=AF00h
--------d-2FAFDE-----------------------------
INT 2F - Disk-Emu - INSTALLATION CHECK / GET VERSION
AX = AFDEh
ES:DI -> 14-byte buffer for data (see #02979)
Return: AX = CFDEh (Carlos Fernandez Disk-Emu) if installed
BX = version (BH = major, BL = minor)
Format of Disk-Emu information data:
Offset Size Description (Table 02979)
00h BYTE number of tracks
01h BYTE sectors per track
02h WORD bytes per sector
04h BYTE number of heads
05h BYTE flag: 00h inactive, 01h active
06h BYTE write protection (00h none, 01h full, 02h pseudo)
07h BYTE saved (00h some unsaved data, 01h all data saved)
08h BYTE disk in memory (00h no, 01h yes)
09h WORD EMS handle
0Bh WORD XMS handle
0Dh BYTE memory type used for disk (00h XMS, 01h EMS)
--------V-2FB000-----------------------------
INT 2F - DOS 3.3+ GRAFTABL.COM - INSTALLATION CHECK
AX = B000h
Return: AL = status
00h not installed, OK to install
01h not installed, not OK to install
FFh installed
Notes: called by DISPLAY.SYS
documented for DOS 5.0, but undocumented in prior versions
SeeAlso: AX=2300h,AX=2E00h,AX=B001h
--------V-2FB001-----------------------------
INT 2F - DOS 3.3+ GRAFTABL.COM - GET GRAPHICS FONT TABLE
AX = B001h
DS:BX -> DWORD buffer for address of 8x8 font table
Return: buffer filled
AL = FFh
Note: PC-DOS 3.30/4.01 and MS-DOS 6.0 set the font table offset to 0130h,
MS-DOS 3.30 sets it to 0030h
SeeAlso: AH=2Eh"GRAFTABL",AX=B000h
--------I-2FB400-----------------------------
INT 2F - IBM PC3270 EMULATION PROG v3 - INSTALLATION CHECK
AX = B400h
Return: AL = FFh if installed
--------I-2FB401-----------------------------
INT 2F - IBM PC3270 EMULATION PROG v3 - GET HOST BUFFER ADDRESS
AX = B401h
Return: ES -> host screen buffer (PC ASCII format)
ES unchanged if communications not started
--------I-2FB402-----------------------------
INT 2F - IBM PC3270 EMULATION PROG v3 - ???
AX = B402h
BX = ???
Return: ???
--------I-2FB403-----------------------------
INT 2F - IBM PC3270 EMULATION PROG v3 - ???
AX = B403h
???
Return: ???
--------I-2FB404-----------------------------
INT 2F - IBM PC3270 EMULATION PROG v3 - ???
AX = B404h
???
Return: ???
--------I-2FB405-----------------------------
INT 2F - IBM PC3270 EMULATION PROG v3 - ???
AX = B405h
???
Return: ???
--------f-2FB700-----------------------------
INT 2F - APPEND - INSTALLATION CHECK
AX = B700h
Return: AL = status
00h not installed
FFh installed
Note: MS-DOS 3.30 APPEND refuses to install itself when run inside TopView or
a TopView-compatible environment
SeeAlso: AX=B702h
--------f-2FB701-----------------------------
INT 2F U - APPEND v3.21 only - GET APPEND PATH
AX = B701h
Return: ES:DI -> active APPEND path
Notes: the only version of APPEND known to support this call is the APPEND
shipped with Microtek MS-DOS 3.21; MS-DOS 3.30-6.00 APPEND displays
"Incorrect APPEND Version" and aborts the caller
use AX=B704h first, and only call this function if that one is not
supported
SeeAlso: AX=B700h,AX=B704h
--------f-2FB702-----------------------------
INT 2F - APPEND - GET VERSION
AX = B702h
Return: AX = FFFFh if not DOS 4.0 APPEND (also if DOS 5.0 APPEND)
AL = major version number
AH = minor version number, otherwise
SeeAlso: AX=B700h,AX=B710h
--------f-2FB703-----------------------------
INT 2F U - DOS 3.3, DOS 5.0 APPEND - HOOK INT 21
AX = B703h
ES:DI -> INT 21 handler APPEND should chain to
Return: ES:DI -> APPEND's INT 21 handler
Note: each invocation of this function toggles a flag which APPEND uses to
determine whether to chain to the user handler or the original
INT 21
SeeAlso: AX=B700h,AX=B706h
--------f-2FB704-----------------------------
INT 2F - DOS 3.3+ APPEND - GET APPEND PATH
AX = B704h
Return: ES:DI -> active APPEND path (128 bytes max)
Note: some versions of append do not support this call, and return ES
unchanged; in this case, you should call AX=B701h to get the APPEND
path
SeeAlso: AX=B701h
--------f-2FB706-----------------------------
INT 2F - DOS 4.0+ APPEND - GET APPEND FUNCTION STATE
AX = B706h
Return: BX = APPEND state (see #02980)
SeeAlso: AX=B700h,AX=B707h
Bitfields for APPEND state:
Bit(s) Description (Table 02980)
0 set if APPEND enabled
1-11 reserved
12 (DOS 5.0) set if APPEND applies directory search even if a drive has
been specified
13 set if /PATH flag active
14 set if /E flag active (environment var APPEND exists)
15 set if /X flag active
--------f-2FB707-----------------------------
INT 2F - DOS 4.0+ APPEND - SET APPEND FUNCTION STATE
AX = B707h
BX = APPEND state bits (see #02980)
SeeAlso: AX=B700h,AX=B706h
--------f-2FB710-----------------------------
INT 2F U - DOS 3.3+ APPEND - GET VERSION INFO
AX = B710h
Return: AX = current APPEND state (see #02980)
BX = ??? (0000h in MS-DOS 3.30 and 5.00)
CX = ??? (0000h in MS-DOS 3.30 and 5.00)
DL = major version
DH = minor version
SeeAlso: AX=B700h,AX=B702h
--------f-2FB711-----------------------------
INT 2F - DOS 4.0+ APPEND - SET RETURN FOUND NAME STATE
AX = B711h
Note: if the next INT 21h call (and ONLY the next) is function 3Dh, 43h, or
6Ch (also 4B03h and 4Eh if /X active), the fully qualified filename
is written over top of the filename passed to the INT 21h call. The
application must provide a sufficiently large buffer. This state is
reset after the next INT 21h call processed by APPEND.
APPEND uses the byte at offset 3Dh in the PSP
(see #01378 at INT 21/AH=26h) to store the flag telling it to
overwrite the filename
BUG: DOS 4.0 APPEND reportedly overwrites DS:DX instead of DS:SI for
INT 21/AH=6Ch
SeeAlso: INT 21/AH=26h,INT 21/AH=4Eh
--------N-2FB800-----------------------------
INT 2F - NETWORK - INSTALLATION CHECK
AX = B800h
Return: AL = status
00h not installed
nonzero installed
BX = installed component flags (test in this order!)
bit 6 server
bit 2 messenger
bit 7 receiver
bit 3 redirector
bit 1 LANPUP (LANtastic 4.0)
Notes: this function is supported by PC LAN Program, LAN Manager, LANtastic,
NetWare Lite, SilverNET, 10NET, etc.
LANtastic and NetWare Lite use only BL for the return value, preserving
BH; LAN Manager and DOS LAN Requester return BH=00h. This permits
differentiation between those two groups by setting BH to a nonzero
value before the call and checking its value on return.
SeeAlso: AX=4E53h,AX=B809h
--------N-2FB800CXF041-----------------------
INT 2F - 10NET - INSTALLATION CHECK
AX = B800h
CX = F041h
Return: AL = status
00h not installed
nonzero installed
BX = installed component flags (test in this order!)
bit 6 server
bit 2 messenger
bit 7 receiver
bit 3 redirector
bit 1 LANPUP (LANtastic 4.0)
CX = 10Net data segment
CX:DX -> 10Net Configuration Table
(see #01691 at INT 21/AX=5E01h"10NET")
Note: if CX <> F041h on entry, neither CX nor DX will be changed, and this
call becomes identical to the standard installation check above
SeeAlso: AX=B800h"network",INT 21/AX=5E01h"10NET"
--------N-2FB803-----------------------------
INT 2F - NETWORK - GET NETWORK EVENT POST HANDLER
AX = B803h
Return: ES:BX -> current event post handler (see AX=B804h)
Note: this function is supported by PC LAN Program, 10NET v5.0,
NetSoft DOS-NET v1.20+
SeeAlso: AX=B800h,AX=B804h,AX=B903h
--------N-2FB804-----------------------------
INT 2F - NETWORK - SET NETWORK EVENT POST HANDLER
AX = B804h
CX = (10NET) 0370h if 10Windows is hooking post handler
ES:BX -> new event post handler (see #02981)
Notes: used in conjunction with AX=B803h to hook into the network event post
routine
this function is supported by PC LAN Program, 10NET v5.0,
NetSoft DOS-NET v1.20+
The specified handler is called on any network event. Two events are
defined: message received and critical network error.
SeeAlso: AX=B800h,AX=B803h,AX=B904h
(Table 02981)
Values network post routine is called with:
AX = 0000h single block message
DS:SI -> ASCIZ originator name
DS:DI -> ASCIZ destination name
ES:BX -> text header (see #02982)
AX = 0001h start multiple message block
CX = block group ID
DS:SI -> ASCIZ originator name
DS:DI -> ASCIZ destination name
AX = 0002h multiple block text
CX = block group ID
ES:BX -> text header (see #02982)
AX = 0003h end multiple block message
CX = block group ID
AX = 0004h message aborted due to error
CX = block group ID
AX = 0101h server received badly formatted network request
Return: AX = FFFFh (PC LAN will process error)
AX = 0102h unexpected network error
ES:BX -> NCB (see #03249 at INT 5C"NetBIOS")
AX = 0103h server received INT 24 error
other registers as for INT 24, except AH is in BH
Return: as below, but only 0000h and FFFFh allowed
Return: AX = response code
0000h user post routine processed message
0001h PC LAN will process message, but message window not displayed
FFFFh PC LAN will process message
Format of text header:
Offset Size Description (Table 02982)
00h WORD length of text (maximum 512 bytes)
02h N BYTEs text of message
Note: all CRLF sequences in message text are replaced by 14h; all other
values below 20h (space) are reserved
--------N-2FB807-----------------------------
INT 2F - NETWORK - GET NetBIOS NAME NUMBER OF MACHINE NAME
AX = B807h
Return: CH = NetBIOS name number of the machine name
SeeAlso: INT 21/AX=5E00h
--------N-2FB808-----------------------------
INT 2F U - NETWORK - RELINK KEYBOARD HANDLER
AX = B808h
ES:BX -> INT 09 handler network should call after it finishes INT 09
Notes: this call replaces the address to which the network software chains on
an INT 09 without preserving the original value. This allows a prior
handler to unlink, but does not allow a new handler to be added
such that the network gets the INT 09 first unless the new handler
completely takes over INT 09 and never chains.
this function is called by the DOS 3.2 KEYBxx.COM and DOS 3.3+ KEYB.COM
SeeAlso: AX=B908h
--------N-2FB809-----------------------------
INT 2F - NETWORK - LANtastic, NetWare Lite - GET VERSION
AX = B809h
Return: AH = major version
AL = minor version (decimal)
Notes: this function is supported in this form by LANtastic, NetWare Lite,
SilverNET, ...
NetWare Lite returns its own version number rather than a PC LAN
compatibility version
SeeAlso: AX=4E53h,AX=B800h,AX=B809h"PC LAN Program"
--------N-2FB809-----------------------------
INT 2F - NETWORK - PC LAN Program, Microsoft Networking - GET VERSION
AX = B809h
Return: AH = minor version (decimal)
AL = major version
Notes: this function is supported in this form by PC LAN Program, LAN Manager,
the DOS LAN Requester, 10NET v5.0, and Microsoft Networking under
WfWg 3.11
10NET returns version 1.10 (AX=0A01h) for compatibility
SeeAlso: AX=4E53h,AX=B800h,AX=B809h"LANtastic"
--------N-2FB80A-----------------------------
INT 2F u - PC Network 1.00 - ???
AX = B80Ah
???
Return: ???
Program: PC Network is an early networking package which was renamed the
IBM PC Local Area Network Program (PC LAN Program) as of v1.10
Note: called by RECEIVER (equivalent to NetWare Lite SERVER)
--------N-2FB80E-----------------------------
INT 2F U - DOS LAN Requester - GET XSI2 ADDRESS / DATA
AX = B80Eh
Return: DS:DI -> XSI2 TSR's resident data (see #02983)
Note: this function is used by NET.COM to locate the USERID and DOMAIN of
the logged-in user (which may differ from the NET START domain
name from DOSLAN.INI which is returned by AX=B80Fh)
SeeAlso: AX=B800h,AX=B80Fh
Format of XSI2 resident data:
Offset Size Description (Table 02983)
00h 254 BYTEs ???
FEh 10 BYTEs user ID 1
108h 10 BYTEs user ID 2
112h 10 BYTEs domain name 1
11Ch 10 BYTEs domain name 2
126h ? BYTEs domain controller
--------N-2FB80F-----------------------------
INT 2F - DOS LAN Requester - GET START PARAMETERS
AX = B80Fh
CX = size of return data buffer
ES:DI -> return data buffer (see #02984)
Return: AX = status
00h network started
nonzero network not started
CX = number of bytes returned in buffer
ES:DI buffer filled
SeeAlso: AX=B809h"PC LAN Program",AX=B80Eh
Format of DOS LAN Requester return data buffer:
Offset Size Description (Table 02984)
00h BYTE major version
01h BYTE minor version
02h WORD configuration flags given when network was started (see #02985)
04h 15 BYTEs NET START machine name (space padded)
13h BYTE 00h
14h 9 BYTEs NET START domain name (NULL padded)
1Dh BYTE 00h
1Eh 32 BYTEs /WRK heuristics string (space padded, not terminated)
3Eh WORD /SRV value
40h WORD /ASG value
42h WORD /NBC value
44h WORD /NBS value
46h WORD /BBC value
48h WORD /BBS value
4Ah WORD /PBC value
4Ch WORD /PBS value
4Eh WORD /PFS value
50h WORD /PFT value
52h WORD /PWT value
54h WORD /KUC value
56h WORD /KST value
58h WORD /NVS value
5Ah WORD /NMS value
5Ch WORD /NDB value
5Eh WORD /MBI value
60h BYTE NetBIOS name number for machine name
61h BYTE NetBIOS name number for domain name
62h WORD NetBIOS sessions required for configuration
64h WORD NetBIOS commands required for configuration
66h WORD NetBIOS names required for configuration
68h 128 BYTEs NET START path (LANROOT)
E8h BYTE 00h
Bitfields for configuration flags:
Bit(s) Description (Table 02985)
0 /NVS nonzero
1 /NMS nonzero
2 /API
3 /HIM
4 /LIM
5 /ENC
6 /POP
7 /EMS
8 /RPL
9-12 reserved
13 RDR started
14 RCV started
15 User is currently logged on
--------N-2FB900-----------------------------
INT 2F - PC Network RECEIVER.COM - INSTALLATION CHECK
AX = B900h
Return: AL = state
00h if not installed
FFh if installed
--------N-2FB901-----------------------------
INT 2F - PC Network RECEIVER.COM - GET RECEIVER.COM INT 2F HANDLER ADDRESS
AX = B901h
Return: AL = ???
ES:BX -> RECEIVER.COM INT 2F handler
Desc: allows more efficient execution by letting the caller bypass any other
INT 2F handlers which have been added since RECEIVER.COM was
installed
--------N-2FB903-----------------------------
INT 2F - PC Network RECEIVER.COM - GET RECEIVER.COM POST ADDRESS
AX = B903h
Return: ES:BX -> POST handler
SeeAlso: AX=B803h,AX=B904h
--------N-2FB904-----------------------------
INT 2F - PC Network RECEIVER.COM - SET RECEIVER.COM POST ADDRESS
AX = B904h
ES:BX -> new POST handler
SeeAlso: AX=B804h,AX=B903h
--------N-2FB905-----------------------------
INT 2F - PC Network RECEIVER.COM - GET FILENAME
AX = B905h
DS:BX -> 128-byte buffer for filename 1
DS:DX -> 128-byte buffer for filename 2
Return: buffers filled from RECEIVER.COM internal buffers
Note: use of filenames is unknown, but one appears to be for storing messages
SeeAlso: AX=B906h
--------N-2FB906-----------------------------
INT 2F - PC Network RECEIVER.COM - SET FILENAME
AX = B906h
DS:BX -> 128-byte buffer for filename 1
DS:DX -> 128-byte buffer for filename 2
Return: RECEIVER.COM internal buffers filled from user buffers
Note: use of filenames is unknown, but one appears to be for storing messages
SeeAlso: AX=B905h
--------N-2FB908-----------------------------
INT 2F - PC Network RECEIVER.COM - UNLINK KEYBOARD HANDLER
AX = B908h
ES:BX -> INT 09 handler RECEIVER should call after it finishes INT 09
Note: this call replaces the address to which RECEIVER.COM chains on an
INT 09 without preserving the original value. This allows a prior
handler to unlink, but does not allow a new handler to be added
such that RECEIVER gets the INT 09 first.
SeeAlso: AX=B808h
----------2FBB00BX0000-----------------------
INT 2F - CATC USB4DOS Host Controller - INSTALLATION CHECK
AX = BB00h
BX = 0000h
Return: AX = 0001h if installed
----------2FBB00BX0001-----------------------
INT 2F - CATC USB4DOS Host Controller - GET ???
AX = BB00h
BX = 0001h
Return: AX = 0000h
CX:BX -> ???
----------2FBB00BX0002-----------------------
INT 2F - CATC USB4DOS Host Controller - EXECUTE USB REQUEST
AX = BB00h
BX = 0002h
CX:DX -> request packet (see #04097)
Return: AX = destroyed
Format of USB4DOS Host Controller request packet:
Offset Size Description (Table 04097)
00h WORD command number
02h WORD (ret) major status
04h WORD (ret) minor status
06h DWORD -> callback function
0Ah 25 BYTEs data for command (varies by command number)
23h 12 BYTEs reserved for future use
----------2FBB00BX0003-----------------------
INT 2F - CATC USB4DOS Host Controller - ??? (POLLS VARIOUS I/O PORTS)
AX = BB00h
BX = 0003h
Return: AX = ???
----------2FBB00-----------------------------
INT 2F - CATC USB4DOS Host Controller - INVALID FUNCTION
AX = BB00h
BX > 0003h
Return: AX = FFFFh (invalid function)
--------V-2FBC00-----------------------------
INT 2F - Windows 3.0, DOS 5+ EGA.SYS - INSTALLATION CHECK
AX = BC00h
Return: AL = state
00h not installed, OK to install
01h not installed, not OK to install
FFh installed
BX = 5456h ("TV")
Range: AH=80h to AH=FFh, selected by commandline switch
SeeAlso: AX=BC06h"EGA",INT 10/AH=FAh"EGA"
----------2FBC00BL00-------------------------
INT 2F - CATC USB4DOS Device Manager - INSTALLATION CHECK
AX = BC00h
BL = 00h
Return: AX = installation state
0000h not installed
0001h installed
BC00h not installed
SeeAlso: AX=BC00h/BL=01h,AX=BC00h/BL=03h
----------2FBC00BL01-------------------------
INT 2F - CATC USB4DOS Device Manager - REGISTER DEVICE
AX = BC00h
BL = 01h
CX:DX -> client_info structure (see #04096)
Return: AX = client number, 0000h on failure
SeeAlso: AX=BC00h/BL=02h,AX=BC00h/BL=00h
Format of CATC USB4DOS client_info structure:
Offset Size Description (Table 04096)
00h DWORD -> Attach() worker function
04h DWORD -> Detach() worker function
----------2FBC00BL02-------------------------
INT 2F - CATC USB4DOS Device Manager - UNLOAD DEVICE
AX = BC00h
BL = 02h
CX = client number
Return: AX destroyed
SeeAlso: AX=BC00h/BL=01h,AX=BC00h/BL=00h
----------2FBC00BL03-------------------------
INT 2F - CATC USB4DOS Device Manager - HUB DEVICE ATTACHED
AX = BC00h
BL = 03h
BH = address and device type
bits 7-1: USB address of hub
bit 0: device speed
=0 low-speed device
=1 full-speed device
CX:DX -> callback function
Return: AX = USB address of attached device, or 0000h on failure
SeeAlso: AX=BC00h/BL=04h,AX=BC00h/BL=00h
----------2FBC00BL04-------------------------
INT 2F - CATC USB4DOS Device Manager - HUB DEVICE DETACHED
AX = BC00h
BL = 04h
BH = USB address of detached device (may be the hub itself)
Return: AX destroyed
SeeAlso: AX=BC00h/BL=03h,AX=BC00h/BL=00h
--------s-2FBC00BX3F3F-----------------------
INT 2F - MediaVision MVSOUND.SYS - INSTALLATION CHECK
AX = BC00h
BX = 3F3Fh ('??')
CX = 0000h
DX = 0000h
Return: if installed, BX XOR CX XOR DX = 4D56h ('MV')
Program: MVSOUND.SYS is a driver for the MediaVision ProAudio Spectrum family
of sound boards; its primary programmer was Bryan Crane
SeeAlso: AX=BC01h"MVSOUND",AX=BC02h,AX=BC03h,AX=BC04h,AX=BC06h"MVSOUND"
--------s-2FBC01-----------------------------
INT 2F - MediaVision MVSOUND.SYS - GET VERSION
AX = BC01h
BX = magic value 6D20h ('m ')
CX = magic value 2076h (' v')
DX = magic value 2020h (' ')
Return: BX = ASCII major version (leading zeros significant)
CX = ASCII minor version (leading zeros significant)
SeeAlso: AX=BC00h/BX=3F3Fh
--------s-2FBC02-----------------------------
INT 2F - MediaVision MVSOUND.SYS - GET STATE TABLE POINTER
AX = BC02h
Return: AX = 4D56h ('MV')
BX:DX -> state table
SeeAlso: AX=BC00h/BX=3F3Fh,AX=BC03h
--------s-2FBC03-----------------------------
INT 2F - MediaVision MVSOUND.SYS - GET FUNCTION TABLE POINTER
AX = BC03h
Return: AX = 4D56h ('MV')
BX:DX -> function table
CX = ??? (000Eh)
SeeAlso: AX=BC00h/BX=3F3Fh,AX=BC02h
--------s-2FBC04-----------------------------
INT 2F - MediaVision MVSOUND.SYS - GET DMA AND IRQ CHANNELS
AX = BC04h
Return: AX = 4D56h ('MV')
BL = DMA channel
CL = IRQ number
SeeAlso: AX=BC00h/BX=3F3Fh,AX=BC01h"MVSOUND"
--------V-2FBC06-----------------------------
INT 2F U - MS Windows 3.0, DOS 5+ EGA.SYS - GET VERSION INFO
AX = BC06h
Return: BX = 5456h ("TV")
CH = major version
CL = minor version
DL = revision
SeeAlso: AX=BC00h"EGA",INT 10/AH=FAh"EGA"
--------s-2FBC06-----------------------------
INT 2F - MediaVision MVSOUND.SYS - GET STATUS STRING
AX = BC06h
Return: AX = 4D56h ('MV')
DX:BX -> status string (first byte 0Ch if no status message to display)
SeeAlso: AX=BC00h/BX=3F3Fh,AX=BC01h"MVSOUND",AX=BC0Bh"MVSOUND"
--------s-2FBC0B-----------------------------
INT 2F - MediaVision MVSOUND.SYS - GET EXECUTABLE PATH
AX = BC0Bh
Return: BX:DX -> ASCIZ path for MVPROAS.EXE, 0000h:0000h if not available
SeeAlso: AX=BC00h/BX=3F3Fh
--------s-2FBC0E-----------------------------
INT 2F - MediaVision MVSOUND.SYS - RE-INITIALIZE INT 09 HANDLER
AX = BC0Eh
Return: BX = status
0000h on failure
AX = 0000h
FFFFh if successful
DX:AX -> prior INT 09 handler
Desc: re-initialize INT 09 handler to re-enable hotkeys (e.g. after loading
KEYB)
--------U-2FBE00-----------------------------
INT 2F - REDVIEW - INSTALLATION CHECK
AX = BE00h
Return: AL = FFh if installed
Program: REDVIEW is a public-domain TSR by Alexandr Novy and Petr Horak which
copies data sent to standard output to standard error when the
former has been redirected to a file, thus allowing the data to
be seen on the screen at the same time it is captured in a file
--------N-2FBF00-----------------------------
INT 2F - PC LAN PROGRAM REDIRIFS.EXE internal - INSTALLATION CHECK
AX = BF00h
Return: AL = FFh if installed
Note: this function is also supported by NetSoft's DOS-NET v1.20+; however,
none of the remaining BFxxh calls are supported
SeeAlso: AX=BF01h,AX=BF80h,INT 2A/AX=4147h
--------N-2FBF01-----------------------------
INT 2F U - PC LAN PROGRAM REDIRIFS.EXE internal - ???
AX = BF01h
???
Return: ???
SeeAlso: AX=BF00h
--------N-2FBF80-----------------------------
INT 2F - PC LAN PROG REDIR.SYS internal - SET REDIRIFS ENTRY POINT
AX = BF80h
ES:DI -> FAR entry point to IFS handler in REDIRIFS
Return: AL = FFh if installed
ES:DI -> internal workspace
Note: all future IFS calls to REDIR.SYS are passed to the ES:DI entry point
SeeAlso: AX=BF00h
--------F-2FC0-------------------------------
INT 2F - METZ XpressFax Hardware TSR (CLASS2) - API
AH = C0h
AL = function code (01h to 15h)
Return: ???
SeeAlso: AX=C000h/BX=444Bh,AX=CB00h/BX=4D53h
--------N-2FC000-----------------------------
INT 2F - Novell ODI Link Support Layer (LSL.COM) - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if installed
DX:BX -> FAR entry point (see #02986,#02987,#02988)
ES:SI -> signature string "LINKSUP$"
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
Note: on return, ES = DX for LSL v1.10 and v2.05; LSL makes use of this in
its search for a previous installation
SeeAlso: AX=5100h,AX=C000h"NESL"
(Table 02986)
Call LSL function "Request MLID Registration" with:
BX = 0001h
ES:SI -> registration??? record (see #02990)
DS:DI -> buffer for LSL information block (see #02991)
Return: AX = completion code (0000h,8001h) (see #02989)
DS:DI buffer filled if successful
BX,CX corrupted
Note: see "Novell LAN Driver Developer's Guide, Volume III" for more details
(Table 02987)
Call LSL function "get support entry points" with:
BX = 0002h
ES:SI -> buffer for entry point record (see #02992)
Return: ES:SI buffer filled
(Table 02988)
Call LSL function "Request MLID API entry point" with:
BX = 0003h
Return: ES:SI -> MLID (Multiple Link Interface Driver) API entry point
(call with BX=function 00h-10h, not range-checked)
Note: LSL v1.10 and v2.05 execute BX=0003h for BX=0000h and any BX >= 0003h
(Table 02989)
Values for LSL completion code:
0000h successful
8001h out of resources
8002h bad parameter
8003h no more items
8004h item not present
8005h failed
8006h receive overflow
8007h canceled
8008h bad command
8009h duplicate entry
800Ah no such handler
800Bh no such driver
Format of LSL registration record:
Offset Size Description (Table 02990)
00h DWORD -> ??? FAR function (to be called with ES:SI -> ??? and
returning AX = completion code)
04h DWORD -> ???
08h DWORD -> ??? data (at least 3Eh bytes)
Format of LSL information block:
Offset Size Description (Table 02991)
00h DWORD -> ??? entry point (called with BX=function 00h-11h)
04h WORD ???
06h WORD ???
Note: due to a fencepost error, LSL v2.05 (distributed with Novell DOS 7)
will crash if the above entry point is called with BX=0012h
Format of entry point record:
Offset Size Description (Table 02992)
00h DWORD pointer to protocol support entry point in LSL (see #02993)
04h DWORD pointer to general support entry point in LSL (see #02994)
(Table 02993)
Call protocol support entry point with:
BX = function number
0000h ???
0001h ???
0002h ???
0003h "ScheduleAESEvent"
ES:SI -> AES ECB to be scheduled (see #02997)
Return: ES,SI preserved
0004h "CancelAESEvent"
ES:SI -> ECB to be cancelled (see #02997)
Return: ES,SI preserved
0005h "GetIntervalMarker"
Return: DX:AX = current interval marker in milliseconds
all other registers preserved
0006h "RegisterStack"
AX = logical board number
ES:SI -> bound stack info structure (see #03007)
Return: BX = assigned Stack ID if AX=0000h
0007h "DeRegisterStack"
AX = protocol stack's assigned Stack ID
0008h "RegisterDefaultStack"
AX = logical board number
ES:SI -> stack info structure (see #03008)
0009h "DeRegisterDefaultStack"
AX = logical board number
000Ah "RegisterPrescanStack"
AX = logical board number
ES:SI -> stack info structure (see #03008)
000Bh "DeRegisterPrescanStack"
AX = logical board number
000Ch "SendPacket"
ES:SI -> send ECB
Return: interrupts disabled
000Dh ???
000Eh ???
000Fh ???
0010h "GetStackIDFromName"
ES:SI -> counted NUL-terminated protocol name (max 15 chars)
Return: BX = Stack ID if AX=0000h
0011h "GetPIDFromStackIDBoard"
AX = Stack ID for protocol
CX = logical board number
ES:SI -> 6-byte buffer for protocol ID
0012h "GetMLIDControlEntry"
AX = logical board number
Return: ES:SI -> MLID control handler (see #02995) if AX=0000h
0013h "GetProtocolControlEntry"
AX = Stack ID or
FFFEh Prescan stack
CX = logical board number
FFFFh default protocol
CX = logical board number
Return: ES:SI -> protocol stack control entry point if AX=0000h
(see #02996)
0014h "GetLSLStatistics"
Return: AX = 0000h (successful)
ZF set
ES:SI -> LSL statistics table (see #02999)
0015h "BindStack"
AX = protocol stack's assigned Stack ID
CX = logical board number
0016h "UnbindStack"
AX = protocol stack's assigned Stack ID
CX = logical board number
0017h "AddProtocolID"
AX = frame type ID code
ES:SI -> 6-byte protocol ID
CX:DI -> counted NUL-terminated short protocol name (max 15 ch)
0018h "RelinquishControl"
Return: after LSL performs any necessary background processing
0019h "GetLSLConfiguration"
Return: AX = 0000h (successful)
ZF set
ES:SI -> LSL configuration table (see #02998)
001Ah "GetTickMarker"
Return: AX = number of 55ms ticks since LSL loaded
BX destroyed
Return: AX = completion code (see #02989)
ZF set if successful
SS:SP, DS, BP preserved; most other registers may be destroyed
(Table 02994)
Call general support entry point with:
BX = function number
0000h "Allocate Memory" (obsolete)
always returns AX=8008h (BAD_COMMAND)
0001h "Free Memory" (obsolete)
always returns AX=8008h (BAD_COMMAND)
0002h "Realloc Memory" (obsolete)
always returns AX=8008h (BAD_COMMAND)
0003h "Memory Statistics" (obsolete)
always returns AX=8008h (BAD_COMMAND)
0004h "Add Memory To Pool" (obsolete)
always returns AX=8008h (BAD_COMMAND)
0005h "AddGeneralService"
ES:SI -> General Service Control Block (see #03009)
0006h "RemoveGeneralService"
ES:SI -> General Service Control Block (see #03009)
0007h "GetNETcfgPath"
Return: AX = 0000h (successful)
DS:DX -> ASCIZ pathname for NET.CFG
0008h U ??? (in LSL 1.10)
Return: AX = 0000h
ES:SI -> ??? (a 22-byte data area)
000Ah "GetCriticalSectionStatus"
Return: BX = total outstanding calls to "StartCriticalSection"
000Bh "ServiceEvents"
interrupts disabled
Return: interrupts disabled
0010h "GetStackECB"
DS:DI -> Lookahead structure (see #03010)
interrupts disabled
Return: ES:SI -> ECB if successful (AX=0000h,ZF set)
interrupts disabled
8000h-FFFFh reserved for user general service providers
Return: AX = completion code (see #02989)
ZF set if successful
SS:SP, DS, BP preserved
(Table 02995)
Call MLID control handler with:
AX = logical board number
BX = function number
0000h "GetMLIDConfiguration"
Return: ES:SI -> MLID's configuration table if successful
(see #03002 for format)
0001h "GetMLIDStatistics"
Return: ES:SI -> MLID's statistics table if successful
(see #03002 for format)
0002h "AddMulticastAddress"
ES:SI -> 6-byte multicast address to add
0003h "DeleteMulticastAddress"
ES:SI -> 6-byte multicast address to delete
0005h "MLIDShutdown"
CX = type
0000h permanent (also deregisters from LSL)
other temporary (shutdown hardware only)
0006h "MLIDReset" reinitialize board / restart from temp shutdown
0007h "Create Connection" (obsolete?)
???
0008h "Delete Connection" (obsolete?)
???
0009h "SetLookAheadSize"
CX = requested lookahead size (00h-80h)
000Ah "PromiscuousChange"
CX = what to receive promiscuously
bit 0: MAC frames
bit 1: non-MAC frames
000Bh "RegisterReceiveMonitor"
CX = subfunction
0000h disable receive monitoring
else enable receive monitoring
ES:SI -> monitor receive routine
ES:DI -> monitor transmit routine
000Ch "Driver Poll" (obsolete?)
???
Return: AX = completion code (see #02989)
ZF set if successful
Note: not all boards/MLIDs support function 0010h; see bit 13 in the MLID
mode flags field of the MLID's configuration table
(Table 02996)
Call protocol stack control entry point with:
BX = function number
0000h "GetProtocolStackConfiguration"
Return: ES:SI -> protocol stack's configuration table
(see #03001)
0001h "GetProtocolStackStatistics"
Return: ES:SI -> protocol stack's statistics table (see #03000)
0002h "BindToMLID"
CX = board number to bind to
ES:SI -> implementation-dependant parameter string
0003h "UnBindFromMLID"
CX = board number from which protocol should unbind
ES:SI -> optional implementation-dependant parameter string
0004h "MLIDDeRegistered"
CX = board number that has de-registered from LSL
Return: AX = status
0000h successful
else implementation-dependant error codes
ZF set if successful
SS:SP, DS, BP preserved
Format of AES ECB:
Offset Size Description (Table 02997)
00h DWORD "AESLink" pointer used by LSL for list management
04h DWORD number of milliseconds to wait
08h DWORD "AESStatus" (is set to 00000000h when AES ESR is invoked)
0Ch DWORD -> function to be invoked when time expires
ES:SI will point to this structure on entry,
DS, BP, and SS:SP must be preserved.
SeeAlso: #03011
Format of LSL Configuration Table:
Offset Size Description (Table 02998)
00h BYTE major version of configuration table
01h BYTE minor version of configuration table (decimal, 0-99)
02h 8 BYTEs reserved
0Ah BYTE LSL major version (decimal)
0Bh BYTE LSL minor version (decimal, 0-99)
---LSL 1.0x ---
0Ch 14 BYTEs reserved
---LSL 1.10+ ---
0Ch WORD maximum number of boards which LSL can handle
0Eh WORD maximum number of protocol IDs which LSL can handle
10h 12 BYTEs reserved
Format of LSL Statistics Table:
Offset Size Description (Table 02999)
00h BYTE major version of statistics table format
01h BYTE minor version of statistics table format (decimal, 0-99)
02h WORD "GenericCounters" number of counters in static portion of
table
04h DWORD "ValidCountersMask" bit mask indicating which generic
counters are actually used. Bit 31 = TotalTxPackets, bit 30
is the next field, etc.
08h DWORD "TotalTxPackets" total SendPacket requests made
0Ch DWORD reserved
10h DWORD reserved
14h DWORD "AESEventsCount" number of completed AES events
18h DWORD "PostponedEvents" number of events postponed due to critical
sections inside the MLIDs
1Ch DWORD "CancelAESFailures" number of times CancelAESEvent failed
20h DWORD reserved
24h DWORD reserved
28h DWORD "TotalRxPackets" total number of GetStackECB requests
2Ch DWORD "UnclaimedPackets" total number of packets not consumed by a
protocol stack
30h WORD "NumberCustom" number of custom variables that follow
32h N DWORDs custom counters
N DWORDs -> CustomCounterStrN (one per custom counter)
var length-prepended and NULL terminated string for Counter 0
...
var length-prepended and NULL terminated string for Counter N-1
SeeAlso: #03000,#03006
Format of Protocol Stack Statistics Table:
Offset Size Description (Table 03000)
00h BYTE statistics table major version
01h BYTE statistics table minor version (decimal, 0-99)
02h WORD number of generic counters following
04h DWORD "ValidCountersMask" (bitmask, bit 31 is TotalTxPackets)
08h DWORD TotalTxPackets
0Ch DWORD TotalRxPackets
10h DWORD IgnoredRxPackets
14h WORD number of custom counters
16h N DWORDs custom counters
N DWORDs -> CustomCounterStrN (one per custom counter)
var length-prepended and NULL terminated string for Counter 0
...
var length-prepended and NULL terminated string for Counter N-1
SeeAlso: #02999,#03006
Format of Protocol Stack Configuration Table:
Offset Size Description (Table 03001)
00h BYTE configuration table major version
01h BYTE configuration table minor version (decimal, 0-99)
02h DWORD -> counted NUL-terminated long descriptive name for protocol
06h DWORD -> counted NUL-terminated short name for protocol (15 chars)
0Ah BYTE protocol stack major version
0Bh BYTE protocol stack minor version (decimal, 0-99)
0Ch 16 BYTEs reserved for future use
Format of MLID Configuration Table:
Offset Size Description (Table 03002)
00h 26 BYTEs signature 'HardwareDriverMLID ' (8 spaces on end)
1Ah BYTE configuration table major version
1Bh BYTE configuration table minor version (decimal, 0-99)
1Ch 6 BYTEs node address
22h WORD MLID mode flags (see #03003)
24h WORD board number
26h WORD board instance (if more than one of same board installed)
28h WORD maximum packet size
2Ah WORD BestDataSize
2Ch WORD WorstDataSize
2Eh DWORD -> counted NUL-terminated long name for NIC
32h DWORD -> counted NUL-terminated short name for NIC (8 chars max)
36h DWORD -> counted NUL-terminated Frame and Media type
3Ah WORD reserved (0000h)
3Ch WORD frame type ID
3Eh WORD TransportTime (milliseconds)
40h DWORD -> SourceRouteHandler for TokenRing. (Used by ROUTE.COM)
44h WORD lookahead size
46h WORD line speed (Mbps if high bit clear, else Kbps)
48h WORD QueueDepth
4Ah 6 BYTEs reserved (0)
50h BYTE driver major version
51h BYTE driver minor version (decimal, 0-99)
52h WORD bus/multicast flags (see #03004)
54h WORD send retries
56h DWORD ConfigTableLink
5Ah WORD MLID sharing flags (see #03005)
5Ch WORD slot number
5Eh WORD I/O address 1
60h WORD I/O range 1
62h WORD I/O address 2
64h WORD I/O range 2
66h DWORD memory address 1
6Ah WORD memory size 1
6Ch DWORD memory address 2
70h WORD memory size 2
72h BYTE interrupt line 1
73h BYTE interrupt line 2
74h BYTE DMA line 1
75h BYTE DMA line 2
Bitfields for MLID mode flags:
Bit(s) Description (Table 03003)
15 MLID supports Octet Reversal
14 node address is non-canonical
13 promiscuous mode is supported
12-8 reserved
7 LDataSize field in LookAhead structure supported
6 raw send supported
5 MLID needs to be polled by LSL
4 reserved (0)
3 multicasting is supported
2 not currently used by DOS ODI, set to 0.
1 network card uses DMA.
0 RealDriverBit, always set to 1.
Bitfields for bus/multicast flags:
Bit(s) Description (Table 03004)
10-9 specialized multicast support
00 = Group addressing is default for medium
01 = Invalid
10 = Filter group address in MLID.
11 = Adapter filters group address.
2 supports Micro Channel cards
1 supports ISA cards
0 supports EISA cards
Bitfields for MLID sharing flags:
Bit(s) Description (Table 03005)
8 NIC can share DMA2
7 NIC can share DMA1
6 NIC can share IRQ2
5 NIC can share IRQ1
4 NIC can share Memory2
3 NIC can share Memory1
2 NIC can share IO2
1 NIC can share IO1
0 MLID is currently shut down
Format of MLID Statistics Table:
Offset Size Description (Table 03006)
00h BYTE driver statistics table major version
01h BYTE driver statistics table minor version (decimal, 0-99)
02h WORD number of generic counters (typically 13)
04h DWORD "ValidCountersMask" (bit mask, bit 31 is TotalTxCount)
08h DWORD TotalTxCount
0Ch DWORD TotalRxCount
10h DWORD NoECBAvailableCount
14h DWORD TxTooBigCount
18h DWORD TxTooSmallCount
1Ch DWORD RxOverflowCount
20h DWORD RxTooBigCount
24h DWORD RxTooSmallCount
28h DWORD TxMiscCount
2Ch DWORD RxMiscCount
30h DWORD TxRetryCount
34h DWORD RxChecksumErrorCount
38h DWORD RxMismatchCount
3Ch WORD number of custom counters
3Eh N DWORDs custom counters
N DWORDs -> CustomCounterStrN (one per custom counter)
var length-prepended and NULL terminated string for Counter 0
...
var length-prepended and NULL terminated string for Counter N-1
SeeAlso: #02999,#03000
Format of bound stack info structure:
Offset Size Description (Table 03007)
00h DWORD -> protocol stack's short name (counted, NUL-terminated)
04h DWORD -> receive handler
08h DWORD -> control handler
Format of stack info structure:
Offset Size Description (Table 03008)
00h DWORD -> receive handler
04h DWORD -> control handler
Format of General Service Control Block:
Offset Size Description (Table 03009)
00h DWORD -> next GSCB (maintained internally by LSL)
04h DWORD -> entry point for general service handler
08h WORD command code for this general service (8000h-FFFFh)
Note: the control block must not be altered or deallocated until the general
service is removed
Format of Lookahead structure:
Offset Size Description (Table 03010)
00h DWORD -> Media header
04h DWORD -> lookahead buffer
08h WORD length of lookahead buffer
0Ah 6 BYTEs protocol ID
10h WORD logical board number
12h WORD lookahead size
Format of ODI ECB:
Offset Size Description (Table 03011)
00h DWORD link to next ECB
04h DWORD link to previous ECB
08h WORD general status
0000h received successfully
8006h packet overflow
8007h reception aborted (data not valid)
0Ah DWORD -> event service routine or RETF (never 0000h:0000h)(see #03012)
0Eh WORD protocol stack identifier
10h 6 BYTEs protocol ID (sending only)
16h WORD MLID board number (sending only)
18h 6 BYTEs MAC destination address
1Eh 4 BYTEs driver workspace
22h 8 BYTEs protocol workspace
2Ah WORD total length of sent buffer
2Ch WORD fragment count
2Eh 2 WORDs segment,offset of first fragment buffer
32h WORD length of first fragment buffer
...
SeeAlso: #02997
(Table 03012)
Values event service routine is called with:
ES:SI -> associated ODI ECB (see #03011)
interrupts disabled
Return: DS,BP,SS,SP preserved
interrupt disabled
Notes: the service routine may invoke any IPX/ODI function except CloseSocket
it is safe to send a packet and wait for completion if enough stack
space is available
--------N-2FC000-----------------------------
INT 2F - Novell NetWare Event Service Layer (NESL) 1.0 - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if installed
DX:BX -> FAR entry point (see #03013,#03014,#03015,#03016,#03017,#03018)
ES:SI -> signature string "NESL_EVENTS"
Program: NESL is a generic interface for event handling in ODI drivers and
other NetWare-oriented modules. Primarily intended to support
power management and "hot swapping" of PCMCIA cards, but it is not
limited to this.
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C000h"Link Support Layer",AX=C000h"NETWARN"
(Table 03013)
Call NESL function GetNESLConfigPointer with:
BX = 0000h
Return: AX = completion code (0000h,8008h) (see #03019)
ES:SI -> NESL configuration table if successful (see #03020)
BP,DS,STACK preserved
Desc: Obtain a pointer to the NESL Configuration Table
SeeAlso: #03014,#03017
(Table 03014)
Call NESL function RegisterEventProducer with:
BX = 0001h
ES:SI -> Producer Event Control Block (PECB) (see #03021)
Return: AX = completion code (0000h, 8005h, 8008h) (see #03019)
ES:SI -> still points to PECB
BP,DS,STACK preserved
Desc: Allows a module to register as a producer of a given event class
Note: PECB_ClassName and PECB_Flags must be filled in on entry
SeeAlso: #02870,#03015,#03016,#03017
(Table 03015)
Call NESL function DeRegisterEventProducer with:
BX = 0002h
ES:SI -> PECB previously passed to RegisterEventProducer (see #03021)
Return: AX = completion code (0000h, 8002h, 8008h) (see #03019)
ES:SI -> still points to PECB
BP,DS,STACK preserved
Desc: Allows a module to de-register as a producer of a given event class
SeeAlso: #03014,#03018
(Table 03016)
Call NESL function EventNotification with:
BX = 0003h
ES:SI -> PECB previously registered (see #03021)
Return: AX = completion code (0h, 8005h, 8008h) (see #03019)
ES:SI -> still points to PECB
BP,DS,STACK preserved
Desc: Allows a module to signal that an event has just occurred in a given
event class.
Notes: Once called, NESL will generate corresponding callouts for this
event, as described in Table #03023.
on entry, the PECB_DataPtr must point at an Event Parameter Block (EPB)
(see #03024) filled in to match the desired event
SeeAlso: #03014
(Table 03017)
Call NESL function RegisterEventConsumer with:
BX = 0004h
ES:SI -> Consumer Event Control Block (CECB) (see #03022)
Return: AX = completion code (0h, 8005h, 8008h) (see #03019)
ES:SI -> still points to CECB
BP,DS,STACK preserved
Desc: Allows a module to register as a consumer of a given event class
Note: on entry, the CECB_ClassName, CECB_NotifProc and CECB_OSILevel must be
filled in.
SeeAlso: #03014,#03018
(Table 03018)
Call NESL function DeRegisterEventConsumer with:
BX = 0005h
ES:SI -> CECB previously passed to RegisterEventConsumer (see #03022)
Return: AX = completion code (0h, 8002h, 8008h) (see #03019)
ES:SI -> still points to CECB
BP,DS,STACK preserved
Desc: Allows a module to de-register as a consumer of a given event class
SeeAlso: #03015,#03017
(Table 03019)
Values for NESL Error code:
0000h Successful
8002h Bad Parameter
8005h Fail
8008h Bad Command
Format of NESL Configuration Table:
Offset Size Description (Table 03020)
00h WORD NESL_Cfg_MajVer Major Version of this table (=1)
02h WORD NESL_Cfg_MinVer Minor Version of this table (=0)
04h DWORD NESL_Cfg_ModLName -> ASCIZ long name of NESL module
(typically -> "NetWare Event Service Layer for 16-Bit DOS")
08h DWORD NESL_Cfg_ModSName -> ASCIZ short name of NESL module
(typically -> "NESL")
0Ch WORD NESL_Cfg_ModMajVer Major Version of NESL itself (=1)
0Eh WORD NESL_Cfg_ModMinVer Minor Version of NESL itself (=0)
Format of NESL Producer Event Control Block (PECB):
Offset Size Description (Table 03021)
00h WORD PECB_MajVer Major Version of this structure (=1)
02h WORD PECB_MinVer Minor Version of this structure (=0)
04h DWORD PECB_NextProducer -> next PECB. NULL if last.
08h DWORD PECB_ClassName -> ASCIZ string identifying event
class (see #03025)
0Ch DWORD PECB_ConsumerList -> list of consumers for this event class
10h DWORD PECB_DataPtr -> points to additional data during events
14h DWORD PECB_Flags
Bit 0 =0 consumers should be called "top down" for this
event class. (OSI level 7 down to OSI level 1)
=1 consumers should be called "bottom up"
Bits 1-31 Reserved =0
18h 8 BYTEs PECB_Reserved (all zeros)
Note: Although the event producer provides the memory for the PECB, the
NESL module controls this memory until the event class is
de-registered.
While owned by NESL, this structure should be treated as read-only,
except for the PECB_DataPtr field.
Format of NESL Consumer Event Control Block (CECB):
Offset Size Description (Table 03022)
00h WORD CECB_MajVer Major Version of this structure (=1)
02h WORD CECB_MinVer Minor Version of this structure (=0)
04h DWORD CECB_NextConsumer -> next CECB. NULL if last.
08h DWORD CECB_ClassName -> ASCIZ string identifying event
class (see #03025)
0Ch DWORD CECB_NotifProc -> FAR CALL event handler (see #03023)
10h WORD CECB_OSILevel
Bits 4-7 = OSI Layer of this module (1 through 7)
Bits 0-3 = relative ordering with other modules on same layer
13h 14 BYTEs CECB_Reserved (all zeros)
Note: Although the event consumer provides the memory for the CECB, the
NESL module controls this memory until the consumer is de-registered.
While owned by NESL, this structure should be treated as read-only,
(Table 03023)
Values NESL Consumer Notification Procedure is called with:
ES:SI -> Event Parameter Block (EPB) (see #03024)
Return: AX = completion code (0000h, 8005h) (see #03019)
ES:SI -> still points to EPB
Desc: Called by NESL to notify the consumer when an event has occurred in
an event class for which it has registered.
SeeAlso: #03022
Format of NESL Event Parameter Block (EPB):
Offset Size Description (Table 03024)
00h WORD EPB_MajVer Major Version of this structure (=1)
02h WORD EPB_MinVer Minor Version of this structure (=0)
04h DWORD EPB_ClassName -> ASCIZ string identifying event class
(see #03025)
08h DWORD EPB_EventName -> ASCIZ string identifying event within
class (see #03026)
0Ch DWORD EPB_ModuleName -> ASCIZ string identifying module
producing event
10h DWORD EPB_DataPtr0 -> event-defined data or NULL if not used
14h DWORD EPB_DataPtr1 -> event-defined data or NULL if not used
18h 8 BYTEs EPB_Reserved (all zeros)
(Table 03025)
Values for NESL Event Class Names:
Event Class Description
------------------- -----------------------------------------
Service Suspend Suspension of a service. Called top-down.
Service Resume Resumption/availability of a service. Called bottom-up.
Service/Status Change Change in status or level of service. Called top-down.
Suspend Request Request to suspend a service. Called bottom-up.
Note: Contact Novell Labs to register new event classes.
(Table 03026)
Values for NESL Event Names:
Event Name Class Description
-------------------------- ------------- ---------------------------
MLID Cable Disconnect Service Suspend Cable disconnected from NIC
MLID Card Removal Service Suspend PCMCIA card removed
MLID Hardware Failure Service Suspend Serious hardware
failure in NIC
MLID Not In Range Service Suspend Wireless access point
is out of range
MLID Shutdown Service Suspend MLID was shut down
MLID Media Access Denied Service Suspend Access to physical
medium unsuccessful
MLID Cable Reconnect Service Resume Cable re-connected to NIC
MLID Card Insertion Complete Service Resume PCMCIA card inserted
MLID In Range Service Resume Wireless access point
in range
MLID Reset Service Resume MLID was just reset
MLID Access Point Change Serv/Status Change Station has moved to
new access point
MLID Speed Change Serv/Status Change Change in communic. speed
Note: Contact Novell Labs to register new event names.
For all predefined events above, EPB_DataPtr0 (see #03024) points
to the MLID Configuration table (see AX=C000h"ODI") for the
affected MLID.
--------N-2FC000-----------------------------
INT 2F - Novell NetWare Connect NETWARN - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if installed
SI = segment of resident portion
Program: NETWARN is a utility supplied with NetWare Connect to warn a
remote dialup user when programs are about to be loaded slowly over
the modem link.
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
Note: on return, verify that it is NETWARN responding by examining signature
at in NETWARN's data table in the resident segment (see #03027)
SeeAlso: AX=C000h"ODI",AX=C000h"NESL"
Format of NETWARN Configuration structure:
Offset Size Description (Table 03027)
103h 7 BYTEs signature string "NETWARN"
10Ah BYTE major version in ASCII (="1")
10Bh BYTE minor version in ASCII (="0")
10Ch DWORD minimum size of EXE cared about in bytes (/S=xxxx)
110h WORD same value in kilobytes (see #03028 [bit 4])
112h BYTE multiplex code (AH value) actually being used
113h WORD options (see #03028)
115h DWORD INT 21h vector before NETWARN loaded
119h DWORD INT 2Fh vector before NETWARN loaded
11Dh 16 BYTEs ASCIIZ local name of last device which was checked
12Dh 128 BYTEs ASCIIZ remote name of last device which was checked
Note: the specified offsets are from the start of the resident segment
Bitfields for NETWARN options:
Bit(s) Description (Table 03028)
0 ??? (=0)
1 /U (Unload) selected (never in resident)
2 /E (Enabled) Will trap & check EXEC's
3 /D (Disabled) No EXEC checking done
4 /S (Size) was set (see #03027 [offsets 010Ch and 0110h])
5 /P (Path shown)
6 /H or /? (Help) (never in resident)
SeeAlso: #03027
--------f-2FC000-----------------------------
INT 2F - FN32 32 character filename utilities - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if installed
ES:DI -> signature string "FN32 32CHAR TSR"
Program: FN32 is a TSR which supports 32 character filenames under PC/MS-DOS
Note: the TSR intercepts INT 21 calls and performs filename substitution by
managing dictionary files in each directory which contains long
filenames
--------M-2FC000-----------------------------
INT 2F - QMR - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if installed
ES:DI -> signature string "QMR1!"
Program: QMR (Cove Software, Quick Mouse Reset) monitors the mouse
service interrupt (int 33h) and substitutes a fast software
reset (mouse fn 21h) for the slow hardware reset (mouse fn 0).
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C001h"QMR",AX=C002h"QMR",AX=C003h"QMR"
--------V-2FC000-----------------------------
INT 2F - VGAsave v1.93 - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if installed
BX = segment of resident code
Program: VGAsave is a freeware VGA-specific, mouse-aware screenblanker by Bill
Javurek
Range: AH=C0h to AH=FFh, selected by scanning for a free multiplex number
Note: the transient portion of VGAsave compares the first 38 bytes of the
resident code (addressed through BX) against its own copy of the
resident code to complete the installation check
SeeAlso: INT 14/AX=AA01h,INT 2F/AH=93h
Index: screen saver;VGAsave
--------V-2FC000-----------------------------
INT 2F - AD-DOS - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if installed
BX = 4144h ('AD')
CX = 2D44h ('-D')
DX = 4F53h ('OS')
Program: AD-DOS is the DOS version of the After Dark screen blanker for
MS Windows
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C001h"AD-DOS",AX=C003h"AD-DOS",AX=C005h"AD-DOS",AX=C007h"AD-DOS"
SeeAlso: AX=C009h"AD-DOS",AX=C020h"AD-DOS",INT 14/AX=AA01h
Index: screen saver;AD-DOS
--------U-2FC000-----------------------------
INT 2F U - WANG_ER.COM - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if installed
ES = segment of resident code
Program: WANG_ER is a TSR from Compaq which permits Compaq systems equipped
with 3-mode floppy drives to read Wang document diskettes
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
Note: The installation check is completed by comparing the resident code
with the copy in the transient program
--------i-2FC000-----------------------------
INT 2F O - ASPIHOOK.SYS - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if multiplex number in use
ES:DI -> ASCIZ signature "ASPIHOOK" if ASPIHOOK.SYS installed
Program: ASPIHOOK is a device driver for monitoring SCSI activity through an
ASPI host manager; it is part of the Personal Measure system
activity monitor from Spirit of Performance, Inc.
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C000h"PMEASURE"
--------i-2FC000-----------------------------
INT 2F - PMEASURE.EXE - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if multiplex number in use
ES:DI -> ASCIZ signature "PMEASURE.EXE" if PMEASURE.EXE installed
Program: PMEASURE.EXE is a TSR for monitoring system hardware activity which
is part of the Personal Measure system activity monitor from Spirit
of Performance, Inc.
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
Note: If a Personal Measure Hook Module, such as ASPIHOOK.SYS, is already
installed, PMEASURE.EXE uses the next highest free multiplex number.
SeeAlso: AX=C000h"ASPIHOOK",AX=C000h"PERSONAL MEASURE"
--------i-2FC000-----------------------------
INT 2F - PERSONAL MEASURE - HOOK MODULE INSTALLATION CHECK
AX = C000h
Return: AL = FFh if installed
ES:DI -> signature string "PMEASUREHOOK"
AX = C000 if not installed, per mux id conventions
DH = major release number (binary)
DL = minor release number (binary)
Program: The Personal Measure system activity monitor from Spirit of
Performance, Inc. uses an extensible series of modules to hook
into various operating system interfaces and monitor system calls.
Current hook modules are ASPIHOOK.SYS for ASPI device activity
and CDRHOOK.SYS for non-ASPI CD-ROM activity. All hook modules
share the same mux id.
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C000h"PMEASURE.EXE",AX=C001h"PERSONAL MEASURE"
--------c-2FC000-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if installed
SI = signature value 20D6h
DI = signature value 8761h
ES:BX -> configuration table (see #03029)
CX = ??? (0300h)
DX = ??? (0020h)
Program: PCACHE is the resident print spooler portion of PrintCache by
LaserTools; it may use either memory or disk space to spool output
Range: AH=C0h to AH=FFh, selected by commandline switch
SeeAlso: AX=0100h/SI=20D6h,AX=C001h"PCACHE"
Format of PrintCache configuration table:
Offset Size Description (Table 03029)
00h 26 BYTEs ASCIZ signature string "TORQ Configuration Table: "
1Ah 2 BYTEs ???
1Ch DWORD -> data table (see #03030)
20h 4 BYTEs ASCIZ version string ("3.1" for v3.1)
24h 5 BYTEs ???
29h 12 BYTEs ASCIZ version date string ("Aug 31 1993" for v3.1)
35h WORD buffered port type (01h = LPT, 02h = COM)
37h WORD buffered port BIOS port number
39h 5 BYTEs ASCIZ buffered port name ("LPTn" or "COMn")
3Eh WORD physical port type (01h = LPT, 02h = COM)
40h WORD physical port BIOS port number
42h 5 BYTEs ASCIZ physical port name ("LPTn" or "COMn")
47h BYTE port driver IRQ
48h 21 BYTEs ???
5Dh WORD buffer size in K
5Fh 27 BYTEs ???
7Ah BYTE popup hotkey shift states (see #00582 at INT 16/AH=02h)
7Bh BYTE popup hotkey scan code (see #00006 at INT 09"IRQ1")
7Ch 4 BYTEs ???
80h 20 BYTEs ASCIZ printer type name
???
Format of PrintCache data table:
Offset Size Description (Table 03030)
00h 2 BYTEs ???
02h DWORD -> ??? entry point
???
--------U-2FC000-----------------------------
INT 2F - Frank Kintrup TSR Utilities - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if installed
BX = program ID (see #03031)
CX = 464Bh (signature "FK")
DX = revision number (DH = major, DL = minor)
ES = resident segment of TSR
Range: AH=C0h to AH=FFh, selected by searching for a free multiplex number
SeeAlso: AX=C001h"Kintrup",AX=C002h"Kintrup"
(Table 03031)
Values for Frank Kintrup TSR program ID:
4153h "AS" ASCII.COM ASCII table with paste function
434Ch "CL" CLOCK.COM clock with date/time display and alarm
5043h "PC" PCALC.COM programmer's calculator with paste function
5343h "SC" SCRSAVE.COM screen saver with mouse support and hotkey
5544h "UD" UNDEL.COM undelete program like SMARTCAN or DPROTECT
--------K-2FC000-----------------------------
INT 2F U - HP 100LX/200LX - PUSHKEYS - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if possibly installed
Range: AH=C0h to AH=FFh, selected by scanning for signature with AL=AEh
SeeAlso: AX=C001h"HP 100LX",AX=C0AEh"HP 100LX",AX=C0AFh"HP 100LX"
--------V-2FC000-----------------------------
INT 2F - DIMWIT - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if installed
ES:DI -> signature string "DIMDOS" or "DIMWIN"
Program: DIMWIT is a freeware Windows-aware screen blanker by Larry Board
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C000h"AD-DOS",AX=C001h"DIMWIT"
Index: screen saver;DIMWIT
--------F-2FC000BX444B-----------------------
INT 2F - METZ XpressFax Hardware TSR (CLASS2) - INSTALLATION CHECK
AX = C000h
BX = 444Bh ('DK')
CX = 4A4Eh ('AN')
Return: AL = status
00h not installed, OK to install
FFh installed
BX = 646Bh ('dk')
CX = 6A6Eh ('an')
Range: AH=C0h to AH=FFh, selected automatically
SeeAlso: AH=C0h"METZ"
--------V-2FC000-----------------------------
INT 2F U - TSENGP.COM - INSTALLATION CHECK
AX = C000h
Return: AL = status
00h not installed, OK to install
FFh installed
DS = segment of resident code
Program: TSENGP.COM is a TSR supplied by Compaq to fix an incompatibility
between some applications and Tseng ET4000-based video adapters
Range: AH=C0h to AH=FFh, selected automatically
Note: the installation check is completed by comparing the first eleven
bytes at DS:005Fh against the TSR's code (80h FCh 06h 74h 0Ah
80h FCh 07h 74h 05h EAh)
--------N-2FC000-----------------------------
INT 2F U - LapLink RemoteAccess (LLRA) - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if one of the components is installed
CX:BX -> signature within LLRA component:
"TSI_LapLinkCore" for LLRA1.EXE
"TSI_Blackbird" for LLRA2.EXE
"TSI_Redirector" for LLRA3.EXE
"TSI_Compression" for LLRA4.EXE
DL = major version number
DH = minor version number
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
Note: LapLink components are installed in the order listed above, but not
necessarily all four; each gets its own multiplex number (default
C0h-C3h)
SeeAlso: AX=C002h"LapLink",AX=C205h"LapLink",AX=C2F0h"LapLink"
SeeAlso: AX=C2F1h"LapLink",AX=C301h"LapLink",AX=C3F0h"LapLink"
SeeAlso: AX=C3F1h"LapLink"
--------M-2FC001-----------------------------
INT 2F - QMR - REQUEST HARDWARE RESET
AX = C001h
Return: ES = QMR code segment
AL destroyed
Desc: this function is used to force a full mouse reset when QMR is installed
SeeAlso: AX=C000h"QMR",AX=C002h"QMR"
--------V-2FC001-----------------------------
INT 2F - DIMWIT - GET CONFIGURATION DATA
AX = C001h
Return: ES:DI -> TSR configuration data (see #03032)
Program: DIMWIT is a freeware Windows-aware screen blanker by Larry Board
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C000h"DIMWIT",AX=C001h"AD-DOS"
Index: screen saver;DIMWIT
Format of DIMWIT TSR configuration data:
Offset Size Description (Table 03032)
00h WORD blanking delay in clock ticks
02h BYTE instant-blanking hotkey scan code (see #00006)
Ctrl and Alt must also be pressed
--------V-2FC001ES0000-----------------------
INT 2F - AD-DOS - GET RESIDENT CODE SEGMENT
AX = C001h
ES = 0000h
Return: AL = 00h if successful
ES = AD-DOS TSR Code Segment
SeeAlso: AX=C000h"AD-DOS",AX=C001h"DIMWIT"
Index: screen saver;AD-DOS
--------c-2FC001-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ENTRY POINTS
AX = C001h
Return: AL = FFh if installed
ES:BX -> ???
ES:DX -> ???
ES:SI -> ???
ES:DI -> ??? (equivalent to AX=C002h)
SeeAlso: AX=C000h"PCACHE",AX=C002h"PCACHE"
--------U-2FC001-----------------------------
INT 2F - Frank Kintrup TSR Utilities - CLOCK - DISABLE DISPLAY UPDATE
AX = C001h
Range: AH=C0h to AH=FFh, selected by searching for a free multiplex number
SeeAlso: AX=C000h"Kintrup",AX=C002h"Kintrup"
--------K-2FC001CX03FB-----------------------
INT 2F U - HP 100LX/200LX - PUSHKEYS - INTERNAL - UNINSTALL
AX = C001h
CX = 03FBh return address to continue uninstall if possible
Return: program uninstalled
Range: AH=C0h to AH=FFh, selected by scanning for signature with AL=AEh
SeeAlso: AX=C000h"HP 100LX",AX=C0AEh"HP 100LX",AX=C0AFh"HP 100LX"
--------i-2FC001-----------------------------
INT 2F - PERSONAL MEASURE - PASS PARAMETERS TO HOOK MODULE(S)
AX = C001h
DX = segment of PMEASURE.EXE or 0000h
BX = offset in PMEASURE.EXE or 0000h
CX = offset in PMEASURE.EXE or 0000h
Return: None
Program: PMEASURE.EXE is a TSR for monitoring system hardware activity which
is part of the Personal Measure system activity monitor from Spirit
of Performance, Inc. PMEASURE uses this call to inform its hook
modules whether or not it is running and to pass information about
shared data and procedures.
Warning: This information documents a function that is private to Personal
Measure and is provided as information only. It should NOT be called
by any software other than Personal Measure.
SeeAlso: AX=C000h"PERSONAL MEASURE"
--------V-2FC002-----------------------------
INT 2F - AD-DOS - CHECK FOR NEW INPUT
AX = C002h
Return: AL = 00h if successful
BX = status
0000h no input since last check
0001h new input available
Note: this call also resets the new-input flag
SeeAlso: AX=C000h"AD-DOS",AX=C004h
Index: screen saver;AD-DOS
--------M-2FC002-----------------------------
INT 2F - QMR - DISABLE QMR
AX = C002h
Return: ES = QMR code segment
AL destroyed
Desc: this call temporarily disables QMR
SeeAlso: AX=C000h"QMR",AX=C003h"QMR"
--------c-2FC002-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - GET BUFFER SIZE
AX = C002h
Return: AX = ??? in K
BX = size of print buffer in K
Program: PCACHE is the resident print spooler portion of PrintCache by
LaserTools; it may use either memory or disk space to spool output
SeeAlso: AX=C000h"PCACHE"
--------U-2FC002-----------------------------
INT 2F - Frank Kintrup TSR Utilities - CLOCK - ENABLE DISPLAY UPDATE
AX = C002h
Range: AH=C0h to AH=FFh, selected by searching for a free multiplex number
SeeAlso: AX=C000h"Kintrup",AX=C002h"Kintrup"
--------N-2FC002-----------------------------
INT 2F U - LapLink RemoteAccess (LLRA) - Core - ???
AX = C002h
details not yet available
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C2F0h"LapLink"
SeeAlso: AX=C2F1h"LapLink",AX=C301h"LapLink"
--------V-2FC003-----------------------------
INT 2F - AD-DOS - SET MINUTES TO WAIT
AX = C003h
BX = minutes to wait before blanking screen
Return: AL = 00h if successful
Program: AD-DOS is the DOS version of the After Dark screen blanker for
MS Windows
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
Note: this call also resets the delay timer
SeeAlso: AX=C000h"AD-DOS",AX=C004h
Index: screen saver;AD-DOS
--------M-2FC003-----------------------------
INT 2F - QMR - ENABLE QMR
AX = C003h
Return: ES = QMR code segment
AL destroyed
Desc: this call enables QMR after it has been disabled
SeeAlso: AX=C000h"QMR",AX=C002h"QMR"
--------c-2FC003-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - SET ??? FLAG
AX = C003h
Return: BX destroyed
SeeAlso: AX=C004h"PCACHE"
--------V-2FC004-----------------------------
INT 2F - AD-DOS - GET MINUTES TO WAIT
AX = C004h
Return: AL = 00h if successful
BX = minutes to wait before blanking screen
SeeAlso: AX=C000h"AD-DOS",AX=C003h"AD-DOS"
Index: screen saver;AD-DOS
--------c-2FC004-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - CLEAR ??? FLAG
AX = C004h
Return: BX destroyed
SeeAlso: AX=C003h"PCACHE"
--------V-2FC005-----------------------------
INT 2F - AD-DOS - SET BLANKER STATUS
AX = C005h
BX = new state (0000h inactive, 0001h active) (default 0001h)
Return: AL = 00h if successful
SeeAlso: AX=C006h"AD-DOS"
Index: screen saver;AD-DOS
--------c-2FC005-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
AX = C005h
???
Return: BX destroyed
???
Program: PCACHE is the resident print spooler portion of PrintCache by
LaserTools; it may use either memory or disk space to spool output
Range: AH=C0h to AH=FFh, selected by commandline switch
SeeAlso: AX=C000h"PCACHE"
--------V-2FC006-----------------------------
INT 2F - AD-DOS - GET BLANKER STATUS
AX = C006h
Return: AL = 00h if successful
BX = current state of screen blanker (0000h inactive, 0001h active)
Program: AD-DOS is the DOS version of the After Dark screen blanker for
MS Windows
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C000h"AD-DOS",AX=C005h"AD-DOS"
Index: screen saver;AD-DOS
--------c-2FC006-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
AX = C006h
???
Return: BX destroyed
???
Note: this function appears to be identical to AX=C007h
SeeAlso: AX=C000h"PCACHE",AX=C007h"PCACHE"
--------V-2FC007-----------------------------
INT 2F - AD-DOS - SET HOT KEY
AX = C007h
BX = hot key
CL = hot key shift status
Return: AL = 00h if successful
SeeAlso: AX=C008h"AD-DOS"
Index: screen saver;AD-DOS
--------c-2FC007-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
AX = C007h
???
Return: BX destroyed
???
Note: this function appears to be identical to AX=C006h
SeeAlso: AX=C000h"PCACHE",AX=C006h"PCACHE"
--------V-2FC008-----------------------------
INT 2F - AD-DOS - GET CURRENT HOT KEY
AX = C008h
Return: AX = status
0000h successful
BX = Hot Key
CL = Hot Key Shift Status
0008h otherwise
SeeAlso: AX=C000h"AD-DOS",AX=C007h"AD-DOS"
Index: screen saver;AD-DOS
--------c-2FC008-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - CLEAR ??? FLAG
AX = C008h
Return: BX destroyed
SeeAlso: AX=C000h"PCACHE",AX=C009h"PCACHE"
--------V-2FC009-----------------------------
INT 2F - AD-DOS - UNBLANK MONITOR
AX = C009h
Return: AL = 00h if successful
Program: AD-DOS is the DOS version of the After Dark screen blanker for
MS Windows
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
Note: this function works by simulating keyboard activity
Index: screen saver;AD-DOS
--------c-2FC009-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - SET ??? FLAG
AX = C009h
Return: BX destroyed
Program: PCACHE is the resident print spooler portion of PrintCache by
LaserTools; it may use either memory or disk space to spool output
Range: AH=C0h to AH=FFh, selected by commandline switch
SeeAlso: AX=C000h"PCACHE",AX=C008h"PCACHE"
--------V-2FC00A-----------------------------
INT 2F - AD-DOS - ???
AX = C00Ah
Return: AX = status
0000h successful
BH = ??
BL = ??
000Ah failed
Index: screen saver;AD-DOS
--------c-2FC00A-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
AX = C00Ah
???
Return: AH = bit flags
bit 5: ???
AL = bit flags
bit 4: ???
bit 3: ???
BX destroyed
???
SeeAlso: AX=C000h"PCACHE"
--------V-2FC00B-----------------------------
INT 2F - AD-DOS - ???
AX = C00Bh
Return: AX = status
0000h successful
000Bh failed
Index: screen saver;AD-DOS
--------c-2FC00B-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - NOP
AX = C00Bh
Return: BX destroyed
SeeAlso: AX=C000h"PCACHE"
--------V-2FC00C-----------------------------
INT 2F - AD-DOS - SET ??? INTERNAL FLAG TO 01h
AX = C00Ch
Return: AX = status
0000h successful
000Ch failed
Program: AD-DOS is the DOS version of the After Dark screen blanker for
MS Windows
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
Index: screen saver;AD-DOS
--------c-2FC00C-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ???
AX = C00Ch
Return: AX = ??? (0000h)
BX = ??? (0000h)
CX = ??? (0100h)
DL = ???
DH = ???
SeeAlso: AX=C000h"PCACHE"
--------c-2FC00D-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - SET ???
AX = C00Dh
DL = ???
Return: BX destroyed
Program: PCACHE is the resident print spooler portion of PrintCache by
LaserTools; it may use either memory or disk space to spool output
Range: AH=C0h to AH=FFh, selected by commandline switch
SeeAlso: AX=C000h"PCACHE"
--------V-2FC00E-----------------------------
INT 2F - AD-DOS - SET PASSWORD STATUS
AX = C00Eh
BX = new state (0000h disabled, 0001h enabled)
Return: ???
SeeAlso: AX=C000h"AD-DOS",AX=C00Fh"AD-DOS"
Index: screen saver;AD-DOS
--------c-2FC00E-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - INSTALL ???
AX = C00Eh
ES:DX -> ???
Return: BX destroyed
Note: ES:DX is stored internally if the variable is currently 0000h:0000h,
but ignored if already set; a counter is incremented
SeeAlso: AX=C000h"PCACHE",AX=C00Fh"PCACHE"
--------V-2FC00F-----------------------------
INT 2F - AD-DOS - GET PASSWORD STATUS
AX = C00Fh
Return: BX = current state (0000h disabled, 0001h enabled)
SeeAlso: AX=C00Eh"AD-DOS"
Index: screen saver;AD-DOS
--------c-2FC00F-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - REMOVE ???
AX = C00Fh
Return: BX destroyed
Note: this function decrements the counter used by AX=C00Eh, and clears the
internal pointer variable to 0000h:0000h when it reaches zero
SeeAlso: AX=C000h"PCACHE",AX=C00Eh"PCACHE"
--------c-2FC010-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ???
AX = C010h
CX = index of ??? table (00h-02h, others treated as 00h)
SI = offset into data table
Return: AL = byte at specified offset into table
BX destroyed
SeeAlso: AX=C000h"PCACHE"
--------c-2FC011-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ???
AX = C011h
Return: AX = ??? (0007h)
BX = ??? (0001h)
CH = ???
CL = ???
SeeAlso: AX=C000h"PCACHE"
--------c-2FC012-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ???
AX = C012h
Return: AX = ???
BX = ???
CX = ???
DX = ???
SeeAlso: AX=C000h"PCACHE"
--------c-2FC013-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
AX = C013h
???
Return: BX destroyed
???
Program: PCACHE is the resident print spooler portion of PrintCache by
LaserTools; it may use either memory or disk space to spool output
Range: AH=C0h to AH=FFh, selected by commandline switch
SeeAlso: AX=C000h"PCACHE"
--------c-2FC014-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
AX = C014h
???
Return: BX destroyed
???
SeeAlso: AX=C000h"PCACHE"
--------c-2FC015-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
AX = C015h
???
Return: BX destroyed
???
SeeAlso: AX=C000h"PCACHE"
--------c-2FC016-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - INCREMENT ???
AX = C016h
Return: BX destroyed
SeeAlso: AX=C000h"PCACHE",AX=C017h"PCACHE"
--------c-2FC017-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - DECREMENT ???
AX = C017h
Return: BX destroyed
SeeAlso: AX=C000h"PCACHE",AX=C016h"PCACH"
--------c-2FC018-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
AX = C018h
???
Return: BX destroyed
???
Note: the first instruction of this function is an indirect jump which points
at a RET by default
SeeAlso: AX=C000h"PCACHE",AX=C019h"PCACHE"
--------c-2FC019-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
AX = C019h
???
Return: BX destroyed
???
Note: the first instruction of this function is an indirect jump which points
at a RET by default
SeeAlso: AX=C000h"PCACHE",AX=C018h"PCACHE"
--------c-2FC01A-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - CLEAR ??? FLAG
AX = C01Ah
Return: BX destroyed
SeeAlso: AX=C000h"PCACHE",AX=C01Bh"PCACHE"
--------c-2FC01B-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - SET ??? FLAG
AX = C01Bh
Return: BX destroyed
SeeAlso: AX=C000h"PCACHE",AX=C01Ah"PCACHE"
--------c-2FC01C-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
AX = C01Ch
???
Return: AX = ???
BX destroyed
SeeAlso: AX=C000h"PCACHE"
--------c-2FC01D-----------------------------
INT 2F U - PrintCache v3.1 PCACHE.EXE - NOP
AX = C01Dh to C01Fh
Return: BX destroyed
Program: PCACHE is the resident print spooler portion of PrintCache by
LaserTools; it may use either memory or disk space to spool output
Range: AH=C0h to AH=FFh, selected by commandline switch
SeeAlso: AX=C000h"PCACHE"
--------V-2FC020-----------------------------
INT 2F - AD-DOS - GET AND RESET VxD API STATUS
AX = C020h
Return: AL = 00h if successful
BX = VxD API Status
0000h no error
0001h error
0100h neither Windows 3.X enhanced mode nor Windows/386 2.x
is running
0200h VM API entry point not found (VxD not installed)
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
Note: this call resets the VxD API Status to zero
SeeAlso: AX=1602h,AX=1607h"CALL OUT API"
Index: screen saver;AD-DOS
--------V-2FC04E-----------------------------
INT 2F - Explosiv v2.00+ - NON-TSR EXECUTING CHECK
AX = C04Eh
Return: AL = 4Fh if Explosiv is running but not memory-resident
Program: Explosiv is a shareware animated screen blanker for DOS and Windows 3
by H&G Software (Reidar Gresseth and Chris Hook)
Range: AH=C0h to AH=C9h, selected by configuration
SeeAlso: AX=C050h
Index: screen saver;Explosiv
--------V-2FC050-----------------------------
INT 2F - Explosiv v2.00+ - INSTALLATION CHECK
AX = C050h
Return: AL = 51h if installed
---v3.0+ ---
BX = interval in clock ticks
CH = animation display color (00h mono, 01h tinge, 02h color)
CL = animation delay factor
DH = animation parameters
DL = INT 10 checking (00h on, 01h off)
SI = number of bytes available for animation code
DI = display type (00h VGA, 01h EGA, 02h CGA, 03h HGC, 04h MDA)
Program: Explosiv is a shareware animated screen blanker for DOS and Windows 3
by H&G Software (Reidar Gresseth and Chris Hook)
Range: AH=C0h to AH=C9h, selected by configuration
SeeAlso: AH=93h,AX=C000h"AD-DOS",AX=C04Eh,AX=C052h,AX=C054h"v3"
SeeAlso: INT 14/AX=AA01h
Index: screen saver;Explosiv
--------V-2FC052-----------------------------
INT 2F - Explosiv v2.00+ - UNINSTALL
AX = C052h
DX:BX = address to return to on successful uninstall
Return: at specified address if successful
AL = 53h on error
Note: specified return address must have the segment of the caller's PSP
SeeAlso: AX=C050h
Index: screen saver;Explosiv
--------V-2FC054-----------------------------
INT 2F - Explosiv v2.x - GET ANIMATION DELAY FACTOR
AX = C054h
Return: AL = delay factor
SeeAlso: AX=C057h
Index: screen saver;Explosiv
--------V-2FC054-----------------------------
INT 2F - Explosiv v3.0+ - UPDATE PARAMETERS
AX = C054h
BX = new interval in clock ticks
CH = animation display color (00h mono, 01h tinge, 02h color)
CL = animation delay factor
DH = animation parameters
DL = INT 10 checking (00h on, 01h off)
SeeAlso: AX=C050h
Index: screen saver;Explosiv
--------V-2FC055-----------------------------
INT 2F - Explosiv v2.x - SET BLANKING INTERVAL
AX = C055h
BX = new interval in clock ticks
Index: screen saver;Explosiv
--------V-2FC056-----------------------------
INT 2F - Explosiv v2.x - SET ANIMATION DISPLAY TYPE
AX = C056h
BL = animated display type (00h mono, 01h color)
SeeAlso: AX=C058h"v2.x"
Index: screen saver;Explosiv
--------V-2FC056-----------------------------
INT 2F - Explosiv v3.0+ - ENABLE/DISABLE EXPLOSIV
AX = C056h
BX = new state
0000h disabled
0100h enabled
0101h enabled, but never blank
0102h enabled, always blank
--------V-2FC057-----------------------------
INT 2F - Explosiv v2.x - SET ANIMATION DELAY FACTOR
AX = C057h
BL = delay factor
SeeAlso: AX=C054h"v2.x"
Index: screen saver;Explosiv
--------V-2FC058-----------------------------
INT 2F - Explosiv v2.x - SET ANIMATION PARAMETER
AX = C058h
BL = animation parameter
Note: the animation parameter has different interpretations for each display
SeeAlso: AX=C056h"v2.x"
Index: screen saver;Explosiv
--------V-2FC058-----------------------------
INT 2F - Explosiv v3.0+ - LOAD NEW ANIMATION DISPLAY CODE
AX = C058h
BX = file handle for file containing display code
CX = number of bytes to load
DX = offset at which animation code should be loaded
Return: AL = status (see #03033)
Note: if AL=00h-03h on return, the file will be closed
Index: screen saver;Explosiv
(Table 03033)
Values for Explosiv function status:
00h successful
01h code too large to available space
02h no data read, load aborted
03h incomplete load, default blanking display loaded instead
58h unexpected offset in DX
--------V-2FC059-----------------------------
INT 2F - Explosiv v2.x - DISABLE EXPLOSIV
AX = C059h
Note: clears flag set by AX=C05Ah
SeeAlso: AX=C05Ah
Index: screen saver;Explosiv
--------V-2FC05A-----------------------------
INT 2F u - Explosiv v2.x - ENABLE EXPLOSIV
AX = C05Ah
BL = ???
Note: sets flag cleared by AX=C059h then stores BL
SeeAlso: AX=C059h,AX=C05Bh
Index: screen saver;Explosiv
--------V-2FC05B-----------------------------
INT 2F - Explosiv v2.x - CHANGE ANIMATION DISPLAY
AX = C05Bh
BL = animation display
Note: this function fails silently if the requested display is not in memory
SeeAlso: AX=C05Ah,AX=C05Ch
Index: screen saver;Explosiv
--------V-2FC05C-----------------------------
INT 2F - Explosiv v2.x - SET INT 10 CHECKING
AX = C05Ch
BL = new state of INT 10 checking (00h enabled, 01h disabled)
SeeAlso: AX=C05Bh
Index: screen saver;Explosiv
--------v-2FC080-----------------------------
INT 2F U - AMI IAM.SYS - INSTALL ??? CALLBACK
AX = C080h
CX:DX -> ??? callback
DI = segment of ??? buffer (first WORD copied into IAM.SYS)
Program: IAM.SYS is the Illegal Activity Monitor portion of American
Megatrends, Inc.'s PC-Defender anti-virus product
Note: also sets ??? flag
SeeAlso: AX=C081h
Format of IAM.SYS buffer:
Offset Size Description (Table 03034)
00h BYTE ???
01h BYTE ???
02h N BYTEs ??? (ASCIZ strings)
--------v-2FC081-----------------------------
INT 2F U - AMI IAM.SYS - CLEAR ???
AX = C081h
Desc: clears the ??? flag that AX=C080h sets
SeeAlso: AX=C080h
--------K-2FC0AE-----------------------------
INT 2F U - HP 100LX/200LX - PUSHKEYS - INSTALLATION CHECK
AX = C0AEh
Return: AX = 4453h if installed
CX = 5259h if installed
Range: AH=C0h to AH=FFh, selected by scanning for signature
SeeAlso: AX=C000h"HP 100LX",AX=C001h"HP 100LX",AX=C0AFh"HP 100LX"
--------K-2FC0AF-----------------------------
INT 2F U - HP 100LX/200LX - PUSHKEYS - INTERNAL - GET BUFFER ADDRESS
AX = C0AFh
Return: ES:DI -> buffer (behind code)
Range: AH=C0h to AH=FFh, selected by scanning for signature with AL=AEh
SeeAlso: AX=C000h"HP 100LX",AX=C001h"HP 100LX",AX=C0AEh"HP 100LX"
--------N-2FC100-----------------------------
INT 2F U - Personal NetWare - STPIPX v1.00 - INSTALLATION CHECK
AX = C100h
Return: AL = FFh if installed
ES:SI -> signature string "STP-IPX$"
BX = version??? (0001h for v1.00)
DI corrupted
Note: AH=C1h is the default value; STPIPX probably scans a range of
multiplex numbers to find a free one, as LSL does
SeeAlso: AX=C000h"LSL",AX=C101h
--------N-2FC101-----------------------------
INT 2F U - Personal NetWare - STPIPX v1.00 - UNINSTALL
AX = C101h
Return: AL = status???
BX corrupted
SeeAlso: AX=C101h
--------N-2FC205-----------------------------
INT 2F U - LapLink RemoteAccess (LLRA) - Redirector - ???
AX = C205h
details not yet available
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C2F0h"LapLink"
SeeAlso: AX=C2F1h"LapLink",AX=C301h"LapLink"
--------N-2FC2F0-----------------------------
INT 2F U - LapLink RemoteAccess (LLRA) - Redirector - ???
AX = C2F0h
details not yet available
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C205h"LapLink"
SeeAlso: AX=C2F1h"LapLink",AX=C301h"LapLink"
--------N-2FC2F1-----------------------------
INT 2F U - LapLink RemoteAccess (LLRA) - Redirector - ???
AX = C2F1h
details not yet available
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C205h"LapLink"
SeeAlso: AX=C2F0h"LapLink",AX=C301h"LapLink"
--------d-2FC300-----------------------------
INT 2F - SETWPR.COM - INSTALLATION CHECK
AX = C300h
Return: AL = FFh if installed
Program: SETWPR is a hard-disk write-protection TSR by Jaroslaw Rafa
SeeAlso: AX=C302h"SETWPR"
--------k-2FC300DX0000-----------------------
INT 2F U - SpaceManager - INSTALLATION CHECK
AX = C300h
DX = 0000h
Return: AL = FFh if any SpaceManager programs installed
BX = 6F73h
CX = 6F68h
Program: SpaceManager is an enhancement for MS-DOS DoubleSpace by Vertisoft
Systems, Inc.
Range: AH=C3h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C300h/BX=4F53h
--------k-2FC300BX4F53-----------------------
INT 2F U - SpaceManager - INSTALLATION VERIFICATION
AX = C300h
BX = 4F53h ('OS')
CX = 4F48h ('OH')
DX = program identifier (see #03035) or 0666h for any SpaceManager prog
Return: AL = FFh if BX/CX as specified and specified program installed
BX = 6F73h ('os')
CX = 6F68h ('oh')
Range: AH=C3h to AH=FFh, selected by scanning for first free multiplex number
Note: this call is chained if BX,CX, or DX are not as specified above
SeeAlso: AX=C300h/DX=0000h
(Table 03035)
Values for SpaceManager program identifier:
9000h SMOUNT (SuperMount)
9001h SELECTC (SelectCompress)
9002h SUPERX (SuperExchange)
9003h FORTUNE (FortuneTeller)
--------k-2FC301-----------------------------
INT 2F U - SpaceManager - ???
AX = C301h
DX = program identifier (9000h,9001h,9003h) (see #03035)
???
Return: ???
--------N-2FC301-----------------------------
INT 2F U - LapLink RemoteAccess (LLRA) - Compression - ???
AX = C301h
details not yet available
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C205h"LapLink"
SeeAlso: AX=C2F0h"LapLink",AX=C3F0h"LapLink",AX=C3F1h"LapLink"
--------k-2FC302-----------------------------
INT 2F U - SpaceManager - ENABLE PROGRAM
AX = C302h
DX = program identifier (9000h,9001h,9003h) (see #03035)
Return: AX destroyed
SeeAlso: AX=C303h,AX=C306h
--------d-2FC302-----------------------------
INT 2F - SETWPR.COM - SET WRITE-PROTECTION STATE
AX = C302h
BL = new state
00h disk may be written
01h disk write-protected
Return: AL = FFh if installed
Program: SETWPR is a hard-disk write-protection TSR by Jaroslaw Rafa
SeeAlso: AX=C300h"SETWPR"
--------k-2FC303-----------------------------
INT 2F U - SpaceManager - DISABLE PROGRAM
AX = C303h
DX = program identifier (9000h,9001h,9003h) (see #03035)
Return: AX destroyed
SeeAlso: AX=C302h,AX=C306h
--------k-2FC304-----------------------------
INT 2F U - SpaceManager - GET PER-DRIVE ENABLEMENT TABLE
AX = C304h
DX = program identifier (9000h,9001h,9003h) (see #03035)
Return: ES:BX -> 26-byte drive table (00h disabled for drive, 01h enabled)
AX destroyed
--------k-2FC305DX9003-----------------------
INT 2F U - SpaceManager - FORTUNE.EXE - NOP
AX = C305h
DX = 9003h
Return: AX destroyed
--------k-2FC305-----------------------------
INT 2F U - SpaceManager - ???
AX = C305h
DX = program identifier (9000h,9001h) (see #03035)
???
Return: ???
--------k-2FC306-----------------------------
INT 2F U - SpaceManager - CHECK WHETHER PROGRAM ENABLED
AX = C306h
DX = program identifier (9000h,9001h,9003h) (see #03035)
Return: AL = current state (00h disabled, FAh enabled)
AH destroyed
SeeAlso: AX=C302h,AX=C303h
--------k-2FC307DX9001-----------------------
INT 2F U - SpaceManager - SELECTC - ???
AX = C307h
DX = 9001h
BX = ???
CX = ???
???
Return: ???
--------k-2FC308DX9001-----------------------
INT 2F U - SpaceManager - SELECTC - ???
AX = C308h
DX = 9001h
???
Return: ???
--------N-2FC3F0-----------------------------
INT 2F U - LapLink RemoteAccess (LLRA) - Compression - ???
AX = C3F0h
details not yet available
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C205h"LapLink"
SeeAlso: AX=C2F0h"LapLink",AX=C301h"LapLink",AX=C3F1h"LapLink"
--------N-2FC3F1-----------------------------
INT 2F U - LapLink RemoteAccess (LLRA) - Compression - ???
AX = C3F1h
details not yet available
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C205h"LapLink"
SeeAlso: AX=C2F0h"LapLink",AX=C301h"LapLink",AX=C3F0h"LapLink"
--------N-2FC500-----------------------------
INT 2F - PC-DOS Econet v1.05 - INSTALLATION CHECK
AX = C500h
Return: AL = status
00h not installed, OK to install
01h not installed, can't install
FFh installed
Note: the interrupt-enable state will be preserved, but interrupts may be
enabled during processing of this function
SeeAlso: AX=C501h,AX=C508h
--------N-2FC501-----------------------------
INT 2F - PC-DOS Econet v1.05 - RESET BOARD AND DRIVER
AX = C501h
Return: AX = return code (see #03037)
Desc: reset both the network board and the driver software
Notes: use this function with caution, as it will affect any other resident
software using the network board
the interrupt-enable state will be preserved, but interrupts may be
enabled during processing of this function
SeeAlso: AX=C500h
--------N-2FC502-----------------------------
INT 2F - PC-DOS Econet v1.05 - PERFORM NETWORK OPERATION
AX = C502h
DS:DX -> control block (see #03036)
Return: AX = return code (see #03037) (same as returned in control block)
Note: the interrupt-enable state will be preserved, but interrupts may be
enabled during processing of this function
SeeAlso: AX=C500h
Format of Econet control block:
Offset Size Description (Table 03036)
00h DWORD -> command block (see #03038)
04h WORD length of transmit data block
06h DWORD -> transmit data block
0Ah WORD length of reply block (set to 0000h prior to call)
0Ch DWORD -> reply block
10h WORD return code (set to 0000h prior to call) (see #03037)
12h DWORD reserved for Econet use
(Table 03037)
Values for Econet return code:
0000h successful
0001h bad command in command block
0002h no handles left
0003h bad handle
0004h bad argument in command
0005h buffer too small
0006h kill condition failed
0007h control block in use
007Fh command aborted
01xxh retryable board error XXh
02xxh fatal board error XXh
0300h invalid subfunction number in AL
0301h timeout
03xxh other driver errors
SeeAlso: #03036
Format of Econet command block:
Offset Size Description (Table 03038)
00h BYTE command code (see #03039)
---command 00h---
01h BYTE direction (00h = read initialization data, 01h = set init data)
02h WORD "TxCB" transmit control block size
04h WORD "RxCB" receive control block size
Notes: TxCB and RxCB are always the same size in v1.05,
permitting any CB to be used for either receive
or transmit
this command should not be used by applications to
set the buffer sizes
06h 6 BYTEs padding (0)
---command 01h---
01h BYTE port number (00h = receive on all ports)
if the RxCB is opened for RPC, the port number indicates the
allowable RPC (see #03040)
02h WORD station number (FEFFh = broadcast)
04h BYTE RPC flags
bit 7: CB is open for RPCs only
bit 6: restrict to RPC number given in next field
05h WORD RPC number
07h BYTE timeout in 1/2-second units (00h = never)
if a timeout occurs, the RxCB can still receive data, and may
generate another event after the timeout unless it is
explicitly killed
08h 4 BYTEs padding (0)
---command 02h---
01h BYTE control byte
02h BYTE port number
03h WORD station number
05h BYTE number of retries
06h WORD length of data to be sent (bits 14-0), 0000h allowed
if bit 15 is set, no data will be transferred, but this field
will be updated (needed for peeking)
08h DWORD -> destination address on remote machine
---command 03h---
01h BYTE Control Block Handle
FEh first filled-in RxCB
FFh first TxCB which has been sent
02h 10 BYTEs padding (0)
---command 04h---
01h BYTE Control Block Handle
02h BYTE kill condition
00h always
01h kill only if bit7 of control byte is clear
81h kill only if bit7 of control byte is set
03h 9 BYTEs padding (0)
Notes: control blocks are not freed until explicitly killed
because all TxCBs for a given destination are stored
on a separate subchain, it is necessary to kill all
failed TxCBs to a given destination before any new
ones are opened to that destination
---command 06h---
01h BYTE Control Block Handle
02h WORD starting byte within CB to read
04h WORD number of bytes
if 0000h or greater than remaining bytes in CB, return all
bytes from starting byte to end of CB
06h 6 BYTEs padding (0)
---command 07h---
01h BYTE subfunction
00h-0Fh get/set M/C type (bit N=1 indicates to set byte N)
four data bytes
10h get station number
11h set station number
12h get Tx pause in 5ms units (default 20)
13h set Tx pause
14h get software version numbers
16h get event enable mask
17h set event enable mask
18h get number of non-volatile bytes available
80h+2N get non-volatile byte N
81h+2N set non-volatile byte N
02h var new data
Note: all command blocks should be padded to twelve bytes with zeros if
needed
SeeAlso: #03036
(Table 03039)
Values for Econet command code:
00h initialize
01h open receive
02h open transmit
03h poll
04h kill
06h read
07h get/set system parameters
SeeAlso: #03038
(Table 03040)
Values for Econet RPC type:
00h all
81h peek
82h poke
83h remote JSR
84h remote procedure call
85h OS procedure
86h Halt
87h Continue
SeeAlso: #03038
Format of Econet Reply Block (command 00h):
Offset Size Description (Table 03041)
00h WORD TxCB size (default is 0500h, the maximum Econet packet length)
02h WORD RxCB size
04h BYTE number of TxCBs allocated
05h BYTE number of RxCBs allocated
SeeAlso: #03036,#03042,#03044
Format of Econet Reply Block (commands 01h,02h):
Offset Size Description (Table 03042)
00h BYTE control block handle
SeeAlso: #03036,#03041,#03045
Format of Econet Reply Block (command 03h):
Offset Size Description (Table 03043)
00h BYTE CB number (when wildcard specified for poll)
01h BYTE control
(RxCB) 00h until received, then Sent Control byte
(TxCB) transmit status
bit 7: transmission pending
bit 6: transmission failed
bits 3-0: error number
02h BYTE Port number
03h WORD station number
05h WORD length
07h WORD 0000h
SeeAlso: #03036,#03041,#03044
Format of Econet Reply Block (command 06h):
Offset Size Description (Table 03044)
00h N BYTEs data read from network
SeeAlso: #03036,#03043,#03045
Format of Econet Reply Block (command 07h):
Offset Size Description (Table 03045)
00h N BYTEs returned information
SeeAlso: #03036,#03044
--------N-2FC503-----------------------------
INT 2F - PC-DOS Econet v1.05 - ADD EVENT HANDLER
AX = C503h
DS:DX -> event handler (see #03046)
Return: AX = return code (see #03037)
Note: the interrupt-enable state will be preserved, but interrupts may be
enabled during processing of this function
SeeAlso: AX=C500h,AX=C504h,AX=C505h,AX=C508h
Format of Econet event handler:
Offset Size Description (Table 03046)
00h DWORD -> next handler's code (at offset 8, filled in by Econet)
04h DWORD -> previous event handler (filled in by Econet)
08h var entry point (executable code called on event) (see #03047)
(Table 03047)
Values Econet event handler is called with:
AL = event number
AH = timeout flag (01h if timeout, else 00h)
Return: all registers preserved
if event trapped by this handler, issue RETF
if event not trapped, jump to address stored at offset 0
SeeAlso: #03046
--------N-2FC504-----------------------------
INT 2F - PC-DOS Econet v1.05 - REMOVE EVENT HANDLER
AX = C504h
DS:DX -> event handler
Return: AX = return code (see #03037)
Note: the interrupt-enable state will be preserved, but interrupts may be
enabled during processing of this function
SeeAlso: AX=C500h,AX=C503h,AX=C506h,AX=C508h
--------N-2FC505-----------------------------
INT 2F - PC-DOS Econet v1.05 - SET DEFAULT EVENT ACTION
AX = C505h
DL = new default action
00h disable event handling (ignore incoming events)
01h enable (call event handler chain)
02h store until enabled or disabled (default)
Return: AX = return code (see #03037)
Note: the interrupt-enable state will be preserved, but interrupts may be
enabled during processing of this function
SeeAlso: AX=C500h,AX=C503h,AX=C506h,AX=C508h
--------N-2FC506-----------------------------
INT 2F - PC-DOS Econet v1.05 - SET INDIVIDUAL EVENT ACTION
AX = C506h
DH = event number
DL = new default action
00h disable event handling (ignore incoming events)
01h enable (call event handler chain)
02h store until enabled or disabled (default)
Return: AX = return code (see #03037)
Note: the interrupt-enable state will be preserved, but interrupts may be
enabled during processing of this function
SeeAlso: AX=C500h,AX=C504h,AX=C505h,AX=C507h
--------N-2FC507-----------------------------
INT 2F - PC-DOS Econet v1.05 - TEST/CLEAR EVENT STATUS
AX = C507h
DH = event number (FFh = first event in queue)
DL = disposition (00h test only, 01h test and clear)
Return: AX = return code (see #03037)
DH = event number if one is pending, 00h if none
Note: the interrupt-enable state will be preserved, but interrupts may be
enabled during processing of this function
SeeAlso: AX=C500h,AX=C503h,AX=C506h,AX=C508h
--------N-2FC508-----------------------------
INT 2F - PC-DOS Econet v1.05 - ENABLE/DISABLE EVENT SCHEDULER
AX = C508h
DL = new state of scheduler (01h enabled, 02h disabled)
Return: AX = return code (see #03037)
DL = previous state
Notes: the interrupt-enable state will be preserved, but interrupts may be
enabled during processing of this function
while the scheduler is disabled, all events are queued until the
scheduler is re-enabled
SeeAlso: AX=C500h,AX=C503h,AX=C504h,AX=C506h,AX=C507h
--------d-2FC64CBX5553-----------------------
INT 2F U - Smart Prompt - INSTALLATION CHECK
AX = C64Ch
BX = 5553h
Return: AX = 4CC6h if installed
BX = 5355h if installed
Program: Smart Prompt (SMARTPMT) is a freeware TSR by Steve Gibson which
forces an immediate flush of SmartDrive's (and compatible caches')
buffers on returning to the DOS prompt
--------V-2FC700CX434C-----------------------
INT 2F u - COLAP - INSTALLATION CHECK
AX = C700h
CX = 434Ch "CL"
Return: AL = FFh if installed
Program: colap.com is a freeware TSR by Eric Meyer which controls contrast
and brightness of color laptops by changing the VGA palette colors;
for Toshiba laptops there are more hotkeys for shutting off display
and harddisk.
--------v-2FC900BP0000-----------------------
INT 2F U - ThunderByte??? - INSTALLATION CHECK
AX = C900h
BP = 0000h
Return: AL = FFh if installed
BP >= 0014h
Note: called by TBSCANX
SeeAlso: AX=C987h,AX=CA00h
--------v-2FC987-----------------------------
INT 2F U - ThunderByte??? - DISINFECT FILE???
AX = C987h
BX:DX -> filename
BX:CX -> virus name
Return: AX = status
0000h successful???
Note: called by TBSCANX
SeeAlso: AX=CA00h
--------v-2FC9FD-----------------------------
INT 2F - ThunderByte TBLOG - WRITE STRING TO LOG
AX = C9FDh
DS:SI -> ASCIZ string (max 110 chars)
Return: AH = 00h
AL = last character in string
CX = number of unused characters in string
SI,DI destroyed
Notes: The string can also be terminated with a '%'-character.
This function is never called within ThunderBYTE Anti-Virus.
SeeAlso: AX=C900h
--------r-2FC9FF-----------------------------
INT 2F C - StackMan - INSTALLATION BROADCAST
AX = C9FFh
BL = BCD version number
CX = number of stacks
DX = stack size in bytes
Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V.
which functions as a replacement for the DOS STACK= command as well
as permitting multiple TSRs to share a pool of stack space
InstallCheck: test for the string "STACKXXX" at offset 0Ah from the INT B4
handler
Note: called by StackMan when it goes resident to inform interested TSRs that
its API is available
SeeAlso: INT B4"StackMan",INT B5"StackMan"
Index: installation check;STACKMAN|broadcasts;STACKMAN installation
--------F-2FCA-------------------------------
INT 2F - FAXPLUS - FAX TSR
AH = CAh
???
Return: ???
Program: FAXTSR is a resident FAX send/receive module for FAXPLUS by Frans
Veldman
SeeAlso: AH=2Ah"Gammafax"
--------v-2FCA00BX5442-----------------------
INT 2F - TBSCANX - INSTALLATION CHECK
AX = CA00h
BX = 5442h ('TB')
Return: AL = state
00h not installed
FFh installed
BX = 7462h ('tb') if BX was 5442h on entry
Program: TBSCANX is a resident virus scanning module by Frans Veldman.
Notes: programs may perform virus checks on themselves, other program files,
or their data files by invoking the TBSCANX API.
current versions of TBScanX don't actually check the value of BX
SeeAlso: AX=4653h/CX=0002h,AX=4653h/CX=0007h,AX=C900h
--------v-2FCA01-----------------------------
INT 2F - TBSCANX - GET STATUS
AX = CA01h
Return: AH = BCD version number (v2.2+)
CAh for versions before 2.2
AL = state (00h = disabled, 01h = enabled)
CX = number of signatures which will be searched
---v2.0---
BX = EMS handle, 0000h if not using EMS
---v2.3+---
BX = segment of swap area, 0000h if not swapped
DX = EMS or XMS handle (XMS handle if BX=0000h), FFFFh if not using EMS
SeeAlso: AX=CA02h
--------v-2FCA02-----------------------------
INT 2F - TBSCANX - SET STATE
AX = CA02h
BL = new state (00h = disabled, 01h = enabled)
SeeAlso: AX=CA01h
--------v-2FCA03-----------------------------
INT 2F - TBSCANX - SCAN BUFFER
AX = CA03h
CX = size of buffer
DS:DX -> buffer containing data to scan
Return: CF clear if no virus signatures found
BX,ES destroyed
CF set if signature found
ES:BX -> ASCIZ virus name (v2.3+)
DS:DX -> ASCIZ virus name (v2.0)
AX,CX,DX destroyed (v2.3+)
all other registers except CS:IP and SS:SP destroyed (v2.0)
SeeAlso: AX=CA04h
--------v-2FCA04-----------------------------
INT 2F - TBSCANX - SCAN FILE
AX = CA04h
DS:DX -> filename
Return: CF clear if no virus signatures found
BX,SI,DI,ES destroyed
CF set if signature found
ES:BX -> ASCIZ virus name
AX,CX,DX destroyed
Note: this function requires at least 4K free memory
SeeAlso: AX=CA03h
--------U-2FCAFEBX0000-----------------------
INT 2F U - THELP v3.0 - INSTALLATION CHECK
AX = CAFEh
BX = 0000h
Return: BX = segment of resident code if installed
0000h if not installed
SeeAlso: AX=5453h,INT 2D"AMIS"
--------F-2FCB00-----------------------------
INT 2F - Communicating Applications Specification - INSTALLATION CHECK
AX = CB00h
Return: AL = status
00h not installed, OK to install
01h not installed, not OK to install
FFh installed
Note: AH = CBh is the default identifier, but may be reconfigured
SeeAlso: AH=2Ah,AX=8000h"FaxBIOS",AX=CB0Eh,AX=CBDCh
--------F-2FCB00BX4D53-----------------------
INT 2F - METZ XpressFax CASMGR - INSTALLATION CHECK
AX = CB00h
BX = 4D53h ('MS')
CX = 4949h ('II')
Return: AL = status
00h not installed, OK to install
01h not installed, not OK to install
FFh installed
BX = 6D73h ('ms')
CX = 6969h ('ii')
Note: this function is equivalent to the standard CASMGR installation check,
but uses the additional magic values to identify which CAS is
installed
SeeAlso: AH=2Ah,AX=8000h"FaxBIOS",AX=C000h/BX=444Bh,AX=CB0Eh,AX=CB16h
--------F-2FCB01-----------------------------
INT 2F - Communicating Applications Specification - SUBMIT A TASK
AX = CB01h
DS:DX -> ASCIZ name of task control file
Return: AX >= 0: event handle
AX < 0: two's complement of error code (see #03048)
Note: files needed for an event must be kept until task is complete or error
SeeAlso: AX=CB0Bh,AX=CB15h
(Table 03048)
Values for CAS error code:
(AH = class, AL = subcode, value passed back is 2's complement)
Class 00h --- FAX warnings
Subcode 00h no error
02h bad scanline count
03h page sent with errors, could not retransmit
04h received data lost
05h invalid or missing logo file
06h filename does not match nonstandard format (NSF) header
07h file size does not match NSF header
Class 01h --- DOS warnings (data was sent)
Subcode 01h invalid function
05h access denied
06h invalid handle
others see #01680 at INT 21/AH=59h/BX=0000h
Class 02h --- fatal errors (data not sent)
Subcode 00h multiplex handler failed
01h unknown command
02h bad event handle
03h FIND NEXT attempted before FIND FIRST
04h no more events
07h invalid queue type
08h bad control file
09h communication board busy
0Ah invalid command parameter
0Bh can't uninstall resident code
0Ch file exists
80h unknown task type
81h bad phone number
82h bad .PCX file header
83h unexpected EOF
84h unexpected disconnect
85h too many dialing retries
86h no file specified for send
87h communication board timeout
88h received too many pages (>1023) of data
89h manual connect initiated too long ago
8Ah hardware command set error
8Bh bad NonStandard Format (NSF) header file
Class 03h --- fatal DOS errors
Subcode 02h file not found
03h path not found
others see #01680 at INT 21/AH=59h/BX=0000h
Class 04h --- FAX errors
Subcode 01h remote unit not Group 3 compatible
02h remote unit did not send capabilities
03h other FAX machine incompatible
04h other FAX incapable of file transfers
05h exceeded retrain or FAX resend limit
06h line noise or failure to agree on bit rate
07h remote disconnected after receiving data
08h no response from remote after sending data
09h remote's capabilities incompatible
0Ah no dial tone (v1.2+)
0Bh invalid response from remote unit after sending data
0Dh phone line dead or remote unit disconnected
0Eh timeout while waiting for secondary dial tone (v1.2+)
11h invalid command from remote after receiving data
15h tried to receive from incompatible hardware
5Ch received data overflowed input buffer
5Dh remote unexpectedly stopped sending data
5Eh other FAX machine jammed (no data sent)
5Fh remote took too long to send fax scan line
63h can't get through to remote unit
64h user canceled event
Class 05h --- application-specific (v1.2+)
---Intel FAXPOP.EXE
Subcode 00h tried to send while in graphics mode
01h insufficient disk space
02h internal buffer overflow
Class 06h --- CAS implementation-specific (v1.2+)
--------F-2FCB02-----------------------------
INT 2F - Communicating Applications Specification - ABORT CURRENT EVENT
AX = CB02h
Return: AX >= 0: event handle of aborted event
AX < 0: error code (see #03048)
Note: termination could take up to 30 seconds
SeeAlso: AX=CB08h,AX=CB10h
--------F-2FCB05-----------------------------
INT 2F - Communicating Applications Specification - FIND FIRST QUEUE ENTRY
AX = CB05h
CX = status of events to find
0000h successful completion
0001h waiting to be processed
0002h number has been dialed
0003h connection established, sending
0004h connection established, receiving
0005h event aborted
FFFFh find any event, regardless of status
other negative values, match error code
DH = direction
00h chronological order, earliest to latest
01h reverse chronological order, latest to earliest
DL = queue to search
00h task queue
01h receive queue
02h log queue
Return: AX = 0000h successful
BX = event handle for found event
AX < 0 error code (see #03048)
SeeAlso: AX=CB06h,AX=CB07h
--------F-2FCB06-----------------------------
INT 2F - Communicating Applications Specification - FIND NEXT QUEUE ENTRY
AX = CB06h
DL = queue to search
00h task queue
01h receive queue
02h log queue
Return: AX = 0000h successful
BX = event handle for found event
AX < 0 error code (see #03048)
Note: direction of search is same as preceding FIND FIRST call
SeeAlso: AX=CB05h
--------F-2FCB07-----------------------------
INT 2F - Communicating Applications Specification - OPEN FILE
AX = CB07h
BX = event handle from find (AL=05h,06h) or submit task (AL=01h)
CX = receive file number (ignored for task queue and log queue)
0000h open receive control file
N open Nth received data file
DL = queue
00h task queue
01h receive queue control file or received file, as given by CX
02h log queue
03h group file in task queue (v1.2+)
04h group file in log queue (v1.2+)
Return: AX = 0000h successful
BX = DOS file handle for requested file
AX < 0 error code (see #03048)
Note: the returned file handle has been opened in read-only mode and should
be closed with INT 21/AH=3Eh after use
SeeAlso: AX=CB01h,AX=CB05h,AX=CB14h
--------F-2FCB08-----------------------------
INT 2F - Communicating Applications Specification - DELETE FILE
AX = CB08h
BX = event handle
CX = receive file number
0000h delete ALL received files and receive control file
N delete Nth received file
DL = queue
00h delete control file in task queue and corresponding group file
if it exists
01h delete file in receive queue, as given by CX
02h delete control file in log queue (individual deletions not
recommended, to maintain integrity of log) and corresponding
group file if it exists
Return: AX = 0000h successful
AX < 0 error code (see #03048)
SeeAlso: AX=CB02h,AX=CB09h
--------F-2FCB09-----------------------------
INT 2F - Communicating Applications Specification - DELETE ALL FILES IN Q
AX = CB09h
DL = queue
00h delete all control files in task queue, including all group
files
01h delete all files in receive queue
02h delete all control files in log queue, including all group
files
Return: AX = 0000h successful
AX < 0 error code (see #03048)
SeeAlso: AX=CB08h
--------F-2FCB0A-----------------------------
INT 2F - Communicating Applications Specification - GET EVENT DATE
AX = CB0Ah
BX = event handle
DL = queue
00h task queue
01h receive queue
02h log queue
Return: AX = 0000h successful
CX = year
DH = month
DL = day
AX < 0 error code (see #03048)
SeeAlso: AX=CB0Bh,AX=CB0Ch
--------F-2FCB0B-----------------------------
INT 2F - Communicating Applications Specification - SET TASK DATE
AX = CB0Bh
BX = event handle (task event only)
CX = year
DH = month
DL = day
Return: AX = 0000h successful
AX < 0 error code (see #03048)
Note: setting a task's date and time to before the current date and time
causes it to execute immediately
SeeAlso: AX=CB01h,AX=CB0Ah,AX=CB0Dh
--------F-2FCB0C-----------------------------
INT 2F - Communicating Applications Specification - GET EVENT TIME
AX = CB0Ch
BX = event handle
DL = queue
00h task queue
01h receive queue
02h log queue
Return: AX = 0000h successful
CH = hour
CL = minute
DH = second
DL = 00h
AX < 0 error code (see #03048)
SeeAlso: AX=CB0Ah,AX=CB0Dh
--------F-2FCB0D-----------------------------
INT 2F - Communicating Applications Specification - SET TASK TIME
AX = CB0Dh
BX = event handle (task events only)
CH = hour
CL = minute
DH = second
DL unused
Return: AX = 0000h successful
AX < 0 error code (see #03048)
Note: setting a task's date and time to before the current date and time
causes it to execute immediately
SeeAlso: AX=CB0Bh,AX=CB0Ch,AX=CB10h
--------F-2FCB0E-----------------------------
INT 2F - Communicating Applications Specification - GET EXTERNAL DATA BLOCK
AX = CB0Eh
DS:DX -> 256-byte buffer for external data block (see #03049)
Return: AX = 0000h successful
DS:DX buffer filled
AX < 0 error code (see #03048)
Format of CAS external data block:
Offset Size Description (Table 03049)
00h BYTE CAS major version
01h BYTE CAS minor version
02h 68 BYTEs ASCIZ path to directory containing CAS software, ends in slash
46h 13 BYTEs ASCIZ name of current phonebook (in CAS directory)
53h 13 BYTEs ASCIZ name of current logo file (in CAS directory)
60h 32 BYTEs ASCIZ default sender name
80h 21 BYTEs ASCIZ CCITT identification of fax device
95h 107 BYTEs reserved
--------F-2FCB0F-----------------------------
INT 2F - Communicating Applications Specification - GET/SET AUTORECEIVE
AX = CB0Fh
DL = subfunction
00h get current autoreceive state
01h set autoreceive state
DH = number of rings before answer, 00h = never
Return: AX = 0000h autoreceive disabled
AX = N number of rings before answer
AX < 0 error code (see #03048)
--------F-2FCB10-----------------------------
INT 2F - Communicating Applications Specification - GET CURRENT EVENT STATUS
AX = CB10h
DS:DX -> 512-byte buffer for status area (see #03051)
Return: AX = 0000h successful
BX = event handle of current event or negative error code if
no current event
buffer filled
AX < 0 error code (see #03048)
SeeAlso: AX=CB02h,AX=CB0Dh
(Table 03050)
Values for CAS event type:
00h send
01h receive
02h polled send
03h polled receive
04h to 7Fh reserved
FFh serious hardware error
Format of CAS status area:
Offset Size Description (Table 03051)
00h BYTE event type (see #03050)
01h BYTE transfer type
00h 200x200 dpi, FAX mode
01h 100x200 dpi, FAX mode
02h file transfer mode
03h to 7Fh reserved
02h WORD event status (see #03052)
04h WORD event time (packed DOS time format, see INT 21/AX=5700h)
06h WORD event date (packed DOS date format, see INT 21/AX=5700h)
08h WORD number of files to transfer, max 7FFFh
0Ah WORD offset of file transfer record
0Ch 47 BYTEs ASCIZ phone number to call
3Bh 64 BYTEs ASCIZ application-specific tag string
7Bh BYTE reserved (00h)
7Ch BYTE connect time, seconds
7Dh BYTE connect time, minutes
7Eh BYTE connect time, hours
7Fh DWORD total number of pages in all files
83h DWORD pages already transmitted
87h WORD number of files already transmitted
89h BYTE cover page flag
00h don't transmit cover page
01h transmit cover page
02h to 7Fh reserved
8Ah WORD total number of transmission errors
8Ch 78 BYTEs reserved (zeros)
DAh 21 BYTEs ASCIZ remote FAX's CCITT identification
EFH 32 BYTEs ASCIZ destination name
10Fh 32 BYTEs ASCIZ sender name
12Fh 80 BYTEs filename of PCX logo file (max 1780x800 pixels)
17Fh 128 BYTEs file transfer record for current event (see #03053)
(Table 03052)
Values for CAS event status:
0000h completed successfully
0001h waiting
0002h number dialed
0003h connected, sending
0004h connected, receiving
0005h aborted
0006h to 007Fh reserved
0080h to 7FFFh application-specific events
8000h to FFFFh error codes
Format of CAS file transfer record:
Offset Size Description (Table 03053)
00h BYTE file type (ignored unless FAX)
00h ASCII
01h PCX
02h DCX
03h to 7Fh reserved
01h BYTE text size for ASCII FAX file
00h = 80 columns by 66 lines (11 inches)
01h = 132 columns by 88 lines (11 inches)
02h to 7Fh reserved
02h BYTE status of file
00h untouched
01h opened
02h moved
03h deleted
04h not yet received
05h to 7Fh reserved
03h DWORD bytes already transmitted
07h DWORD file size in bytes
0Bh WORD pages alread transmitted
0Dh WORD number of pages in file
0Fh 80 BYTEs ASCIZ filename
5Fh BYTE 1/8 inch page length
if page length below set to 01h through 7Fh, this value
specifies additional 1/8 inch increments to page length
60h BYTE page length
00h = 11 inches
01h to 7Fh = page length is this number of inches plus value of
1/8 inch field above
80h to FEh reserved
FFh = ASCII pages ending with formfeed
61h 31 BYTEs reserved (zeros)
--------F-2FCB11-----------------------------
INT 2F - Communicating Applications Specification - GET QUEUE STATUS
AX = CB11h
DL = queue to get status of
00h task queue
01h receive queue
02h log queue
03h send events (v1.2+)
04h receive events (v1.2+)
Return: AX >= 0 total number of changes made to queue, modulo 32768
BX = number of control files currently in queue
CX = number of received files (zero for task and log queues)
AX < 0 error code (see #03048)
SeeAlso: AX=CB12h
--------F-2FCB11DL03-------------------------
INT 2F - Communicating Applications Spec v1.2+ - GET NUMBER OF SEND EVENTS
AX = CB11h
DL = 03h
Return: AX = number of successful sends since resident manager started
BX = number of unsuccessful sends, including warnings
SeeAlso: AX=CB11h/DL=04h
--------F-2FCB11DL04-------------------------
INT 2F - Communicating Applications Spec v1.2+ - GET NUMBER OF RECEIVE EVENTS
AX = CB11h
DL = 04h
Return: AX = number of received file events since resident manager started
BX = number of received FAX events
SeeAlso: AX=CB11h/DL=03h
--------F-2FCB12-----------------------------
INT 2F - Communicating Applications Specification - GET HARDWARE STATUS
AX = CB12h
DS:DX -> 128-byte status buffer (see #03054,#03056)
Return: AX = 0000h successful
DS:DX buffer filled with hardware-dependent status information
< 0 error code (see #03048)
SeeAlso: AX=CB10h,AX=CB11h
Format of status buffer for Intel Connection CoProcessor:
Offset Size Description (Table 03054)
00h BYTE Connection CoProcessor connection status flags (see #03057)
01h BYTE number of kilobytes of free buffer space
02h BYTE page buffer status
bit 7: Connection CoProcessor has documents to send
bits 6-0: number of pages in buffer
03h BYTE number of retries left for dialing number
04h BYTE page number to retransmit
05h BYTE communications status (see #03058)
06h BYTE baud rate (see #03055)
07h 3 BYTEs reserved
0Ah BYTE Connection CoProcessor hardware status (see #03059)
0Bh BYTE Connection CoProcessor switch states (see #03060)
0Ch BYTE communications flags (see #03061)
0Dh BYTE reserved
0Eh WORD error count (only valid while busy, reset when idle)
10h DWORD size of nonstandard format (NSF) file in bytes
14h BYTE 'A' if Connection CoProcessor board present
15h 9 BYTEs reserved
1Eh 21 BYTEs ASCIZ CCITT identification
33h 77 BYTEs reserved
Note: the Intel Connection CoProcessor and SatisFAXtion may be distinguished
by examining the byte at offset 14h
Bitfields for Connection CoProcessor baud rate:
Bit(s) Description (Table 03055)
7 reserved
6-4 baud rate
000 = 300 baud (V.21 SDLC or HDLC mode)
100 = 2400 baud (V.27 ter)
101 = 4800 baud (V.27 ter)
110 = 7200 baud (V.29)
111 = 9600 baud (V.29)
3-0 reserved, should be 0110
Format of status buffer for Intel SatisFAXtion board:
Offset Size Description (Table 03056)
00h BYTE SatisFAXtion connection status flags (see #03062)
01h BYTE SatisFAXtion board state (see #03063)
02h BYTE number of KB free in buffer
03h BYTE number of pages or files in buffer
04h BYTE number of redials remaining on current number
05h BYTE FAX page number to retransmit
06h BYTE current page/file in block transfer
07h BYTE number of rings received (only if auto-answer enabled)
08h WORD error count
0Ah DWORD length of file being transferred
0Eh 6 BYTEs reserved
14h BYTE 'B' if SatisFAXtion board present
15h 13 BYTEs ASCIZ transfer agent name
22h 5 BYTEs ASCIZ transfer agent version number
27h 13 BYTEs ASCIZ resident loader name
34h 5 BYTEs ASCIZ resident loader version number
39h 21 BYTEs ASCIZ remote CSID
4Eh 13 BYTEs ASCIZ resident manager name
5Bh 5 BYTEs ASCIZ resident manager version number
60h 32 BYTEs reserved
Note: the Intel Connection CoProcessor and SatisFAXtion may be distinguished
by examining the byte at offset 14h
Bitfields for Connection CoProcessor connection status flags:
Bit(s) Description (Table 03057)
7 hardware busy sending or receiving
6 last page of data
5 no data on current page
4 retransmit request for current page being transmitted
3 NSF (nonstandard file) mode active
2-0 reserved
Bitfields for communications status:
Bit(s) Description (Table 03058)
7 originating call
6 FAX message to be sent
5 on line
4 ring detected and receive enabled
3 buffer dumped on receive
2-0 hardware sequence state
000 idle
001 dial
010 answer
011 transmit
100 receive
101 pre-message
110 post-message
111 disconnect
Bitfields for Connection CoProcessor hardware status:
Bit(s) Description (Table 03059)
7 modem option installed
6 Connection CoProcessor has control of DAA (not latched)
5 on line (not latched)
4 ring detected (not latched)
3 data in command buffer (not latched)
2 set if using DMA channel 1, clear if using DMA channel 3
1 line length compensation 1 set (not latched)
0 line length compensation 0 set (not latched)
Bitfields for Connection CoProcessor switch states:
Bit(s) Description (Table 03060)
7 reserved
6 unused
5 spare switch open
4 FAX ADR1 switch open
3 FAX ADR0 switch open
2 alternate interrupt switch open
1 COM SEL 1 switch open
0 COM SEL 0 switch open
Note: valid combinations of 0-2 are
000 COM2 IRQ3 IObase 2F8h
001 COM1 IRQ4 IObase 3F8h
010 COM4 IRQ3 IObase 2E8h
011 COM3 IRQ4 IObase 3E8h
110 COM4 IRQ2 IObase 2E8h
111 COM3 IRQ5 IObase 3E8h
Bitfields for communications flags:
Bit(s) Description (Table 03061)
7 reserved
6 auxiliary relay forced ON
5 modem select relay forced ON
4 offhook relay forced ON
3 9600 bps enabled
2 7200 bps enabled
1 4800 bps enabled
0 2400 bps enabled
Bitfields for SatisFAXtion connection status flags:
Bit(s) Description (Table 03062)
7 busy in T.30 CCITT fax protocol
6 data on current page/file (only used for block xfers)
5 retransmission of last page requested
4 in file transfer mode
3 data in buffer
2 data buffer dumped on receive
1 200x100 dpi resolution instead of 200x200 dpi
0 data modem in use, FAX image modem not available
Bitfields for SatisFAXtion board state:
Bit(s) Description (Table 03063)
7 reserved
6 handset jack active, data and FAX modems not available
5-3 current rate
000 300 bps (V.21 HDLC)
100 2400 bps (V.27 ter)
101 4800 bps (V.27 ter)
110 7200 bps (V.29)
111 9600 bps (V.29)
2-0 T.30 CCITT protocol state
000 idle
001 dialing
010 answering
011 transmitting
100 receiving
101 pre-message
110 post-message
111 disconnect
--------F-2FCB13DL00-------------------------
INT 2F - Communicating Applications Specification - GET DIAGNOSTICS RESULTS
AX = CB13h
DL = 00h
Return: AX = 0040h in progress
>= 0 passed
< 0 hardware-dependent failure code (see #03064,#03065)
SeeAlso: AX=CB13h/DL=01h
Bitfields for Intel Connection CoProcessor failure codes:
Bit(s) Description (Table 03064)
3 9600 bps FAX modem module failed
2 SDLC chip failed
1 RAM failed
0 ROM checksum failed
Bitfields for Intel SatisFAXtion failure codes:
Bit(s) Description (Table 03065)
1 2400 bps data modem failed
0 9600 bps FAX modem failed
--------F-2FCB13DL01-------------------------
INT 2F - Communicating Applications Specification - START DIAGNOSTICS
AX = CB13h
DL = 01h
Return: AX = 0000h successfully started
AX < 0 error code (see #03048)
SeeAlso: AX=CB13h/DL=00h
--------F-2FCB14-----------------------------
INT 2F - Communicating Applications Specification - MOVE RECEIVED FILE
AX = CB14h
BX = event handle
CX = receive file number
0001h first received file
N Nth received file
DS:DX -> ASCIZ string specifying new name for file (must not exist)
Return: AX = 0000h successful
AX < 0 error code (see #03048)
--------F-2FCB15-----------------------------
INT 2F - Communicating Applications Specification - SUBMIT FILE TO SEND
AX = CB15h
DS:DX -> variable-length data area (see #03066)
Return: AX >= 0 event handle
AX < 0 error code (see #03048)
SeeAlso: AX=CB01h
Format of CAS file submission data area:
Offset Size Description (Table 03066)
00h BYTE transfer type
00h = 200x200 dpi, fax mode
01h = 100x200 dpi, fax mode
02h = file transfer mode
03h to 7Fh reserved
01h BYTE text size
00h = 80 columns
01h = 132 columns
02h to 7Fh reserved
02h WORD time to send (DOS packed time, see #01665 at INT 21/AX=5700h)
04h WORD date to send (DOS packed date, see #01666 at INT 21/AX=5700h)
06h 32 BYTEs ASCIZ destination name
26h 80 BYTEs ASCIZ name of file to send
76h 47 BYTEs ASCIZ phone number to dial
A5h 64 BYTEs ASCIZ application-specific tag string
E5h BYTE reserved (00h)
E6h BYTE cover page
00h don't send cover page
01h send cover page
02h to 7Fh reserved
E7h 23 BYTEs reserved (zeros)
FEh variable ASCIZ string containing text of cover page (if cover page flag
set to 01h)
--------F-2FCB16BX1234-----------------------
INT 2F - Communicating Applications Spec v1.2+ - UNLOAD RESIDENT MANAGER
AX = CB16h
BX = 1234h
CX = 5678h
DX = 9ABCh
Return: AX = 0000h successful
AX < 0 error code
Note: the METZ XpressFax CASMGR ignores the values in BX,CX, and DX
SeeAlso: AX=C000h/BX=444Bh,AX=CB00h
Index: uninstall;CAS Manager
--------F-2FCB17-----------------------------
INT 2F - Communicating Applications Spec v1.2+ - SET COVER PAGE STATUS
AX = CB17h
BX = event handle
CL = cover page status
00h not read
01h read by user
Return: AX = 0000h successful
AX < 0 error code
--------F-2FCB80-----------------------------
INT 2F - Intel SatisFAXtion CASMGR - ???
AX = CB80h
???
Return: ???
--------F-2FCB81-----------------------------
INT 2F - Intel SatisFAXtion CASMGR - ???
AX = CB81h
???
Return: ???
--------F-2FCB82-----------------------------
INT 2F - Intel SatisFAXtion CASMGR - ???
AX = CB82h
???
Return: ???
--------F-2FCBDCBL56-------------------------
INT 2F - Comwave Microfax Specification - GET STATUS ARRAY
AX = CBDCh
BL = 56h
BH = line number (starts with 1)
CX:DX -> 32-byte status buffer or 80 character string
Return: AX = number of cards installed, or FFFFh on error
Program: Comwave manufacturers the Microfax line of fax cards which are a
high-performance multi-card FAX solution for OEMs.
Note: defaults to AH=CBh but can be changed
SeeAlso: AX=CBDDh,AX=DA00h
--------F-2FCBDDBL56-------------------------
INT 2F - Comwave Microfax Specification - COMMAND SUBMISSION
AX = CBDDh
BL = 56h
BH = ?
CX:DX -> command to execute
Return: AX = status
0000h success
FFFFh on error
SeeAlso: AH=2Ah,AX=CBDCh,AX=80FBh
--------c-2FCC--SI5453-----------------------
INT 2F U - PC-Kwik Programs - API
AH = CCh
SI = 5453h or 7473h
AL = function number (at least 00h,01h,04h,05h,07h,80h)
DL = program identifier (see #03067)
Return: SI = 7473h
other registers vary by function
Note: Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
thus supports this call
SeeAlso: INT 21/AH=2Bh/CX=4358h
(Table 03067)
Values for PC-Kwik program identifier:
00h all installed PowerPak programs
01h SUPERPCK/SUPER/QCACHE v4.00+ (disk cache)
02h PCKSPL (print spooler)
04h PCKSCRN (screen accelerator)
05h PCKKEY (keyboard enhancer)
06h PCKRAMD (RAM disk)
08h PCKWIK.SYS
10h PCKCDROM (CD-ROM support for SUPERPCK)
--------N-2FCC00-----------------------------
INT 2F - Tsoft NFSDRVR - INSTALLATION CHECK
AX = CC00h
Return: AX = 7777h
BX = ???
CX = ???
DX = ???
ES = data segment of resident portion
SeeAlso: AX=CC01h,AX=CC06h
--------N-2FCC01-----------------------------
INT 2F - Tsoft NFSDRVR - ???
AX = CC01h
???
Return: ???
SeeAlso: AX=CC00h
--------N-2FCC02-----------------------------
INT 2F - Tsoft NFSDRVR - ???
AX = CC02h
???
Return: ???
SeeAlso: AX=CC00h
--------N-2FCC03-----------------------------
INT 2F - Tsoft NFSDRVR - ???
AX = CC03h
???
Return: ???
SeeAlso: AX=CC00h
--------N-2FCC04-----------------------------
INT 2F - Tsoft NFSDRVR - ???
AX = CC04h
???
Return: ???
SeeAlso: AX=CC00h
--------N-2FCC05-----------------------------
INT 2F - Tsoft NFSDRVR - ???
AX = CC05h
???
Return: ???
SeeAlso: AX=CC00h
--------N-2FCC06-----------------------------
INT 2F - Tsoft NFSDRVR - ???
AX = CC06h
???
Return: ???
SeeAlso: AX=CC00h
--------P-2FCD00-----------------------------
INT 2F - Intel Image Processing Interface - INSTALLATION CHECK
AX = CD00h
Return: AL = state
00h not installed, OK to install
01h not installed, not OK to install
FFh installed
SeeAlso: AX=CD02h"Image"
--------P-2FCD00-----------------------------
INT 2F - LaserPort Interface - INSTALLATION CHECK
AX = CD00h
Return: AL = status
FFh installed
SeeAlso: AX=CD0Fh"LaserPort"
--------U-2FCD00-----------------------------
INT 2F - SWELL.EXE - INSTALLATION CHECK
AX = CD00h
Return: AX = 00FFh installed
BH = major version
BL = minor version
Program: SWELL.EXE is a TSR which swaps programs to disk when they EXEC a
child process with INT 21/AH=4Bh
--------s-2FCD00BX464F-----------------------
INT 2F - Forte/Gravis ULTRAMID - INSTALLATION CHECK
AX = CD00h
BX = 464Fh ('FO')
CX = 5254h ('RT')
DX = 4520h ('E ')
Return: AL = FFh if installed
BX = 4155h ('AU')
CX = 4449h ('DI')
DX = 4F20h ('O ')
ES:SI -> program ID string
Program: ULTRAMID is a MIDI driver for the Gravis UltraSound which allows use
of AIL drivers with other software
Range: AH=CDh-ECh, selected by scanning for an available multiplex number
SeeAlso: INT 21/AX=FD12h,AX=CD00h/DX=4957h
--------s-2FCD00DX4957-----------------------
INT 2F R - InterWave Game API - INSTALLATION CHECK
AX = CD00h
DX = 4957h ('IW')
SI = 5645h ('VE')
Return: AL = FFh if installed
DX = 4554h ('ET')
SI = 454Bh ('EK')
Range: AH=CDh-ECh, selected by scanning for an available multiplex number
SeeAlso: AX=CD00h/BX=464Fh,AX=CD01h"InterWave",AX=CD21h"InterWave"
SeeAlso: AX=CD80h"InterWave"
--------P-2FCD01-----------------------------
INT 2F - Intel Image Processing Interface - SET DEVICE NAME
AX = CD01h
CX:BX -> ASCIZ character device name ("LPTn", "COMn", "PRN")
Return: AL = status
00h successful
CX:BX -> internal character device name
80h error
--------U-2FCD01-----------------------------
INT 2F - SWELL.EXE - SUSPEND ONCE
AX = CD01h
Return: AX = 0000h
SeeAlso: AX=CD02h"SWELL"
--------s-2FCD01BX0000-----------------------
INT 2F R - InterWave Game API - GET NUMBER OF INTERWAVE PROGRAMS / PROGRAM ID
AX = CD01h
BX = 0000h
Return: BX = number of programs currently installed on the Game API
Desc: get the number of programs supporting the InterWave Game API which are
currently installed in memory, which also forms the next program ID
number if the caller wishes to go resident on the API
Range: AH=CDh-ECh, selected by scanning for an available multiplex number
Notes: the first program to install on the IW Game API must use ID 00h
the AMD-recommended implementation is for the handler to increment
BX and chain to the previous handler (if any), but this will fail
if TSRs are unloaded out-of-order
SeeAlso: AX=CD00h"InterWave",AX=CD02h"InterWave",AX=CD03h"InterWave"
SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"
--------P-2FCD02-----------------------------
INT 2F - Intel Image Processing Interface - GET VERSION NUMBER
AX = CD02h
Return: AL = status
00h/01h successful
BH = major version number (BCD)
BL = minor version number (BCD)
80h error
Note: if return AL = 01h, the IPI supports network redirection
SeeAlso: AX=CD00h"Image"
--------U-2FCD02-----------------------------
INT 2F - SWELL.EXE - SUSPEND
AX = CD02h
Return: AX = 0000h
SeeAlso: AX=CD03h"SWELL"
--------s-2FCD02-----------------------------
INT 2F R - InterWave Game API - GET PROGRAM STATUS AND INFORMATION
AX = CD02h
BX = program identifier
Return: CX = program status
bit 0: using synthesizer
bit 1: using Codec
bit 2: supports at least one Game Device (see AX=CD21h,AX=CD22h)
BX = supported API version (BCD, BH=major, BL=minor) if CX bit 2 set
ES:DI -> ASCIZ identification string
Range: AH=CDh-ECh, selected by scanning for an available multiplex number
Note: ordinarily, an application will loop through all valid program
identifiers (as returned by AX=CD01h); if any of the installed
programs conflicts with the use the caller wishes to make of the
InterWave chip, it should be disabled with AX=CD03h first
SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD03h"InterWave"
SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"
--------P-2FCD03-----------------------------
INT 2F - Intel Image Processing Interface - SELECT SCAN LINE
AX = CD03h
BX = scan line
CX = requested density in dots per inch (300, 600, or 1200)
Return: AL = status (see also AX=CD04h"Image")
00h successful
CX = density at which scan line was mapped
ES:DI -> start of scan line
80h unsuccessful
81h scan line out of range
82h unsupported scan line density
83h out of memory
SeeAlso: AX=CD04h"Image"
--------U-2FCD03-----------------------------
INT 2F - SWELL.EXE - ACTIVATE
AX = CD03h
Return: AX = 0000h
SeeAlso: AX=CD02h"SWELL"
--------s-2FCD03-----------------------------
INT 2F R - InterWave Game API - SUSPEND PROGRAM
AX = CD03h
BX = installed program identifier
CX = InterWave section to be released
0000h all
0001h synthesizer
0002h Codec
Return: AL = status
00h successful
BX = base port
CL = IRQ
CH = DMA channel (Codec only)
else failed
SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave"
SeeAlso: AX=CD04h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"
--------P-2FCD04-----------------------------
INT 2F - Intel Image Processing Interface - MOVE BITMAP TO SCANLINE
AX = CD04h
CX:BX -> structure (see #03069)
Return: AL = status (see #03068)
SeeAlso: AX=CD03h"Image"
(Table 03068)
Values for IPI function status:
00h successful
80h unsuccessful
81h scan line out of range
82h unsupported scan line density
83h out of memory
84h unrecognized source
85h initialization error
Format of structure:
Offset Size Description (Table 03069)
00h WORD image source (0 = conventional memory, 1 = expanded memory)
02h DWORD pointer to image data
06h WORD scan line on which to place
08h WORD bit offset from start of scan line at which to place
0Ah WORD density of bitmap data (300, 600, or 1200 dpi)
0Ch WORD width in bits of data
0Eh WORD source logical page number
10h WORD source handle (only if source in expanded memory)
12h WORD source offset (only if source in expanded memory)
--------U-2FCD04-----------------------------
INT 2F - SWELL.EXE - TURN OFF VERBOSE MODE
AX = CD04h
Return: AX = 0000h
SeeAlso: AX=CD05h"SWELL"
--------s-2FCD04-----------------------------
INT 2F R - InterWave Game API - WAKE PROGRAM
AX = CD04h
BX = installed program identifier
Return: AL = status
00h successful
else failed
Note: this function should only be called after the program has been
suspended with AX=CD03h
SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD03h"InterWave"
SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"
SeeAlso: INT 7E/AL=84h"IWSBSDRV"
--------P-2FCD05-----------------------------
INT 2F - Intel Image Processing Interface - PRINT PAGE
AX = CD05h
Return: AL = status (00h,80h) (see #03068)
Note: page image is retained, so multiple calls will print multiple copies of
the page
SeeAlso: AX=CD06h"Image"
--------U-2FCD05-----------------------------
INT 2F - SWELL.EXE - TURN ON VERBOSE MODE
AX = CD05h
Return: AX = 0000h
SeeAlso: AX=CD04h"SWELL"
--------s-2FCD05-----------------------------
INT 2F R - InterWave Game API - UNINSTALL RESIDENT DEVICE DRIVER
AX = CD05h
BX = installed program identifier
Return: AL = status
00h successful
else failed
SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave"
SeeAlso: AX=CD03h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"
--------P-2FCD06-----------------------------
INT 2F - Intel Image Processing Interface - CLEAR PAGE
AX = CD06h
Return: AL = status (00h,80h) (see #03068)
Note: palette is reset to default
SeeAlso: AX=CD09h"Image"
--------U-2FCD06-----------------------------
INT 2F - SWELL.EXE - UNINSTALL
AX = CD06h
Return: AX = status
0000h uninstalled
8002h programs still swapped, not uninstalled
--------P-2FCD07-----------------------------
INT 2F - Intel Image Processing Interface - reserved
AX = CD07h
SeeAlso: AX=CD00h"Image"
--------U-2FCD07-----------------------------
INT 2F - SWELL.EXE - GET INFO
AX = CD07h
ES:BX -> 32-byte buffer for info (see #03070)
Return: AX = status
0000h successful
ES:BX buffer filled
8001h buffer wrong size
Format of SWELL.EXE info buffer:
Offset Size Description (Table 03070)
00h WORD 20h (total size of buffer)
02h BYTE suspend-once mode active if nonzero
03h BYTE 00h active, 01h suspended
04h BYTE 00h quiet, 01h verbose
05h BYTE "Borland support" (allowing INT 21/AX=4B01h) on if nonzero
06h 26 BYTEs unused???
--------P-2FCD08-----------------------------
INT 2F - Intel Image Processing Interface - SCREEN IMAGE
AX = CD08h
CX:BX -> structure (see #03071)
Return: AL = status (00h,80h-85h) (see #03068)
SeeAlso: AX=CD05h"Image",AX=CD09h"Image"
Format of IPI screen image structure:
Offset Size Description (Table 03071)
00h WORD image source (0 = conventional memory, 1 = expanded memory)
02h DWORD pointer to image data
06h WORD horizontal position on paper of left edge (in 1200 dpi units)
08h WORD vertical position on paper of top edge (in 1200 dpi units)
0Ah WORD left cropping (currently must be zero)
0Ch WORD top cropping (currently must be zero)
0Eh WORD width (currently must be 8000h)
10h WORD height (currently must be 8000h)
12h WORD horizontal size of image in 1200 dpi units
14h WORD vertical size of image in 1200 dpi units
16h WORD aspect ratio (currently reserved)
18h WORD initialization flag (if 01h, initialization is performed)
1Ah WORD pixels per line of source data
1Ch WORD number of scan lines in source data
1Eh WORD number of scan lines in packet
20h WORD bits per pixel (1,2,4,6, or 8)
22h WORD pixels per byte (1,2,4, or 8)
24h WORD compression type (currently only 00h [uncompressed] supported)
26h WORD source page number (if in expanded memory)
28h WORD source handle (if in expanded memory)
2Ah WORD source offset (if in expanded memory)
--------U-2FCD08-----------------------------
INT 2F - SWELL.EXE - UNUSED
AX = CD08h
Return: AX = FFFFh (error)
--------P-2FCD09-----------------------------
INT 2F - Intel Image Processing Interface - LOAD SCREEN
AX = CD09h
CX:BX -> structure (see #03072)
Return: AL = status (00h,80h) (see #03068)
SeeAlso: AX=CD06h"Image Processing",AX=CD0Ah"Image Processing"
Format of IPI load screen structure:
Offset Size Description (Table 03072)
00h BYTE style
44h ('D') diamond style
4Ch ('L') line style
01h BYTE reserved (00h)
02h WORD frequency in lines per inch [sic]
currently, coerced to nearest of 50, 60, 68, 70, 75, 85, or 100
04h WORD screen angle in degrees (-360 to 360)
currently coerced to nearest of -45, 0, 45, or 90
--------U-2FCD09-----------------------------
INT 2F - SWELL.EXE - TURN OFF "BORLAND SUPPORT"
AX = CD09h
Return: AX = 0000h
SeeAlso: AX=CD0Ah"SWELL"
--------P-2FCD0A-----------------------------
INT 2F - Intel Image Processing Interface - LOAD PALETTE
AX = CD0Ah
CX:BX -> palette structure (see #03073)
Return: AL = status (00h,80h) (see #03068)
SeeAlso: AX=CD09h"Image Processing"
Format of IPI palette structure:
Offset Size Description (Table 03073)
00h BYTE bits per pixel for which palette is to be used (1,2,4,6, or 8)
01h 2**N palette translation values, one per possible pixel value
--------U-2FCD0A-----------------------------
INT 2F - SWELL.EXE - TURN ON "BORLAND SUPPORT"
AX = CD0Ah
Return: AX = 0000h
SeeAlso: AX=CD09h"SWELL"
--------P-2FCD0F-----------------------------
INT 2F - LaserPort Interface - EXECUTE FUNCTION
AX = CD0Fh
BL = function
01h enable
02h disable
03h ???
Return: AL = status
00h success
SeeAlso: AX=CD00h"LaserPort"
--------s-2FCD21-----------------------------
INT 2F R - InterWave Game API - OPEN GAME DEVICE
AX = CD21h
BX = installed program identifier
ES:DI -> ASCIZ device name
"MIDISIMPLE"
"MIDICOMPLEX"
"DIRECTCODEC"
Return: AL = status
00h successful
DX = device handle
---MIDISIMPLE and MIDICOMPLEX---
BX = real-mode interrupt number (see #03074,#03075)
---DIRECTCODEC---
BX = base port
CL = IRQ
CH = DMA channel (04h = no DMA)
SI = size of FIFO in bytes (0000h = use DMA)
nonzero failed (not supported or already in use)
AH may be destroyed
Range: AH=CDh-ECh, selected by scanning for an available multiplex number
SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave"
SeeAlso: AX=CD05h"InterWave",AX=CD22h"InterWave",AX=CD80h"InterWave"
(Table 03074)
Call MIDISIMPLE with:
EAX = function number
0001h MIDI byte out
BL = MIDI byte to send
0002h MIDI string out
ECX = length of MIDI string in bytes
ES:EDI -> MIDI string to send (should not include timing info)
DX = device handle
INT xxh (as returned by AX=CD21h)
Return: EAX = status
00000000h if successful
FFFFFFFFh on error (bad handle)
SeeAlso: #03075,INT 7E/AX=0001h"IWSBSDRV",INT 7E/AX=0002h"IWSBSDRV"
(Table 03075)
Call MIDICOMPLEX with:
EAX = function number
??? (specification is still in development)
DX = device handle
INT xxh (as returned by AX=CD21h)
Return: EAX = status
00000000h if successful
FFFFFFFFh on error (bad handle)
SeeAlso: #03074
--------s-2FCD22-----------------------------
INT 2F R - InterWave Game API - CLOSE GAME DEVICE
AX = CD22h
BX = installed program identifier
DX = device handle (from AX=CD21h)
Return: AL = status
00h successful
FFh inavlid handle or device is not open
Range: AH=CDh-ECh, selected by scanning for an available multiplex number
SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave"
SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"
--------s-2FCD80-----------------------------
INT 2F RC - InterWave Game API - MIXER SETTINGS CHANGED BROADCAST
AX = CD80h
Return: nothing
Desc: called by an application controlling the InterWave chip's mixer
whenever the mixer's settings are changed
Range: AH=CDh-ECh, selected by scanning for an available multiplex number
Note: when an application intercepts this function call, it must read the
new mixer settings from the InterWave chip
SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave"
SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD22h"InterWave"
--------K-2FCF00-----------------------------
INT 2F - TEMPLEXX 1.0 - INSTALLATION CHECK
AX = CF00h
Return: AL = FFh if installed
Program: TEMPLEXX is a popup keyboard template by Henson Scientific, Inc.
Note: values in AL other than 00h cause an immediate return without modifying
any registers
--------G-2FD000-----------------------------
INT 2F C - MDEBUG display driver - GET DRIVER STATUS
AX = D000h
Return: CF set on error
all other registers must be unchanged)
CF clear if successful
AL = FFh
AH = driver semaphor
00h driver is not active
01h driver is active
BX = CS of the driver
CX = driver version (CH = major, CL = minor, must be >= 013Ch)
DL = buffer semaphor
00h driver is not pending
01h driver is pending between functions 02h and 03h
DH = show semaphor
00h driver is not pending
01h driver is pending between functions 04h and 05h
Program: MDEBUG is a shareware memory-resident debugging tool by Bernd
Schemmer, including a memory monitor, an interpreter and a
disassembler
Range: AH=C0h to AH=FFh, selected by switch or programmatically
Notes: MDEBUG can use any two consecutive multiplex numbers between C0h and
FFh; the default is D0h for the display driver and D1h for the
command driver (call INT 60/AH=00h"MDEBUG" for the actual multiplex
numbers used)
this function MUST be reentrant, as MDEBUG calls it after every popup
before any other actions. The handler should not change any
registers if the display is in an unsupported mode or in a mode
MDEBUG supports itself, e.g. a normal text mode with at least 80x25
characters (i.e. 80x43 or 132x44 (v1.60+)). In this case MDEBUG will
not call any of the other functions for this popup session.
MDEBUG will not call the other functions if the returned version is
less than the actual version of MDEBUG.
if the driver is reentrant, DL and DH should be 00h
SeeAlso: AX=D001h,AX=D002h,AX=D003h,AX=D004h,AX=D005h
--------M-2FD000-----------------------------
INT 2F - ZWmous - INSTALLATION CHECK
AX = D000h
Return: AX = 5A57h ("ZW") if installed
BX = segment of resident code
Program: ZWmous is a shareware TSR by Zen Wu which permits the use of a mouse
with many non-mouse applications by entering the letter under the
mouse cursor on button presses
SeeAlso: INT 33/AX=0003h
--------N-2FD000-----------------------------
INT 2F - Lotus CD/Networker - INSTALLATION CHECK
AX = D000h
Return: AL = FFh if CD/Networker TSR is loaded
BX = 4D44h ("MD") signature
CX = Windows mode word (from INT 2F/AX=1600h) at time of TSR load
DX = bitmap identifying all loaded CD/Networker TSRs.
Notes: INT 2F/AH=D0h is used by CD/Networker to communicate between a
resident redirector TSR and a transient program that controls the
TSR's CD-ROM drive emulation (volume attachments, caching, etc).
At present there is only one CD/Networker TSR; the bitmap always = 4.
SeeAlso: AX=D002h"Lotus",INT 2F/AX=1500h"CD-ROM"
--------G-2FD001-----------------------------
INT 2F C - MDEBUG display driver - INITIALIZE DRIVER
AX = D001h
Return: CF set on error
AL = driver semaphor
AH = buffer semaphor
Range: AH=C0h to AH=FFh, selected by switch or programmatically
Notes: MDEBUG calls this function after every successful call of the function
00h. The function should reset all internal data and the status of
the driver. If this function returns an error, MDEBUG will not call
the other functions in this popup session.
MDEBUG can use any two consecutive multiplex numbers between C0h and
FFh; the default is D0h for the display driver and D1h for the
command driver
SeeAlso: AX=D000h
--------G-2FD002-----------------------------
INT 2F C - MDEBUG display driver - SAVE GRAPHIC DATA
AX = D002h
Return: CF set on error
CF clear if successful
display memory saved and display switched to one of the text modes
02h, 03h or 07h.
Note: MDEBUG calls this function only once every popup session before
displaying its windows.
SeeAlso: AX=D000h,AX=D003h
--------N-2FD002BX4D44-----------------------
INT 2F - Multiplex - Lotus CD/Networker GET DATA AREA
AX = D002h
BX = 4D44h
DX = bitmap identifying one loaded CD/Networker TSR
Return: ES:DI -> data area owned by TSR
Note: the format of the data area changes with each minor revision, so it
cannot be counted on
SeeAlso: AX=D000h"Lotus"
--------G-2FD003-----------------------------
INT 2F C - MDEBUG display driver - RESTORE GRAPHIC DATA
AX = D003h
Return: CF set on error
CF clear if successful
display restored to the mode it was in before calling AX=D002h and
the display memory is restored
Note: MDEBUG calls this function only once every popup session just before
it exits to normal DOS.
SeeAlso: AX=D000h,AX=D002h
--------G-2FD004-----------------------------
INT 2F - MDEBUG display driver - SHOW SAVED DATA
AX = D004h
Return: CF set on error
CF clear if successful
display switched to mode it was in before calling AX=D002h and the
display memory is restored
Note: This function needn't save the display memory before changing it.
SeeAlso: AX=D000h,AX=D005h
--------G-2FD005-----------------------------
INT 2F - MDEBUG display driver - SWITCH BACK TO TEXT SCREEN
AX = D005h
Return: CF set on error
CF clear if successful
display restored to mode it was in before calling AX=D004h
Note: This function needn't save or change the display memory
SeeAlso: AX=D000h,AX=D004h
--------G-2FD0-------------------------------
INT 2F - MDEBUG display driver - RESERVED FUNCTION NUMBERS
AH = D0h
AL = 06h-7Fh
Note: these functions are reserved for future use
--------G-2FD0-------------------------------
INT 2F - MDEBUG display driver - USER DEFINED FUNCTION NUMBERS
AH = D0h
AL = 80h-FFh
Note: these functions numbers are reserved for user defined features (e.g.
communication between the transient und resident parts of the driver)
--------G-2FD100-----------------------------
INT 2F C - MDEBUG command driver - GET STATUS
AX = D100h
BX = version of MDEBUG (BH = major, BL = minor)
CX = command driver counter
---v1.60+---
DS:SI -> MDEBUG identification table (see #03076)
ES = segment of display memory used by MDEBUG
DI = size of video mode used by MDEBUG
(high byte = lines, low byte = columns)
Return: DL = FFh
BX = version number of the driver if it is less than the version in BX,
else unchanged
CX incremented
Program: MDEBUG is a shareware memory-resident debugging tool by Bernd
Schemmer, including a memory monitor, an interpreter, and a
disassembler
Range: AH=C0h to AH=FFh, selected by switch or programmatically
Notes: called by MDEBUG at start of popup session; if the version number
returned in BX is less than 1.52 (1.60 for MDEBUG v1.70), MDEBUG will
not call any of the other functions during this popup session
MDEBUG can use any two consecutive multiplex numbers between C0h and
FFh; the default is D0h for the display driver and D1h for the
command driver (call INT 60/AH=00h"MDEBUG" for the multiplex numbers
actually used)
this function must end with a far call to the old INT 2F handler after
changing the registers
this function MUST be reentrant
command drivers must also declare the following data at the given
offsets in the code segment
100h 3 BYTEs JMP-command in .COM-files
103h BYTE NOP-command (90h)
104h 26 BYTEs signature "Kommandotreiber f�r MDEBUG"
11Eh 12 BYTEs name of driver, e.g. "MDHISDRV.COM"
each driver must have a unique name
MDEBUG will pass every key and command to the command driver(s) before
checking for a valid internal command
SeeAlso: AX=D000h,AX=D101h
Format of MDEBUG identification table:
Offset Size Description (Table 03076)
-2 WORD entry offset
00h WORD CS of MDEBUG
02h DWORD old INT 08h vector
06h DWORD old INT 09h vector
0Ah DWORD address INT 16h routine used by MDEBUG
0Eh BYTE length of version string
0Fh N BYTEs version string
--------G-2FD101-----------------------------
INT 2F - MDEBUG command driver - INITIALIZE DRIVER
AX = D101h
CX = command driver counter
Return: DL = status
FFh if successful
CX incremented
else error: all registers unchanged
Note: this function must end with a far call to the old INT 2F handler after
changing the registers
this function must be reentrant
--------G-2FD102-----------------------------
INT 2F - MDEBUG command driver - EXECUTE INTERPRETER COMMAND
AX = D102h
BL = first character of the interpreter command
BH = last character of the interpreter command (or blank)
DS:SI -> parameter for the interpreter command as ASCIZ string
DS:DI -> MDEBUG data structure (see #03078)
Return: AL = FFh
CF set on error
AH = error number (see #03077)
DS:SI -> ASCIZ error message (max 30 characters) if AH=0Ch
CF clear if successful
AH = return code
00h continue processing the command line
01h leave MDEBUG popup session
02h leave MDEBUG popup session and automatically popup again
if the InDOS flag is zero
03h not used (same as 00h)
04h not used (same as 00h)
05h put new command line into the input buffer,
DS:SI -> new command line (ASCIZ string, max 66 chars)
06h process new command line
DS:SI -> new command line (ASCIZ string, max 66 chars)
else unknown status, but continue processing commmand line
Note: this function must end with a far call to the old INT 2F handler (with
registers unchanged) if the driver does not support the interpreter
command in BX. Otherwise, the driver must not chain to the old
INT 2F.
(Table 03077)
Values for MDEBUG error number:
01h syntax error
02h first shell of the command.com is activ
03h Esc pressed
04h break pressed
05h DOS is busy
06h command ended
07h division by zero
08h invalid display driver
09h invalid command driver
0Ah error 8 and 9
0Bh unknown error
0Ch new error
else unknown error
Format of MDEBUG data structure:
Offset Size Description (Table 03078)
00h WORD register SE
02h WORD register OF
04h WORD register FS
06h WORD register FO
08h WORD register AX
0Ah WORD register BX
0Ch WORD register CX
0Eh WORD register DX
10h WORD register SI
12h WORD register DI
14h WORD register DS
16h WORD register ES
18h WORD register BP
1Ah WORD register SS
1Ch WORD register SP
1Eh WORD register FL (flags)
20h WORD register R0
22h WORD register R1
24h WORD register R2
26h WORD register R3
28h WORD register R4
2Ah WORD register R5
2Ch WORD register R6
2Eh WORD register R7
30h WORD register R8
32h WORD register CS, return-address
34h WORD register IP, return-address
36h DWORD saved pointer to data for key <F6> (v1.60)
saved monitor address (v1.70)
3Ah 12 WORDs saved register values on last popup entry (for <F8> key)
(original register values at popup entry of MDEBUG)
AX, BX, CX, DX, SI, DI, DS, ES, BP, SS, SP, flags
52h 12 WORDs saved register values on last popup exit (for <SHIFT-F8> key)
AX, BX, CX, DX, SI, DI, DS, ES, BP, SS, SP, flags
6Ah DWORD address of the DOS-invars-table
6Eh DWORD address of the InDOS flag
72h WORD offset of the register which is used for the segment of the
first monitor window
74h WORD offset of the register which is used for the offset of the
first monitor window
76h WORD name of the register which is used for the segment of the
first monitor segment
78h WORD name of the register which is used for the offset of the first
monitor window
7Ah WORD pseudo register 1
7Ch WORD pseudo register 2
--------G-2FD103-----------------------------
INT 2F - MDEBUG command driver - EXECUTE KEY IN THE MONITOR
AX = D103h
BX = key code (like result of an interrupt 16h call)
CX = cursor position
0000h in the ASCII column of the monitor
0001h in one of the hex fields of the monitor
DS:SI -> MDEBUG data structure (see #03078)
ES:DI -> actual byte in the monitor
Return: AL = FFh
AH = return code
00h key processed, read next key
01h leave MDEBUG popup session
02h leave MDEBUG popup session and automatically popup again if DOS
is not busy
03h signal an error (beep)
04h driver has redefined the key, proceed with the new key
BX = new key code
MDEBUG will not pass the new key to the command driver(s)
else treat like code 00h
Note: this function must end with a far call to the old INT 2F handler (with
registers unchanged) if the driver does not support the key in BX.
Otherwise, the driver must not chain to the old INT 2F.
SeeAlso: AX=D104h
--------G-2FD104-----------------------------
INT 2F - MDEBUG command driver - EXECUTE KEY IN THE INTERPRETER
AX = D104h
DS:SI -> MDEBUG data structure (see #03078)
Return: AL = FFh
AH = return code
00h key processed, read next key
01h leave MDEBUG popup session
02h leave MDEBUG popup session and automactically popup again if
DOS is not busy
03h signal an error (beep)
04h driver has redefined the key, proceed with the new key
BX = new key code
MDEBUG won't pass the new key to the command driver(s)
05h put new command line into the input buffer
DS:SI -> new command line (ASCIZ string, max 66 chars)
06h process new command line
DS:SI -> new command line (ASCIZ string, max 66 chars)
else treat like code 00h
Note: this function must end with a far call to the old INT 2F handler if the
driver does not support the key in BX. Otherwise, the driver must
not chain to the old INT 2F.
SeeAlso: AX=D103h
--------G-2FD1-------------------------------
INT 2F - MDEBUG command driver - RESERVED FUNCTIONS
AH = D1h
AL = 05h-0Ah
Note: these functions are reserved for future use
--------G-2FD110-----------------------------
INT 2F - MDEBUG command driver - GET ADDRESS OF THE OLD INT 2F
AX = D110h
Return: DL = FFh
ES:BX -> next program in the chain for INT 2F
CX = code segment of this driver
DI = offset of driver identification table (see #03079) (v1.60+)
Notes: only called by the transient part of the driver
must be reentrant and the driver must not chain this function to the
old INT 2F
Format of the MDEBUG driver identification table:
Offset Size Description (Table 03079)
00h 26 BYTEs signature "Kommandotreiber f�r MDEBUG"
^- Note: ASCII 129,German U-umlaut
27h 12 BYTEs name of driver, e.g. "MDHISDRV.COM"
each driver must have a unique name
--------G-2FD111-----------------------------
INT 2F - MDEBUG command driver - START DRIVER
AX = D111h
Return: DL = FFh
Notes: only called by the transient part of the driver to inform the resident
part that it is installed
the function must be reentrant and the driver mustn't chain this
function to the old INT 2F
SeeAlso: AX=D101h,AX=D112h
--------G-2FD112-----------------------------
INT 2F - MDEBUG command driver - END DRIVER
AX = D112h
Return: DL = FFh
Notes: only called by the transient part of the driver to inform the resident
part that it will be released after this function
the function must be reentrant and the driver mustn't chain this
function to the old INT 2F
SeeAlso: AX=D101h,AX=D111h
--------G-2FD1-------------------------------
INT 2F - MDEBUG command driver - RESERVED FUNCTIONS
AH = D1h
AL = 13h-7Fh
Note: these functions are reserved for future use
--------G-2FD1-------------------------------
INT 2F - MDEBUG command driver - USER DEFINED FUNCTIONS
AH = D1h
AL = 80h-FFh
Note: these functions are reserved for user defined features (e.g.
communication between the transient und resident parts of the driver)
--------U-2FD200-----------------------------
INT 2F - PCL-838.EXE - INSTALLATION CHECK
AX = D200h
Return: AL = FFh if installed??? (documented as AX = return value)
Program: PCL-838 is a resident utility for controlling a stepmotor adapter
board by Advantec
SeeAlso: AX=D201h"PCL-838",AX=D202h"PCL-838"
--------Q-2FD200BX5144-----------------------
INT 2F - Quarterdeck RPCI - INSTALLATION CHECK
AX = D200h
BX = 5144h ("QD")
CX = 4D45h ("ME")
DX = 4D30h ("M0")
Return: AL = FFh installed
if BX,CX,DX registers were as specified on entry:
BX = 4D45h ("ME")
CX = 4D44h ("MD")
DX = 5652h ("VR")
Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
Notes: the Quarterdeck RPCI (Resident Program Communication Interface) is
supported by QEMM v5.0+, QRAM, MANIFEST, VIDRAM, etc.
for AL <> 0, if the BX/CX/DX values don't match the identifier of a
Quarterdeck product, it just chains to the previous INT 2F handler
SeeAlso: AX=D201h/BX=4849h,AX=D201h/BX=4D41h,AX=D201h/BX=4D45h
SeeAlso: AX=D201h/BX=5145h,AX=D201h/BX=5649h
--------U-2FD201-----------------------------
INT 2F - PCL-838.EXE - UNINSTALL
AX = D201h
Return: AX = return value
SeeAlso: AX=D200h"PCL-838",AX=D202h"PCL-838"
--------m-2FD201BX4849-----------------------
INT 2F - Quarterdeck RPCI - GET QD HIMEM PRESENCE
AX = D201h
BX = 4849h ("HI")
CX = 4D45h ("ME")
DX = 4D51h ("MQ")
Return: BX = 4F4Bh ("OK")
ES:DI -> HIMEM entry point
Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
SeeAlso: AX=D200h,AX=D201h/BX=5145h
--------m-2FD201BX4849-----------------------
INT 2F - Quarterdeck RPCI - QEMM/QRAM v5.0+ - GET HIRAM MEMORY CHAIN
AX = D201h
BX = 4849h ("HI")
CX = 5241h ("RA")
DX = 4D30h ("M0")
Return: BX = 4F4Bh ("OK")
CX = segment of start of HIRAM chain
DX = reserved block owner (QEMM/QRAM code segment)
Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
Note: the HIRAM memory chain has the same format as the regular DOS 4.0
memory chain (see #01628 at INT 21/AH=52h), except that XMS Upper
Memory Blocks have the block header program name field set to
"UMB"; blocks whose "owner" field is set to the reserved segment
returned in DX are locked-out regions such as video memory and ROMs.
SeeAlso: AX=12FFh/BX=0006h,AX=D200h
--------G-2FD201BX4D41-----------------------
INT 2F U - Quarterdeck RPCI - MANIFEST v1.0+ - INSTALLATION CHECK
AX = D201h
BX = 4D41h ("MA")
CX = 4E49h ("NI")
DX = 4645h ("FE")
Return: BX = 5354h ("ST") if installed
Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
SeeAlso: AX=D200h
--------E-2FD201BX4D45-----------------------
INT 2F U - Quarterdeck RPCI - DVDOS4GX.DVR - ???
AX = D201h
BX = 4D45h ("ME")
CX = 5155h ("QU")
DX = 5044h ("PD")
Return: AL = FFh
BX = 4F4Bh ("OK")
Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
Note: this function is called by QEMM 6.03
performs a variety of actions before setting return registers
SeeAlso: AX=D200h
--------m-2FD201BX5145-----------------------
INT 2F - Quarterdeck RPCI - QEMM v5.0+ - INSTALLATION CHECK
AX = D201h
BX = 5145h ("QE")
CX = 4D4Dh ("MM")
DX = 3432h ("42")
Return: BX = 4F4Bh ("OK")
ES:DI -> QEMM API entry point (see INT 67/AH=3Fh)
Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
Note: this call is not available under QEMM v6.00 unless Windows3 support
has been disabled with the NW3 switch to QEMM386.SYS
SeeAlso: AX=D200h,AX=D201h/BX=4849h,INT 67/AH=3Fh
--------V-2FD201BX5649-----------------------
INT 2F u - Quarterdeck RPCI - VIDRAM v5.0+ - INSTALLATION CHECK
AX = D201h
BX = 5649h ("VI")
CX = 4452h ("DR")
DX = 414Dh ("AM")
Return: BX = 4F4Bh ("OK")
ES:DI -> VIDRAM entry point (see #03080)
Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
SeeAlso: AX=D200h
(Table 03080)
Call VIDRAM entry point with:
AH = 00h get status
Return: AL = VIDRAM state (see #03081)
BL = extra RAM status (see #03082)
BH = feature flags (see #03083)
CL = current monitor (01h = mono, 80h = color)
SI = current top of memory (paragraph)
DI = segment of start of HiRAM chain
AH = 01h setup
AL = VIDRAM state (see #03081)
BL = extra RAM status (see #03082)
BH = feature flags (see #03083)
CL = monitor (01h = monochrome, 80h = color)
SI = new top of memory (paragraph)
DI = segment of start of HiRAM chain
AH = 02h get end address of VIDRAM code
Return: ES:DI -> VIDRAM partial map context (see #03084,#03085)
Return: CF set on error
CF clear if successful
(Table 03081)
Values for VIDRAM state:
00h off
01h no EGA graphics
02h no graphics at all
(Table 03082)
Values for VIDRAM extra RAM status:
00h VIDRAM does not use extra RAM
01h VIDRAM uses EMS as extra RAM
02h VIDRAM uses EGA as extra RAM
Bitfields for VIDRAM feature flags:
Bit(s) Description (Table 03083)
0 override enabled
1 mapped memory detected in A000h-B000h range
2 top of memory not at 640K
3 MDA detected
4 high RAM exists in video area
5 mapped memory detected in video area
6-7 reserved???
Format of VIDRAM partial map context (EMS 3.2):
Offset Size Description (Table 03084)
00h BYTE EMS version ID (32h)
01h WORD EMM handle for this entry
03h BYTE number of frames
04h BYTE first page frame
05h WORD offset from ES to previously saved map
Format of VIDRAM partial map context (EMS 4.0):
Offset Size Description (Table 03085)
00h BYTE EMS version ID (40h)
01h WORD mappable segment count
03h N WORD mappable segments
WORD offset to previously saved map???
--------U-2FD202-----------------------------
INT 2F - PCL-838.EXE - EXECUTE PCL838 COMMANDS
AX = D202h
CX:BX -> parameter table
Return: AX = return value
SeeAlso: AX=D200h"PCL-838",AX=D201h"PCL-838"
--------R-2FD300BX4562-----------------------
INT 2F U - TeleReplica - INSTALLATION CHECK
AX = D300h
BX = 4562h
CX = 2745h
DX = serial port I/O base address??? (03F8h for v3.9)
Return: SI = segment of resident code
AX = 251Dh
BX = DF21h
CX = F321h
DX = ???
--------R-2FD3CB-----------------------------
INT 2F U - LapLink Quick Connect v6 - API
AX = D3CBh
CX = function
0002h get ???
Return: BX:AX -> ???
CL = ???
CH = ???
DX = ???
DI = COM1 I/O port???
SI = COM2 I/O port???
0003h initialization???
0004h ???
0005h initialization???
0006h reset/clear ???
Return: AX = 0000h
ES:DI -> next byte after ??? cleared by this call
0007h initialization???
0008h uninstall
Return: BX = status
0000h successful
FFFFh incomplete, stub remains in memory
Return: CX = 534Bh (except function 0002h)
Index: uninstall;LapLink Quick Connect
--------K-2FD3D3BH00-------------------------
INT 2F - KDRIVE v2.x - INSTALLATION CHECK
AX = D3D3h
BH = 00h
Return: BX = 3D3Dh if installed
CF clear if installed
AX = driver ID??? (returns 0087h for KDRIVE.EXE and 0880h for
KDRIVOS2.EXE in one examined version)
Program: KDRIVE is a shareware extended German keyboard driver by Martin
Austermeier, originally based on K3 by Martin Gerdes as published
in c't magazine 7/1988
--------l-2FD44D-----------------------------
INT 2F - 4DOS.COM v2.1+ - API
AX = D44Dh
BH = function
00h installation check
Return: AX = 44DDh
BL = major version number
BH = minor version number
CX = PSP segment address for current invocation
DL = 4DOS shell number (0 for the first (root) shell,
updated each time a new copy is loaded)
01h (internal, v2.1-3.03) terminate current copy of 4DOS
Return: nothing
(internal, v4.0+) ???
Return: AX = 44DDh
ES:BX -> data area (see #03086)
02h ???
DX = ???
Note: v5.52 signals "unrecoverable error" and then terminates
with INT 21/AH=4Ch or enters a deliberate infinite
loop if ???
---v2.1-3.03 only---
03h EXEC program
CX:DX -> EXEC record (see #03087)
FEh deallocate shell number (passed through to root shell)
???
FFh allocate shell number (passed through to root shell)
---v5.52---
03h get ???
BL = ??? (00h/01h)
Return: DX = current value of ???
04h set ???
BL = ??? (00h/01h)
DX = new value for ???
Note: a bug in v3.00 will crash the system if unrecognized value in BH
SeeAlso: AX=D44Eh,AX=D44Fh/BX=0000h,AX=E44Dh,INT 21/AX=4403h"DOS"
SeeAlso: INT 14/AX=7000h
Index: installation check;4DOS|installation check;NDOS
Format of 4DOS v4.0 data area:
Offset Size Description (Table 03086)
00h 2 BYTEs ???
06h WORD XMS handle for swapping
???
SeeAlso: #03087
Format of 4DOS EXEC v2.1-v3.03 record:
Offset Size Description (Table 03087)
00h WORD offset of ASCIZ program name in same segment as EXEC record
02h WORD offset of DOS commandline in same segment as EXEC record
04h WORD segment of environment for child process (see INT 21/AH=26h)
SeeAlso: #03086
--------l-2FD44E-----------------------------
INT 2F C - 4DOS v3.0+ - AWAITING USER INPUT
AX = D44Eh
---4DOS v3.01+---
BX = condition
0000h 4DOS is ready to display prompt
0001h 4DOS has displayed the prompt, about to accept user input
Return: the handler must preserve SI, DI, BP, SP, DS, ES, and SS
Note: v3.00 only makes the call corresponding to BX=0001h, does not set BX
SeeAlso: AX=D44Dh
--------K-2FD44FBX0000-----------------------
INT 2F - 4DOS v4.0+ - KSTACK.COM - INSTALLATION CHECK
AX = D44Fh
BX = 0000h
Return: AX = 44DDh if installed
Note: this function is also supported by ANSIPLUS v3.01+ and K3PLUS v6.20+,
which emulate the 4DOS and NDOS keystack
SeeAlso: AX=D44Dh,AX=D44Fh/BX=0001h,AX=E44Fh/BX=0000h
--------K-2FD44FBX0001-----------------------
INT 2F - 4DOS v4.0+ - KSTACK.COM - PLACE KEYSTROKES INTO KEYSTACK
AX = D44Fh
BX = 0001h
CX = number of keystrokes (01h-FFh)
DS:DX -> keystroke list (one word per keystroke)
Return: AX = status
0000h successful
nonzero failed
BX,CX,DX destroyed
Notes: the keystrokes are the exact values to return from subsequent calls to
INT 16 with AH=00h,01h,10h, or 11h, with the following exceptions:
0000h causes subfunctions 01h and 11h to indicate an empty
keyboard buffer
FFFFh is followed by a word indicating the number of clock
ticks to delay before the next faked keystroke
v4.00 KSTACK overwrites any unread keystrokes from the previous
invocation, and does not range-check CX; it will overwrite memory
following the resident portion if CX is greater than 100h.
this function is also supported by ANSIPLUS v3.01+ and K3PLUS v6.20+,
which emulate the 4DOS and NDOS keystack
SeeAlso: AX=D44Dh,AX=D44Fh/BX=0000h,INT 16/AH=00h,INT 21/AX=4403h"DOS"
--------G-2FD600-----------------------------
INT 2F - HEART.COM - INSTALLATION CHECK
AX = D600h
Return: AX = 0303h (two hearts) if installed
ES:DI -> buffer (see #03088)
Program: HEART.COM is a CPU lock-up/critical indicator utility by Mitch Davis.
Notes: Once the host program has identified the address of the data area, it
can change this to indicate safe/critical, alternate colours, etc.
The entries for the color table are in char/attrib form. Every two
entries form a pair which is alternated between 68 times a minute.
The first half of the table is for color videos, the second mono.
Within each half, the first half is for the safe chars, and the
second for the critical chars.
Format of HEART.COM buffer:
Offset Size Description (Table 03088)
00h 8 WORDs table of colors/attributes (refer to notes above)
10h BYTE flags
bit 0: program is in critical section, so flash double
exclamation mark
bit 1: program is in safe code, so flash the heart character
11h WORD position of heartbeat on screen, normally 009Eh (last column
of second line)
--------T-2FD600-----------------------------
INT 2F U - VEDIT VSWAP - INSTALLATION CHECK
AX = D600h
Return: AL = D6h if installed
Program: VSWAP is the resident portion of VEDIT's "swapper" capability; VEDIT
is a programmer's text editor by Greenview Data.
SeeAlso: AX=D601h,AX=D602h
--------T-2FD601-----------------------------
INT 2F U - VEDIT VSWAP - ???
AX = D601h
BL = subfunction number???
Return: BL = return code ???
ES = resident portion's data??? segment
DX = resident portion's code segment
SeeAlso: AX=D600h"VSWAP"
--------T-2FD602-----------------------------
INT 2F U - VEDIT VSWAP - EXEC PROGRAM WITH SWAP
AX = D602h
other registers set as for INT 21/AX=4B00h
Return: CF set on error
AL = error code
82h = failure due to ???
CF clear on success
SeeAlso: AX=D600h"VSWAP",INT 21/AH=4Bh"EXEC"
--------N-2FD701BX0000-----------------------
INT 2F - Banyan VINES v4+ - GET BANV INTERRUPT NUMBER
AX = D701h
BX = 0000h
Return: AX = 0000h if installed
BX = interrupt number (60h to 66h)
nonzero not present
Note: if AX is nonzero, VINES 3.x or earlier may be installed, thus it is
necessary to examine the four bytes preceding the handlers for
INT 60 through INT 66 for the string "BANV"
SeeAlso: AX=D702h,AX=D703h,AX=D704h
--------N-2FD702-----------------------------
INT 2F U - Banyan VINES v4+ - PCPRINT interface
AX = D702h
BX = function
???
Return: ???
SeeAlso: AX=D701h,AX=D703h,INT 61/AX=0005h"Banyan"
--------N-2FD703-----------------------------
INT 2F U - Banyan VINES v4+ - MAIL interface
AX = D703h
BX = function
???
Return: ???
SeeAlso: AX=D702h,AX=D704h
--------N-2FD704-----------------------------
INT 2F U - Banyan VINES v4+ - Streettalk Directory Assistance interface
AX = D704h
BX = function
???
Return: ???
SeeAlso: AX=D703h,INT 61/AX=0007h/BX=0002h"Banyan",INT 61/AX=0007h/BX=0008h
--------N-2FD800-----------------------------
INT 2F U - Novell NetWare Lite - CLIENT.EXE - INSTALLATION CHECK
AX = D800h
Return: AL = FFh if installed
DX = version number (0100h for v1.0, 0101h for v1.1)
BX = data segment of resident copy
ES:DI -> private API entry point (see #03089)
SI = segment of resident code
Note: Microsoft assigned multiplex number D8h to Novell on 1991/05/21
SeeAlso: AX=7A00h,AX=D880h
(Table 03089)
Call CLIENT API entry point with:
BX = function
0000h get ???
Return: DX = CLIENT version??? (0101h for v1.1)
ES:BX -> ??? data
0001h ???
0002h ???
0003h ???
0004h ???
0005h ???
DL = ???
???
Return: ???
0006h get module name???
ES:DI -> 16-byte buffer
Return: CX = ???
ES:DI filled with "NWLITE_CLIENT" 00h 00h 00h
0007h ???
DX:CX = ???
???
Return: ???
0008h ???
0009h ???
DL = ???
ES:DI -> 16-byte buffer for ???
Return: CF clear if successful
AX = 0000h
CX = 0000h
SI,DI destroyed
CF set on error
AX = error code 4903h
000Ah ???
AH = subfunction
00h get ???
01h clear/set ??? flag
AL = new state (00h cleared, 01h set)
02h set ???
DX = new value of ???
Return: DX = old value of ???
000Bh ???
AX = ???
???
Return: ???
000Ch ???
AX = ???
???
Return: ???
000Dh ???
AX = ???
???
Return: ???
000Eh get original INT 17
Return: CF clear
ES:BX -> original INT 17
000Fh ???
0010h ???
AX = ???
???
Return: ???
0011h get ???
Return: CF clear
DL = ???
0012h get ???
AL = index of ???
ES:DI -> 10-byte buffer for ???
Return: CF clear if successful
ES:DI buffer filled
AX,CX destroyed
CF set on error
AX = error code (4907h if AL out of range)
0013h get ???
Return: CF clear
DH = ???
DL = ???
0014h ???
DL = ???
???
Return: CF clear if successful
???
CF set on error
AX = error code 8056h
0015h ???
DX = ???
Return: ES:DI -> ???
other
Return: CF set
AX = 0001h (invalid function)
--------N-2FD856-----------------------------
INT 2F U - Novell NetWare Lite v1.1 - SERVER - "VNWLSERV_INIT" - GET ???
AX = D856h
Return: AX = 0001h if supported???
BX = ??? (0004h for v1.1)
CX = ??? (0F20h for v1.1)
DS = segment of resident code
ES = data segment of resident copy
Note: this function is also supported by Personal NetWare SERVER, bundled
with Novell DOS 7
--------N-2FD880-----------------------------
INT 2F U - Novell NetWare Lite v1.0+ - SERVER - INSTALLATION CHECK
AX = D880h
Return: AL = FFh if installed
DX = version number (binary, DH = major, DL = minor)
BX = data segment of resident copy
CL = current state (00h SERVER is disabled, 01h SERVER is active)
ES:DI -> private API entry point (see #03090)
SI = ??? (offset of configuration info?)
AH may be destroyed
Note: this function is also supported by Personal NetWare SERVER, but DI is
not set; instead, ES:SI points at the API entry point
SeeAlso: AX=7A00h,AX=D800h,INT 2A/AX=D852h
(Table 03090)
Call SERVER API entry point with:
BX = function
0000h shut down server
???
Return: ???
Note: closes open files by calling INT 21/AH=3Eh
0001h get connection information
DX = connection number (0001h-max connections)
ES:DI -> 28-byte buffer for connection information
Return: CF clear if successful
ES:DI buffer filled
CF set on error
AX = FFFFh
---Personal NetWare only---
0002h ???
0003h ???
0004h ???
0005h ???
0006h get server info table
CX = size of buffer
ES:DI -> buffer
AL = mode (02h = get current status)
0007h ???
other
Return: CF set
AX = 0001h (invalid function)
--------d-2FD8C0-----------------------------
INT 2F U - Novell NLCACHE,NWCACHE - INSTALLATION CHECK
AX = D8C0h
Return: AL = FFh if installed
CL = memory type (01h NLCACHEC, 02h NLCACHEX, 03h NLCACHEM)
DH = major version (01h for v1.1)
DL = minor version (01h for v1.1)
ES:DI -> private API entry point (see #03091)
Program: NWCACHE is the disk cache included with Personal NetWare,
Novell DOS 7, Caldera OpenDOS 7.01, DR-OpenDOS 7.02, DR-DOS 7.02,
and Caldera Thin Clients/Lineo DR-DOS 7.03.
Note: This function is called by the NetWare Lite and Personal NetWare
SERVER. It may also be called by future (post DR-DOS 7.03)
COMMAND.COM before it returns to the prompt.
BUG: Some pre-BETA 17 (1993/09/28) versions of NWCACHE returned -1,0,1
instead of 1,2,3 for the memory type in CL.
SeeAlso: AX=D800h,AX=D880h
(Table 03091)
Call NLCACHE/NWCACHE "sideband function" API entry point with:
BX = function
0000h flush request from server
Return: CF clear if successful at flushing deferred writes
AX = 0000h
CF set on error
AX = error code
0001h (NWCACHE only) get cache statistics
ES:DI -> buffer for statistics (see #04122)
Return: CF clear if successful
AX = 0000h
ES:DI buffer filled
other
Return: CF set
AX = 0001h (invalid function)
Format of NWCACHE cache statistics:
Offset Size Description (Table 04122)
00h WORD version
02h BYTE memory type
03h WORD initial cache size in KB
05h WORD current cache size in KB
07h DWORD number of read requests
0Bh DWORD number of physical reads performed
0Fh DWORD number of write requests
13h DWORD number of physical writes performed
17h BYTE delay ticks for deferred write (0 if no deferral)
18h WORD maximum number of sectors in lookahead buffer
1Ah WORD number of disk errors
1Ch WORD number of cache memory errors
SeeAlso: #03091
--------!---Section--------------------------