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 = ??? A