Index for interrupt INT 21
Table of Contents by Order
21 - INT 21 - COMTROL HOSTESS i/ISA DEBUGGER - GET SEGMENT FOR CONTROL PROGRAM USE
2100 - INT 21 - DOS 1+ - TERMINATE PROGRAM
2101 - INT 21 - DOS 1+ - READ CHARACTER FROM STANDARD INPUT, WITH ECHO
21010F - INT 21 - VIRUS - "Susan" - INSTALLATION CHECK
2102 - INT 21 - DOS 1+ - WRITE CHARACTER TO STANDARD OUTPUT
2103 - INT 21 - DOS 1+ - READ CHARACTER FROM STDAUX
2104 - INT 21 - DOS 1+ - WRITE CHARACTER TO STDAUX
2105 - INT 21 - DOS 1+ - WRITE CHARACTER TO PRINTER
2106 - INT 21 - DOS 1+ - DIRECT CONSOLE OUTPUT
2106--DLFF - INT 21 - DOS 1+ - DIRECT CONSOLE INPUT
2107 - INT 21 - DOS 1+ - DIRECT CHARACTER INPUT, WITHOUT ECHO
2108 - INT 21 - DOS 1+ - CHARACTER INPUT WITHOUT ECHO
2109 - INT 21 - DOS 1+ - WRITE STRING TO STANDARD OUTPUT
210A - INT 21 - DOS 1+ - BUFFERED INPUT
210A00 - INT 21 - WCED v1.6+ - INSTALLATION CHECK
210B - INT 21 - DOS 1+ - GET STDIN STATUS
210B56 - INT 21 - VIRUS - "Perfume" - INSTALLATION CHECK
210C - INT 21 - DOS 1+ - FLUSH BUFFER AND READ STANDARD INPUT
210D - INT 21 - DOS 1+ - DISK RESET
210D20 - INT 21 - VIRUS - "Crazy Imp" - INSTALLATION CHECK
210E - INT 21 - DOS 1+ - SELECT DEFAULT DRIVE
210E--DLAD - INT 21 U - Novell DOS 7 - SDRes v27.03 - INSTALLATION CHECK
210E--DLAE - INT 21 U - Novell DOS 7 - SDRes v27.03 - CLEAR ??? FLAG
210E--DLAF - INT 21 U - Novell DOS 7 - SDRes v27.03 - SET ??? FLAG
210F - INT 21 - DOS 1+ - OPEN FILE USING FCB
2110 - INT 21 - DOS 1+ - CLOSE FILE USING FCB
2111 - INT 21 - DOS 1+ - FIND FIRST MATCHING FILE USING FCB
2112 - INT 21 - DOS 1+ - FIND NEXT MATCHING FILE USING FCB
2113 - INT 21 - DOS 1+ - DELETE FILE USING FCB
2114 - INT 21 - DOS 1+ - SEQUENTIAL READ FROM FCB FILE
2115 - INT 21 - DOS 1+ - SEQUENTIAL WRITE TO FCB FILE
2116 - INT 21 - DOS 1+ - CREATE OR TRUNCATE FILE USING FCB
2117 - INT 21 - DOS 1+ - RENAME FILE USING FCB
2118 - INT 21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY
2118 - INT 21 - U - PTS-DOS 6.51 & S/DOS 1.0 - EXTENDED RENAME FILE USING FCB
211812 - INT 21 - VIRUS - "Tasha Yar" - INSTALLATION CHECK
21187FBX4453 - INT 21 - VIRUS - "DS-3783" -INSTALLATION CHECK
2118FF - INT 21 - VIRUS - "Pathogen:SMEG" - INSTALLATION CHECK
2119 - INT 21 - DOS 1+ - GET CURRENT DEFAULT DRIVE
211A - INT 21 - DOS 1+ - SET DISK TRANSFER AREA ADDRESS
211B - INT 21 - DOS 1+ - GET ALLOCATION INFORMATION FOR DEFAULT DRIVE
211C - INT 21 - DOS 1+ - GET ALLOCATION INFORMATION FOR SPECIFIC DRIVE
211D - INT 21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY
211E - INT 21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY
211F - INT 21 - DOS 1+ - GET DRIVE PARAMETER BLOCK FOR DEFAULT DRIVE
2120 - INT 21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY
2120 - INT 21 - S/DOS 1.0+ & PTS-DOS 6.51+ - GET OEM REVISION
212080 - INT 21 - VIRUS - "New-Year" - INSTALLATION CHECK
2121 - INT 21 - DOS 1+ - READ RANDOM RECORD FROM FCB FILE
2122 - INT 21 - DOS 1+ - WRITE RANDOM RECORD TO FCB FILE
2123 - INT 21 - DOS 1+ - GET FILE SIZE FOR FCB
2124 - INT 21 - DOS 1+ - SET RANDOM RECORD NUMBER FOR FCB
2125 - INT 21 - DOS 1+ - SET INTERRUPT VECTOR
212501 - INT 21 P - Phar Lap 386/DOS-Extender - RESET DOS EXTENDER DATA STRUCTURES
212502 - INT 21 P - Phar Lap 386/DOS-Extender - GET PROTECTED-MODE INTERRUPT VECTOR
212503 - INT 21 P - Phar Lap 386/DOS-Extender - GET REAL-MODE INTERRUPT VECTOR
212504 - INT 21 P - Phar Lap 386/DOS-Extender - SET PROTECTED-MODE INTERRUPT VECTOR
212505 - INT 21 P - Phar Lap 386/DOS-Extender - SET REAL-MODE INTERRUPT VECTOR
212506 - INT 21 P - Phar Lap 386/DOS-Extender - SET INT TO ALWAYS GAIN CNTRL IN PR. MODE
212507 - INT 21 P - Phar Lap 386/DOS-Extender - SET REAL- & PROTECTED-MODE INT VECTORS
212508 - INT 21 P - Phar Lap 386/DOS-Extender - GET SEGMENT LINEAR BASE ADDRESS
212509 - INT 21 P - Phar Lap 386/DOS-Extender - CONVERT LINEAR TO PHYSICAL ADDRESS
212509 - INT 21 P - FlashTek X-32VM - GET SYSTEM SEGMENTS AND SELECTORS
21250A - INT 21 P - Phar Lap 386/DOS-Extender - MAP PHYSICAL MEMORY AT END OF SEGMENT
21250C - INT 21 P - Phar Lap 386/DOS-Extender - GET HARDWARE INTERRUPT VECTORS
21250D - INT 21 P - Phar Lap 386/DOS-Extender - GET REAL-MODE LINK INFORMATION
21250E - INT 21 P - Phar Lap 386/DOS-Extender - CALL REAL-MODE PROCEDURE
21250F - INT 21 P - Phar Lap 386/DOS-Extender - CONVERT PROTECTED-MODE ADDRESS TO MS-DOS
212510 - INT 21 P - Phar Lap 386/DOS-Extender - CALL REAL-MODE PROCEDURE, REGISTERS
212511 - INT 21 P - Phar Lap 386/DOS-Extender - ISSUE REAL-MODE INTERRUPT
212512 - INT 21 P - Phar Lap 386/DOS-Extender - LOAD PROGRAM FOR DEBUGGING
212513 - INT 21 P - Phar Lap 386/DOS-Extender - ALIAS SEGMENT DESCRIPTOR
212514 - INT 21 P - Phar Lap 386/DOS-Extender - CHANGE SEGMENT ATTRIBUTES
212515 - INT 21 P - Phar Lap 386/DOS-Extender - GET SEGMENT ATTRIBUTES
212516 - INT 21 P - Phar Lap 386/DOS-Extender v2.2+ - FREE ALL MEMORY OWNED BY LDT
212517 - INT 21 P - Phar Lap 386/DOS-Extender v2.1c+ - GET INFO ON DOS DATA BUFFER
212518 - INT 21 P - Phar Lap 386/DOS-Extender 2.1c+ - SPECIFY HANDLER FOR MOVED SEGMENTS
212519 - INT 21 P - Phar Lap 386/DOS-Extender VMM - GET ADDITIONAL MEMORY ERROR INFO
21251A - INT 21 P - Phar Lap 386/DOS-Extender VMM - LOCK PAGES IN MEMORY
21251B - INT 21 P - Phar Lap 386/DOS-Extender VMM - UNLOCK PAGES
21251C - INT 21 P - Phar Lap 386/DOS-Extender VMM v2.1c+ - FREE PHYSICAL MEMORY PAGES
21251D - INT 21 OP - Phar Lap 386/DOS-Extender VMM v2.1c - READ PAGE-TABLE ENTRY
21251E - INT 21 OP - Phar Lap 386/DOS-Extender VMM v2.1c - WRITE PAGE-TABLE ENTRY
21251F - INT 21 P - Phar Lap 386/DOS-Extender VMM - EXHANGE TWO PAGE-TABLE ENTRIES
212520 - INT 21 P - Phar Lap 386/DOS-Extender VMM - GET MEMORY STATISTICS
212521 - INT 21 P - Phar Lap 386/DOS-Extender VMM - LIMIT PROGRAM'S EXTENDED MEM USAGE
212522 - INT 21 P - Phar Lap 386/DOS-Ext VMM v2.2+ - SPECIFY ALTERNATE PAGE-FAULT HANDLR
212523 - INT 21 P - Phar Lap 386/DOS-Ext VMM v2.2+ - SPECIFY OUT-OF-SWAP-SPACE HANDLER
212524 - INT 21 P - Phar Lap 386/DOS-Ext VMM v2.2+ - INSTALL PAGE-REPLACEMENT HANDLERS
212525 - INT 21 P - Phar Lap 386/DOS-Extender VMM - LIMIT PROGRAM'S CONVENT'L MEM USAGE
212526 - INT 21 P - Phar Lap 386/DOS-Extender - GET CONFIGURATION INFORMATION
212527 - INT 21 P - Phar Lap 386/DOS-Extender VMM - EN/DISABLE STATE SAVE ON INTERRUPTS
212528 - INT 21 P - Phar Lap 386/DOS-Extender VMM - READ REGISTERS AFTER CTRL-C INT
212529 - INT 21 P - Phar Lap 386/DOS-Extender - LOAD FLAT MODEL .EXP or .REX FILE
21252A - INT 21 P - Phar Lap 386/DOS-Extender VMM - NEW LOAD PROGRAM FOR DEBUG
21252BBH00 - INT 21 Pu - Phar Lap 386/DOS-Extender - CREATE UNMAPPED PAGES
21252BBH01 - INT 21 Pu - Phar Lap 386/DOS-Extender - CREATE ALLOCATED PAGES
21252BBH02 - INT 21 Pu - Phar Lap 386/DOS-Extender - CREATE PHYSICAL DEVICE PAGES
21252BBH03 - INT 21 Pu - Phar Lap 386/DOS-Extender - MAP DATA FILE
21252BBH04 - INT 21 Pu - Phar Lap 386/DOS-Extender - GET PAGE TYPES
21252B - INT 21 P - Phar Lap 386/DOS-Extender - VIRTUAL MEMORY MANAGEMENT - PAGE LOCKING
21252B - INT 21 Pu - Phar Lap 386/DOS-Extender - FREE PHYSICAL PAGES
21252BBH09 - INT 21 P - Phar Lap 386/DOS-Extender v4.1 - GET PAGETABLE ENTRY/PAGE TABLE INFO
21252BBH0A - INT 21 P - Phar Lap 386/DOS-Extender v4.1 - SET PAGETABLE ENTRY/PAGE TABLE INFO
21252BBH0B - INT 21 P - Phar Lap 386/DOS-Extender v4.1+ - MAP DATA FILE AT FILE OFFSET
21252C - INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0 - ADD UNMAPPED PAGES AT END OF SEGMENT
21252D - INT 21 P - Phar Lap 386/DOS-Extender VMM v2.3+ - CLOSE VMM FILE HANDLE
21252E - INT 21 P - Phar Lap 386/DOS-Extender VMM v2.3+ - GET/SET VMM PARAMETERS
21252F - INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0 - WRITE RECORD TO VMM PAGE LOG FILE
212530 - INT 21 P - Phar Lap 386/DOS-Ext VMM v2.3+ - SET SIZE OF BUFFER FOR DOS CALLS
212531 - INT 21 P - Phar Lap 386/DOS-Extender VMM v3.0 - READ/WRITE LDT DESCRIPTOR
212532 - INT 21 P - Phar Lap 386/DOS-Extender - GET EXCEPTION HANDLER VECTOR
212533 - INT 21 P - Phar Lap 386/DOS-Extender - SET EXCEPTION HANDLER VECTOR
212534 - INT 21 P - Phar Lap 386/DOS-Extender v3.0+ - GET INTERRUPT FLAG
212535 - INT 21 P - Phar Lap 386/DOS-Extender v3.0+ - READ/WRITE SYSTEM REGISTERS
212536 - INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0+ - MIN/MAX EXTENDED/CONV MEMORY USAGE
212537 - INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0 - ALLOCATE DOS MEMORY ABOVE DOS BUFFER
212538 - INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0 - READ PROTMODE REGS AFTER SFTWARE INT
212539 - INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0 - GET OFFSET OF .EXP FILE HEADER
21253A - INT 21 P - Phar Lap 386/DOS-Extender v3.0+ - INSTALL MOD. SEG FAILURE HANDLER
21253B - INT 21 P - Phar Lap 386/DOS-Extender v3.0+ - JUMP TO REAL MODE CODE, NO CONTEXT
21253C - INT 21 P - Phar Lap 386/DOS-Extender VMM v3.0+ - SHRINK 386|VMM SWAP FILE
21253D - INT 21 P - Phar Lap 386/DOS-Extender v4.0+ - READ/WRITE IDT DESCRIPTOR
21253F - INT 21 Pu - Phar Lap 386/DOS-Extender v6.0+ - ALLOCATE LDT DESCRIPTOR
212540 - INT 21 Pu - Phar Lap 386/DOS-Extender v6.0+ - FORCE ALIAS OF SEGMENT
212544 - INT 21 Pu - Phar Lap 386/DOS-Extender v6.0+ - FREE DLL
212545 - INT 21 Pu - Phar Lap 386/DOS-Extender v6.0+ - GET/SET PROCEDURE ADDRESS
212546 - INT 21 Pu - Phar Lap 386/DOS-Extender v6.0+ - GET MODULE HANDLE
2125C0 - INT 21 P - Phar Lap 386/DOS-Extender - ALLOCATE MS-DOS MEMORY BLOCK
2125C1 - INT 21 P - Phar Lap 386/DOS-Extender - RELEASE MS-DOS MEMORY BLOCK
2125C2 - INT 21 P - Phar Lap 386/DOS-Extender - MODIFY MS-DOS MEMORY BLOCK
2125C3 - INT 21 P - Phar Lap 386/DOS-Extender - EXECUTE PROGRAM
2126 - INT 21 - DOS 1+ - CREATE NEW PROGRAM SEGMENT PREFIX
2127 - INT 21 - DOS 1+ - RANDOM BLOCK READ FROM FCB FILE
2128 - INT 21 - DOS 1+ - RANDOM BLOCK WRITE TO FCB FILE
2129 - INT 21 - DOS 1+ - PARSE FILENAME INTO FCB
212A - INT 21 - DOS 1+ - GET SYSTEM DATE
212B - INT 21 - DOS 1+ - SET SYSTEM DATE
212B--CX4149 - INT 21 - AI Architects - ??? - INSTALLATION CHECK
212B--CX4358 - INT 21 - Super PC-Kwik v3.20+ - INSTALLATION CHECK
212B--CX4445 - INT 21 - DESQview - INSTALLATION CHECK
212B--CX454C - INT 21 - ELRES v1.1 - INSTALLATION CHECK
212B00CX5643 - INT 21 - The Volkov Commander - GET POINTER TO LEFT PANEL DATA STRUCTURE
212B01CX5643 - INT 21 - The Volkov Commander - GET POINTER TO RIGHT PANEL DATA STRUCTURE
212B02CX5643 - INT 21 - The Volkov Commander - GET POINTER TO GLOBAL VARIABLES
212B01CX444D - INT 21 - Quarterdeck DOS-UP.SYS v2.00 - INSTALLATION CHECK
212B01CX5441 - INT 21 - TAME v2.10+ - INSTALLATION CHECK
212B16CX0643 - INT 21 - VIRUS - "Maltese Amoeba" - INSTALLATION CHECK
212B44BX4D41 - INT 21 - pcANYWHERE IV/LAN - INSTALLATION CHECK
212B--CX5643 - INT 21 - Volkov Commander - INSTALLATION CHECK
212B--CX6269 - INT 21 - WDTSR.COM - INSTALLATION CHECK
212B--CX6269 - INT 21 - bitFOSS - INSTALLATION CHECK
212B--CX6269 - INT 21 - bitFOSSI - INSTALLATION CHECK
212C - INT 21 - DOS 1+ - GET SYSTEM TIME
212C - INT 21 - VIRUS - "Anti Pode 2.0" - INSTALLATION CHECK
212C00CX534B - INT 21 - SKUDO - INSTALLATION CHECK
212C2C - INT 21 - VIRUS - "LockJaw/Proto-T" - INSTALLATION CHECK
212D - INT 21 - DOS 1+ - SET SYSTEM TIME
212D01CX7820 - INT 21 - PC-Mix - INSTALLATION CHECK
212E--DL00 - INT 21 - DOS 1+ - SET VERIFY FLAG
212F - INT 21 - DOS 2+ - GET DISK TRANSFER AREA ADDRESS
2130 - INT 21 - DOS 2+ - GET DOS VERSION
2130 - INT 21 - Phar Lap 386/DOS-Extender, Intel Code Builder - INSTALLATION CHECK
2130--DXABCD - INT 21 - VIRUS - "Possessed" - INSTALLATION CHECK
2130--SI1234 - INT 21 - VIRUS - "ANDROMEDA-758" -INSTALLATION CHECK
213000BX1234 - INT 21 - CTask 2.0+ - INSTALLATION CHECK
213000BX3000 - INT 21 - PC-MOS/386 v3.0 - INSTALLATION CHECK/GET VERSION
213000BX614A - INT 21 - VIRUS - "Jackal" - INSTALLATION CHECK
213022 - INT 21 - StopPrg v2.0 - INSTALLATION CHECK
213030BX694D - INT 21 - VIRUS - "IMTC" -INSTALLATION CHECK
213032DX1234 - INT 21 - VIRUS - "Uruguay" - INSTALLATION CHECK
2130F1 - INT 21 - VIRUS - "Dutch-555"/"Quit 1992" - INSTALLATION CHECK
2130FFCX4445 - INT 21 - DESQ??? - INSTALLATION CHECK
2131 - INT 21 - DOS 2+ - TERMINATE AND STAY RESIDENT
2132 - INT 21 - DOS 2+ - GET DOS DRIVE PARAMETER BLOCK FOR SPECIFIC DRIVE
2133 - INT 21 - DOS 2+ - EXTENDED BREAK CHECKING
213302 - INT 21 - DOS 3.x+ internal - GET AND SET EXTENDED CONTROL-BREAK CHECKING STATE
213303 - INT 21 - DOS 3.4/4.0 - GET CURRENT CPSW STATE
213304 - INT 21 - DOS 3.4/4.0 - SET CPSW STATE
213305 - INT 21 - DOS 4.0+ - GET BOOT DRIVE
213306 - INT 21 - DOS 5+ - GET TRUE VERSION NUMBER
213306 - INT 21 - CBIS network - NETWORK REDIRECTOR - ???
213307 - INT 21 - Windows95 - SET/CLEAR DOS_FLAG
21330F - INT 21 - VIRUS - "Burghofer" - INSTALLATION CHECK
213341 - INT 21 - Diet Disk v1.0 - INSTALLATION CHECK
2133DA - INT 21 - VIRUS - "CoffeeShop" - INSTALLATION CHECK
2133DB - INT 21 - VIRUS - "CoffeeShop" - GENERATE RANDOM NUMBER
2133DC - INT 21 - VIRUS - "CoffeeShop" - DISPLAY "LEGALIZE CANNABIS" GRAPHIC
2133E0 - INT 21 - VIRUS - "Oropax" - INSTALLATION CHECK
2134 - INT 21 - DOS 2+ - GET ADDRESS OF INDOS FLAG
2135 - INT 21 - DOS 2+ - GET INTERRUPT VECTOR
213501 - INT 21 P - FlashTek X-32VM - ALLOCATE PROTECTED-MODE SELECTOR
213502 - INT 21 P - FlashTek X-32VM - DEALLOCATE PROTECTED-MODE SELECTOR
213503 - INT 21 P - FlashTek X-32VM - SET SELECTOR BASE ADDRESS
213504 - INT 21 P - FlashTek X-32VM - GET SELECTOR BASE ADDRESS
213505 - INT 21 P - FlashTek X-32VM - SET SELECTOR LIMIT
21350A - INT 21 P - FlashTek X-32VM - PHYSICAL ADDRESS MAPPING
21350B - INT 21 P - FlashTek X-32VM - UPDATE AND RETURN AVAILABLE FREE MEMORY
21350C - INT 21 P - FlashTek X-32VM - ALLOCATE A BLOCK OF MEMORY
21350D - INT 21 P - FlashTek X-32VM - RESERVE BLOCK OF MEMORY FOR 32-BIT STACK
21357F - INT 21 - VIRUS - "Agiplan"/"Month 4-6" - INSTALLATION CHECK
2136 - INT 21 - DOS 2+ - GET FREE DISK SPACE
213700 - INT 21 - DOS 2+ - "SWITCHAR" - GET SWITCH CHARACTER
213701 - INT 21 - DOS 2+ - "SWITCHAR" - SET SWITCH CHARACTER
2137 - INT 21 - DOS 2.x and 3.3+ only - "AVAILDEV" - SPECIFY \DEV\ PREFIX USE
2137A0BX6A6D - INT 21 - XPACK v1.52+ - TSR INSTALLATION CHECK
2137A1BX6A6D - INT 21 - XPACK v1.52+ - UNINSTALL
2137A2BX6A6D - INT 21 - XPACK v1.52+ - GET TSR STATUS
2137A3BX6A6D - INT 21 - XPACK v1.52+ - SET TSR STATUS
2137A6BX6A6D - INT 21 - XPACK v1.65 - GET TEMPORARY DIRECTORY NAME
2137A7BX6A6D - INT 21 - XPACK v1.65 - SET TEMPORARY DIRECTORY NAME
2137D0BX899D - INT 21 - DIET v1.43e - TSR INSTALLATION CHECK
2137D1BX899D - INT 21 - DIET v1.43e - GET DIET.EXE RESIDENT SEGMENT
2137D2BX899D - INT 21 - DIET v1.43e - GET TSR CONTROL FLAGS
2137D3BX899D - INT 21 - DIET v1.43e - SET TSR CONTROL FLAGS
2137D4BX899D - INT 21 - DIET v1.43e - GET TSR OPTIONS
2137D5BX899D - INT 21 - DIET v1.43e - SET TSR OPTIONS
2137D6BX899D - INT 21 - DIET v1.43e - GET TEMPORARY DIRECTORY NAMES
2137D7BX899D - INT 21 - DIET v1.43e - SET TEMPORARY DIRECTORY NAMES
2137DCBX899D - INT 21 - DIET v1.43e - SET ADDRESS OF EXTERNAL PROCEDURE
2137DDBX899D - INT 21 - DIET v1.43e - RELEASE EXTERNAL PROCEDURE
2137DEBX899D - INT 21 - DIET v1.43e - READ EMS STATUS
2137DFBX899D - INT 21 - DIET v1.43e - UNINSTALL TSR
2138 - INT 21 - DOS 2+ - GET COUNTRY-SPECIFIC INFORMATION
2138--DXFFFF - INT 21 - DOS 3.0+ - SET COUNTRY CODE
2139 - INT 21 - DOS 2+ - "MKDIR" - CREATE SUBDIRECTORY
213A - INT 21 - DOS 2+ - "RMDIR" - REMOVE SUBDIRECTORY
213B - INT 21 - DOS 2+ - "CHDIR" - SET CURRENT DIRECTORY
213C - INT 21 - DOS 2+ - "CREAT" - CREATE OR TRUNCATE FILE
213D - INT 21 - DOS 2+ - "OPEN" - OPEN EXISTING FILE
213D76 - INT 21 - VIRUS - "GT-SPOOF" -INSTALLATION CHECK
213DFF - INT 21 - VIRUS - "JD-448" - INSTALLATION CHECK
213E - INT 21 - DOS 2+ - "CLOSE" - CLOSE FILE
213F - INT 21 - DOS 2+ - "READ" - READ FROM FILE OR DEVICE
213F - INT 21 - Turbo Debug HARDWARE BREAKPOINTS - READ STATUS BLOCK
213F - INT 21 - PC/TCP IPCUST.SYS - READ CONFIGURATION DATA
213F - INT 21 - WORKGRP.SYS - GET ENTRY POINT
213F - INT 21 - BW-TCP - GET DRIVER INFO
213F - INT 21 - Trusted Access - NB.SYS - GET STATE
213F - INT 21 U - IFSHLP.SYS - GET ENTRY POINT
213F--BXFEB0 - INT 21 - VIRUS - "KYZ/LieWait" - INSTALLATION CHECK
2140 - INT 21 - DOS 2+ - "WRITE" - WRITE TO FILE OR DEVICE
2140 - INT 21 - Turbo Debug HARDWARE BREAKPOINTS - SEND CMD TO HARDWARE BRKPNT DRIVER
2140 - INT 21 - PC/TCP IPCUST.SYS - WRITE CONFIGURATION DATA
2140 - INT 21 U - Trusted Access - NB.SYS - SET STATE
214000BX0002 - INT 21 - FARTBELL.EXE - INSTALLATION CHECK
214001BX0002 - INT 21 - FARTBELL.EXE - FORCE NOISE
2141 - INT 21 - DOS 2+ - "UNLINK" - DELETE FILE
214101DXFFFE - INT 21 - SoftLogic Data Guardian - ???
2142 - INT 21 - DOS 2+ - "LSEEK" - SET CURRENT FILE POSITION
214203 - INT 21 - VIRUS - "Shake" - INSTALLATION CHECK
214243 - INT 21 - VIRUS - "Invader" - INSTALLATION CHECK
214300 - INT 21 - DOS 2+ - GET FILE ATTRIBUTES
214301 - INT 21 - DOS 2+ - "CHMOD" - SET FILE ATTRIBUTES
214302 - INT 21 - MS-DOS 7 - GET COMPRESSED FILE SIZE
214302 - INT 21 - DR DOS 3.41+ internal - GET ACCESS RIGHTS
214303 - INT 21 - DR DOS 3.41+ internal - SET ACCESS RIGHTS AND PASSWORD
214304 - INT 21 U - DR DOS 5.0-6.0 internal - GET ENCRYPTED PASSWORD
214305 - INT 21 U - DR DOS 5.0-6.0 internal - SET EXTENDED FILE ATTRIBUTES
214306 - INT 21 O - DR DOS 6.0 - GET FILE OWNER
214307 - INT 21 O - DR DOS 6.0 - SET FILE OWNER
214310 - INT 21 - Banyan VINES 2.1+ - GET EXTENDED FILE ATTRIBUTES
214311 - INT 21 - Banyan VINES 2.1+ - SET EXTENDED FILE ATTRIBUTES
214321BX0000 - INT 21 - Q87, Q387 - INSTALLATION CHECK
214321BX0001 - INT 21 - Q87, Q387 - ENABLE EMULATOR
214321BX0002 - INT 21 - Q87, Q387 - DISABLE EMULATOR
214380 - INT 21 - Novell DOS 7 - UNDELETE PENDING DELETE FILE
214381 - INT 21 - Novell DOS 7 - PURGE PENDING DELETE FILE
214382 - INT 21 - DR-DOS >7.03 - RESERVED
2143FFBP5053 - INT 21 - MS-DOS 7.20 (Win98) - EXTENDED-LENGTH FILENAME OPERATIONS
214400 - INT 21 - DOS 2+ - IOCTL - GET DEVICE INFORMATION
214401 - INT 21 - DOS 2+ - IOCTL - SET DEVICE INFORMATION
214402 - INT 21 - DOS 2+ - IOCTL - READ FROM CHARACTER DEVICE CONTROL CHANNEL
214402 - INT 21 - Network Driver Interface Specification (NDIS) 2.0.1 - PROTOCOL MANAGER
214402 - INT 21 U - MS-DOS 7.0+ - CONFIG$ device - GET CONFIGURATION INFORMATION
214402 - INT 21 U - IBM SYSTEM 36/38 WORKSTATION EMULATION - VDI.SYS - GET ???
214402 - INT 21 U - LASTBYTE.SYS v1.19 - IOCTL - GET ??? TABLE
214402 - INT 21 - HIGHUMM.SYS v1.17+ - IOCTL - GET API ADDRESS
214402 - INT 21 - SMARTDRV.SYS v3.x only - IOCTL - GET CACHE STATUS
214402 - INT 21 - CD-ROM device driver - IOCTL INPUT
214402 - INT 21 - Quarterdeck - QEMM-386 v5+ - GET API ENTRY POINT
214402 - INT 21 U - Quarterdeck - HOOKROM.SYS - GET HOOKED VECTOR TABLE
214402 - INT 21 - Advanced SCSI Programming Interface (ASPI) - INTERFACE
214402 - INT 21 U - Qualitas 386MAX v6.00+ - IOCTL INPUT - GET STATE
214402 - INT 21 - PGS1600.DEV - IOCTL - GET CONFIGURATION INFO
214402 - INT 21 - PC/TCP IPCUST.SYS - RESET CONFIGURATION DATA READ POINTER
214402 - INT 21 - WORKGRP.SYS - GET API ENTRY POINT
214402 - INT 21 - 10NET v5.0 - 10BEUI.DOS - API
214402 - INT 21 - 10NET v5.0 - 10MEMMGR.SYS - API
214402 - INT 21 - Compaq AG1024.SYS - RGDI - GET DRIVER LOCATION
214402 - INT 21 - FTPSOFT.DOS v3.1 - GET ???
214402 - INT 21 U - PenDOS PENDEV.SYS - GET ENTRY POINTS
214402 - INT 21 U - LAN Manager - TCPDRV.DOS - API
214402 - INT 21 U - PC Tools 9 CPRLOW.EXE - GET CODE AND DATA ADDRESSES
214402 - INT 21 U - Creative Technology CTMMSYS.SYS v1.00.01 - API
214402 - INT 21 U - Creative Technology CTSB2.SYS v1.01.01 - API
214402 - INT 21 U - Novell DOS 7+ EMM386.EXE - GET STATE RECORD
214402SF00 - INT 21 U - Memory Managers - GET API ENTRY POINT
214402SF01 - INT 21 U - Memory Managers - GET EMM IMPORT STRUCTURE ADDRESS
214402SF02 - INT 21 U - Memory Managers - GET MEMORY MANAGER VERSION
214402 - INT 21 U - Microsoft EMM386.EXE v4.45 - GET MEMORY MANAGER INFORMATION
214402 - INT 21 U - IFSHLP.SYS - GET ENTRY POINT
214402 - INT 21 - ATA Software Programming Interface (ATASPI) - INTERFACE
214402 - INT 21 - DRFAT32.SYS device driver - IOCTL INPUT
214403 - INT 21 - DOS 2+ - IOCTL - WRITE TO CHARACTER DEVICE CONTROL CHANNEL
214403 - INT 21 - SMARTDRV.SYS v3.x only - IOCTL - CACHE CONTROL
214403 - INT 21 - CD-ROM device driver - IOCTL OUTPUT
214403 - INT 21 U - MS-DOS 7.0+ - CONFIG$ device - SET??? CONFIGURATION INFORMATION
214403 - INT 21 - Brian Antoine Seagate ST-01 SCSI.SYS - IOCTL - EXECUTE COMMANDS
214403 - INT 21 U - AI Architects - OS/x86??? - API
214403 - INT 21 - PGS1600.DEV - IOCTL - SET CONFIGURATION???
214403 - INT 21 - PC/TCP IPCUST.SYS - RESET CONFIGURATION DATA READ POINTER
214403 - INT 21 - Compaq AG1024.SYS - CPQ_MGES - IOCTL OUTPUT
214403 - INT 21 - Compaq AG1024.SYS - RGDI - IOCTL OUTPUT
214403SF01 - INT 21 U - Qualitas 386MAX v6.01+ - TURN 386MAX OFF
214403SF02 - INT 21 U - Qualitas 386MAX v6.01+ - TURN 386MAX ON
214403SF03 - INT 21 U - Qualitas 386MAX v6.01+ - SET STATE
214403SF05 - INT 21 U - Qualitas 386MAX v7.00+ - LIMIT AUTOMATIC ACTIVATION TO STD EMS CALLS
214403SF06 - INT 21 U - Qualitas 386MAX v7.00+ - ALLOW AUTOMATIC ACTIVATION ON ANY INT 67
214403 - INT 21 U - PenDOS PENDEV.SYS - ???
214403 - INT 21 - DR DOS $IDLE$ - IOCTL - DYNAMIC IDLE DETECTION CONTROL
214404 - INT 21 - DOS 2+ - IOCTL - READ FROM BLOCK DEVICE CONTROL CHANNEL
214404 - INT 21 - Stacker - GET DEVICE DRIVER ADDRESS AND SET VOLUME NUMBER
214404 - INT 21 - Stacker - GET STACVOL FILE SECTORS
214404 - INT 21 - DUBLDISK.SYS v2.6 - GET INFO
214404 - INT 21 - DBLSPACE.BIN - IOCTL - FLUSH OR INVALIDATE INTERNAL CACHES
214404 - INT 21 - DBLSPACE.BIN v6.2 - IOCTL - GET ??? FOR SPECIFIED DRIVE
214404 - INT 21 U - DoubleTools v1.0 - GET ???
214404 - INT 21 U - xDISK v3.31 - CONFIGURE
214404 - INT 21 - COMBI-disk v1.13 - GET DATA RECORD
214404 - INT 21 - SFS v1.00 - GET CONFIGURATION INFORMATION
214405 - INT 21 - DOS 2+ - IOCTL - WRITE TO BLOCK DEVICE CONTROL CHANNEL
214405 - INT 21 - Brian Antoine Seagate ST-01 SCSI.SYS - IOCTL - EXECUTE COMMANDS
214405 - INT 21 U - DBLSPACE.BIN - IOCTL - FLUSH OR INVALIDATE INTERNAL CACHES
214405 - INT 21 U - xDISK v3.31 - ???
214405 - INT 21 - COMBI-disk v1.13 - CONTROL COMBI-disk
214405 - INT 21 - SFS v1.00 - DRIVER CONTROL
214405 - INT 21 U - SUPERSTOR - IOCTL - INSTALL CHECK
214406 - INT 21 - DOS 2+ - IOCTL - GET INPUT STATUS
214407 - INT 21 - DOS 2+ - IOCTL - GET OUTPUT STATUS
214408 - INT 21 - DOS 3.0+ - IOCTL - CHECK IF BLOCK DEVICE REMOVABLE
214409 - INT 21 - DOS 3.1+ - IOCTL - CHECK IF BLOCK DEVICE REMOTE
21440A - INT 21 - DOS 3.1+ - IOCTL - CHECK IF HANDLE IS REMOTE
21440B - INT 21 - DOS 3.1+ - IOCTL - SET SHARING RETRY COUNT
21440C - INT 21 - DOS 3.2+ - IOCTL - GENERIC CHARACTER DEVICE REQUEST
21440C - INT 21 - Greg Shenaut ASPITAPE.SYS - INTERFACE
21440D - INT 21 - DOS 3.2+ - IOCTL - GENERIC BLOCK DEVICE REQUEST
21440DCX084A - INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - LOCK LOGICAL VOLUME
21440DCX084B - INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - LOCK PHYSICAL VOLUME
21440DCX086A - INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - UNLOCK LOGICAL VOLUME
21440DCX086B - INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - UNLOCK PHYSICAL VOLUME
21440DCX086C - INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - GET LOCK FLAG STATE
21440DCX086D - INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - ENUMERATE OPEN FILES
21440DCX086E - INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - FIND SWAP FILE
21440DCX0870 - INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - GET CURRENT LOCK STATE
21440DCX0871 - INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - GET FIRST CLUSTER
21440DCXEDC1 - INT 21 - DR PalmDOS - GENERIC IOCTL - LOGIN SECURITY
21440E - INT 21 - DOS 3.2+ - IOCTL - GET LOGICAL DRIVE MAP
21440F - INT 21 - DOS 3.2+ - IOCTL - SET LOGICAL DRIVE MAP
214410 - INT 21 - DOS 5+ - IOCTL - QUERY GENERIC IOCTL CAPABILITY (HANDLE)
214410BXFFFF - INT 21 U - NewSpace - ENABLE DRIVER
214411 - INT 21 - DOS 5+ - IOCTL - QUERY GENERIC IOCTL CAPABILITY (DRIVE)
214411BXFFFF - INT 21 U - NewSpace - DISABLE DRIVER
214412 - INT 21 O - DR DOS 5.0-6.0 - DETERMINE DOS TYPE
214412BXFFFF - INT 21 U - NewSpace - INSTALLATION CHECK???
214413BXFFFF - INT 21 U - NewSpace - GET ???
214414 - INT 21 OU - DR DOS 5.0-6.0 - SET GLOBAL PASSWORD
214414BXFFFF - INT 21 U - NewSpace - DEBUGGING DUMP
214416 - INT 21 OU - DR DOS 5.0-6.0 - HISTORY BUFFER, SHARE, AND HILOAD CONTROL
214451 - INT 21 - Concurrent DOS v3.2+ - INSTALLATION CHECK
214452 - INT 21 - DR DOS 3.41+ - DETERMINE DOS TYPE/GET DR DOS VERSION
214454 - INT 21 U - DR DOS 3.41+ - SET GLOBAL PASSWORD
214456 - INT 21 U - DR DOS 5.0+ - HISTORY BUFFER CONTROL
214457 - INT 21 U - DR DOS 5.0-6.0 - SHARE/HILOAD CONTROL
214457DXFFFF - INT 21 OU - DR DOS 6.0 - GET SHARE STATUS
214458 - INT 21 U - DR DOS 5.0+ internal - GET POINTER TO INTERNAL VARIABLE TABLE
214459 - INT 21 - DR Multiuser DOS 5.0 - API
21445A - INT 21 U - Concurrent DOS etc. - USER GROUP SUPPORT
2144A0 - INT 21 - VIRUS - "Horns" - INSTALLATION CHECK
2144E0 - INT 21 U - Sun PC-NFS - API???
2144FFBXFFFF - INT 21 U - NewSpace - ???
2145 - INT 21 - DOS 2+ - "DUP" - DUPLICATE FILE HANDLE
2146 - INT 21 - DOS 2+ - "DUP2", "FORCEDUP" - FORCE DUPLICATE FILE HANDLE
2147 - INT 21 - DOS 2+ - "CWD" - GET CURRENT DIRECTORY
2148 - INT 21 - DOS 2+ - ALLOCATE MEMORY
2149 - INT 21 - DOS 2+ - FREE MEMORY
214A - INT 21 - DOS 2+ - RESIZE MEMORY BLOCK
214A--BX00B6 - INT 21 - VIRUS???
214A--BXFFFF - INT 21 - VIRUS???
214B - INT 21 - DOS 2+ - "EXEC" - LOAD AND/OR EXECUTE PROGRAM
214B - INT 21 - ELRES v1.0 only - INSTALLATION CHECK
214B04 - INT 21 - VIRUS - "MG", "699"/"Thirteen Minutes" - INSTALLATION CHECK
214B05 - INT 21 - DOS 5+ - SET EXECUTION STATE
214B18DX0010 - INT 21 U - FBOOT v2.13 - PERFORM FAST BOOTSTRAP
214B20 - INT 21 - VIRUS - "Holocaust"/"Telefonica" - ???
214B21 - INT 21 C - VIRUS - "Holocaust"/"Telefonica" - ???
214B25 - INT 21 - VIRUS - "1063"/"Mono" - INSTALLATION CHECK
214B40 - INT 21 - VIRUS - "Plastique"/"AntiCad" - INSTALLATION CHECK
214B41 - INT 21 - VIRUS - "Plastique"/"AntiCad" - ???
214B4A - INT 21 - VIRUS - "Jabberwocky" - INSTALLATION CHECK
214B4B - INT 21 - VIRUS - "Horse-2" - INSTALLATION CHECK
214B4D - INT 21 - VIRUS - "Murphy-2", "Patricia"/"Smack" - INSTALLATION CHECK
214B50 - INT 21 - VIRUS - "Plastique-2576"/"AntiCad-2576" - INSTALLATION CHECK
214B53 - INT 21 - VIRUS - "Horse" - INSTALLATION CHECK
214B53BX2121 - INT 21 - VIRUS - "One Half" - INSTALLATION CHECK
214B55 - INT 21 - VIRUS - "Sparse" - INSTALLATION CHECK
214B59 - INT 21 - VIRUS - "Murphy-1", "Murphy-4" - INSTALLATION CHECK
214B5E - INT 21 - VIRUS - "Brothers" - INSTALLATION CHECK
214B60 - INT 21 - VIRUS - "Plastique-2576"/"AntiCad-2576" - ???
214B80 - INT 21 - DR DOS v3.31+ - RUN ALREADY-LOADED KERNEL FILE
214B87 - INT 21 - VIRUS - "Shirley" - INSTALLATION CHECK
214B95 - INT 21 - VIRUS - "Zherkov-1882" - INSTALLATION CHECK
214BA7 - INT 21 - VIRUS - "1876"/"Dash-em" - INSTALLATION CHECK
214BAA - INT 21 - VIRUS - "Nomenklatura" - INSTALLATION CHECK
214BAF - INT 21 - VIRUS - "948"/"Screenplus1", "Magnitogorsk" - INSTALLATION CHECK
214BB1 - INT 21 - VIRUS - "UZZY" -INSTALLATION CHECK
214BDD - INT 21 - VIRUS - "Lozinsky"/"Zherkov" - INSTALLATION CHECK
214BEE - INT 21 - F-DRIVER.SYS v1.14+ - GRAB INT 21
214BF0 - INT 21 - DIET v1.10+ (Overlay Mode) - INSTALLATION CHECK
214BF1 - INT 21 - DIET v1.10+ (Overlay Mode) - EXPAND PROGRAM???
214BF1 - INT 21 - VIRUS - "Jerusalem 2" - INSTALLATION CHECK
214BFE - INT 21 - VIRUS - "Hitchcock", "Dark Avenger-1028", "1193" - INSTALLATION CHECK
214BFF - INT 21 - VIRUS - "USSR-707", "Justice", "Europe 92" - INSTALLATION CHECK
214BFFSI0000 - INT 21 - VIRUS - "Cascade" - INSTALLATION CHECK
214C - INT 21 - DOS 2+ - "EXIT" - TERMINATE WITH RETURN CODE
214C57 - INT 21 - Headroom - ???
214D - INT 21 - DOS 2+ - GET RETURN CODE (ERRORLEVEL)
214E - INT 21 - DOS 2+ - "FINDFIRST" - FIND FIRST MATCHING FILE
214E - INT 21 - WILDUNIX.COM internal - INSTALLATION CHECK
214F - INT 21 - DOS 2+ - "FINDNEXT" - FIND NEXT MATCHING FILE
2150 - INT 21 - DOS 2+ internal - SET CURRENT PROCESS ID (SET PSP ADDRESS)
2150FD - INT 21 - VIRUS - "Predator 2" - INSTALLATION CHECK
2151 - INT 21 - DOS 2+ internal - GET CURRENT PROCESS ID (GET PSP ADDRESS)
2152 - INT 21 U - DOS 2+ internal - "SYSVARS" - GET LIST OF LISTS
215252 - INT 21 - VIRUS - "516"/"Leapfrog" - INSTALLATION CHECK
2153 - INT 21 - DOS 2+ internal - TRANSLATE BIOS PARAMETER BLOCK TO DRIVE PARAM BLOCK
2154 - INT 21 - DOS 2+ - GET VERIFY FLAG
2154--BX4475 - INT 21 - VIRUS - "Dual_GtM"/"Ganeu" - INSTALLATION CHECK
215454 - INT 21 - VIRUS - "Dudley" - INSTALLATION CHECK
2155 - INT 21 - DOS 2+ internal - CREATE CHILD PSP
2156 - INT 21 - DOS 2+ - "RENAME" - RENAME FILE
215643 - INT 21 - VIRUS - "PS-MPC.Gold" - INSTALLATION CHECK
215700 - INT 21 - DOS 2+ - GET FILE'S LAST-WRITTEN DATE AND TIME
215701 - INT 21 - DOS 2+ - SET FILE'S LAST-WRITTEN DATE AND TIME
215702 - INT 21 - DOS 4.x only - GET EXTENDED ATTRIBUTES FOR FILE
215702 - INT 21 - OS/2 v1.1+ Family API - DosQFileInfo
215702BXFFFF - INT 21 - OS/2 v1.1+ Compatibility Box Family API - DosQPathInfo
215703 - INT 21 - DOS 4.x only - GET EXTENDED ATTRIBUTE PROPERTIES
215703 - INT 21 - OS/2 v1.1+ Family API - DosSetFileInfo
215703BXFFFF - INT 21 - OS/2 v1.1+ Family API - DosSetPathInfo
215704 - INT 21 - DOS 4.x only - SET EXTENDED ATTRIBUTES
215704 - INT 21 - MS-DOS 7/Windows95 - GET LAST ACCESS DATE AND TIME
215705 - INT 21 - MS-DOS 7/Windows95 - SET LAST ACCESS DATE AND TIME
215706 - INT 21 - MS-DOS 7/Windows95 - GET CREATION DATE AND TIME
215707 - INT 21 - MS-DOS 7/Windows95 - SET CREATION DATE AND TIME
215741 - INT 21 - VIRUS - "WARP" -INSTALLATION CHECK
215757BX5757 - INT 21 U - IBM Genie - Resident Manager - INSTALLATION CHECK
215758 - INT 21 U - Headroom - API
2158 - INT 21 - DOS 2.11+ - GET OR SET MEMORY ALLOCATION STRATEGY
2158 - INT 21 - DOS 5+ - GET OR SET UMB LINK STATE
2158CC - INT 21 - VIRUS - "1067"/"Headcrash" - INSTALLATION CHECK
2158DD - INT 21 - VIRUS - "1067"/"Headcrash" - GET ORIGINAL INT 21h VECTOR
2159--BX0000 - INT 21 - DOS 3.0+ - GET EXTENDED ERROR INFORMATION
2159--BX0001 - INT 21 - European MS-DOS 4.0 - GET HARD ERROR INFORMATION
215A - INT 21 - DOS 3.0+ - CREATE TEMPORARY FILE
215B - INT 21 - DOS 3.0+ - CREATE NEW FILE
215C - INT 21 - DOS 3.0+ - "FLOCK" - RECORD LOCKING
215D00 - INT 21 U - DOS 3.1+ internal - SERVER FUNCTION CALL
215D01 - INT 21 U - DOS 3.1+ internal - COMMIT ALL FILES FOR SPECIFIED COMPUTER/PROCESS
215D02 - INT 21 U - DOS 3.1+ internal - SHARE.EXE - CLOSE FILE BY NAME
215D03 - INT 21 U - DOS 3.1+ internal - SHARE.EXE - CLOSE ALL FILES FOR GIVEN COMPUTER
215D04 - INT 21 U - DOS 3.1+ internal - SHARE.EXE - CLOSE ALL FILES FOR GIVEN PROCESS
215D05 - INT 21 U - DOS 3.1+ internal - SHARE.EXE - GET OPEN FILE LIST ENTRY
215D06 - INT 21 U - DOS 3.0+ internal - GET ADDRESS OF DOS SWAPPABLE DATA AREA
215D07 - INT 21 U - DOS 3.1+ network - GET REDIRECTED PRINTER MODE
215D08 - INT 21 U - DOS 3.1+ network - SET REDIRECTED PRINTER MODE
215D09 - INT 21 U - DOS 3.1+ network - FLUSH REDIRECTED PRINTER OUTPUT
215D0A - INT 21 - DOS 3.1+ - SET EXTENDED ERROR INFORMATION
215D0B - INT 21 OU - DOS 4.x only - internal - GET DOS SWAPPABLE DATA AREAS
215E00 - INT 21 - DOS 3.1+ network - GET MACHINE NAME
215E00 - INT 21 - 10NET v5.0 - GET MACHINE NAME
215E01CH00 - INT 21 - DOS 3.1+ network - SET MACHINE NAME
215E01 - INT 21 - 10NET v5.0 - GET LOCAL 10NET CONFIGURATION TABLE
215E02 - INT 21 - DOS 3.1+ network - SET NETWORK PRINTER SETUP STRING
215E03 - INT 21 - DOS 3.1+ network - GET NETWORK PRINTER SETUP STRING
215E04 - INT 21 - DOS 3.1+ network - SET PRINTER MODE
215E04 - INT 21 - 10NET v5.0 - INITIATE PRINT JOB
215E05 - INT 21 - DOS 3.1+ network - GET PRINTER MODE
215E05 - INT 21 - 10NET v5.0 - TERMINATE PRINT JOB
215E06 - INT 21 - 10NET v5.0 - GET/SET 10NET WORKSTATION PRINTER SETUP STRUCTURE
215F00 - INT 21 - DOS 3.1+ network - GET REDIRECTION MODE
215F01 - INT 21 - DOS 3.1+ network - SET REDIRECTION MODE
215F02 - INT 21 - DOS 3.1+ network - GET REDIRECTION LIST ENTRY
215F03 - INT 21 - DOS 3.1+ network - REDIRECT DEVICE
215F04 - INT 21 - DOS 3.1+ network - CANCEL REDIRECTION
215F05 - INT 21 - DOS 4.0+ network - GET EXTENDED REDIRECTION LIST ENTRY
215F05 - INT 21 - STARLITE architecture - MAP LOCAL DRIVE LETTER TO REMOTE FILE SYSTEM
215F06 - INT 21 U - Network - GET FULL REDIRECTION LIST
215F06 - INT 21 - STARLITE architecture - UNMAP DRIVE LETTER
215F07 - INT 21 - DOS 5+ - ENABLE DRIVE
215F07 - INT 21 - STARLITE architecture - MAKE NAMED OBJECT AVAILABLE ON NETWORK
215F08 - INT 21 - DOS 5+ - DISABLE DRIVE
215F08 - INT 21 - STARLITE architecture - REMOVE GLOBAL NETWORK NAME OF OBJECT
215F09 - INT 21 - STARLITE architecture - BIND TO NETWORK DEVICE
215F0A - INT 21 - STARLITE architecture - DETACH FROM NETWORK DEVICE
215F30 - INT 21 U - LAN Manager Enhanced DOS - GET REDIRECTOR VERSION
215F32 - INT 21 u - Named Pipes - LOCAL DosQNmPipeInfo
215F33 - INT 21 u - Named Pipes - LOCAL DosQNmPHandState
215F34 - INT 21 u - Named Pipes - LOCAL DosSetNmPHandState
215F35 - INT 21 u - Named Pipes - LOCAL DosPeekNmPipe
215F36 - INT 21 u - Named Pipes - LOCAL DosTransactNmPipe
215F37 - INT 21 u - Named Pipes - DosCallNmPipe
215F38 - INT 21 u - Named Pipes - LOCAL DosWaitNmPipe - AWAIT AVAIL. OF PIPE INSTANCE
215F39 - INT 21 U - Named Pipes - LOCAL DosRawReadNmPipe
215F3A - INT 21 U - Named Pipes - LOCAL DosRawWriteNmPipe
215F3B - INT 21 u - LAN Manager Enhanced DOS - NetHandleSetInfo
215F3C - INT 21 u - LAN Manager Enhanced DOS - NetHandleGetInfo
215F3D - INT 21 U - LAN Manager Enhanced DOS - WRITE MAILSLOT???
215F3E - INT 21 u - LAN Manager Enhanced DOS - LOCAL NetSpecialSMB
215F3F - INT 21 U - LAN Manager Enhanced DOS - REMOTE API CALL
215F40 - INT 21 u - LAN Manager Enhanced DOS - LOCAL NetMessageBufferSend
215F41 - INT 21 u - LAN Manager Enhanced DOS - LOCAL NetServiceEnum
215F42 - INT 21 u - LAN Manager Enhanced DOS - LOCAL NetServiceControl
215F43 - INT 21 u - LAN Manager Enhanced DOS - LOCAL DosPrintJobGetId
215F44 - INT 21 - LAN Manager Enhanced DOS - LOCAL NetWkstaGetInfo
215F45 - INT 21 u - LAN Manager Enhanced DOS - LOCAL NetWkstaSetInfo
215F46 - INT 21 u - LAN Manager Enhanced DOS - LOCAL NetUseEnum
215F47 - INT 21 u - LAN Manager Enhanced DOS - LOCAL NetUseAdd
215F48 - INT 21 u - LAN Manager Enhanced DOS - LOCAL NetUseDel
215F49 - INT 21 u - LAN Manager Enhanced DOS - NetUseGetInfo
215F4A - INT 21 u - LAN Manager Enhanced DOS - LOCAL NetRemoteCopy
215F4B - INT 21 u - LAN Manager Enhanced DOS - LOCAL NetRemoteMove
215F4C - INT 21 u - LAN Manager Enhanced DOS - LOCAL NetServerEnum
215F4D - INT 21 u - LAN Manager Enhanced DOS - DosMakeMailslot
215F4E - INT 21 u - LAN Manager Enhanced DOS - DosDeleteMailslot
215F4F - INT 21 u - LAN Manager Enhanced DOS - DosMailslotInfo
215F50 - INT 21 u - LAN Manager Enhanced DOS - DosReadMailslot
215F51 - INT 21 u - LAN Manager Enhanced DOS - DosPeekMailslot
215F52 - INT 21 u - LAN Manager Enhanced DOS - DosWriteMailslot
215F53 - INT 21 u - LAN Manager Enhanced DOS - NetServerEnum2
215F55 - INT 21 U - LAN Manager Enhanced DOS - KILL ALL CONNECTIONS???
215F80 - INT 21 - LANtastic - GET LOGIN ENTRY
215F81 - INT 21 - LANtastic - LOGIN TO SERVER
215F82 - INT 21 - LANtastic - LOGOUT FROM SERVER
215F83 - INT 21 - LANtastic - GET USERNAME ENTRY
215F84 - INT 21 - LANtastic - GET INACTIVE SERVER ENTRY
215F85 - INT 21 - LANtastic - CHANGE PASSWORD
215F86 - INT 21 - LANtastic - DISABLE ACCOUNT
215F87 - INT 21 - LANtastic v3+ - GET ACCOUNT
215F88 - INT 21 - LANtastic v4.0+ - LOGOUT FROM ALL SERVERS
215F97 - INT 21 - LANtastic - COPY FILE
215F98 - INT 21 - LANtastic - SEND UNSOLICITED MESSAGE
215F99 - INT 21 - LANtastic - GET LAST RECEIVED UNSOLICITED MESSAGE
215F9A - INT 21 - LANtastic - GET MESSAGE PROCESSING FLAGS
215F9B - INT 21 - LANtastic - SET MESSAGE PROCESSING FLAGS
215F9C - INT 21 - LANtastic v3+ - POP UP LAST RECEIVED MESSAGE
215F9D - INT 21 - LANtastic v4.1+ - GET REDIRECTOR CONTROL BITS
215F9E - INT 21 - LANtastic v4.1+ - SET REDIRECTOR CONTROL BITS
215FA0 - INT 21 - LANtastic - GET QUEUE ENTRY
215FA1 - INT 21 - LANtastic - SET QUEUE ENTRY
215FA2 - INT 21 - LANtastic - CONTROL QUEUE
215FA3 - INT 21 - LANtastic v3+ - GET PRINTER STATUS
215FA4 - INT 21 - LANtastic v3+ - GET STREAM INFO
215FA5 - INT 21 - LANtastic v3+ - SET STREAM INFO
215FA7 - INT 21 - LANtastic - CREATE USER AUDIT ENTRY
215FA9 - INT 21 - LANtastic v4.1+ - SET EXTENDED QUEUE ENTRY
215FB0 - INT 21 - LANtastic - GET ACTIVE USER INFORMATION
215FB1 - INT 21 - LANtastic - GET SHARED DIRECTORY INFORMATION
215FB2 - INT 21 - LANtastic v3+ - GET USERNAME FROM ACCOUNT FILE
215FB3 - INT 21 - LANtastic v3+ - TRANSLATE PATH
215FB4 - INT 21 - LANtastic v3+ - CREATE INDIRECT FILE
215FB5 - INT 21 - LANtastic v3+ - GET INDIRECT FILE CONTENTS
215FB6 - INT 21 - LANtastic v4.1+ - SET AUTO-LOGIN DEFAULTS
215FB7 - INT 21 - LANtastic v4.1+ - GET AUTO-LOGIN DEFAULTS
215FC0 - INT 21 - LANtastic - GET TIME FROM SERVER
215FC8 - INT 21 - LANtastic v4.0+ - SCHEDULE SERVER SHUTDOWN
215FC9 - INT 21 - LANtastic v4.0+ - CANCEL SERVER SHUTDOWN
215FCA - INT 21 - LANtastic v4.0+ - STUFF SERVER KEYBOARD BUFFER
215FCB - INT 21 - LANtastic v4.1+ - TERMINATE USER
215FCC - INT 21 - LANtastic v4.1+ - GET/SET SERVER CONTROL BITS
215FCD - INT 21 - LANtastic v4.1+ - FLUSH SERVER CACHES
215FD0 - INT 21 - LANtastic - GET REDIRECTED PRINTER TIMEOUT
215FD1 - INT 21 - LANtastic - SET REDIRECTED PRINTER TIMEOUT
215FE0 - INT 21 C - LANtastic - GET DOS SERVICE VECTOR
215FE1 - INT 21 - LANtastic - SET DOS SERVICE VECTOR
215FE2 - INT 21 - LANtastic - GET MESSAGE SERVICE VECTOR
215FE3 - INT 21 - LANtastic - SET MESSAGE SERVICE VECTOR
2160 - INT 21 - DOS 3.0+ - "TRUENAME" - CANONICALIZE FILENAME OR PATH
2161 - INT 21 - DOS 3.0+ - UNUSED (RESERVED FOR NETWORK USE)
2161--BP6467 - INT 21 U - OS/2 v1.x FAPI - OS/2 FILE SYSTEM JOIN/SUBST
2162 - INT 21 - DOS 3.0+ - GET CURRENT PSP ADDRESS
216262SI1994 - INT 21 - ENVLOCK - INSTALLATION CHECK
216300 - INT 21 - DOS 2.25 only - GET LEAD BYTE TABLE ADDRESS
216300 - INT 21 - DOS 3.2+ - GET DOUBLE BYTE CHARACTER SET LEAD-BYTE TABLE
216301 - INT 21 - DOS 2.25, DOS 3.2+ - SET KOREAN (HANGEUL) INPUT MODE
216302 - INT 21 - DOS 2.25, DOS 3.2+ - GET KOREAN (HANGEUL) INPUT MODE
216303 - INT 21 - VIRUS - "DOS IDLE" - INSTALLATION CHECK
216304 - INT 21 - VIRUS - "Replicator" - INSTALLATION CHECK
2164 - INT 21 - DOS 3.2+ internal - SET DEVICE DRIVER LOOKAHEAD FLAG
2164--DX0000 - INT 21 U - OS/2 v2.0+ Virtual DOS Machine - ENABLE AUTOMATIC TITLE SWITCH
2164--DX0001 - INT 21 U - OS/2 v2.0+ Virtual DOS Machine - SET SESSION TITLE
2164--DX0002 - INT 21 U - OS/2 v2.0+ Virtual DOS Machine - GET SESSION TITLE
2164--DX0003 - INT 21 U - OS/2 v2.1 Virtual DOS Machine - GET LASTDRIVE
2164--DX0004 - INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET SIZE OF PTDA JFT
2164--DX0005 - INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET SECOND SFT FLAGS WORD
2164--DX0006 - INT 21 U - OS/2 v2.1+ Virtual DOS Machine - UNLOAD DOSKRNL SYMBOLS & LOAD PROGR
2164--DX0007 - INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET WinOS2 CALL GATE ADDRESS
2164--DX0008 - INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET LOADING MESSAGE
2164--CX636C - INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API support
2164--BX0025 - INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API DOS32StartSession
2164--BX00B6 - INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API DosQFSAttach
2164--BX00CB - INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API DosForceDelete
216500 - INT 21 - Windows95 (OSR2) - SET GENERAL INTERNATIONALIZATION INFO
2165 - INT 21 - DOS 3.3+ - GET EXTENDED COUNTRY INFORMATION
2165 - INT 21 - DOS 4.0+ - COUNTRY-DEPENDENT CHARACTER CAPITALIZATION
216523 - INT 21 U - DOS 4.0+ - DETERMINE IF CHARACTER REPRESENTS YES/NO RESPONSE
2165 - INT 21 U - DOS 4.0+ internal - COUNTRY-DEPENDENT FILENAME CAPITALIZATION
216601 - INT 21 - DOS 3.3+ - GET GLOBAL CODE PAGE TABLE
216602 - INT 21 - DOS 3.3+ - SET GLOBAL CODE PAGE TABLE
2167 - INT 21 - DOS 3.3+ - SET HANDLE COUNT
2168 - INT 21 - DOS 3.3+ - "FFLUSH" - COMMIT FILE
2169 - INT 21 U - DOS 4.0+ internal - GET/SET DISK SERIAL NUMBER
2169 - INT 21 - DR DOS 5.0 - NULL FUNCTION
216969 - INT 21 - VIRUS - "Rape-747" - INSTALLATION CHECK
2169FFDX0000 - INT 21 U - CUBIT v4.00 - GET CUBIT INT 21 HANDLER
2169FFDXCFBF - INT 21 U - CUBIT v4.00 - UNINSTALL
216A - INT 21 U - DOS 4.0+ - COMMIT FILE
216B - INT 21 U - DOS 4.0 internal - IFS IOCTL
216B - INT 21 U - DOS 5+ - NULL FUNCTION
216C00 - INT 21 - DOS 4.0+ - EXTENDED OPEN/CREATE
216C01 - INT 21 U - OS/2 v2.0 - "DosOpen2"
216D - INT 21 U - DOS 5+ ROM - FIND FIRST ROM PROGRAM
216D - INT 21 U - OS/2 v1.x FAPI - "DosMkDir2"
216D - INT 21 U - Novell DOS 7 - NOP
216E - INT 21 U - DOS 5+ ROM - FIND NEXT ROM PROGRAM
216E - INT 21 U - OS/2 v1.x FAPI - "DosEnumAttrib"
216F00 - INT 21 U - DOS 5+ ROM - GET ROM SCAN START ADDRESS
216F00 - INT 21 U - OS/2 v1.x FAPI - "DosQMaxEASize" - GET MAXIMUM SIZE OF EXTENDED ATTR
216F01 - INT 21 U - DOS 5+ ROM - SET ROM SCAN START ADDRESS
216F02 - INT 21 U - DOS 5+ ROM - GET EXCLUSION REGION LIST
216F03 - INT 21 U - DOS 5+ ROM - SET EXCLUSION REGION LIST
2170 - INT 21 - MS-DOS 7 (Windows95) - GET/SET INTERNATIONALIZATION INFORMATION
217070BX6060 - INT 21 - PCW Weather Card interface - GET DATA SEGMENT
217070BX7070 - INT 21 - PCW Weather Card interface - INSTALLATION CHECK
2171 - INT 21 - Windows95 - LONG FILENAME FUNCTIONS
2171 - INT 21 - VIRUS - "1205" - INSTALLATION CHECK
21710D - INT 21 - Windows95 - RESET DRIVE
217139 - INT 21 - Windows95 - LONG FILENAME - MAKE DIRECTORY
21713A - INT 21 - Windows95 - LONG FILENAME - REMOVE DIRECTORY
21713B - INT 21 - Windows95 - LONG FILENAME - CHANGE DIRECTORY
217141 - INT 21 - Windows95 - LONG FILENAME - DELETE FILE
217143 - INT 21 - Windows95 - LONG FILENAME - EXTENDED GET/SET FILE ATTRIBUTES
217147 - INT 21 - Windows95 - LONG FILENAME - GET CURRENT DIRECTORY
21714E - INT 21 - Windows95 - LONG FILENAME - FIND FIRST MATCHING FILE
21714F - INT 21 - Windows95 - LONG FILENAME - FIND NEXT MATCHING FILE
217156 - INT 21 - Windows95 - LONG FILENAME - RENAME FILE
217160CL00 - INT 21 - Windows95 - LONG FILENAME - "TRUENAME" - CANONICALIZE PATH
217160CL01 - INT 21 - Windows95 - LONG FILENAME - GET SHORT (8.3) FILENAME FOR FILE
217160CL02 - INT 21 - Windows95 - LONG FILENAME - GET CANONICAL LONG FILENAME OR PATH
21716C - INT 21 - Windows95 - LONG FILENAME - CREATE OR OPEN FILE
2171A0 - INT 21 - Windows95 - LONG FILENAME - GET VOLUME INFORMATION
2171A1 - INT 21 - Windows95 - LONG FILENAME - "FindClose" - TERMINATE DIRECTORY SEARCH
2171A2 - INT 21 U - Windows95 - internal - LONG FILENAME - FIND NEXT MATCHING FILE
2171A3 - INT 21 U - Windows95 - internal
2171A4 - INT 21 U - Windows95 - internal
2171A5 - INT 21 U - Windows95 - internal
2171A6 - INT 21 - Windows95 - LONG FILENAME - GET FILE INFO BY HANDLE
2171A7BL00 - INT 21 - Windows95 - LONG FILENAME - FILE TIME TO DOS TIME
2171A7BL01 - INT 21 - Windows95 - LONG FILENAME - DOS TIME TO FILE TIME
2171A8 - INT 21 - Windows95 - LONG FILENAME - GENERATE SHORT FILENAME
2171A9 - INT 21 - Windows95 - LONG FILENAME - SERVER CREATE OR OPEN FILE
2171AABH00 - INT 21 - Windows95 - LONG FILENAME - CREATE SUBST
2171AABH01 - INT 21 - Windows95 - LONG FILENAME - TERMINATE SUBST
2171AABH02 - INT 21 - Windows95 - LONG FILENAME - QUERY SUBST
2172 - INT 21 - Windows95 beta - LFN-FindClose
2173 - INT 21 - MS-DOS 7 - DRIVE LOCKING AND FLUSHING
217302 - INT 21 - Windows95 - FAT32 - "Get_ExtDPB" - GET EXTENDED DPB
217303 - INT 21 - Windows95 - FAT32 - GET EXTENDED FREE SPACE ON DRIVE
217304 - INT 21 - Windows95 - FAT32 - Set DPB TO USE FOR FORMATTING
217305CXFFFF - INT 21 - Windows95 - FAT32 - EXTENDED ABSOLUTE DISK READ/WRITE
217575 - INT 21 - VIRUS - "LEGO" -INSTALLATION CHECK
2176 - INT 21 - VIRUS - "Klaeren"/"Hate" - INSTALLATION CHECK
217700 - INT 21 - VIRUS - "Growing Block" - INSTALLATION CHECK
217734 - INT 21 U - SCROLLit v1.7 - INSTALLATION CHECK
217761 - INT 21 - WATCH.COM v3.2+ - INSTALLATION CHECK
217BCE - INT 21 - VIRUS - "Whisper"/"Taipan" - INSTALLATION CHECK
217BCF - INT 21 - VIRUS - "Tai-Pan.666"/"Doom II Death" - INSTALLATION CHECK
217D - INT 21 - VIRUS - "OffSpring" - INSTALLATION CHECK
217F - INT 21 - VIRUS - "Squeaker","ASeXual" - INSTALLATION CHECK
2180 - INT 21 - European MS-DOS 4.0 - "AEXEC" - EXECUTE PROGRAM IN BACKGROUND
218080 - INT 21 - PCW Weather Card interface - UNINSTALL PCW.COM AND FREE MEMORY
2181 - INT 21 - European MS-DOS 4.0 - "FREEZE" - STOP A PROCESS
2182 - INT 21 - European MS-DOS 4.0 - "RESUME" - RESTART A PROCESS
2183 - INT 21 - European MS-DOS 4.0 - "PARTITION" - GET/SET FOREGROUND PARTITION SIZE
2183 - INT 21 - VIRUS - "SVC" - INSTALLATION CHECK
2184 - INT 21 - VIRUS - "SVC 5.0" or "SVC 6.0" - INSTALLATION CHECK
218400 - INT 21 - European MS-DOS 4.0 - "CREATMEM" - CREATE A SHARED MEMORY AREA
218401 - INT 21 - European MS-DOS 4.0 - "GETMEM" - OBTAIN ACCESS TO SHARED MEMORY AREA
218402 - INT 21 - European MS-DOS 4.0 - "RELEASEMEM" - FREE SHARED MEMORY AREA
2185 - INT 21 U - European MS-DOS 4.0 - ???
2186 - INT 21 - European MS-DOS 4.0 - "SETFILETABLE" - INSTALL NEW FILE HANDLE TABLE
2187 - INT 21 - European MS-DOS 4.0 - "GETPID" - GET PROCESS IDENTIFIER
2188 - INT 21 U - European MS-DOS 4.0 - ???
2189 - INT 21 - European MS-DOS 4.0 - SLEEP
2189 - INT 21 - VIRUS - "Vriest" - INSTALLATION CHECK
218A - INT 21 - European MS-DOS 4.0 - "CWAIT" - WAIT FOR CHILD TO TERMINATE
218B - INT 21 U - European MS-DOS 4.0 - ???
218C - INT 21 - European MS-DOS 4.0 - SET SIGNAL HANDLER
218D - INT 21 - European MS-DOS 4.0 - SEND SIGNAL
218E00BH00 - INT 21 - European MS-DOS 4.0 - "SETPRI" - GET/SET PROCESS PRIORITY
218F - INT 21 U - European MS-DOS 4.0 - ???
2190 - INT 21 U - European MS-DOS 4.0 - ???
2190--CXFFFF - INT 21 U - PTS-DOS 6.51 & S/DOS 1.0 - DIRECT DISK READ
2190 - INT 21 - VIRUS - "Carioca" - INSTALLATION CHECK
2191 - INT 21 U - European MS-DOS 4.0 - ???
2191--CXFFFF - INT 21 U - PTS-DOS 6.51 & S/DOS 1.0 - DIRECT DISK WRITE
2192 - INT 21 U - European MS-DOS 4.0 - ???
2192 - INT 21 U - PTS-DOS 6.51 & S/DOS 1.0 - ABORT CURRENT PROCESS VIA INT 23
2193 - INT 21 - European MS-DOS 4.0 - "PIPE" - CREATE A NEW PIPE
2194 - INT 21 U - European MS-DOS 4.0 - ???
2195 - INT 21 - European MS-DOS 4.0 - HARD ERROR PROCESSING
2196 - INT 21 U - European MS-DOS 4.0 - ???
2197 - INT 21 U - European MS-DOS 4.0 - ???
219753 - INT 21 - VIRUS - "Nina" - INSTALLATION CHECK
2198 - INT 21 U - European MS-DOS 4.0 - ???
2199 - INT 21 u - European MS-DOS 4.0 - "PBLOCK" - BLOCK A PROCESS
219A - INT 21 u - European MS-DOS 4.0 - "PRUN" - UNBLOCK A PROCESS
219AD5 - INT 21 - VIRUS - "Massacre/Beavis" - INSTALLATION CHECK
21A0 - INT 21 - Attachmate Extra! - GET 3270 DISPLAY STATE
21A1 - INT 21 - Attachmate Extra! - SET 3270 DISPLAY STATE
21A1D5 - INT 21 - VIRUS - "789"/"Filehider" - INSTALLATION CHECK
21A2 - INT 21 - Attachmate Extra! - SET HOST WINDOW STATE
21A3 - INT 21 - Attachmate Extra! - SEND KEYSTROKES TO HOST WINDOW
21A4 - INT 21 - Attachmate Extra! - GET HOST WINDOW BUFFER ADDRESS
21A5 - INT 21 - Attachmate Extra! - GET HOST WINDOW CURSOR POSITION
21A55A - INT 21 - VIRUS - "Eddie-2" - INSTALLATION CHECK
21AA00 - INT 21 - VIRUS - "Blinker" - INSTALLATION CHECK
21AA03 - INT 21 - VIRUS - "Backtime" - INSTALLATION CHECK
21AB - INT 21 - VIRUS - "600" or "Voronezh"-family - INSTALLATION CHECK
21ABCD - INT 21 - VIRUS - Major BBS - INSTALLATION CHECK
21ABCD - INT 21 - VIRUS - "SuperVirus 2" - INSTALLATION CHECK
21AF - INT 21 - Attachmate Extra! - GET TRANSLATE TABLE ADDRESS
21B3 - INT 21 - VIRUS - "Requires" - INSTALLATION CHECK
21B300 - INT 21 U - Novell NetWare - CHECK LIP/PACKET SIGNING/IPX CHECKSUM SUPPORT???
21B301 - INT 21 U - Novell NetWare - CHECK SIGNATURE LEVEL???
21B302 - INT 21 U - Novell NetWare - START PACKET SIGNING
21B304 - INT 21 U - Novell NetWare - SET SIGNATURE LEVEL
21B306 - INT 21 - Novell NetWare - RENEGOTIATE SECURITY LEVEL
21B4 - INT 21 U - Novell NetWare - "AttachHandle"
21B500 - INT 21 U - Novell NetWare - VNETWARE.386 API - GET INSTANCE DATA
21B501 - INT 21 U - Novell NetWare - VNETWARE.386 API - END VIRTUAL MACHINE
21B502 - INT 21 U - Novell NetWare - VNETWARE.386 API - START VIRTUAL MACHINE
21B5 - INT 21 - Novell NetWare shell 3.01 - TASK MODE CONTROL
21B505 - INT 21 U - Novell NetWare - VNETWARE.386 API - SET VIRTUAL MACHINE ID
21B506 - INT 21 U - Novell NetWare - VNETWARE.386 API - GET VIRTUAL MACH SUPPORT LEVEL
21B507 - INT 21 - Novell NetWare - NetWare Shell - GET NUMBER OF PACKET BURST BUFFERS
21B6 - INT 21 - Novell NetWare - FILE SERVICES - EXTENDED FILE ATTRIBUTES
21B7 - INT 21 U - Novell NetWare - "HoldFileModeSet" (obsolete)
21B8 - INT 21 - Attachmate Extra! - DISABLE HOST BUFFER UPDATES
21B800 - INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT CAPTURE FLAGS
21B801 - INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT CAPTURE FLAGS
21B802 - INT 21 - Novell NetWare - PRINT SERVICES - GET SPECIFIC CAPTURE FLAGS
21B803 - INT 21 - Novell NetWare - PRINT SERVICES - SET SPECIFIC CAPTURE FLAGS
21B804 - INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT LOCAL PRINTER
21B805 - INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT LOCAL PRINTER
21B806 - INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT QUEUE
21B807 - INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT JOB
21B808 - INT 21 - Novell NetWare - PRINT SERVICES - GET BANNER USER NAME
21B809 - INT 21 - Novell NetWare - PRINT SERVICES - SET BANNER USER NAME
21B9 - INT 21 U - Novell NetWare - "SpecialAttachableFunction"
21B974 - INT 21 - VIRUS - "Tracker" - INSTALLATION CHECK
21BA - INT 21 U - Novell NetWare - "ReturnCommandComPointers"
21BB - INT 21 - Novell NetWare - WORKSTATION - SET END OF JOB STATUS
21BBBB - INT 21 - VIRUS - "Hey You" - INSTALLATION CHECK
21BC - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG PHYSICAL RECORD
21BD - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYSICAL RECORD
21BE - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD
21BE - INT 21 - VIRUS - "Datalock" - INSTALLATION CHECK
21BE00 - INT 21 - VIRUS - "USSR-1049" - INSTALLATION CHECK
21BF - INT 21 O - Novell NetWare, Alloy NTNX - LOG/LOCK RECORD (FCB)
21C0 - INT 21 O - Novell NetWare, Alloy NTNX - RELEASE RECORD (FCB)
21C0 - INT 21 - VIRUS - "Slow"/"Zerotime", "Solano" - INSTALLATION CHECK
21C000 - INT 21 - VIRUS - "QUICKY" - INSTALLATION CHECK
21C001 - INT 21 - VIRUS - "QUICKY" - TURN INFECTION OFF
21C002 - INT 21 - VIRUS - "QUICKY" - TURN INFECTION ON
21C1 - INT 21 O - Novell NetWare, Alloy NTNX - CLEAR RECORD (FCB)
21C1 - INT 21 - VIRUS - "Solano" - ???
21C2 - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK PHYSICAL RECORD SET
21C2 - INT 21 - VIRUS - "Scott's Valley" - ???
21C3 - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYS RECORD SET
21C301DXF1F1 - INT 21 - VIRUS - "905"/"Backfont" - INSTALLATION CHECK
21C4 - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD SET
21C500 - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - OPEN SEMAPHORE
21C500 - INT 21 - VIRUS - "Sverdlov" - INSTALLATION CHECK
21C501 - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - EXAMINE SEMAPHORE
21C502 - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - WAIT ON SEMAPHORE
21C503 - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - SIGNAL SEMAPHORE
21C504 - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLOSE SEMAPHORE
21C6 - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - GET OR SET LOCK MODE
21C6 - INT 21 - VIRUS - "Socha" - INSTALLATION CHECK
21C603 - INT 21 - VIRUS - "Yankee Doodle" or "MLTI" - INSTALLATION CHECK
21C700 - INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - BEGIN TRANSACTION
21C700 - INT 21 - VIRUS - "MH-757" - INSTALLATION CHECK
21C701 - INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - END TRANSACTION
21C702 - INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - INSTALLATION CHECK
21C703 - INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - ABORT TRANSACTION
21C704 - INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - TRANSACTION STATUS
21C705 - INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET APPLICTN THRESHOLDS
21C706 - INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET APPLICTN THRESHOLDS
21C707 - INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET WORKSTN THRESHOLDS
21C708 - INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET WORKSTN THRESHOLDS
21C8 - INT 21 O - Novell NetWare - BEGIN LOGICAL FILE LOCKING
21C9 - INT 21 O - Novell NetWare - END LOGICAL FILE LOCKING
21CA - INT 21 O - Novell NetWare, Alloy NTNX - LOG/LOCK PERSONAL FILE (FCB)
21CA15 - INT 21 - VIRUS - "Piter" - ???
21CB - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK FILE SET
21CB - INT 21 - VIRUS - "Milous" - INSTALLATION CHECK
21CB02 - INT 21 - VIRUS - "Witcode" - INSTALLATION CHECK
21CC - INT 21 O - Novell NetWare, Alloy NTNX - RELEASE FILE (FCB)
21CC - INT 21 - VIRUS - "Westwood" - INSTALLATION CHECK
21CD - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE SET
21CD - INT 21 - VIRUS - "Westwood" - ???
21CE - INT 21 O - Novell NetWare, Alloy NTNX - CLEAR FILE (FCB)
21CF - INT 21 - LANstep - ???
21CF - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE SET
21D0 - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG LOGICAL RECORD
21D0 - INT 21 - VIRUS - "MALAGA" - INSTALLATION CHECK
21D0 - INT 21 - VIRUS - "ANTIARJ" -INSTALLATION CHECK
21D000 - INT 21 - VIRUS - "Fellowship" - INSTALLATION CHECK
21D000 - INT 21 - VIRUS - "Warlock" - INSTALLATION CHECK
21D1 - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK LOGICAL RECORD SET
21D2 - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD
21D2 - INT 21 - VIRUS???
21D3 - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD SET
21D4 - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD
21D5 - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD SET
21D5 - INT 21 - VIRUS - "Carfield" - ???
21D5AA - INT 21 - VIRUS - "Diamond-A", "Diamond-B" - INSTALLATION CHECK
21D5AABPDEAA - INT 21 - VIRUS - "Dir" - INSTALLATION CHECK
21D6 - INT 21 - Novell NetWare - WORKSTATION - END OF JOB
21D7 - INT 21 - Novell NetWare - CONNECTION SERVICES - SYSTEM LOGOUT
21D8 - INT 21 - Novell NetWare, Banyan VINES - ALLOCATE RESOURCE
21D9 - INT 21 - Novell NetWare, Banyan VINES - DEALLOCATE RESOURCE
21DA - INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH NUMBER
21DADA - INT 21 - VIRUS - "Gotcha" - INSTALLATION CHECK
21DAFE - INT 21 - VIRUS - "Plovdiv 1.3" - INSTALLATION CHECK
21DB - INT 21 - Novell NetWare - WORKSTATION - GET NUMBER OF LOCAL DRIVES
21DC - INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION NUMBER
21DC - INT 21 - PCMag PCMANAGE/DCOMPRES - TURN ON/OFF
21DC28 - INT 21 - VIRUS - "Monika" - INSTALLATION CHECK
21DCBA - INT 21 - VIRUS - "Red Spider" - INSTALLATION CHECK
21DD - INT 21 - Novell NetWare - WORKSTATION - SET NetWare ERROR MODE
21DD - INT 21 - VIRUS - "Jerusalem"-family - RELOCATE VIRUS???
21DDEF - INT 21 - VIRUS- "GOLGI" - INSTALLATION CHECK
21DE - INT 21 - VIRUS - "Durban" - INSTALLATION CHECK
21DE - INT 21 - VIRUS - "April 1st EXE" - ???
21DE - INT 21 - Novell NetWare - MESSAGE SERVICES - SET BROADCAST MODE
21DE--DL04 - INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MODE
21DE - INT 21 - Novell NetWare - SHELL TIMER INTERRUPT CHECKS
21DEAD - INT 21 - VIRUS - "90210" - INSTALLATION CHECK
21DEAD - INT 21 - VIRUS - "Shifting Objective" - RELOCATE CODE ???
21DEDE - INT 21 - VIRUS - "Brothers" - INSTALLATION CHECK
21DEFE - INT 21 - VIRUS - "Maze" - INSTALLATION CHECK
21DF--DL00 - INT 21 - Novell NetWare - PRINT SERVICES - START LPT CAPTURE
21DF--DL01 - INT 21 - Novell NetWare - PRINT SERVICES - END LPT CAPTURE
21DF--DL02 - INT 21 - Novell NetWare - PRINT SERVICES - CANCEL LPT CAPTURE
21DF--DL03 - INT 21 - Novell NetWare - PRINT SERVICES - FLUSH LPT CAPTURE
21DF--DL04 - INT 21 - Novell NetWare - PRINT SERVICES - START SPECIFIC LPT CAPTURE
21DF--DL05 - INT 21 - Novell NetWare - PRINT SERVICES - END SPECIFIC LPT CAPTURE
21DF--DL06 - INT 21 - Novell NetWare - PRINT SERVICES - CANCEL SPECIFIC LPT CAPTURE
21DF--DL07 - INT 21 - Novell NetWare - PRINT SERVICES - FLUSH SPECIFIC LPT CAPTURE
21DF00DX534C - INT 21 U - Software Carousel - INSTALLATION CHECK
21DF01 - INT 21 - Software Carousel - SWITCH TO ANOTHER TASK
21DF02 - INT 21 - Software Carousel - KILL PROGRAM IN MEMORY PARTITION
21DF03 - INT 21 - Software Carousel - GET PARTITION SIZE AND PROGRAM STATUS
21DF04 - INT 21 - Software Carousel - GET PARTITION NAME
21DF05 - INT 21 - Software Carousel - CHANGE PARTITION SIZE
21DF06 - INT 21 - Software Carousel - CHANGE PARTITION NAME
21DF07 - INT 21 - Software Carousel - SEND COMMAND TO MEMORY SECTION
21DF08 - INT 21 - Software Carousel - SELECTIVELY ENABLE/DISABLE MENU AND SWITCHING
21DF09 - INT 21 - Software Carousel - BOOT THE SYSTEM
21DF0A - INT 21 - Software Carousel - GET MEMORY SIZE/PARTITION NUMBER OF CURRENT TASK
21DF0B - INT 21 - Software Carousel - SET TASK SWITCH CALLBACK
21DF0C - INT 21 - Software Carousel - ENABLE DOS-CALL SAFETY NOTIFICATION
21E0 - INT 21 - Digital Research DOS Plus - CALL BDOS
21E0 - INT 21 - OS/286, OS/386 - INITIALIZE REAL PROCEDURE
21E0 - INT 21 - DoubleDOS - MENU CONTROL
21E0 - INT 21 - VIRUS - "Jerusalem", "Armagedon" - INSTALLATION CHECK
21E0 - INT 21 - Novell NetWare, Alloy NTNX - PRINT SPOOLING
21E0--SF06 - INT 21 - Novell NetWare - PRINT SERVICES - GET PRINTER STATUS
21E0--SF09 - INT 21 - Novell NetWare - PRINT SERVICES - SPECIFY CAPTURE FILE
21E00F - INT 21 - VIRUS - "8-tunes" - INSTALLATION CHECK
21E1 - INT 21 - OS/286, OS/386 - ISSUE REAL PROCEDURE CALL
21E1 - INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB
21E1 - INT 21 - VIRUS - "Mendoza", "Fu Manchu" - INSTALLATION CHECK
21E1--SF00 - INT 21 - Novell NetWare - MESSAGE SERVICES - SEND BROADCAST MESSAGE
21E1--SF01 - INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MESSAGE (OLD)
21E1--SF02 - INT 21 - Novell NetWare - MESSAGE SERVICES - DISABLE BROADCAST MESSAGES
21E1--SF03 - INT 21 - Novell NetWare - MESSAGE SERVICES - ENABLE BROADCAST MESSAGES
21E1--SF04 - INT 21 O - Novell NetWare - MESSAGE SERVICES - SEND PERSONAL MESSAGE
21E1--SF05 - INT 21 O - Novell NetWare - MESSAGE SERVICES - GET PERSONAL MESSAGE
21E1--SF06 - INT 21 O - Novell NetWare - MESSAGE SERVICES - OPEN MESSAGE PIPE
21E1--SF07 - INT 21 O - Novell NetWare - MESSAGE SERVICES - CLOSE MESSAGE PIPE
21E1--SF08 - INT 21 O - Novell NetWare - MESSAGE SERVICES - CHECK PIPE STATUS
21E1--SF09 - INT 21 - Novell NetWare - MESSAGE SERVICES - BROADCAST TO CONSOLE
21E2 - INT 21 - OS/286, OS/386 - SET REAL PROCEDURE SIGNAL HANDLER
21E2 - INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB
21E2--SF00 - INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY HANDLE
21E2--SF01 - INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY PATH
21E2--SF02 - INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY INFORMATION
21E2--SF03 - INT 21 - Novell NetWare - DIRECTORY SERVICES - GET EFFECTIVE DIRECTORY RIGHTS
21E2--SF04 - INT 21 - Novell NetWare - DIRECTORY SERVICES - MODIFY MAXIMUM RIGHTS MASK
21E2--SF05 - INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NUMBER
21E2--SF06 - INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NAME
21E2--SF0A - INT 21 - Novell NetWare - DIRECTORY SERVICES - CREATE DIRECTORY
21E2--SF0B - INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE DIRECTORY
21E2--SF0C - INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY FOR TRUSTEES
21E2--SF0D - INT 21 - Novell NetWare - DIRECTORY SERVICES - ADD TRUSTEE TO DIRECTORY
21E2--SF0E - INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE TRUSTEE FROM DIRECTORY
21E2--SF0F - INT 21 - Novell NetWare - DIRECTORY SERVICES - RENAME DIRECTORY
21E2--SF10 - INT 21 - Novell NetWare - FILE SERVICES - PURGE ERASED FILES (OLD)
21E2--SF11 - INT 21 - Novell NetWare - FILE SERVICES - RESTORE ERASED FILE (OLD)
21E2--SF12 - INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC PERMANENT DIRECTORY HANDLE
21E2--SF13 - INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC TEMPORARY DIRECTORY HANDLE
21E2--SF14 - INT 21 - Novell NetWare - DIRECTORY SERVICES - DEALLOCATE DIRECTORY HANDLE
21E2--SF15 - INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH HANDLE
21E2--SF16 - INT 21 u - Novell NetWare - DIRECTORY SERVICES - ALLOC SPECIAL TEMP DIR HANDLE
21E2--SF17 - INT 21 - Novell NetWare - DIRECTORY SERVICES - SAVE DIRECTORY HANDLE
21E2--SF18 - INT 21 - Novell NetWare - DIRECTORY SERVICES - RESTORE DIRECTORY HANDLE
21E2--SF19 - INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY INFORMATION
21E2--SF1A - INT 21 - Novell NetWare - FILE SERVER - GET PATH FROM DIRECTORY ENTRY
21E3 - INT 21 - OS/286, OS/386 - ISSUE REAL INTERRUPT
21E3 - INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB
21E3 - INT 21 - Novell NetWare - CONNECTION CONTROL
21E3--SF01 - INT 21 - Novell NetWare - CONNECTION SERVICES - CHANGE USER PASSWORD (OLD)
21E3--SF02 - INT 21 - Novell NetWare - CONNECTION SERVICES - CHANGE USER PASSWORD (OLD)
21E3--SF03 - INT 21 - Novell NetWare - CONNECTION SERVICES - MAP OBJECT TO NUMBER (OLD)
21E3--SF0A - INT 21 - Novell NetWare - CONNECTION SERVICES - ENTER LOGIN AREA
21E3--SF0C - INT 21 U - Novell NetWare - VERIFY NETWORK SERIAL NUMBER
21E3--SF0D - INT 21 - Novell NetWare - MESSAGE SERVICES - LOG NETWORK MESSAGE
21E3--SF0E - INT 21 - Novell NetWare - FILE SERVER - GET DISK UTILIZATION
21E3--SF0F - INT 21 - Novell NetWare - FILE SERVICES - SCAN FILE INFORMATION
21E3--SF10 - INT 21 - Novell NetWare - FILE SERVICES - SET FILE INFORMATION
21E3--SF11 - INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER INFORMATION
21E3--SF12 - INT 21 - Novell NetWare - GET NETWORK SERIAL NUMBER
21E3--SF13 - INT 21 - Novell NetWare - CONNECTION SERVICES - GET INTERNET ADDRESS (OLD)
21E3--SF14 - INT 21 - Novell NetWare - CONNECTION SERVICES - LOGIN TO FILE SERVER
21E3--SF15 - INT 21 - Novell NetWare - CONNECTION SERVICES - GET OBJECT CONNECTION LIST(OLD)
21E3--SF16 - INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION INFORMATION
21E3--SF32 - INT 21 - Novell NetWare - BINDERY SERVICES - CREATE BINDERY OBJECT
21E3--SF33 - INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT
21E3--SF34 - INT 21 - Novell NetWare - BINDERY SERVICES - RENAME BINDERY OBJECT
21E3--SF35 - INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT ID
21E3--SF36 - INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT NAME
21E3--SF37 - INT 21 - Novell NetWare - BINDERY SERVICES - SCAN BINDERY OBJECT
21E3--SF38 - INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT SECURITY
21E3--SF39 - INT 21 - Novell NetWare - BINDERY SERVICES - CREATE PROPERTY
21E3--SF3A - INT 21 - Novell NetWare - BINDERY SERVICES - DELETE PROPERTY
21E3--SF3B - INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE PROPERTY SECURITY
21E3--SF3C - INT 21 - Novell NetWare - BINDERY SERVICES - SCAN PROPERTY
21E3--SF3D - INT 21 - Novell NetWare - BINDERY SERVICES - READ PROPERTY VALUE
21E3--SF3E - INT 21 - Novell NetWare - BINDERY SERVICES - WRITE PROPERTY VALUE
21E3--SF3F - INT 21 - Novell NetWare - BINDERY SERVICES - VERIFY BINDERY OBJECT PASSWORD
21E3--SF40 - INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT PASSWORD
21E3--SF41 - INT 21 - Novell NetWare - BINDERY SERVICES - ADD BINDERY OBJECT TO SET
21E3--SF42 - INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT FROM SET
21E3--SF43 - INT 21 - Novell NetWare - BINDERY SERVICES - IS BINDERY OBJECT IN SET
21E3--SF44 - INT 21 - Novell NetWare - BINDERY SERVICES - CLOSE BINDERY
21E3--SF45 - INT 21 - Novell NetWare - BINDERY SERVICES - OPEN BINDERY
21E3--SF46 - INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY ACCESS LEVEL
21E3--SF47 - INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN BINDERY OBJ TRUSTEE PATHS
21E3--SF64 - INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE
21E3--SF65 - INT 21 - Novell NetWare - QUEUE SERVICES - DESTROY QUEUE
21E3--SF66 - INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE CURRENT STATUS (OLD)
21E3--SF67 - INT 21 - Novell NetWare - QUEUE SERVICES - SET QUEUE CURRENT STATUS (OLD)
21E3--SF68 - INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE JOB AND FILE
21E3--SF69 - INT 21 - Novell NetWare - QUEUE SERVICES - CLOSE FILE AND START QUEUE JOB (OLD)
21E3--SF6A - INT 21 - Novell NetWare - QUEUE SERVICES - REMOVE JOB FROM QUEUE (OLD)
21E3--SF6B - INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB LIST (OLD)
21E3--SF6C - INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE JOB ENTRY (OLD)
21E3--SF6D - INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB ENTRY (OLD)
21E3--SF6E - INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB POSITION
21E3--SF6F - INT 21 - Novell NetWare - QUEUE SERVICES - ATTACH QUEUE SERVER TO QUEUE
21E3--SF70 - INT 21 - Novell NetWare - QUEUE SERVICES - DETACH QUEUE SERVER FROM QUEUE
21E3--SF71 - INT 21 - Novell NetWare - QUEUE SERVICES - SERVICE QUEUE JOB AND OPEN FILE
21E3--SF72 - INT 21 - Novell NetWare - QUEUE SERVICES - FINISH SERVICING QUEUE JOB AND FILE
21E3--SF73 - INT 21 - Novell NetWare - QUEUE SERVICES - ABORT SERVICING QUEUE JOB AND FILE
21E3--SF74 - INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE TO CLIENT RIGHTS (OLD)
21E3--SF75 - INT 21 - Novell NetWare - QUEUE SERVICES - RESTORE QUEUE SERVER RIGHTS
21E3--SF76 - INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE SERVER CURRENT STATUS OLD
21E3--SF77 - INT 21 - Novell NetWare - QUEUE SERVICES - SET QUEUE SERVER CURRENT STATUS
21E3--SF78 - INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB'S FILE SIZE (OLD)
21E3--SF83 - INT 21 - Novell NetWare - QUEUE SERVICES - FINISH SERVICING QUEUE JOB
21E3--SF84 - INT 21 - Novell NetWare - QUEUE SERVICES - ABORT SERVICING QUEUE JOB
21E3--SF96 - INT 21 - Novell NetWare - ACCOUNTING SERVICES - GET ACCOUNT STATUS
21E3--SF97 - INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT CHARGE
21E3--SF98 - INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT HOLD
21E3--SF99 - INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT NOTE
21E3--SFC8 - INT 21 - Novell NetWare - FILE SERVER - CHECK CONSOLE PRIVILEGES
21E3--SFC9 - INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DESCRIPTION STRINGS
21E3--SFCA - INT 21 - Novell NetWare - FILE SERVER - SET FILE SERVER DATE AND TIME
21E3--SFCB - INT 21 - Novell NetWare - FILE SERVER - DISABLE FILE SERVER LOGIN
21E3--SFCC - INT 21 - Novell NetWare - FILE SERVER - ENABLE FILE SERVER LOGIN
21E3--SFCD - INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LOGIN STATUS
21E3--SFCE - INT 21 - Novell NetWare - FILE SERVICES - PURGE ALL ERASED FILES
21E3--SFCF - INT 21 - Novell NetWare - FILE SERVER - DISABLE TRANSACTION TRACKING
21E3--SFD0 - INT 21 - Novell NetWare - FILE SERVER - ENABLE TRANSACTION TRACKING
21E3--SFD1 - INT 21 - Novell NetWare - FILE SERVER - SEND CONSOLE BROADCAST
21E3--SFD2 - INT 21 - Novell NetWare - FILE SERVER - CLEAR CONNECTION NUMBER
21E3--SFD3 - INT 21 - Novell NetWare - FILE SERVER - DOWN FILE SERVER
21E3--SFD4 - INT 21 - Novell NetWare - FILE SERVER - GET FILE SYSTEM STATISTICS
21E3--SFD5 - INT 21 - Novell NetWare - FILE SERVER - GET TRANSACTION TRACKING STATISTICS
21E3--SFD6 - INT 21 - Novell NetWare - FILE SERVER - GET DISK CACHE STATISTICS
21E3--SFD7 - INT 21 - Novell NetWare - FILE SERVER - GET DRIVE MAPPING TABLE
21E3--SFD8 - INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL DISK STATISTICS
21E3--SFD9 - INT 21 - Novell NetWare - FILE SERVER - GET DISK CHANNEL STATISTICS
21E3--SFDA - INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S TASK INFORMATION
21E3--SFDB - INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S OPEN FILES (OLD)
21E3--SFDC - INT 21 - Novell NetWare - FILE SERVER - GET CONNECTIONS USING A FILE
21E3--SFDD - INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY CONN&FILE
21E3--SFDE - INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY FILE
21E3--SFDF - INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORDS BY CONNECTION
21E3--SFE0 - INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORD INFORMATION
21E3--SFE1 - INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S SEMAPHORES
21E3--SFE2 - INT 21 - Novell NetWare - FILE SERVER - GET SEMAPHORE INFORMATION
21E3--SFE3 - INT 21 - Novell NetWare - FILE SERVER - GET LAN DRIVER'S CONFIGURATION INFO
21E3--SFE5 - INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S USAGE STATISTICS
21E3--SFE6 - INT 21 - Novell NetWare - FILE SERVER - GET BINDERY OBJECT DISK SPACE LEFT
21E3--SFE7 - INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LAN I/O STATISTICS
21E3--SFE8 - INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER MISC INFORMATION
21E3--SFE9 - INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFORMATION
21E4 - INT 21 O - Novell NetWare - SET FILE ATTRIBUTES (FCB)
21E4 - INT 21 - VIRUS - "Anarkia" - INSTALLATION CHECK
21E400 - INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS
21E400 - INT 21 - OS/286, OS/386 - CHAIN TO REAL-MODE HANDLER
21E402 - INT 21 - OS/286, OS/386 - SET PROTECTED-MODE TASK GATE
21E403 - INT 21 - OS/286, OS/386 - REMOVE PROTECTED-MODE TASK GATE
21E5 - INT 21 O - Novell NetWare - UPDATE FILE SIZE (FCB)
21E5 - INT 21 - DoubleDOS - OTHER PROGRAM STATUS
21E500 - INT 21 - OS/286, OS/386 - HEAP MANAGEMENT STRATEGY
21E501 - INT 21 - OS/286, OS/386 - FORCE HEAP COMPACTION
21E6 - INT 21 O - Novell NetWare - COPY FILE TO FILE (FCB)
21E6 - INT 21 P - OS/286, OS/386 - ISSUE REAL PROCEDURE SIGNAL FROM PROTECTED MODE
21E7 - INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DATE AND TIME
21E7 - INT 21 - OS/286, OS/386 - CREATE CODE SEGMENT
21E7 - INT 21 - VIRUS - "Spyer"/"Kiev" - INSTALLATION CHECK
21E8 - INT 21 O - Novell NetWare, Alloy NTNX - SET FCB RE-OPEN MODE
21E8 - INT 21 - OS/286, OS/386 - SEGMENT CREATION
21E8 - INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS
21E9 - INT 21 P - OS/286, OS/386 - CHANGE SEGMENTS
21E9 - INT 21 - DoubleDOS - SET TIMESHARING PRIORITY
21E900 - INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY HANDLE
21E900 - INT 21 - VIRUS - "Dark End" - INSTALLATION CHECK
21E905 - INT 21 - Novell NetWare shell 3.01 - MAP A FAKE ROOT DIRECTORY
21E906 - INT 21 - Novell NetWare shell 3.01 - DELETE FAKE ROOT DIRECTORY
21E907 - INT 21 - Novell NetWare shell 3.01 - GET RELATIVE DRIVE DEPTH
21E908BL00 - INT 21 - Novell NetWare shell 3.01 - SET SHOW DOTS
21E909 - INT 21 - Novell NetWare - NetWare shell - CONVERT DOS FILE HANDLE TO NETWARE
21EA - INT 21 - Novell NetWare, Alloy NTNX - RETURN SHELL VERSION
21EA - INT 21 - DoubleDOS - TURN OFF TASK SWITCHING
21EA - INT 21 - OS/286, OS/386 - ALLOCATE HUGE SEGMENT
21EB - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG FILE
21EB - INT 21 - DoubleDOS - TURN ON TASK SWITCHING
21EB00 - INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY LINEAR ADDRESS
21EB02 - INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 16-BIT SEGMENT:OFFSET
21EB03 - INT 21 - OS/386 VMM - FREE MAPPED PAGES
21EB04 - INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 32-BIT SEGMENT:OFFSET
21EB05 - INT 21 - OS/386 VMM - MAP PAGES
21EB06 - INT 21 - OS/386 VMM - LOCK PAGES IN MEMORY
21EB07 - INT 21 - OS/386 VMM - UNLOCK MEMORY PAGES
21EC - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE
21EC - INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS
21EC - INT 21 - OS/286, OS/386 - BLOCK TRANSFER
21EC27 - INT 21 - VIRUS - "Halloween.1839" - INSTALLATION CHECK
21EC59 - INT 21 - VIRUS - "Terror" - INSTALLATION CHECK
21ED - INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE
21ED - INT 21 - OS/286, OS/386 - GET SEGMENT OR WINDOW DESCRIPTOR
21EE - INT 21 - Novell NetWare - CONNECTION SERVICES - GET PHYSICAL STATION ADDRESS
21EE - INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS
21EE - INT 21 - VIRUS - "Jerusalem-G", "Pregnant", "Barrotes" - INSTALLATION CHECK
21EEE7 - INT 21 - VIRUS - "GingerBread" - INSTALLATION CHECK
21EF - INT 21 - VIRUS - "Mabuhay"/"June 12th" - INSTALLATION CHECK
21EF00 - INT 21 - Novell NetWare - WORKSTATION - GET DRIVE HANDLE TABLE
21EF01 - INT 21 - Novell NetWare - WORKSTATION - GET DRIVE FLAG TABLE
21EF02 - INT 21 - Novell NetWare - WORKSTATION - GET DRIVE CONNECTION ID TABLE
21EF03 - INT 21 - Novell NetWare - WORKSTATION - GET CONNECTION ID TABLE
21EF04 - INT 21 - Novell NetWare - WORKSTATION - GET FILE SERVER NAME TABLE
21F0 - INT 21 - DoubleDOS - MENU CONTROL
21F0 - INT 21 - VIRUS - "Frere Jacques" - INSTALLATION CHECK
21F000 - INT 21 - Novell NetWare - WORKSTATION - SET PREFERRED CONNECTION ID
21F001 - INT 21 - Novell NetWare - WORKSTATION - GET PREFERRED CONNECTION ID
21F002 - INT 21 - Novell NetWare - WORKSTATION - GET DEFAULT CONNECTION ID
21F003 - INT 21 - Novell NetWare - PRINT SERVICES - GET LPT CAPTURE STATUS
21F004 - INT 21 - Novell NetWare - WORKSTATION - SET PRIMARY CONNECTION ID
21F005 - INT 21 - Novell NetWare - WORKSTATION - GET PRIMARY CONNECTION ID
21F078 - INT 21 - VIRUS - "Burgler/H" - INSTALLATION CHECK
21F1 - INT 21 - Novell NetWare - CONNECTION SERVICES - FILE SERVER CONNECTION
21F1 - INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB
21F1 - INT 21 - VIRUS - "F1-337" - ???
21F1E9 - INT 21 - VIRUS - "Tremor" - INSTALLATION CHECK
21F2 - INT 21 u - Novell NetWare v3.01+ shell interface - MULTIPLEXOR
21F2 - INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB
21F203 - INT 21 - Novell NetWare - LOG FILE (OLD)
21F204 - INT 21 - Novell NetWare - LOCK FILE SET (OLD)
21F207 - INT 21 - Novell NetWare - CLEAR FILE
21F208 - INT 21 - Novell NetWare - CLEAR FILE SET
21F20A - INT 21 - Novell NetWare - LOCK LOGICAL RECORD SET (OLD)
21F20B - INT 21 - Novell NetWare - CLEAR LOGICAL RECORD
21F20E - INT 21 - Novell NetWare - CLEAR LOGICAL RECORD SET
21F211SF06 - INT 21 - Novell NetWare - GET PRINTER STATUS
21F211SF0A - INT 21 - Novell NetWare - GET PRINTER QUEUE
21F212 - INT 21 - Novell NetWare - GET VOLUME INFO WITH NUMBER
21F214CX0000 - INT 21 - Novell NetWare - GET FILE SERVER DATE AND TIME
21F215SF01 - INT 21 - Novell NetWare - GET BROADCAST MESSAGE (OLD)
21F215SF02 - INT 21 - Novell NetWare - DISABLE BROADCASTS
21F215SF03 - INT 21 - Novell NetWare - ENABLE BROADCASTS
21F215SF08 - INT 21 - Novell NetWare - CHECK PIPE STATUS
21F215SF09 - INT 21 - Novell NetWare - BROADCAST TO CONSOLE
21F215SF0B - INT 21 - Novell NetWare - GET BROADCAST MESSAGE
21F216SF00 - INT 21 - Novell NetWare - SET DIRECTORY HANDLE
21F216SF01 - INT 21 - Novell NetWare - GET DIRECTORY PATH
21F216SF02 - INT 21 - Novell NetWare - SCAN DIRECTORY INFORMATION
21F216SF03 - INT 21 - Novell NetWare - GET EFFECTIVE DIRECTORY RIGHTS (OLD)
21F216SF04 - INT 21 - Novell NetWare - MODIFY MAXIMUM RIGHTS MASK
21F216SF05 - INT 21 - Novell NetWare - GET VOLUME NUMBER
21F216SF06 - INT 21 - Novell NetWare - GET VOLUME NAME
21F216SF0A - INT 21 - Novell NetWare - CREATE DIRECTORY
21F216SF0B - INT 21 - Novell NetWare - DELETE DIRECTORY
21F216SF0C - INT 21 - Novell NetWare - SCAN DIRECTORY FOR TRUSTEES
21F216SF0D - INT 21 - Novell NetWare - ADD TRUSTEE TO DIRECTORY
21F216SF0E - INT 21 - Novell NetWare - DELETE TRUSTEE FROM DIRECTORY
21F216SF0F - INT 21 - Novell NetWare - RENAME DIRECTORY
21F216SF10 - INT 21 - Novell NetWare - PURGE ERASED FILES (OLD)
21F216SF11 - INT 21 - Novell NetWare - RECOVER ERASED FILE (OLD)
21F216SF12 - INT 21 - Novell NetWare - ALLOCATE PERMANENT DIRECTORY HANDLE
21F216SF13 - INT 21 - Novell NetWare - ALLOCATE TEMPORARY DIRECTORY HANDLE
21F216SF14 - INT 21 - Novell NetWare - DEALLOCATE DIRECTORY HANDLE
21F216SF15 - INT 21 - Novell NetWare - GET VOLUME INFO WITH HANDLE
21F216SF16 - INT 21 - Novell NetWare v2+ - ALLOCATE SPECIAL TEMPORARY DIRECTORY HANDLE
21F216SF17 - INT 21 - Novell NetWare - SAVE DIRECTORY HANDLE
21F216SF18 - INT 21 - Novell NetWare - RESTORE DIRECTORY HANDLE
21F216SF19 - INT 21 - Novell NetWare - SET DIRECTORY INFORMATION
21F216SF1A - INT 21 - Novell NetWare - GET PATH NAME OF VOLUME-DIRECTORY NUMBER PAIR
21F216SF1B - INT 21 - Novell NetWare - SCAN SALVAGEABLE FILES (OLD)
21F216SF1C - INT 21 - Novell NetWare - RECOVER SALVAGEABLE FILE (OLD)
21F216SF1D - INT 21 - Novell NetWare - PURGE SALVAGEABLE FILE (OLD)
21F216SF1E - INT 21 - Novell NetWare - SCAN A DIRECTORY
21F216SF1F - INT 21 - Novell NetWare - GET DIRECTORY ENTRY
21F216SF20 - INT 21 - Novell NetWare - SCAN VOLUME'S USER DISK RESTRICTIONS
21F216SF21 - INT 21 - Novell NetWare v3+ - ADD USER DISK SPACE RESTRICTION
21F216SF22 - INT 21 - Novell NetWare - REMOVE USER DISK SPACE RESTRICTIONS
21F216SF23 - INT 21 - Novell NetWare - SCAN DIRECTORY SPACE RESTRICTIONS
21F216SF24 - INT 21 - Novell NetWare v3+ - SET DIRECTORY DISK SPACE RESTRICTION
21F216SF25 - INT 21 - Novell NetWare - SET DIRECTORY/FILE INFORMATION
21F216SF26 - INT 21 - Novell NetWare v3+ - SCAN FILE OR DIRECTORY FOR EXTENDED TRUSTEES
21F216SF27 - INT 21 - Novell NetWare v3+ - ADD EXTENDED TRUSTEE TO DIRECTORY OR FILE
21F216SF28 - INT 21 - Novell NetWare - SCAN DIRECTORY DISK SPACE
21F216SF29 - INT 21 - Novell NetWare v3+ - GET OBJECT DISK USAGE AND RESTRICTIONS
21F216SF2A - INT 21 - Novell NetWare - GET EFFECTIVE RIGHTS
21F216SF2B - INT 21 - Novell NetWare - REMOVE EXTENDED TRUSTEE FROM DIR OR FILE
21F216SF2C - INT 21 - Novell NetWare - GET VOLUME USAGE
21F216SF2D - INT 21 - Novell NetWare - GET DIRECTORY INFORMATION
21F216SF2E - INT 21 - Novell NetWare - RENAME OR MOVE
21F216SF2F - INT 21 - Novell NetWare - GET NAME SPACE INFORMATION
21F216SF30 - INT 21 - Novell NetWare - GET NAME SPACE DIRECTORY ENTRY
21F216SF31 - INT 21 - Novell NetWare - OPEN DATA STREAM
21F216SF32 - INT 21 - Novell NetWare v2.2+ - GET OBJECT EFFECTIVE RIGHTS
21F216SF33 - INT 21 - Novell NetWare v2.2+ - GET EXTENDED VOLUME INFORMATION
21F217SF01 - INT 21 - Novell NetWare - CHANGE USER PASSWORD (OLD)
21F217SF02 - INT 21 - Novell NetWare - GET USER CONNECTION LIST (OLD)
21F217SF0C - INT 21 - Novell NetWare - VERIFY SERIALIZATION
21F217SF0E - INT 21 - Novell NetWare - GET DISK UTILIZATION
21F217SF0F - INT 21 - Novell NetWare - SCAN FILE INFORMATION
21F217SF10 - INT 21 - Novell NetWare - SET FILE INFORMATION
21F217SF11 - INT 21 - Novell NetWare - GET FILE SERVER INFORMATION
21F217SF12 - INT 21 - Novell NetWare - GET NETWORK SERIAL NUMBER
21F217SF13 - INT 21 - Novell NetWare - GET INTERNET ADDRESS (OLD)
21F217SF14 - INT 21 - Novell NetWare - LOGIN OBJECT
21F217SF15 - INT 21 - Novell NetWare - GET OBJECT CONNECTION LIST (OLD)
21F217SF16 - INT 21 - Novell NetWare - GET CONNECTION INFORMATION (OLD)
21F217SF17 - INT 21 - Novell NetWare - GET ENCRYPTION KEY
21F217SF18 - INT 21 - Novell NetWare - LOGIN OBJECT ENCRYPTED
21F217SF1A - INT 21 - Novell NetWare - GET INTERNET ADDRESS
21F217SF1B - INT 21 - Novell NetWare - GET OBJECT CONNECTION LIST
21F217SF1C - INT 21 - Novell NetWare v3+ - GET CONNECTION INFORMATION
21F217SF1D - INT 21 - Novell NetWare v4 - CHANGE CONNECTION STATE
21F217SF1E - INT 21 - Novell NetWare v4 - SET WATCHDOG DELAY INTERVAL
21F217SF1F - INT 21 - Novell NetWare v4 - GET CONNECTION LIST
21F217SF32 - INT 21 - Novell NetWare - CREATE BINDERY OBJECT
21F217SF33 - INT 21 - Novell NetWare - DELETE BINDERY OBJECT
21F217SF34 - INT 21 - Novell NetWare - RENAME BINDERY OBJECT
21F217SF35 - INT 21 - Novell NetWare - GET BINDERY OBJECT ID
21F217SF36 - INT 21 - Novell NetWare - GET BINDERY OBJECT NAME
21F217SF37 - INT 21 - Novell NetWare - SCAN BINDERY OBJECT
21F217SF38 - INT 21 - Novell NetWare - CHANGE BINDERY OBJECT SECURITY
21F217SF39 - INT 21 - Novell NetWare - CREATE PROPERTY
21F217SF3A - INT 21 - Novell NetWare - DELETE PROPERTY
21F217SF3B - INT 21 - Novell NetWare - CHANGE PROPERTY SECURITY
21F217SF3C - INT 21 - Novell NetWare - SCAN PROPERTY
21F217SF3D - INT 21 - Novell NetWare - READ PROPERTY VALUE
21F217SF3E - INT 21 - Novell NetWare - WRITE PROPERTY VALUE
21F217SF3F - INT 21 - Novell NetWare - VERIFY BINDERY OBJECT PASSWORD
21F217SF40 - INT 21 - Novell NetWare - CHANGE BINDERY OBJECT PASSWORD
21F217SF41 - INT 21 - Novell NetWare v2.2+ - ADD OBJECT TO SET
21F217SF42 - INT 21 - Novell NetWare - DELETE BINDERY OBJECT FROM SET
21F217SF43 - INT 21 - Novell NetWare - IS BINDERY OBJECT IN SET?
21F217SF44 - INT 21 - Novell NetWare - CLOSE BINDERY
21F217SF45 - INT 21 - Novell NetWare - OPEN BINDERY
21F217SF46 - INT 21 - Novell NetWare - GET BINDERY ACCESS LEVEL
21F217SF47 - INT 21 - Novell NetWare - SCAN BINDERY OBJECT TRUSTEE PATHS
21F217SF48 - INT 21 - Novell NetWare - GET BINDERY OBJECT ACCESS LEVEL
21F217SF49 - INT 21 - Novell NetWare - IS STATION A MANAGER?
21F217SF4A - INT 21 - Novell NetWare - KEYED VERIFY BINDERY OBJECT PASSWORD
21F217SF4B - INT 21 - Novell NetWare - KEYED CHANGE BINDERY OBJECT PASSWORD
21F217SF4C - INT 21 - Novell NetWare - LIST RELATIONS OF AN OBJECT
21F217SF64 - INT 21 - Novell NetWare v2.1+ - CREATE QUEUE
21F217SF65 - INT 21 - Novell NetWare v2.1+ - DESTROY QUEUE
21F217SF66 - INT 21 - Novell NetWare v2.1+ - READ QUEUE CURRENT STATUS (OLD)
21F217SF67 - INT 21 - Novell NetWare v2.1+ - SET QUEUE CURRENT STATUS (OLD)
21F217SF68 - INT 21 - Novell NetWare v2.1+ - CREATE QUEUE JOB AND FILE (OLD)
21F217SF69 - INT 21 - Novell NetWare v2.1+ - CLOSE FILE AND START QUEUE JOB (OLD)
21F217SF6A - INT 21 - Novell NetWare v2.1+ - REMOVE JOB FROM QUEUE (OLD)
21F217SF6B - INT 21 - Novell NetWare v2.1+ - GET QUEUE JOB LIST (OLD)
21F217SF6C - INT 21 - Novell NetWare v2.1+ - READ QUEUE JOB ENTRY (OLD)
21F217SF6D - INT 21 - Novell NetWare v2.1+ - CHANGE QUEUE JOB ENTRY (OLD)
21F217SF6E - INT 21 - Novell NetWare v2.1+ - CHANGE QUEUE JOB POSITION
21F217SF6F - INT 21 - Novell NetWare v2.1+ - ATTACH QUEUE SERVER TO QUEUE
21F217SF70 - INT 21 - Novell NetWare v2.1+ - DETACH QUEUE SERVER FROM QUEUE
21F217SF71 - INT 21 - Novell NetWare v2.1+ - SERVICE QUEUE JOB AND OPEN FILE
21F217SF72 - INT 21 - Novell NetWare v2.1+ - FINISH SERVICING QUEUE JOB (OLD)
21F217SF73 - INT 21 - Novell NetWare v2.1+ - ABORT SERVICING QUEUE JOB (OLD)
21F217SF74 - INT 21 - Novell NetWare v2.1+ - CHANGE TO CLIENT RIGHTS (OLD)
21F217SF75 - INT 21 - Novell NetWare v2.1+ - RESTORE QUEUE SERVER RIGHTS
21F217SF76 - INT 21 - Novell NetWare - READ QUEUE SERVER CURRENT STATUS (OLD)
21F217SF77 - INT 21 - Novell NetWare - SET QUEUE SERVER CURRENT STATUS
21F217SF78 - INT 21 - Novell NetWare - GET QUEUE JOB FILE SIZE (OLD)
21F217SF79 - INT 21 - Novell NetWare - CREATE QUEUE JOB AND FILE
21F217SF7A - INT 21 - Novell NetWare - READ QUEUE JOB ENTRY
21F217SF7B - INT 21 - Novell NetWare v2.1+ - CHANGE QUEUE JOB ENTRY
21F217SF7D - INT 21 - Novell NetWare - READ QUEUE CURRENT STATUS
21F217SF7E - INT 21 - Novell NetWare - SET QUEUE CURRENT STATUS
21F217SF7F - INT 21 - Novell NetWare - CLOSE FILE AND START QUEUE JOB
21F217SF80 - INT 21 - Novell NetWare - REMOVE JOB FROM QUEUE
21F217SF81 - INT 21 - Novell NetWare - GET QUEUE JOB LIST
21F217SF82 - INT 21 - Novell NetWare v2.1+ - CHANGE JOB PRIORITY
21F217SF83 - INT 21 - Novell NetWare v3.1+ - FINISH SERVICING QUEUE JOB
21F217SF84 - INT 21 - Novell NetWare v3.1+ - ABORT SERVICING QUEUE JOB
21F217SF85 - INT 21 - Novell NetWare v3.1+ - CHANGE TO CLIENT RIGHTS
21F217SF86 - INT 21 - Novell NetWare v3.1+ - READ QUEUE SERVER CURRENT STATUS
21F217SF87 - INT 21 - Novell NetWare v3.1+ - GET QUEUE JOB FILE SIZE
21F217SF96 - INT 21 - Novell NetWare - GET ACCOUNT STATUS
21F217SF97 - INT 21 - Novell NetWare - SUBMIT ACCOUNT CHARGE
21F217SF98 - INT 21 - Novell NetWare - SUBMIT ACCOUNT HOLD
21F217SF99 - INT 21 - Novell NetWare - SUBMIT ACCOUNT NOTE
21F217SFC8 - INT 21 - Novell NetWare - CHECK CONSOLE PRIVILEGES
21F217SFC9 - INT 21 - Novell NetWare - GET FILE SERVER DESCRIPTION STRINGS
21F217SFCA - INT 21 - Novell NetWare - SET FILE SERVER DATE AND TIME
21F217SFCB - INT 21 - Novell NetWare - DISABLE FILE SERVER LOGIN
21F217SFCC - INT 21 - Novell NetWare - ENABLE FILE SERVER LOGIN
21F217SFCD - INT 21 - Novell NetWare - GET FILE SERVER LOGIN STATUS
21F217SFCE - INT 21 - Novell NetWare - PURGE ALL ERASED FILES
21F217SFCF - INT 21 - Novell NetWare - DISABLE TRANSACTION TRACKING
21F217SFD0 - INT 21 - Novell NetWare - ENABLE TRANSACTION TRACKING
21F217SFD1 - INT 21 - Novell NetWare - SEND CONSOLE BROADCAST
21F217SFD2 - INT 21 - Novell NetWare v3+ - CLEAR CONNECTION NUMBER (LOGOUT STATION)
21F217SFD3 - INT 21 - Novell NetWare - DOWN FILE SERVER
21F217SFD4 - INT 21 - Novell NetWare - GET FILE SYSTEM STATISTICS
21F217SFD5 - INT 21 - Novell NetWare - GET TRANSACTION TRACKING STATISTICS
21F217SFD6 - INT 21 - Novell NetWare - GET DISK CACHE STATISTICS
21F217SFD7 - INT 21 - Novell NetWare - GET DRIVE MAPPING TABLE
21F217SFD8 - INT 21 - Novell NetWare - GET PHYSICAL DISK STATISTICS
21F217SFD9 - INT 21 - Novell NetWare - GET DISK CHANNEL STATISTICS
21F217SFDA - INT 21 - Novell NetWare v2.2+ - GET CONNECTION'S TASK INFORMATION
21F217SFDB - INT 21 - Novell NetWare v2.2+ - GET CONNECTION'S OPEN FILES (OLD)
21F217SFDC - INT 21 - Novell NetWare v2.2+ - GET CONNECTIONS USING A FILE (OLD)
21F217SFDD - INT 21 - Novell NetWare - GET PHYSICAL RECORD LOCKS BY CONNECTN AND FILE (OLD)
21F217SFDE - INT 21 - Novell NetWare - GET PHYSICAL RECORD LOCKS BY FILE (OLD)
21F217SFDF - INT 21 - Novell NetWare - GET LOGICAL RECORDS BY CONNECTION (OLD)
21F217SFE0 - INT 21 - Novell NetWare - GET LOGICAL RECORD INFORMATION (OLD)
21F217SFE1 - INT 21 - Novell NetWare - GET CONNECTION'S SEMAPHORES (OLD)
21F217SFE2 - INT 21 - Novell NetWare - GET SEMAPHORE INFORMATION (OLD)
21F217SFE3 - INT 21 - Novell NetWare - GET LAN DRIVER'S CONFIGURATION INFORMATION
21F217SFE5 - INT 21 - Novell NetWare - GET CONNECTION'S USAGE STATISTICS
21F217SFE6 - INT 21 - Novell NetWare - GET OBJECT'S REMAINING DISK SPACE
21F217SFE7 - INT 21 - Novell NetWare - GET FILE SERVER LAN I/O STATISTICS
21F217SFE8 - INT 21 - Novell NetWare - GET FILE SERVER MISC INFORMATION
21F217SFE9 - INT 21 - Novell NetWare - GET VOLUME INFORMATION
21F217SFEA - INT 21 - Novell NetWare v3.11+ - GET CONNECTION'S TASK INFORMATION
21F217SFEB - INT 21 - Novell NetWare v3+ - GET CONNECTION'S OPEN FILES
21F217SFEC - INT 21 - Novell NetWare v3+ - GET CONNECTIONS USING A FILE
21F217SFED - INT 21 - Novell NetWare v3+ - GET PHYSICAL RECORD LOCKS BY CONNECTION AND FILE
21F217SFEE - INT 21 - Novell NetWare v3+ - GET PHYSICAL RECORD LOCKS BY FILE
21F217SFEF - INT 21 - Novell NetWare v3+ - GET LOGICAL RECORDS BY CONNECTION
21F217SFF0 - INT 21 - Novell NetWare v3+ - GET LOGICAL RECORD INFORMATION
21F217SFF1 - INT 21 - Novell NetWare v3+ - GET CONNECTION'S SEMAPHORES
21F217SFF2 - INT 21 - Novell NetWare v3+ - GET SEMAPHORE INFORMATION
21F217SFF3 - INT 21 - Novell NetWare v3+ - MAP DIRECTORY NUMBER TO PATH
21F217SFF4 - INT 21 - Novell NetWare v3+ - CONVERT PATH TO DIRECTORY ENTRY
21F217SFF5 - INT 21 - Novell NetWare - GET FILE SERVER EXTENDED MISC INFORMATION
21F217SFF6 - INT 21 - Novell NetWare - GET VOLUME EXTENDED INFORMATION
21F217SFFE - INT 21 - Novell NetWare v4 - CLEAR CONNECTION NUMBER GREATER THAN 250
21F21B - INT 21 - Novell NetWare - LOCK PHYSICAL RECORD SET (OLD)
21F21E - INT 21 - Novell NetWare - CLEAR PHYSICAL RECORD
21F21F - INT 21 - Novell NetWare - CLEAR PHYSICAL RECORD SET
21F220SF00 - INT 21 - Novell NetWare - OPEN SEMAPHORE (OLD)
21F220SF01 - INT 21 - Novell NetWare - EXAMINE SEMAPHORE (OLD)
21F220SF02 - INT 21 - Novell NetWare - WAIT ON SEMAPHORE (OLD)
21F220SF03 - INT 21 - Novell NetWare - SIGNAL SEMAPHORE (OLD)
21F220SF04 - INT 21 - Novell NetWare - CLOSE SEMAPHORE (OLD)
21F222SF00 - INT 21 - Novell NetWare - TTS IS AVAILABLE
21F222SF01 - INT 21 - Novell NetWare - TTS BEGIN TRANSACTION
21F222SF02 - INT 21 - Novell NetWare - TTS END TRANSACTION
21F222SF03 - INT 21 - Novell NetWare - TTS ABORT TRANSACTION
21F222SF04 - INT 21 - Novell NetWare - TTS TRANSACTION STATUS
21F222SF05 - INT 21 - Novell NetWare - TTS GET APPLICATION THRESHOLDS
21F222SF06 - INT 21 - Novell NetWare - TTS SET APPLICATION THRESHOLDS
21F222SF07 - INT 21 - Novell NetWare - TTS GET WORKSTATION THRESHOLDS
21F222SF08 - INT 21 - Novell NetWare - TTS SET WORKSTATION THRESHOLDS
21F222SF09 - INT 21 - Novell NetWare - TTS GET CONTROL FLAGS
21F222SF0A - INT 21 - Novell NetWare - TTS SET CONTROL FLAGS
21F223SF01 - INT 21 - Novell NetWare v2+ - AFP CREATE DIRECTORY
21F223SF02 - INT 21 - Novell NetWare v2+ - AFP CREATE FILE
21F223SF03 - INT 21 - Novell NetWare v2+ - AFP DELETE FILE
21F223SF04 - INT 21 - Novell NetWare v2+ - AFP GET ENTRY ID FROM FILENAME
21F223SF05 - INT 21 - Novell NetWare v2+ - AFP GET FILE INFORMATION
21F223SF06 - INT 21 - Novell NetWare v2+ - AFP GET ENTRY ID FROM NETWARE HANDLE
21F223SF07 - INT 21 - Novell NetWare v2+ - AFP RENAME
21F223SF08 - INT 21 - Novell NetWare v2+ - AFP OPEN FILE FORK
21F223SF09 - INT 21 - Novell NetWare v2+ - AFP SET FILE INFORMATION
21F223SF0A - INT 21 - Novell NetWare v2+ - AFP SCAN FILE INFORMATION
21F223SF0B - INT 21 - Novell NetWare v2+ - AFP ALLOCATE TEMPORARY DIRECTORY HANDLE
21F223SF0C - INT 21 - Novell NetWare v2+ - AFP GET ENTRY ID FROM PATHNAME
21F223SF0D - INT 21 - Novell NetWare v2+ - AFP 2.0 CREATE DIRECTORY
21F223SF0E - INT 21 - Novell NetWare v2+ - AFP 2.0 CREATE FILE
21F223SF10 - INT 21 - Novell NetWare v2+ - AFP 2.0 SET FILE INFORMATION
21F223SF11 - INT 21 - Novell NetWare v2+ - AFP 2.0 SCAN FILE INFORMATION
21F223SF12 - INT 21 - Novell NetWare v2+ - AFP GET DOS FILENAME FROM ENTRY ID
21F223SF13 - INT 21 - Novell NetWare v2+ - AFP GET MACINTOSH INFORMATION ON DELETED FILE
21F23D - INT 21 - Novell NetWare - COMMIT FILE
21F23E - INT 21 - Novell NetWare - FILE SEARCH INITIALIZE (FindFirst)
21F23F - INT 21 - Novell NetWare - FILE SEARCH CONTINUE (FindNext)
21F242 - INT 21 - Novell NetWare - CLOSE FILE
21F243 - INT 21 - Novell NetWare - CREATE FILE
21F244 - INT 21 - Novell NetWare - FILE SERVICES - ERASE FILE
21F247 - INT 21 - Novell NetWare - GET CURRENT FILE SIZE
21F24A - INT 21 - Novell NetWare - COPY FROM ONE FILE TO ANOTHER
21F24D - INT 21 - Novell NetWare - CREATE NEW FILE
21F24E - INT 21 - Novell NetWare v2+ - ALLOW TASK ACCESS TO FILE
21F256SF01 - INT 21 - Novell NetWare - CLOSE EXTENDED ATTRIBUTE HANDLE
21F256SF02 - INT 21 - Novell NetWare - WRITE EXTENDED ATTRIBUTE
21F256SF03 - INT 21 - Novell NetWare - READ EXTENDED ATTRIBUTE
21F256SF04 - INT 21 - Novell NetWare - ENUMERATE EXTENDED ATTRIBUTES
21F256SF05 - INT 21 - Novell NetWare - DUPLICATE EXTENDED ATTRIBUTES
21F257SF01 - INT 21 - Novell NetWare - OPEN/CREATE FILE OR SUBDIRECTORY
21F257SF02 - INT 21 - Novell NetWare - INITIALIZE SEARCH
21F257SF03 - INT 21 - Novell NetWare - SCAN NAMESPACE ENTRY INFO
21F257SF04 - INT 21 - Novell NetWare - RENAME OR MOVE FILE OR SUBDIRECTORY
21F257SF05 - INT 21 - Novell NetWare - SCAN FILE OR SUBDIRECTORY FOR TRUSTEES
21F257SF06 - INT 21 - Novell NetWare v3+ - GET INFORMATION ABOUT FILE OR DIRECTORY
21F257SF07 - INT 21 - Novell NetWare - MODIFY FILE OR SUBDIRECTORY DOS INFORMATION
21F257SF08 - INT 21 - Novell NetWare - DELETE FILE/DIRECTORY
21F257SF09 - INT 21 - Novell NetWare - SET SHORT DIRECTORY HANDLE
21F257SF0A - INT 21 - Novell NetWare v3+ - ADD TRUSTEE SET TO FILE OR SUBDIRECTORY
21F257SF0B - INT 21 - Novell NetWare - DELETE TRUSTEE
21F257SF0C - INT 21 - Novell NetWare v2+ - ALLOCATE SHORT DIRECTORY HANDLE
21F257SF10 - INT 21 - Novell NetWare - SCAN SALVAGEABLE FILES
21F257SF11 - INT 21 - Novell NetWare - RECOVER SALVAGEABLE FILE
21F257SF12 - INT 21 - Novell NetWare - PURGE SALVAGEABLE FILE
21F257SF13 - INT 21 - Novell NetWare - GET NAMESPACE INFORMATION
21F257SF15 - INT 21 - Novell NetWare - GET PATH STRING FROM SHORT DIRECTORY HANDLE
21F257SF16 - INT 21 - Novell NetWare - GENERATE DIRECTORY BASE AND VOLUME NUMBER
21F257SF17 - INT 21 - Novell NetWare - GET NAME SPACE INFORMATION FORMAT
21F257SF18 - INT 21 - Novell NetWare - GET NAME SPACES LOADED
21F257SF19 - INT 21 - Novell NetWare - WRITE NAME SPACE INFO
21F257SF1A - INT 21 - Novell NetWare - READ EXTENDED NAME SPACE INFO
21F257SF1B - INT 21 - Novell NetWare - WRITE EXTENDED NAME SPACE INFO
21F257SF1C - INT 21 - Novell NetWare - GET NS FULL PATH STRING
21F257SF1D - INT 21 - Novell NetWare - GET EFFECTIVE DIRECTORY RIGHTS
21F258SF01 - INT 21 - Novell NetWare v4+ - GET VOLUME AUDITING STATISTICS
21F258SF02 - INT 21 - Novell NetWare - ADD AUDIT PROPERTY
21F258SF03 - INT 21 - Novell NetWare - LOGIN AS VOLUME AUDITOR
21F258SF04 - INT 21 - Novell NetWare - CHANGE AUDITOR PASSWORD
21F258SF05 - INT 21 - Novell NetWare - CHECK AUDIT ACCESS
21F258SF06 - INT 21 - Novell NetWare - REMOVE AUDIT PROPERTY
21F258SF07 - INT 21 - Novell NetWare - DISABLE AUDITING ON VOLUME
21F258SF08 - INT 21 - Novell NetWare - ENABLE AUDITING ON VOLUME
21F258SF09 - INT 21 - Novell NetWare - IS USER AUDITED?
21F258SF0A - INT 21 - Novell NetWare - READ AUDITING BITMAP
21F258SF0B - INT 21 - Novell NetWare - READ AUDIT CONFIG HEADER
21F258SF0D - INT 21 - Novell NetWare - LOGOUT AS VOLUME AUDITOR
21F258SF0E - INT 21 - Novell NetWare - RESET AUDITING FILE
21F258SF0F - INT 21 - Novell NetWare - RESET AUDIT HISTORY FILE
21F258SF10 - INT 21 - Novell NetWare - WRITE AUDITING BITMAP
21F258SF11 - INT 21 - Novell NetWare - WRITE AUDIT CONFIG HEADER
21F258SF13 - INT 21 - Novell NetWare - GET AUDITING FLAGS
21F258SF14 - INT 21 - Novell NetWare - CLOSE OLD AUDITING FILE
21F258SF15 - INT 21 - Novell NetWare - DELETE OLD AUDITING FILE
21F258SF16 - INT 21 - Novell NetWare - CHECK AUDIT LEVEL TWO ACCESS
21F25ASF01 - INT 21 - Novell NetWare - GET DATA MIGRATION INFO
21F25ASF80 - INT 21 - Novell NetWare - MOVE FILE DATA TO DATA MIGRATION
21F25ASF81 - INT 21 - Novell NetWare - DATA MIGRATION FILE INFORMATION
21F25ASF82 - INT 21 - Novell NetWare - VOLUME DATA MIGRATION STATUS
21F25ASF83 - INT 21 - Novell NetWare - GET MIGRATION OR STATUS INFORMATION
21F25ASF84 - INT 21 - Novell NetWare - DATA MIGRATION SUPPORT MODULE INFORMATION
21F25ASF85 - INT 21 - Novell NetWare - MOVE FILE DATA FROM DATA MIGRATION
21F25ASF86 - INT 21 - Novell NetWare - GET OR SET DEFAULT SUPPORT MODULE
21F268SF01 - INT 21 - Novell NetWare v4+ - GET TREE NAME
21F268SF04 - INT 21 - Novell NetWare v4+ - GET BINDERY CONTEXT
21F268SF05 - INT 21 - Novell NetWare v4+ - MONITOR NDS CONNECTION
21F268SF16 - INT 21 - Novell NetWare v4+ - NDS LIST PARTITIONS
21F268SF35 - INT 21 - Novell NetWare v4+ - NDS GET SERVER NAME AND ADDRESS
21F268SF3D - INT 21 - Novell NetWare v4+ - NDS LOGOUT
21F268SFC8 - INT 21 - Novell NetWare v4+ - GET DS AUDITING STATISTICS
21F269 - INT 21 - Novell NetWare - LOG FILE
21F26A - INT 21 - Novell NetWare - LOCK FILE SET
21F26C - INT 21 - Novell NetWare - LOCK LOGICAL RECORD SET
21F26E - INT 21 - Novell NetWare - LOCK PHYSICAL RECORD SET
21F26FSF00 - INT 21 - Novell NetWare - OPEN SEMAPHORE
21F26FSF01 - INT 21 - Novell NetWare - CLOSE SEMAPHORE
21F26FSF02 - INT 21 - Novell NetWare - WAIT ON SEMAPHORE
21F26FSF03 - INT 21 - Novell NetWare - SIGNAL SEMAPHORE
21F26FSF04 - INT 21 - Novell NetWare - EXAMINE SEMAPHORE
21F272 - INT 21 - Novell NetWare v4+ - GET FILE SERVER UTC TIME
21F27BSF01 - INT 21 - Novell NetWare v4+ - GET CACHE INFORMATION
21F27BSF02 - INT 21 - Novell NetWare v4+ - GET SERVER INFORMATION
21F27BSF04 - INT 21 - Novell NetWare v4+ - GET USER INFORMATION
21F27BSF06 - INT 21 - Novell NetWare v4+ - GET IPX/SPX Information
21F27BSF08 - INT 21 - Novell NetWare v4+ - GET CPU INFORMATION
21F27BSF09 - INT 21 - Novell NetWare v4+ - GET VOLUME SWITCH INFORMATION
21F27BSF0A - INT 21 - Novell NetWare v4+ - GET LOADED NLMs
21F27BSF0B - INT 21 - Novell NetWare v4+ - GET NLM INFORMATION
21F27BSF0D - INT 21 - Novell NetWare v4+ - GET OS VERSION INFORMATION
21F27BSF14 - INT 21 - Novell NetWare v4+ - GET ACTIVE LAN BOARD LIST
21F27BSF15 - INT 21 - Novell NetWare v4+ - GET LAN CONFIGURATION
21F27BSF16 - INT 21 - Novell NetWare v4+ - GET LAN COMMON COUNTERS
21F27BSF29 - INT 21 - Novell NetWare v4+ - GET PROTOCOL STACK BY BOARD
21F27BSF33 - INT 21 - Novell NetWare v4+ - GET ROUTER INFO
21F27BSF35 - INT 21 - Novell NetWare v4+ - GET KNOWN NETWORKS INFO
21F27BSF38 - INT 21 - Novell NetWare v4+ - GET KNOWN SERVERS INFO
21F27BSF3C - INT 21 - Novell NetWare v4+ - GET SERVER SET COMMANDS INFO
21F27BSF3D - INT 21 - Novell NetWare v4+ - GET SERVER SET CATEGORIES
21F2AA - INT 21 - VIRUS - "PcVrsDs" - INSTALLATION CHECK
21F3 - INT 21 - Novell NetWare - FILE SERVICES - FILE SERVER FILE COPY
21F3 - INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB
21F3 - INT 21 - VIRUS - "Carfield" - INSTALLATION CHECK
21F400 - INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS
21F5 - INT 21 - DoubleDOS - OTHER PROGRAM STATUS
21F7 - INT 21 - VIRUS - "GP1" - INSTALLATION CHECK
21F8 - INT 21 - DOS v2.11-2.13 - SET OEM INT 21 HANDLER
21F8 - INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS
21F9 - INT 21 - DOS v2.11-2.13 - OEM FUNCTION
21F9 - INT 21 - DoubleDOS - SET TIMESHARING PRIORITY
21F9 - INT 21 - VIRUS - "Satans-Bug" - INSTALLATION CHECK
21FA - INT 21 - DOS v2.11-2.13 - OEM FUNCTION
21FA - INT 21 - DoubleDOS - TURN OFF TASK SWITCHING
21FA - INT 21 - VIRUS - "Cinderella 2" - INSTALLATION CHECK
21FA--DX5945 - INT 21 U - PC Tools v7+ VDEFEND, VSAFE, VWATCH - API
21FAFF - INT 21 U - IBM PC-DOS - KEYBGK - SELECT KEYBOARD LAYOUT
21FB - INT 21 - DOS v2.11-2.13 - OEM FUNCTION
21FB - INT 21 - DoubleDOS - TURN ON TASK SWITCHING
21FB - INT 21 - VIRUS - "Cinderella" - INSTALLATION CHECK
21FB0A - INT 21 - VIRUS - "dBASE" - INSTALLATION CHECK
21FBA0 - INT 21 - VIRUS - "Groove" - INSTALLATION CHECK
21FBFB - INT 21 - VIRUS - "Dir.1367" - INSTALLATION CHECK
21FC - INT 21 - DOS v2.11-2.13 - OEM FUNCTION
21FC - INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS
21FC - INT 21 - VIRUS - "Troi" - INSTALLATION CHECK
21FC03 - INT 21 - VIRUS - "Invisible" - INSTALLATION CHECK
21FD - INT 21 - DOS v2.11-2.13 - OEM FUNCTION
21FD - INT 21 - VIRUS - "Border" - INSTALLATION CHECK
21FD12BX3457 - INT 21 - Gravis UltraSound - MegaEm/MEGA_EM - INSTALLATION CHECK
21FDAC - INT 21 - VIRUS - "Delwin" - INSTALLATION CHECK
21FE - INT 21 - DOS v2.11-2.13 - OEM FUNCTION
21FE - INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS
21FE - INT 21 - VIRUS - "483" - INSTALLATION CHECK
21FE01 - INT 21 - VIRUS - "Flip" - INSTALLATION CHECK
21FE02 - INT 21 - VIRUS - "2468"/"Tequila" - INSTALLATION CHECK
21FE03 - INT 21 - VIRUS - "2468"/"Tequila" - DISPLAY VIRUS MESSAGE
21FEAD - INT 21 - VIRUS - "Shifting Objective" - INSTALLATION CHECK
21FEDC - INT 21 - PCMag PCMANAGE/DCOMPRES - INSTALLATION CHECK
21FEDC - INT 21 - VIRUS - "Black Monday" - INSTALLATION CHECK
21FEFE - INT 21 - VIRUS - "CIDER" - INSTALLATION CHECK
21FF - INT 21 - DOS v2.11-2.13 - OEM FUNCTION
21FF - INT 21 - CED (Command EDitor) - INSTALLABLE COMMANDS
21FF - INT 21 - DJ GO32.EXE 80386+ DOS extender - DOS EXTENSIONS
21FF - INT 21 - DOSED.COM - INSTALLATION CHECK
21FF - INT 21 - VIRUS - "Sunday", "Tumen 0.5", "Hero" - INSTALLATION CHECK
21FF - INT 21 UP - Rational Systems DOS/4GW - API
21FF--DH00 - INT 21 UP - Rational Systems DOS/4GW - GET VERSION???
21FF--DH02 - INT 21 UP - Rational Systems DOS/4GW - SET ???
21FF--DH05 - INT 21 UP - Rational Systems DOS/4GW - ???
21FF--DH06 - INT 21 UP - Rational Systems DOS/4GW - ???
21FF--DH07 - INT 21 UP - Rational Systems DOS/4GW - ???
21FF--DH08 - INT 21 UP - Rational Systems DOS/4GW - ???
21FF--DH09 - INT 21 UP - Rational Systems DOS/4GW - GET ???
21FF--DH0A - INT 21 UP - Rational Systems DOS/4GW - ???
21FF--DH0B - INT 21 UP - Rational Systems DOS/4GW - ???
21FF--DH0C - INT 21 UP - Rational Systems DOS/4GW - GET/SET ???
21FF--DH0D - INT 21 UP - Rational Systems DOS/4GW - ???
21FF--DH0E - INT 21 UP - Rational Systems DOS/4GW - ???
21FF--DH0F - INT 21 UP - Rational Systems DOS/4GW - ???
21FF--DH10 - INT 21 UP - Rational Systems DOS/4GW - ???
21FF--DH11 - INT 21 UP - Rational Systems DOS/4GW - NOP
21FF--DH12 - INT 21 UP - Rational Systems DOS/4GW - EXCHANGE ??? POINTERS
21FF--DH13 - INT 21 UP - Rational Systems DOS/4GW - ???
21FF--DH14 - INT 21 UP - Rational Systems DOS/4GW - ???
21FF--DH15 - INT 21 UP - Rational Systems DOS/4GW - GET ??? FUNCTIONS
21FF--DH16 - INT 21 UP - Rational Systems DOS/4GW - GET ???
21FF--DH17 - INT 21 UP - Rational Systems DOS/4GW - ???
21FF00 - INT 21 - TopWare Network OS v5.10+ - GET SYSTEM INFORMATION
21FF00DX0078 - INT 21 - Rational Systems DOS/4G - INSTALLATION CHECK
21FF01 - INT 21 - VIRUS - "Drop" - INSTALLATION CHECK
21FF04 - INT 21 - TopWare Network OS v5.10+ - GET/SET DEFAULT FILE PROTECTION ATTRIBS
21FF0F - INT 21 - FLU_SHOT+ v1.83 - INSTALLATION CHECK
21FF10 - INT 21 - VIRUS - "Twins" - INSTALLATION CHECK
21FF80DHFF - INT 21 - TopWare Network OS v5.10+ - SEND MESSAGE
21FF82 - INT 21 - TopWare Network OS v5.10+ - GET STATION ADDRESS
21FF8C - INT 21 - TopWare Network OS v5.10+ - GET STATUS OF TopShow/Emulated FUNCTION
21FF8D - INT 21 - TopWare Network OS v5.10+ - CALL TopShow FUNCTION
21FF8E - INT 21 - TopWare Network OS v5.10+ - CANCEL TopShow FUNCTION
21FF91 - INT 21 - TopWare Network OS v5.10+ - GET FILE SERVER STATION NUMBER
21FF97 - INT 21 - TopWare Network OS v5.10+ - GET MAXIMUM STATION NUMBER (server only)
21FF98 - INT 21 - TopWare Network OS v5.10+ - GET MAXIMUM FILE NUMBER (server only)
21FF9A - INT 21 - TopWare Network OS v5.10+ - RECEIVE OF USER-DEFINED PACKETS
21FF9F - INT 21 - TopWare Network OS v5.10+ - ENABLE/DISABLE TopTerm SERVICE
21FFB0 - INT 21 - TopWare Network OS v5.10+ - GET SPOOLER PRINTING PRIORITY
21FFB1 - INT 21 - TopWare Network OS v5.10+ - SET SPOOLER PRINTING PRIORITY
21FFB3 - INT 21 - TopWare Network OS v5.10+ - GET DEFAULT START-OF-JOB FORMFEED STATUS
21FFB4 - INT 21 - TopWare Network OS v5.10+ - SET DEFAULT START-OF-JOB FORMFEED STATUS
21FFBB - INT 21 - TopWare Network OS v5.10+ - GET PRINTER SERVER STATION ADDRESS
21FFBC - INT 21 - TopWare Network OS v5.10+ - CANCEL TopShow FUNCTION
21FFBD - INT 21 - TopWare Network OS v5.10+ - GET CURRENT AUTOPRINT TIME
21FFBE - INT 21 - TopWare Network OS v5.10+ - SET AUTOPRINT TIME
21FFBF - INT 21 - TopWare Network OS v5.10+ - GET LOGON USER INFORMATION
21FFC0 - INT 21 - TopWare Network OS v5.10+ - GET DEFAULT END-OF-JOB FORMFEED STATUS
21FFC1 - INT 21 - TopWare Network OS v5.10+ - SET DEFAULT END-OF-JOB FORMFEED STATUS
21FFC2 - INT 21 - TopWare Network OS v5.10+ - GET DEFAULT COPIES OF SPOOLING FILE
21FFC3 - INT 21 - TopWare Network OS v5.10+ - GET SHARING STATUS OF PRINTER SERVER
21FFC4 - INT 21 - TopWare Network OS v5.10+ - GET/SET LPT PORT ON PRINT SERVER
21FFC6 - INT 21 - TopWare Network OS v5.10+ - SET DEFAULT PRINT FILE HEADER
21FFC7 - INT 21 - TopWare Network OS v5.10+ - SET DEFAULT PRINT COPIES
21FFC8 - INT 21 - TopWare Network OS v5.10+ - GET DEFAULT PRINT FILE HEADER STATUS
21FFC9 - INT 21 - TopWare Network OS v5.10+ - SET PRINTER SHARING
21FFCA - INT 21 - TopWare Network OS v5.10+ - MOVE FILE FROM ONE PRINT SERVER TO ANOTHER
21FFCB - INT 21 - TopWare Network OS v5.10+ - DELETE FILE FROM SPOOLING QUEUE
21FFCC - INT 21 - TopWare Network OS v5.10+ - GET PRINT SERVER'S SPOOLING QUEUE STATUS
21FFCD - INT 21 - TopWare Network OS v5.10+ - GET STATUS OF ALL PRINT SERVERS
21FFCF - INT 21 - TopWare Network OS v5.10+ - CALL TopLook FUNCTION
21FFD6 - INT 21 - TopWare Network OS v5.10+ - GET KEYCARD SERIAL NUMBER AND MAX USERS
21FFD7 - INT 21 - TopWare Network OS v5.10+ - GET NETWORK PROTECTION ATTRIBUTES STATUS
21FFE3DL00 - INT 21 - TopWare Network OS v5.10+ - INITIATE ACCESS TO SPECIFIC PACKET TYPE
21FFE3DL01 - INT 21 - TopWare Network OS v5.10+ - END ACCESS TO SPECIFIC PACKET TYPE
21FFE3DL02 - INT 21 - TopWare Network OS v5.10+ - SEND PACKET
21FFE3DL03 - INT 21 - TopWare Network OS v5.10+ - GET LOCAL NETWORK INTERFACE ADDRESS
21FFFE - INT 21 - VIRUS - "08/15"/"Many Fingers" - INSTALLATION CHECK
21FFFEBX0000 - INT 21 - VIRUS - "Anti-Thunderbyte/LEMMING" - INSTALLATION CHECK
21FFFF - INT 21 - VIRUS - "Ontario", "Year 1992"/"B1M92" - INSTALLATION CHECK
21FFFFCX0000 - INT 21 - VIRUS - "Revenge" - INSTALLATION CHECK
INT 21 - COMTROL HOSTESS i/ISA DEBUGGER - GET SEGMENT FOR CONTROL PROGRAM USE ??? Return: AX = first segment available for control program use SeeAlso: INT 20"COMTROL",INT 22"COMTROL"Top
INT 21 - DOS 1+ - TERMINATE PROGRAM AH = 00h CS = PSP segment Notes: Microsoft recommends using INT 21/AH=4Ch for DOS 2+ this function sets the program's return code (ERRORLEVEL) to 00h execution continues at the address stored in INT 22 after DOS performs whatever cleanup it needs to do (restoring the INT 22,INT 23,INT 24 vectors from the PSP assumed to be located at offset 0000h in the segment indicated by the stack copy of CS, etc.) if the PSP is its own parent, the process's memory is not freed; if INT 22 additionally points into the terminating program, the process is effectively NOT terminated not supported by MS Windows 3.0 DOSX.EXE DOS extender SeeAlso: AH=26h,AH=31h,AH=4Ch,INT 20,INT 22Top
INT 21 - DOS 1+ - READ CHARACTER FROM STANDARD INPUT, WITH ECHO AH = 01h Return: AL = character read Notes: ^C/^Break are checked, and INT 23 executed if read ^P toggles the DOS-internal echo-to-printer flag ^Z is not interpreted, thus not causing an EOF if input is redirected character is echoed to standard output standard input is always the keyboard and standard output the screen under DOS 1.x, but they may be redirected under DOS 2+ SeeAlso: AH=06h,AH=07h,AH=08h,AH=0AhTop
INT 21 - VIRUS - "Susan" - INSTALLATION CHECK AX = 010Fh Return: AX = 7553h ("Su") if resident SeeAlso: INT 16/AH=DDh"VIRUS",INT 21/AX=0B56hTop
INT 21 - DOS 1+ - WRITE CHARACTER TO STANDARD OUTPUT AH = 02h DL = character to write Return: AL = last character output (despite the official docs which state nothing is returned) (at least DOS 2.1-7.0) Notes: ^C/^Break are checked, and INT 23 executed if pressed standard output is always the screen under DOS 1.x, but may be redirected under DOS 2+ the last character output will be the character in DL unless DL=09h on entry, in which case AL=20h as tabs are expanded to blanks if standard output is redirected to a file, no error checks (write- protected, full media, etc.) are performed SeeAlso: AH=06h,AH=09hTop
INT 21 - DOS 1+ - READ CHARACTER FROM STDAUX AH = 03h Return: AL = character read Notes: keyboard checked for ^C/^Break, and INT 23 executed if detected STDAUX is usually the first serial port SeeAlso: AH=04h,INT 14/AH=02h,INT E0/CL=03hTop
INT 21 - DOS 1+ - WRITE CHARACTER TO STDAUX AH = 04h DL = character to write Notes: keyboard checked for ^C/^Break, and INT 23 executed if detected STDAUX is usually the first serial port if STDAUX is busy, this function will wait until it becomes free SeeAlso: AH=03h,INT 14/AH=01h,INT E0/CL=04hTop
INT 21 - DOS 1+ - WRITE CHARACTER TO PRINTER AH = 05h DL = character to print Notes: keyboard checked for ^C/^Break, and INT 23 executed if detected STDPRN is usually the first parallel port, but may be redirected under DOS 2+ if the printer is busy, this function will wait SeeAlso: INT 17/AH=00hTop
INT 21 - DOS 1+ - DIRECT CONSOLE OUTPUT AH = 06h DL = character (except FFh) Return: AL = character output (despite official docs which state nothing is returned) (at least DOS 2.1-7.0) Notes: does not check ^C/^Break writes to standard output, which is always the screen under DOS 1.x, but may be redirected under DOS 2+ SeeAlso: AH=02h,AH=09hTop
INT 21 - DOS 1+ - DIRECT CONSOLE INPUT AH = 06h DL = FFh Return: ZF set if no character available AL = 00h ZF clear if character available AL = character read Notes: ^C/^Break are NOT checked if the returned character is 00h, the user pressed a key with an extended keycode, which will be returned by the next call of this function this function reads from standard input, which is always the keyboard under DOS 1.x, but may be redirected under DOS 2+ although the return of AL=00h when no characters are available is not documented, some programs rely on this behavior SeeAlso: AH=0BhTop
INT 21 - DOS 1+ - DIRECT CHARACTER INPUT, WITHOUT ECHO AH = 07h Return: AL = character read from standard input Notes: does not check ^C/^Break standard input is always the keyboard under DOS 1.x, but may be redirected under DOS 2+ if the interim console flag is set (see AX=6301h), partially-formed double-byte characters may be returned SeeAlso: AH=01h,AH=06h,AH=08h,AH=0AhTop
INT 21 - DOS 1+ - CHARACTER INPUT WITHOUT ECHO AH = 08h Return: AL = character read from standard input Notes: ^C/^Break are checked, and INT 23 executed if detected standard input is always the keyboard under DOS 1.x, but may be redirected under DOS 2+ if the interim console flag is set (see AX=6301h), partially-formed double-byte characters may be returned SeeAlso: AH=01h,AH=06h,AH=07h,AH=0Ah,AH=64h"DOS 3.2+"Top
INT 21 - DOS 1+ - WRITE STRING TO STANDARD OUTPUT AH = 09h DS:DX -> '$'-terminated string Return: AL = 24h (the '$' terminating the string, despite official docs which state that nothing is returned) (at least DOS 2.1-7.0 and NWDOS) Notes: ^C/^Break are checked, and INT 23 is called if either pressed standard output is always the screen under DOS 1.x, but may be redirected under DOS 2+ under the FlashTek X-32 DOS extender, the pointer is in DS:EDX SeeAlso: AH=02h,AH=06h"OUTPUT"Top
INT 21 - DOS 1+ - BUFFERED INPUT AH = 0Ah DS:DX -> buffer (see #01344) Return: buffer filled with user input Notes: ^C/^Break are checked, and INT 23 is called if either detected reads from standard input, which may be redirected under DOS 2+ if the maximum buffer size (see #01344) is set to 00h, this call returns immediately without reading any input SeeAlso: AH=0Ch,INT 2F/AX=4810h Format of DOS input buffer: Offset Size Description (Table 01344) 00h BYTE maximum characters buffer can hold 01h BYTE (call) number of chars from last input which may be recalled (ret) number of characters actually read, excluding CR 02h N BYTEs actual characters read, including the final carriage returnTop
INT 21 - WCED v1.6+ - INSTALLATION CHECK AX = 0A00h DS:DX -> 6-byte buffer whose first two bytes must be 00h Return: buffer offset 02h-05h filled with "Wced" if installed Program: WCED is a free command-line editor and history utility by Stuart Russell SeeAlso: AH=FFh"CED"Top
INT 21 - DOS 1+ - GET STDIN STATUS AH = 0Bh Return: AL = status 00h if no character available FFh if character is available Notes: ^C/^Break are checked, and INT 23 is called if either pressed standard input is always the keyboard under DOS 1.x, but may be redirected under DOS 2+ if the interim console flag is set (see AX=6301h), this function returns AL=FFh if a partially-formed double-byte character is available SeeAlso: AH=06h"INPUT",AX=4406hTop
INT 21 - VIRUS - "Perfume" - INSTALLATION CHECK AX = 0B56h Return: AX = 4952h if resident SeeAlso: AX=0D20h,INT 12/AX=4350h/BX=4920h,INT 13/AH=F2h,INT 21/AX=010FhTop
INT 21 - DOS 1+ - FLUSH BUFFER AND READ STANDARD INPUT AH = 0Ch AL = STDIN input function to execute after flushing buffer other registers as appropriate for the input function Return: as appropriate for the specified input function Note: if AL is not one of 01h,06h,07h,08h, or 0Ah, the buffer is flushed but no input is attempted SeeAlso: AH=01h,AH=06h"INPUT",AH=07h,AH=08h,AH=0AhTop
INT 21 - DOS 1+ - DISK RESET AH = 0Dh Return: (DOS 6 only) CF clear (earlier versions preserve CF) Notes: This function writes all modified disk buffers to disk, but does not update the directory information (that is only done when files are closed or a SYNC call is issued) SeeAlso: AX=5D01h,AX=710Dh,INT 13/AH=00h,INT 2F/AX=1120hTop
INT 21 - VIRUS - "Crazy Imp" - INSTALLATION CHECK AX = 0D20h Return: AX = 1971h if resident SeeAlso: AX=0B56h,AX=1812h,AX=2C2Ch,AX=710Dh,AH=30h/DX=ABCDhTop
INT 21 - DOS 1+ - SELECT DEFAULT DRIVE AH = 0Eh DL = new default drive (00h = A:, 01h = B:, etc) Return: AL = number of potentially valid drive letters Notes: under Novell NetWare, the return value is always 32, the number of drives that NetWare supports under DOS 3.0+, the return value is the greatest of 5, the value of LASTDRIVE= in CONFIG.SYS, and the number of drives actually present on a DOS 1.x/2.x single-floppy system, AL returns 2 since the floppy may be accessed as either A: or B: otherwise, the return value is the highest drive actually present DOS 1.x supports a maximum of 16 drives, 2.x a maximum of 63 drives, and 3+ a maximum of 26 drives under Novell DOS 7, this function returns the correct LASTDRIVE value even when the undocumented LASTDRIVE=27..32 directive was used in CONFIG.SYS "parse FCB" (see AH=29h) can be used to determine whether a drive letter is valid SeeAlso: AH=19h,AH=3Bh,AH=DBhTop
INT 21 U - Novell DOS 7 - SDRes v27.03 - INSTALLATION CHECK AH = 0Eh DL = ADh Return: AL = BAh if installed Program: SDRes is the resident portion of the Search&Destroy antiviral by Fifth Generation Systems, as bundled with Novell DOS 7 Note: SDRes will terminate programs which test for the presence of viruses using interrupt-based installation calls, saying that the program may be infected SeeAlso: AH=0Eh/DL=AEh,AH=0Eh/DL=AFh,AH=4Ah/BX=00B6h,INT 13/AX=A759hTop
INT 21 U - Novell DOS 7 - SDRes v27.03 - CLEAR ??? FLAG AH = 0Eh DL = AEh SeeAlso: AH=0Eh/DL=ADh,AH=0Eh/DL=AFh,INT 13/AX=A759hTop
INT 21 U - Novell DOS 7 - SDRes v27.03 - SET ??? FLAG AH = 0Eh DL = AFh SeeAlso: AH=0Eh/DL=ADh,AH=0Eh/DL=AEh,INT 13/AX=A759hTop
INT 21 - DOS 1+ - OPEN FILE USING FCB AH = 0Fh DS:DX -> unopened File Control Block (see #01345,#01346) Return: AL = status 00h successful FFh file not found or access denied Notes: (DOS 3.1+) file opened for read/write in compatibility mode an unopened FCB has the drive, filename, and extension fields filled in and all other bytes cleared not supported by MS Windows 3.0 DOSX.EXE DOS extender DR DOS checks password attached with AX=4303h (FAT32 drive) this function will only succeed for creating a volume label; FAT32 does not support FCBs for file I/O BUG: APPEND for DOS 3.3+ corrupts DX if the file is not found SeeAlso: AH=10h,AH=16h,AH=3Dh,AX=4303h Format of File Control Block: Offset Size Description (Table 01345) 00h BYTE drive number (0 = default, 1 = A, etc) FFh is not allowed (signals extended FCB, see #01346) 01h 8 BYTEs blank-padded file name 09h 3 BYTEs blank-padded file extension 0Ch WORD current block number 0Eh WORD logical record size 10h DWORD file size 14h WORD date of last write (see #01666 at AX=5700h) 16h WORD time of last write (see #01665 at AX=5700h) (DOS 1.1+) 18h 8 BYTEs reserved (see #01347,#01348,#01349,#01350,#01351) 20h BYTE record within current block 21h DWORD random access record number (if record size is > 64 bytes, high byte is omitted) SeeAlso: #01346 Format of Extended File Control Block (XFCB): Offset Size Description (Table 01346) 00h BYTE FFh signature for extended FCB 01h 5 BYTEs reserved 06h BYTE file attribute if extended FCB 07h 36 BYTEs standard FCB (all offsets are shifted by seven bytes) SeeAlso: #01246 Format of FCB reserved field for DOS 1.0: Offset Size Description (Table 01347) 16h WORD location in directory (if high byte = FFh, low byte is device ID) 18h WORD number of first cluster in file 1Ah WORD current absolute cluster number on disk 1Ch WORD current relative cluster number within file (0 = first cluster of file, 1 = second cluster, etc.) 1Eh BYTE dirty flag (00h = not dirty) 1Fh BYTE unused Format of FCB reserved field for DOS 1.10-1.25: Offset Size Description (Table 01348) 18h BYTE bit 7: set if logical device bit 6: not dirty bits 5-0: disk number or logical device ID 19h WORD starting cluster number on disk 1Bh WORD current absolute cluster number on disk 1Dh WORD current relative cluster number within file 1Fh BYTE unused Format of FCB reserved field for DOS 2.x: Offset Size Description (Table 01349) 18h BYTE bit 7: set if logical device bit 6: set if open??? bits 5-0: ??? 19h WORD starting cluster number on disk 1Bh WORD ??? 1Dh BYTE ??? 1Eh BYTE ??? 1Fh BYTE ??? Format of FCB reserved field for DOS 3.x: Offset Size Description (Table 01350) 18h BYTE number of system file table entry for file 19h BYTE attributes bits 7,6: 00 = SHARE.EXE not loaded, disk file 01 = SHARE.EXE not loaded, character device 10 = SHARE.EXE loaded, remote file 11 = SHARE.EXE loaded, local file or device bits 5-0: low six bits of device attribute word ---SHARE.EXE loaded, local file--- 1Ah WORD starting cluster of file on disk 1Ch WORD (DOS 3.x) offset within SHARE of sharing record (see #01637 at AH=52h) 1Eh BYTE file attribute 1Fh BYTE ??? ---SHARE.EXE loaded, remote file--- 1Ah WORD number of sector containing directory entry (see #01352) 1Ch WORD relative cluster within file of last cluster accessed 1Eh BYTE absolute cluster number of last cluster accessed 1Fh BYTE ??? ---SHARE.EXE not loaded--- 1Ah BYTE (low byte of device attribute word AND 0Ch) OR open mode 1Bh WORD starting cluster of file 1Dh WORD number of sector containing directory entry (see #01352) 1Fh BYTE number of directory entry within sector Note: if FCB opened on character device, DWORD at 1Ah is set to the address of the device driver header, then the BYTE at 1Ah is overwritten. SeeAlso: #01646 Format of FCB reserved field for DOS 5.0: Offset Size Description (Table 01351) 18h BYTE number of system file table entry for file 19h BYTE attributes bits 7,6: 00 = SHARE.EXE not loaded, disk file 01 = SHARE.EXE not loaded, character device 10 = SHARE.EXE loaded, remote file 11 = SHARE.EXE loaded, local file or device bits 5-0: low six bits of device attribute word ---SHARE.EXE loaded, local file--- 1Ah WORD starting cluster of file on disk 1Ch WORD unique sequence number of sharing record 1Eh BYTE file attributes 1Fh BYTE unused??? ---SHARE.EXE loaded, remote file--- 1Ah WORD network handle 1Ch DWORD network ID ---SHARE not loaded, local device--- 1Ah DWORD pointer to device driver header (see #01646) 1Eh 2 BYTEs unused??? ---SHARE not loaded, local file--- 1Ah BYTE extra info bit 7: read-only attribute from SFT bit 6: archive attribute from SFT bits 5-0: high bits of sector number 1Bh WORD starting cluster of file 1Dh WORD low word of sector number containing directory entry (see #01352) 1Fh BYTE number of directory entry within sectorTop
INT 21 - DOS 1+ - CLOSE FILE USING FCB AH = 10h DS:DX -> File Control Block (see #01345) Return: AL = status 00h successful FFh failed Notes: a successful close forces all disk buffers used by the file to be written and the directory entry to be updated not supported by MS Windows 3.0 DOSX.EXE DOS extender SeeAlso: AH=0Fh,AH=16h,AH=3EhTop
INT 21 - DOS 1+ - FIND FIRST MATCHING FILE USING FCB AH = 11h DS:DX -> unopened FCB (see #01345), may contain '?' wildcards Return: AL = status 00h successful [DTA] unopened FCB for first matching file FFh no matching filename, or bad FCB Notes: the type of the returned FCB depends on whether the input FCB was a normal or an extended FCB the data returned in the DTA (disk transfer area) is actually the drive number (or extended FCB header and drive number) followed by the file's directory entry (see #01352); this format happens to be compatible with an unopened FCB for extended FCBs with search attribute 08h, the volume label (if any) will be returned even if the current directory is not the root dir. DOS 3.0+ also allows the '*' wildcard the search FCB at DS:DX must not be modified if AH=12h will be used to continue searching; DOS 3.3 has set the following parts of the FCB: 0Ch BYTE ??? 0Dh WORD directory entry number of matching file 0Fh WORD cluster number of current directory 11h 4 BYTEs ??? 15h BYTE drive number (1=A:) this function is used by many copy protection schemes to obtain the starting cluster of a file BUG: under Windows95, if a .EXE program ("MZ" header) rather than a true .COM calls this function from a DOS box, the ten bytes of the directory entry from 0Ch to 15h may be filled with zeros rather than the additional file times SeeAlso: AH=12h,AH=1Ah,AH=4Eh,INT 2F/AX=111Bh Format of DOS directory entry: Offset Size Description (Table 01352) 00h 8 BYTEs blank-padded filename first character is set to E5h for deleted files (05h for pending delete files under Novell DOS / OpenDOS) 08h 3 BYTEs blank-padded file extension 0Bh BYTE attributes 0Ch 10 BYTEs (MS-DOS 1.0-6.22) reserved (DR DOS) used to store file password / owner (see #01354) (see also INT 21/AX=4302h) (Novell DOS 7) DELWATCH data (see #01354) (MS-DOS 7/Windows95) additional file times (see #01353) 16h WORD time of creation or last update (see #01665 at AX=5700h) 18h WORD date of creation or last update (see #01666 at AX=5700h) 1Ah WORD starting cluster number (see also AX=440Dh/CX=0871h) (may not be set in INT 21/AH=11h return data for FAT32 drives) 1Ch DWORD file size SeeAlso: #01355,#02628,#02629 Format of MS-DOS 7/Windows95 additional file times: Offset Size Description (Table 01353) 00h BYTE reserved 01h BYTE 10-millisecond units past creation time below 02h WORD file creation time 04h WORD file creation date 06h WORD last-access date 08h WORD (FAT32) high word of starting cluster number Note: this data is stored beginning at offset 0Ch in a standard directory entry SeeAlso: #01352 Format of DR DOS 6/Novell DOS 7 additional file information: Offset Size Description (Table 01354) 0Ch BYTE reserved (00h) (DOSPLUS v1.2) user-defined attributes for CP/M compatibility (bit 7 = F1,...,bit 4 = F4, bits 3-0 reserved (0)) 0Dh BYTE first character of original filename for deleted file 0Eh WORD encrypted file/directory password 10h WORD reserved (00h) (Novell DOS 7 DELWATCH) original file time cleared when file is undeleted or purged 12h WORD (DR DOS 6) file owner ID (Novell DOS 7 DELWATCH) original file date cleared when file is undeleted or purged 14h WORD single/multiuser file/directory access rights (see AX=4302h) ---deleted files--- 16h WORD (Novell DOS 7 DELWATCH) time of deletion 18h WORD (Novell DOS 7 DELWATCH) date of deletion Note: offsets are within the full directory entry SeeAlso: #01352 Format of MS-DOS 7/Windows95 long-filename directory entry: Offset Size Description (Table 01355) 00h BYTE LFN record sequence and flags bits 5-0: sequence number bit 6: set if last long-filename record for file bit 7: set if file deleted 01h 10 BYTEs long filename, first part 0Bh BYTE 0Fh (otherwise impossible file attribute, used as signature) 0Ch BYTE reserved??? (00h) 0Dh BYTE checksum for short filename 0Eh 12 BYTEs long filename, second part 1Ah WORD first cluster number (always 0000h for LFN records) 1Ch 4 BYTEs long filename, third part Notes: long-filename entries are always stored in the directory just prior to the short-name entry for a file multiple LFN records are used if the long filename does not fit into a single record the short-filename checksum byte is computed by adding up the eleven bytes of the short filename, rotating the intermediate sum right one bit before adding the next character the long filename is encoded as 16-bit Unicode characters; for most filenames, this appears in the directory as the ASCII character followed by 00h SeeAlso: #01352,INT 21/AX=5704h,INT 21/AH=71hTop
INT 21 - DOS 1+ - FIND NEXT MATCHING FILE USING FCB AH = 12h DS:DX -> unopened FCB (see #01345) Return: AL = status 00h successful Disk Transfer Area filled with unopened FCB FFh no more matching filenames Note: (see AH=11h) assumes that successful FindFirst executed on search FCB before call SeeAlso: AH=1Ah,AH=4Fh,INT 2F/AX=111ChTop
INT 21 - DOS 1+ - DELETE FILE USING FCB AH = 13h DS:DX -> unopened FCB (see #01345), filename filled with template for deletion ('?' wildcards allowed) Return: AL = status 00h one or more files successfully deleted FFh no matching files or all were read-only or locked Notes: DOS 1.25+ deletes everything in the current directory (including subdirectories) and sets the first byte of the name to 00h (entry never used) instead of E5h if called on an extended FCB with filename '???????????' and bits 0-4 of the attribute set (bits 1 and 2 for DOS 1.x). This may have originally been an optimization to minimize directory searching after a mass deletion (DOS 1.25+ stop the directory search upon encountering a never-used entry), but can corrupt the filesystem under DOS 2+ because subdirectories are removed without deleting the files they contain. currently-open files should not be deleted MS-DOS allows deletion of read-only files with an extended FCB, whereas Novell NetWare, DR DOS 6, and Novell DOS 7/OpenDOS 7.01 do not this function generates a trap "D" under OS/2 v4.x (Warp4) when called on an HPFS partition with a wildcard in the filename; it operates correctly on FAT partitions and when called without wildcards SeeAlso: AH=41h,INT 2F/AX=1113hTop
INT 21 - DOS 1+ - SEQUENTIAL READ FROM FCB FILE AH = 14h DS:DX -> opened FCB (see #01345) Return: AL = status 00h successful 01h end of file (no data) 02h segment wrap in DTA 03h end of file, partial record read Disk Tranfer Area filled with record read from file Notes: reads a record of the size specified in the FCB beginning at the current file position, then updates the current block and current record fields in the FCB if a partial record was read, it is zero-padded to the full size not supported by MS Windows 3.0 DOSX.EXE DOS extender SeeAlso: AH=0Fh,AH=15h,AH=1Ah,AH=3Fh"DOS",INT 2F/AX=1108hTop
INT 21 - DOS 1+ - SEQUENTIAL WRITE TO FCB FILE AH = 15h DS:DX -> opened FCB (see #01345) Disk Tranfer Area contains record to be written Return: AL = status 00h successful 01h disk full 02h segment wrap in DTA Notes: writes a record of the size specified in the FCB beginning at the current file position, then updates the current block and current record fields in the FCB if less than a full sector is written, the data is placed in a DOS buffer to be written out at a later time not supported by MS Windows 3.0 DOSX.EXE DOS extender SeeAlso: AH=0Fh,AH=14h,AH=1Ah,AH=40h,INT 2F/AX=1109hTop
INT 21 - DOS 1+ - CREATE OR TRUNCATE FILE USING FCB AH = 16h DS:DX -> unopened FCB (see #01345), wildcards not allowed Return: AL = status 00h successful FFh directory full or file exists and is read-only or locked Notes: if file already exists, it is truncated to zero length if an extended FCB is used, the file is given the attribute in the FCB; this is how to create a volume label in the disk's root dir not supported by MS Windows 3.0 DOSX.EXE DOS extender (FAT32 drive) this function will only succeed for creating a volume label; FAT32 does not support FCBs for file I/O SeeAlso: AH=0Fh,AH=10h,AH=3ChTop
INT 21 - DOS 1+ - RENAME FILE USING FCB AH = 17h DS:DX -> modified FCB (see also #01345) the old filename ('?' wildcards OK) is in the standard location while the new filename ('?' wildcards OK, no drive) is stored in the 11 bytes beginning at offset 11h Return: AL = status 00h successfully renamed FFh no matching files,file is read-only, or new name already exists Notes: subdirectories may be renamed using an extended FCB with the appropriate attribute, as may volume labels DR DOS checks password attached with AX=4303h before permitting rename SeeAlso: AH=0Fh,AH=13h,AX=4303h,AH=56h,INT 2F/AX=1111hTop
INT 21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY AH = 18h Return: AL = 00h Note: corresponds to the CP/M BDOS function "get bit map of logged drives", which is meaningless under MS-DOS SeeAlso: AH=1Dh,AH=1Eh,AH=20h,AX=4459h,INT 60/DI=0513hTop
INT 21 - U - PTS-DOS 6.51 & S/DOS 1.0 - EXTENDED RENAME FILE USING FCB AH = 18h DS:DX -> modified FCB (see also #01345) Return: AL = status 00h successfully renamed FFh no matching files,file is read-only, or new name already exists Notes: This function is provided by Paragon Technology Systems S/DOS 1.0 (and most probably also PTS-DOS 6.51, maybe even earlier). It uses the same code as for function INT 21/AH=17h, but additionally sets an internal "SERVER" flag on entry. Apparently this results in different usage of attributes and wildcards. It is currently unknown if this function is also supported by PhysTechSoft's PTS-DOS 6.60, 6.70, or 2000. SeeAlso: AH=17h,AH=0Fh,AH=13h,AX=4303h,AH=56h,INT 2F/AX=1111h,INT21/AH=5DhTop
INT 21 - VIRUS - "Tasha Yar" - INSTALLATION CHECK AX = 1812h Return: AL = 00h if resident DX = 4310h if resident SeeAlso: INT 21/AX=0B56h"VIRUS",INT 21/AX=187Fh,INT 21/AX=2C2Ch"VIRUS"Top
INT 21 - VIRUS - "DS-3783" -INSTALLATION CHECK AX = 187Fh BX = 4453h Return: BX = 87A1h if resident SeeAlso: AX=1812h"VIRUS",AX=18FFh"VIRUS"Top
INT 21 - VIRUS - "Pathogen:SMEG" - INSTALLATION CHECK AX = 18FFh Return: AX = E701h if resident SeeAlso: INT 21/AX=1812h"VIRUS",INT 21/AX=2080h"VIRUS"Top
INT 21 - DOS 1+ - GET CURRENT DEFAULT DRIVE AH = 19h Return: AL = drive (00h = A:, 01h = B:, etc) Note: Novell NetWare uses the fact that DOS 2.x COMMAND.COM issues this call from a particular location every time it starts a command to determine when to issue an automatic EOJ SeeAlso: AH=0Eh,AH=47h,AH=BBhTop
INT 21 - DOS 1+ - SET DISK TRANSFER AREA ADDRESS AH = 1Ah DS:DX -> Disk Transfer Area (DTA) Notes: the DTA is set to PSP:0080h when a program is started under the FlashTek X-32 DOS extender, the pointer is in DS:EDX SeeAlso: AH=11h,AH=12h,AH=2Fh,AH=4Eh,AH=4FhTop
INT 21 - DOS 1+ - GET ALLOCATION INFORMATION FOR DEFAULT DRIVE AH = 1Bh Return: AL = sectors per cluster (allocation unit) CX = bytes per sector DX = total number of clusters DS:BX -> media ID byte (see #01356) Notes: under DOS 1.x, DS:BX points at an actual copy of the FAT; later versions return a pointer to a copy of the FAT's ID byte this function may not be properly supported on CD-ROMs and other installable file systems (use AX=4402h"CD-ROM" for CD-ROMs instead) BUG: DOS 7.10 (Win95B/Win98) reportedly returns incorrect values in AL and DX for FAT12/FAT16 drives, even though it manages correct results for FAT32 drives (DOS windows are not affected, only real-mode DOS) SeeAlso: AH=1Ch,AH=36h (Table 01356) Values for media ID byte: FFh floppy, double-sided, 8 sectors per track (320K) FEh floppy, single-sided, 8 sectors per track (160K) FDh floppy, double-sided, 9 sectors per track (360K) FCh floppy, single-sided, 9 sectors per track (180K) FAh HP 200LX D: ROM disk, 16 sectors per track (995K) HP 200LX E: (Stacker host drive ???) F9h floppy, double-sided, 15 sectors per track (1.2M) floppy, double-sided, 9 sectors per track (720K,3.5") F8h hard disk F0h other media (e.g. floppy, double-sized, 18 sectors per track -- 1.44M,3.5")Top
INT 21 - DOS 1+ - GET ALLOCATION INFORMATION FOR SPECIFIC DRIVE AH = 1Ch DL = drive (00h = default, 01h = A:, etc) Return: AL = sectors per cluster (allocation unit), or FFh if invalid drive CX = bytes per sector DX = total number of clusters DS:BX -> media ID byte (see #01356) Notes: under DOS 1.x, DS:BX points at an actual copy of the FAT; later versions return a pointer to a copy of the FAT's ID byte on a DBLSPACE drive, the total number of clusters is based on the estimated compression ratio this function may not be properly supported on CD-ROMs and other installable file systems (use AX=4402h"CD-ROM" for CD-ROMs instead) BUG: DOS 7.10 (Win95B/Win98) reportedly returns incorrect values in AL and DX for FAT12/FAT16 drives, even though it manages correct results for FAT32 drives (DOS windows are not affected, only real-mode DOS) SeeAlso: AH=1Bh,AH=36hTop
INT 21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY AH = 1Dh Return: AL = 00h Note: corresponds to the CP/M BDOS function "get bit map of read-only drives", which is meaningless under MS-DOS SeeAlso: AH=18h,AH=1Eh,AH=20h,AX=4459hTop
INT 21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY AH = 1Eh Return: AL = 00h Note: corresponds to the CP/M BDOS function "set file attributes" which was meaningless under MS-DOS 1.x SeeAlso: AH=18h,AH=1Dh,AH=20hTop
INT 21 - DOS 1+ - GET DRIVE PARAMETER BLOCK FOR DEFAULT DRIVE AH = 1Fh Return: AL = status 00h successful DS:BX -> Drive Parameter Block (DPB) (see #01357 for DOS 1.x, AH=32h for DOS 2+) FFh invalid drive Note: this call was undocumented prior to the release of DOS 5.0; however, only the DOS 4.0+ version of the DPB has been documented SeeAlso: AH=32h,AX=7302h Format of DOS 1.1 and MS-DOS 1.25 drive parameter block: Offset Size Description (Table 01357) 00h BYTE sequential device ID 01h BYTE logical drive number (0=A:) 02h WORD bytes per sector 04h BYTE highest sector number within a cluster 05h BYTE shift count to convert clusters into sectors 06h WORD starting sector number of first FAT 08h BYTE number of copies of FAT 09h WORD number of directory entries 0Bh WORD number of first data sector 0Dh WORD highest cluster number (number of data clusters + 1) 0Fh BYTE sectors per FAT 10h WORD starting sector of directory 12h WORD address of allocation table Note: the DOS 1.0 table is the same except that the first and last fields are missing; see INT 21/AH=32h for the DOS 2+ version SeeAlso: #01395,#04039Top
INT 21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY AH = 20h Return: AL = 00h Note: corresponds to the CP/M BDOS function "get/set default user (sublibrary) number", which is meaningless under MS-DOS SeeAlso: AH=18h,AH=1Dh,AH=1Eh,AX=4459hTop
INT 21 - S/DOS 1.0+ & PTS-DOS 6.51+ - GET OEM REVISION AH = 20h AL = which OEM code to retrieve 00h get PTS OEM code Return: CF cleared AL = OEM code (currently always 00h) 01h get PTS OEM revision code Return: CF cleared AL = revision code (default is 00h, but may vary) Desc: S/DOS is a reduced and modified PTS-DOS 6.51 release with source code on CD Note: This function is provided by S/DOS 1.0 (and is most probably also supported with PTS-DOS 6.51+, maybe even earlier). It clears the CF flag for all other AL arguments, too. However, AL = 00h and 01h are handled separately. The revision code can be individually defined in the MAKEFILE at compilation time. The PTS OEM code does not correlate with the DOS OEM code returned by INT 21/AH=30h, likewise the PTS OEM revision does not correlate with the DOS revision returned by INT 21/AX=3306h. SeeAlso: INT 21/AH=30h,INT 21/AX=3306hTop
INT 21 - VIRUS - "New-Year" - INSTALLATION CHECK AX = 2080h Return: AH = 00h if resident (normal DOS return would be AX = 2000h) SeeAlso: INT 21/AX=18FFh"VIRUS",INT 21/AX=2C2Ch"VIRUS"Top
INT 21 - DOS 1+ - READ RANDOM RECORD FROM FCB FILE AH = 21h DS:DX -> opened FCB (see #01345) Return: AL = status 00h successful 01h end of file, no data read 02h segment wrap in DTA, no data read 03h end of file, partial record read Disk Tranfer Area filled with record read from file Notes: the record is read from the current file position as specified by the random record and record size fields of the FCB the file position is not updated after reading the record if a partial record is read, it is zero-padded to the full size not supported by MS Windows 3.0 DOSX.EXE DOS extender SeeAlso: AH=14h,AH=22h,AH=27h,AH=3Fh"DOS"Top
INT 21 - DOS 1+ - WRITE RANDOM RECORD TO FCB FILE AH = 22h DS:DX -> opened FCB (see #01345) Disk Transfer Area contains record to be written Return: AL = status 00h successful 01h disk full 02h segment wrap in DTA Notes: the record is written to the current file position as specified by the random record and record size fields of the FCB the file position is not updated after writing the record if the record is located beyond the end of the file, the file is extended but the intervening data remains uninitialized if the record only partially fills a disk sector, it is copied to a DOS disk buffer to be written out to disk at a later time not supported by MS Windows 3.0 DOSX.EXE DOS extender SeeAlso: AH=15h,AH=21h,AH=28h,AH=40hTop
INT 21 - DOS 1+ - GET FILE SIZE FOR FCB AH = 23h DS:DX -> unopened FCB (see #01345), wildcards not allowed Return: AL = status 00h successful (matching file found) FCB random record field filled with size in records, rounded up to next full record FFh failed (no matching file found) Notes: not supported by MS Windows 3.0 DOSX.EXE DOS extender MS-DOS returns nonsense if the FCB record number field is set to a very large positive number, and status FFh if negative; DR DOS returns the correct file size in both cases BUG: APPEND for DOS 3.3+ corrupts DX if the file is not found SeeAlso: AH=42hTop
INT 21 - DOS 1+ - SET RANDOM RECORD NUMBER FOR FCB AH = 24h DS:DX -> opened FCB (see #01345) Notes: computes the random record number corresponding to the current record number and record size, then stores the result in the FCB normally used when switching from sequential to random access not supported by MS Windows 3.0 DOSX.EXE DOS extender SeeAlso: AH=21h,AH=27h,AH=42hTop
INT 21 - DOS 1+ - SET INTERRUPT VECTOR AH = 25h AL = interrupt number DS:DX -> new interrupt handler Notes: this function is preferred over direct modification of the interrupt vector table some DOS extenders place an API on this function, as it is not directly meaningful in protected mode under DR DOS 5.0-6.0, this function does not use any of the DOS-internal stacks and may thus be called at any time; however, under Novell DOS 7.0 - DR-DOS 7.02, this function was not reentrant. Since 1998/05/29, DR-DOS 7.03 no longer uses any internal stacks and tests for this function much earlier, to allow a minimal stack usage of just two words in addition to the IRET frame, allowing it to be called from INT 21h functions, specificially device drivers. This fixes the MCS SMB client Novell NetWare (except the new DOS Requester) monitors the offset of any INT 24 set, and if equal to the value at startup, substitutes its own handler to allow handling of network errors; this introduces the potential bug that any program whose INT 24 handler offset happens to be the same as COMMAND.COM's will not have its INT 24 handler installed SeeAlso: AX=2501h,AH=35hTop
INT 21 P - Phar Lap 386/DOS-Extender - RESET DOS EXTENDER DATA STRUCTURES AX = 2501h SS = application's original SS or DS (FlashTek X-32VM) Return: CF clear if successful CF set on error caller is operating on X-32 stack (FlashTek X-32VM) Notes: Phar Lap uses INT 21/AH=25h as the entry point for all 386/DOS-Extender system calls. Only available when directly using 386/DOS-Extender or a compatible DOS extender, or when using a product that was created using 386-DOS/Extender or a compatible this function is also supported by FlashTek X-32VM SeeAlso: AH=30h"Phar Lap"Top
INT 21 P - Phar Lap 386/DOS-Extender - GET PROTECTED-MODE INTERRUPT VECTOR AX = 2502h CL = interrupt number Return: CF clear ES:EBX = CS:EIP of protected-mode interrupt handler Note: this function is also supported by FlashTek X-32VM SeeAlso: AX=2503h,AX=2504h,INT 31/AX=0204hTop
INT 21 P - Phar Lap 386/DOS-Extender - GET REAL-MODE INTERRUPT VECTOR AX = 2503h CL = interrupt number Return: CF clear EBX = CS:IP of real-mode interrupt handler Note: this function is also supported by FlashTek X-32VM SeeAlso: AX=2502h,AX=2504h,AH=35h,INT 31/AX=0200hTop
INT 21 P - Phar Lap 386/DOS-Extender - SET PROTECTED-MODE INTERRUPT VECTOR AX = 2504h CL = interrupt number DS:EDX = CS:EIP of protected-mode interrupt handler Return: CF clear Note: this function is also supported by FlashTek X-32VM SeeAlso: AX=2502h,AX=2505h,INT 31/AX=0205hTop
INT 21 P - Phar Lap 386/DOS-Extender - SET REAL-MODE INTERRUPT VECTOR AX = 2505h CL = interrupt number EBX = CS:IP of real-mode interrupt handler Return: CF clear Note: this function is also supported by FlashTek X-32VM SeeAlso: AX=2503h,AX=2504h,INT 31/AX=0201hTop
INT 21 P - Phar Lap 386/DOS-Extender - SET INT TO ALWAYS GAIN CNTRL IN PR. MODE AX = 2506h CL = interrupt number DS:EDX = CS:EIP of protected-mode interrupt handler Return: CF clear Notes: this function modifies both the real-mode low-memory interrupt vector table and the protected-mode Interrupt Descriptor Table (IDT) interrupts occurring in real mode are resignaled in protected mode this function is also supported by FlashTek X-32VMTop
INT 21 P - Phar Lap 386/DOS-Extender - SET REAL- & PROTECTED-MODE INT VECTORS AX = 2507h CL = interrupt number DS:EDX = CS:EIP of protected-mode interrupt handler EBX = CS:IP of real-mode interrupt handler Return: CF clear Notes: interrupts are disabled until both vectors have been modified this function is also supported by FlashTek X-32VM SeeAlso: AX=2504h,AX=2505hTop
INT 21 P - Phar Lap 386/DOS-Extender - GET SEGMENT LINEAR BASE ADDRESS AX = 2508h BX = segment selector Return: CF clear if successful ECX = linear base address of segment CF set if invalid segment selector Note: this function is also supported by FlashTek X-32VM SeeAlso: AX=2509hTop
INT 21 P - Phar Lap 386/DOS-Extender - CONVERT LINEAR TO PHYSICAL ADDRESS AX = 2509h EBX = linear address to convert Return: CF clear if successful ECX = physical address (carry flag clear) CF set if linear address not mapped in page tables SeeAlso: AX=2508hTop
INT 21 P - FlashTek X-32VM - GET SYSTEM SEGMENTS AND SELECTORS AX = 2509h Return: CF clear EAX high word = default DS AX = alias for 16-bit data segment BX = real mode code segment EDX high word = selector covering full 4GB address space DX = default SS ESI high word = PSP selector SI = environment selectorTop
INT 21 P - Phar Lap 386/DOS-Extender - MAP PHYSICAL MEMORY AT END OF SEGMENT AX = 250Ah ES = segment selector in the Local Descriptor Table (LDT) of segment to modify EBX = physical base address of memory to map (multiple of 4K) ECX = number of physical 4K pages to map Return: CF clear if successful EAX = 32-bit offset in segment of mapped memory CF set on error EAX = error code 08h insufficient memory to create page tables 09h invalid segment selector SeeAlso: INT 31/AX=0800hTop
INT 21 P - Phar Lap 386/DOS-Extender - GET HARDWARE INTERRUPT VECTORS AX = 250Ch Return: CF clear AL = base interrupt vector for IRQ0-IRQ7 AH = base interrupt vector for IRQ8-IRQ15 BL = interrupt vector for BIOS print screen function (Phar Lap only) Note: this function is also supported by FlashTek X-32VM SeeAlso: INT 31/AX=0400h,INT 67/AX=DE0AhTop
INT 21 P - Phar Lap 386/DOS-Extender - GET REAL-MODE LINK INFORMATION AX = 250Dh Return: CF clear EAX = CS:IP of real-mode callback procedure (see #01358) that will call through from real mode to a protected-mode routine EBX = 32-bit real-mode address of intermode call data buffer ECX = size in bytes of intermode call data buffer ES:EDX = protected-mode address of intermode call data buffer Notes: this function is also supported by FlashTek X-32VM X-32VM guarantees the intermode buffer to be at least 4 KB SeeAlso: AX=250Eh (Table 01358) Call Phar Lap real-mode callback with: STACK: DWORD offset to protected-mode code WORD placeholder for protected-mode CS DWORD pointer to selector structure (see #01359) or 0000h:0000h for defaults var parameters for protected-mode procedure Return: via FAR return Format of Phar Lap selector structure: Offset Size Description (Table 01359) 00h WORD protected-mode GS selector 02h WORD protected-mode FS selector 04h WORD protected-mode ES selector 06h WORD protected-mode DS selectorTop
INT 21 P - Phar Lap 386/DOS-Extender - CALL REAL-MODE PROCEDURE AX = 250Eh EBX = CS:IP of real-mode procedure to call ECX = number of two-byte words to copy from protected-mode stack to real-mode stack Return: CF clear if successful all segment registers unchanged all general registers contain values set by real-mode procedure all other flags set as they were left by real-mode procedure stack unchanged CF set on error EAX = error code 01h not enough real-mode stack space Note: this function is also supported by FlashTek X-32VM; under X-32VM, the call will fail if ECX > 0000003Fh SeeAlso: AX=250Dh,AX=2510h,AH=E1h"OS/286",INT 31/AX=0301hTop
INT 21 P - Phar Lap 386/DOS-Extender - CONVERT PROTECTED-MODE ADDRESS TO MS-DOS AX = 250Fh ES:EBX = 48-bit protected-mode address to convert ECX = 00000000h or length of data in bytes Return: CF clear if successful (address < 1MB and contiguous) ECX = 32-bit real-mode MS-DOS address CF set on error (address >= 1MB or not contiguous) ECX = linear address Note: this function is also supported by FlashTek X-32VM SeeAlso: AX=2510hTop
INT 21 P - Phar Lap 386/DOS-Extender - CALL REAL-MODE PROCEDURE, REGISTERS AX = 2510h EBX = CS:IP of real-mode procedure to call ECX = number of two-byte words to copy to protected-mode stack to real-mode stack DS:EDX -> pointer to parameter block (see #01360) Return: CF clear if successful all segment registers unchanged, EDX unchanged all other general registers contain values set by real-mode proc all other flags are set as they were left by real-mode procedure real-mode register values are returned in the parameter block CF set on error EAX = error code 01h not enough real-mode stack space Note: unlike most of the preceding 25xxh functions, this one is not supported by FlashTek X-32VM SeeAlso: AX=250Eh,AX=250Fh Format of Phar Lap real-mode call parameter block: Offset Size Description (Table 01360) 00h WORD real-mode DS value 02h WORD real-mode ES value 04h WORD real-mode FS value 06h WORD real-mode GS value 08h DWORD real-mode EAX value 0Ch DWORD real-mode EBX value 10h DWORD real-mode ECX value 14h DWORD real-mode EDX valueTop
INT 21 P - Phar Lap 386/DOS-Extender - ISSUE REAL-MODE INTERRUPT AX = 2511h DS:EDX -> parameter block (see #01361) Return: all segment registers unchanged EDX unchanged all other registers contain values set by the real-mode int handler the flags are set as they were left by the real-mode interrupt handler real-mode register values are returned in the parameter block Note: this function is also supported by FlashTek X-32VM SeeAlso: AX=2503h,AX=2505h,AX=250Eh,AH=E3h"OS/286",INT 31/AX=0300h Format of Phar Lap real-mode interrupt parameter block: Offset Size Description (Table 01361) 00h WORD interrupt number 02h WORD real-mode DS value 04h WORD real-mode ES value 06h WORD real-mode FS value 08h WORD real-mode GS value 0Ah DWORD real-mode EAX value 0Eh DWORD real-mode EDX value Note: all other real-mode values set from protected-mode registersTop
INT 21 P - Phar Lap 386/DOS-Extender - LOAD PROGRAM FOR DEBUGGING AX = 2512h DS:EDX -> pointer to ASCIZ program name ES:EBX -> pointer to parameter block (see #01363) ECX = size in bytes of LDT buffer Return: CF clear if successful EAX = number of segment descriptors in LDT CF set on error EAX = error code (see #01362) SeeAlso: AX=2517h (Table 01362) Values for Phar Lap error code: 02h file not found or path invalid 05h access denied 08h insufficient memory 0Ah environment invalid 0Bh invalid file format 80h LDT too small Format of Phar Lap program load parameter block: Offset Size Description (Table 01363) Input: 00h DWORD 32-bit offset of environment string 04h WORD segment of environment string 06h DWORD 32-bit offset of command-tail string 0Ah WORD segment of command-tail string 0Ch DWORD 32-bit offset of LDT buffer (size in ECX) 10h WORD segment of LDT buffer Output: 12h WORD real-mode paragraph address of PSP (see also AH=26h) 14h WORD real/protected mode flag 0000h real mode 0001h protected mode 16h DWORD initial EIP value 1Ah WORD initial CS value 1Ch DWORD initial ESP value 20h WORD initial SS value 22h WORD initial DS value 24h WORD initial ES value 26h WORD initial FS value 28h WORD initial GS valueTop
INT 21 P - Phar Lap 386/DOS-Extender - ALIAS SEGMENT DESCRIPTOR AX = 2513h BX = segment selector of descriptor in GDT or LDT CL = access-rights byte for alias descriptor CH = use-type bit (USE16 or USE32) for alias descriptor Return: CF clear if successful AX = segment selector for created alias CF set on error EAX = error code 08h insufficient memory (can't grow LDT) 09h invalid segment selector in BXTop
INT 21 P - Phar Lap 386/DOS-Extender - CHANGE SEGMENT ATTRIBUTES AX = 2514h BX = segment selector of descriptor in GDT or LDT CL = new access-rights byte CH = new use-type bit (USE16 or USE32) Return: CF clear if successful CF set on error EAX = error code 09h invalid selector in BX SeeAlso: AX=2515h,INT 31/AX=0009hTop
INT 21 P - Phar Lap 386/DOS-Extender - GET SEGMENT ATTRIBUTES AX = 2515h BX = segment selector of descriptor in GDT or LDT Return: CF clear if successful CL = access-rights byte for segment CH = use-type bit (USE16 or USE32) ECX<16-31> destroyed CF set on error EAX = error code 09h invalid segment selector in BX SeeAlso: AX=2514hTop
INT 21 P - Phar Lap 386/DOS-Extender v2.2+ - FREE ALL MEMORY OWNED BY LDT AX = 2516h Return: CF clear Note: this function must be called from Ring 0 or the CS descriptor is freedTop
INT 21 P - Phar Lap 386/DOS-Extender v2.1c+ - GET INFO ON DOS DATA BUFFER AX = 2517h Return: CF clear ES:EBX -> data buffer (protected mode address) ECX -> data buffer (real mode address) EDX = size of data buffer in bytes Note: the data buffer's address changes after calls to AX=2512h and AX=252Ah SeeAlso: AX=2512h,AX=252Ah,AX=2530hTop
INT 21 P - Phar Lap 386/DOS-Extender 2.1c+ - SPECIFY HANDLER FOR MOVED SEGMENTS AX = 2518h ES:EBX -> function to call when a segment is moved Return: CF clear ES:EBX -> previous handlerTop
INT 21 P - Phar Lap 386/DOS-Extender VMM - GET ADDITIONAL MEMORY ERROR INFO AX = 2519h Return: CF clear EAX = error code 0000h no error 0001h out of physical memory 0002h out of swap space (unable to grow swap file) 0003h out of LDT entries and unable to grow LDT 0004h unable to change extended memory allocation mark FFFFFFFFh paging disabled Note: VMM is the Virtual Memory Manager optionTop
INT 21 P - Phar Lap 386/DOS-Extender VMM - LOCK PAGES IN MEMORY AX = 251Ah EDX = number of 4k pages to lock if BL = 00h ECX = linear address of first page to lock if BL = 01h ES:ECX -> pointer to first page to lock Return: CF clear if successful CF set on error EAX = error code 08h insufficient memory 09h invalid address range SeeAlso: AX=251Bh,AX=EB06h,INT 31/AX=0600hTop
INT 21 P - Phar Lap 386/DOS-Extender VMM - UNLOCK PAGES AX = 251Bh EDX = number of pages to unlock if BL = 00h ECX = linear address of first page to unlock if BL = 01h ES:ECX -> pointer to first page to unlock Return: CF clear if successful CF set on error EAX = error code 09h invalid address range SeeAlso: AX=251Ah,AX=EB07h,INT 31/AX=0601hTop
INT 21 P - Phar Lap 386/DOS-Extender VMM v2.1c+ - FREE PHYSICAL MEMORY PAGES AX = 251Ch BH = preservation flag (00h preserve contents, 01h discard contents) EDX = number of pages to free BL = address type 00h linear address ECX = linear address of first page to be freed 01h pointer ES:ECX -> first page to be freed Return: CF clear if successful CF set on error EAX = error code 08h memory error, swap space full, no VMM or DPMI 09h invalid addressTop
INT 21 OP - Phar Lap 386/DOS-Extender VMM v2.1c - READ PAGE-TABLE ENTRY AX = 251Dh BL = address type 00h linear address ECX = linear address of page table entry to read 01h pointer ES:ECX -> page table entry to read Return: CF clear if successful EAX = contents of page table entry CF set on error EAX = error code 09h invalid address or NOPAGE option set 78h invalid under DPMI Note: this function is obsolete; use AX=252Bh/BH=09h instead SeeAlso: AX=251Eh,AX=252Bh/BH=09h,AX=EB00h,INT 31/AX=0506hTop
INT 21 OP - Phar Lap 386/DOS-Extender VMM v2.1c - WRITE PAGE-TABLE ENTRY AX = 251Eh BL = address type 00h linear address ECX = linear address of page table entry to read 01h pointer ES:ECX -> page table entry to read EDX = new value for page table entry Return: CF clear if successful CF set on error EAX = error code 09h invalid address or NOPAGE option set 82h not compatible with DPMI Note: this call is obsolete; use AX=252Bh/BH=0Ah instead SeeAlso: AX=251Dh,AX=252Bh/BH=0Ah,INT 31/AX=0507hTop
INT 21 P - Phar Lap 386/DOS-Extender VMM - EXHANGE TWO PAGE-TABLE ENTRIES AX = 251Fh BL = address type 00h linear address ECX = linear address of first page table entry EDX = linear address of second page table entry 01h pointer ES:ECX -> first page table entry ES:EDX -> second page table entry Return: CF clear if successful CF set on error EAX = error code 09h invalid address or NOPAGE option set 82h not compatible with DPMI SeeAlso: AX=251Dh,AX=251EhTop
INT 21 P - Phar Lap 386/DOS-Extender VMM - GET MEMORY STATISTICS AX = 2520h DS:EDX -> pointer to buffer at least 100 bytes in size (see #01364) BL = 0 (don't reset VM stats), 1 (reset VM stats) Return: carry flag clear Format of Phar Lap VM statistics buffer: Offset Size Description (Table 01364) 00h DWORD VM status 0001h VM subsystem is present 0000h VM not present 04h DWORD "nconvpg" number of conventional memory pages available 08h DWORD "nbimpg" number of Compaq built-in memory pages available 0Ch DWORD "nextpg" total number of extended memory pages 10h DWORD "extlim" extender memory pages limit 14h DWORD "aphyspg" number of physical memory pages allocated to appl 18h DWORD "alockpg" number of locked pages owned by application 1Ch DWORD "sysphyspg" number physical memory pages allocated to system 20h DWORD "nfreepg" number of free physical pages; approx if EMS VCPI 24h DWORD linear address of beginning of application address space 28h DWORD linear address of end of application address space 2Ch DWORD number of seconds since last time VM stats were reset 30h DWORD number of page faults since last time 34h DWORD number of pages written to swap file since last time 38h DWORD number of reclaimed pages (page faults on swapped pages) 3Ch DWORD number of virtual pages allocated to the application 40h DWORD size in pages of swap file 44h DWORD number of system pages allocated with EMS calls 48h DWORD minimum number of conventional memory pages 4Ch DWORD maximum size in pages to which swap file can be increased 50h DWORD "vmflags" bit 0 = 1 if page fault in progress ---v4.0+ --- 54h DWORD number of physical pages guaranteed to be free 58h DWORD number of free physical pages currently available 5Ch DWORD size in pages of largest free block of memory (including disk swap space) 60h DWORD reservedTop
INT 21 P - Phar Lap 386/DOS-Extender VMM - LIMIT PROGRAM'S EXTENDED MEM USAGE AX = 2521h EBX = max 4k pages of physical extended memory which program may use Return: CF clear if successful EBX = maximum limit in pages ECX = minimum limit in pages CF set on error EAX = error code 08h insufficient memory or -nopage switch used SeeAlso: AX=2522hTop
INT 21 P - Phar Lap 386/DOS-Ext VMM v2.2+ - SPECIFY ALTERNATE PAGE-FAULT HANDLR AX = 2522h ES:EBX -> alternate handler for page faults Return: CF clear ES:EBX -> previous page-fault handler SeeAlso: AX=2523hTop
INT 21 P - Phar Lap 386/DOS-Ext VMM v2.2+ - SPECIFY OUT-OF-SWAP-SPACE HANDLER AX = 2523h ??? Return: ??? Note: this function takes a DWORD pointer and a DWORD pointer to a DWORD pointer as arguments SeeAlso: AX=2522hTop
INT 21 P - Phar Lap 386/DOS-Ext VMM v2.2+ - INSTALL PAGE-REPLACEMENT HANDLERS AX = 2524h ??? Return: ??? Note: this function takes three DWORD pointers and three DWORD pointers to DWORD pointers as argumentsTop
INT 21 P - Phar Lap 386/DOS-Extender VMM - LIMIT PROGRAM'S CONVENT'L MEM USAGE AX = 2525h EBX = limit in 4k pages of physical conventional memory which program may use Return: CF clear if successful EBX = maximum limit in pages ECX = minimum limit in pages CF set on error EAX = error code 08h insufficient memory or -nopage switch used SeeAlso: AX=2521hTop
INT 21 P - Phar Lap 386/DOS-Extender - GET CONFIGURATION INFORMATION AX = 2526h ??? Return: ??? Notes: details are not yet available this function takes a pointer to the configuration buffer (see #01365) and a poitner to a BYTE as arguments Format of Phar Lap configuration buffer: Offset Size Description (Table 01365) 00h DWORD flags 1 (see #01366) 04h DWORD flags 2 (unused through v5.0) 08h DWORD flags 3 (unused through v5.0) 0Ch DWORD 386|DOS-Extender major version 10h DWORD 386|DOS-Extender minor version 14h DWORD first letter of text after minor version number in version str 18h DWORD beta flag (00h normal release, 01h beta release) 1Ch DWORD processor (3 = 386, 4 = 486) 20h DWORD coprocessor (4 = none, 6 = 287, 7 = 387/486) 24h DWORD Weitek coprocessor flag (0 = none, 1 = present) 28h DWORD machine type (0 = IBM PC compatible, 1 = NEC 9800 series) 2Ch DWORD machine class IBM: bus type (0=ISA, 1=MCA, 2=XT, 3=EISA) NEC: 0=normal mode, 1=high-res mode 30h DWORD VCPI flag (0 = none, 1 = present) 34h DWORD -WEITEK/-1167 switch (0 = AUTO, 1 = ON, 2 = OFF) 38h DWORD -MINREAL setting 3Ch DWORD -MAXREAL setting 40h DWORD -MINIBUF setting 44h DWORD -MAXIBUF setting 48h DWORD size in bytes of DOS call data buffer 4Ch DWORD number of interrupt stacks (-NISTACK) 50h DWORD interrupt stack size (-ISTKSIZE) 54h DWORD -REALBREAK setting 58h DWORD -CALLBUFS 5Ch DWORD -HWIVEC 60h DWORD -PRIVEC 64h DWORD -INTMAP 68h DWORD -PRIMAP 6Ch DWORD VCPI: master 8259 interrupt vector base (IRQ0 mapping) 70h DWORD VCPI: slave 8259 interrupt vector base (IRQ8 mapping) 74h DWORD BIOS print screen interrupt vector (0 if NEC) 78h DWORD -EXTLOW setting 7Ch DWORD -EXTHIGH setting 80h DWORD lowest physical extended-memory address allocatable 84h DWORD highest physical extended-memory address allocatable + 1 88h DWORD special memory's physical base address (00000000h if none) 8Ch DWORD special memory size in bytes (00000000h if none) 90h DWORD -MAXVCPIMEM setting 94h DWORD -VSCAN 98h DWORD -SWAPCHK (0 = OFF, 1 = ON, 2 = FORCE, 3 = MAX) 9Ch DWORD -CODESIZE setting A0h DWORD minimum swap file size (-MINSWFSIZE) A4h DWORD maximum swap fiel size (-MAXSWFSIZE) A8h DWORD page replacement policy (0 = LFU, 1 = NUR) ACh DWORD number of GDT entries (-NGDTENT) B0h DWORD number of LDT entries (-NLDTENT) B4h DWORD program's privilege level (0-3) ---386|DOS-Extender v3.0+ --- B8h DWORD -LOCKSTACK setting BCh DWORD -MAXEXTMEM C0h DWORD -MAXXMSMEM C4h DWORD -MAXPGMMEM C8h DWORD -DATATHRESHOLD CCh DWORD virtual memory manager flag (0 = not present, 1 = present) D0h DWORD Cyrix coprocessor flag (0 = no Cyrix EMC387, 1 = present) D4h DWORD -CYRIX setting (0 = AUTO, 1 = ON, 2 = OFF) D8h DWORD DPMI flag (0 = not present, 1 = present) DCh DWORD DPMI major version E0h DWORD DPMI minor version E4h DWORD DPMI capabilities flags (see #01367) E8h DWORD VCPI major version ECh DWORD VCPI minor version F0h WORD VCPI: IRQ0-7 physical base interrupt vector F2h WORD VCPI: IRQ8-15 physical base interrupt vector F4h DWORD XMS flag (0 = none, 1 = present) F8h DWORD XMS major version FCh DWORD XMS minor version 100h WORD application's CS selector 102h WORD application's DS selector 104h WORD application's PSP selector 106h WORD application's environment selector 108h WORD selector mapping entire first megabyte 10Ah WORD selector mapping text video memory 10Ch WORD selector mapping video memory (text for IBM, graphics for NEC) 10Eh WORD selector mapping Weitek address space, 0000h if not present 110h WORD selector mapping Cyrix EMC387 address space, 0000h if none 112h WORD reserved (0) 114h DWORD real-mode FAR entry point to call to switch to protected mode with no saved context 118h DWORD size of LDT in bytes ---386|DOS-Extender v5.0+ --- 11Ch DWORD Windows flag (0 = not present, 1 = Windows present) 120h DWORD Windows major version 124h DWORD Windows minor version 128h DWORD Windows mode (0 = real/standard, 1 = enhanced) 12Ch DWORD OS/2 flag (0 = not present, 1 = OS/2 present) 130h DWORD OS/2 major version 134h DWORD OS/2 minor version 138h 50 DWORDs reserved (0) Bitfields for flags 1: Bit(s) Description (Table 01366) 0 -NOPAGE specified 1 -A20 specified 2 -VDISK specified 3 -XT specified 4 -AT specified 5 -MCA specified 6 -EISA specified 7 -NORMRES specified (NEC only) 8 -HIGHRES specified (NEC only) 9 set if -SWFGROW1ST, clear if -NOSWFGROW1ST 10 -NOVM specified 11 -SAVEREGS specified 12 unused (clear) 13 -NOVCPI specified 14 -NOMUL specified 15 -NOBMCHK specified 16 -NOSPCLMEM or -NOBIM 17 -NOPGEXP specified 18 -SWAPDEFDISK specified ---v3.0+ --- 19 -SAVEINTS specified 20 -NOLOAD specified 21 -PAGELOG specified 22 -OPENDENY specified 23 -ERRATA17 specified ---v4.1+ --- 24 -NESTDPMI specified 25 -NONESTDPMI specified 26 -NODPMI specified 27 -NOPCDWEITEK specified ---v4.2+ --- 28 -WININT21 specified Bitfields for DPMI capabilities flags: Bit(s) Description (Table 01367) 0 paging supported 1 physical device mapping 2 conventional memory mapping 3 exceptions restartableTop
INT 21 P - Phar Lap 386/DOS-Extender VMM - EN/DISABLE STATE SAVE ON INTERRUPTS AX = 2527h EBX = new status (00h disabled, 01h enabled) Return: CF clear EBX = previous state save flag SeeAlso: AX=2528hTop
INT 21 P - Phar Lap 386/DOS-Extender VMM - READ REGISTERS AFTER CTRL-C INT AX = 2528h DS:EBX -> buffer for registers (see #01368) Return: CF clear if successful DS:EBX buffer filled CF set on error EAX = error code 83h interrupt state save not enabled 84h no active interrupt SeeAlso: AX=2527h Format of Phar Lap buffer for registers: Offset Size Description (Table 01368) 00h 8 BYTEs unused 08h 4 DWORDs EAX,EBX,ECX,EDX 18h 4 DWORDs ESI,EDI,EBP,ESP 28h 6 WORDs CS,DS,SS,ES,FS,GS 34h DWORD EIP 38h DWORD EFLAGSTop
INT 21 P - Phar Lap 386/DOS-Extender - LOAD FLAT MODEL .EXP or .REX FILE AX = 2529h ??? Return: ES:EBX -> parameter block (see #01369) ??? Note: details not available at this time SeeAlso: AX=252Ah Format of Phar Lap program load parameter block: Offset Size Description (Table 01369) 00h DWORD initial EIP 04h WORD initial CS 06h DWORD initial ESP 0Ah WORD initial SS 0Ch 4 WORDs initial DS, ES, FS, GS 14h DWORD minimum size in bytes of program segment 18h DWORD bytes of additional memory allocated 1Ch DWORD flags bit 0: child linked with -UNPRIVILEGED ---v6.0+ --- bit 1: child is PE file instead of .EXP bit 2: loaded file is a DLL bits 3-31 reserved ---v6.0+ --- 20h DWORD module handles (PE files only) 24h 7 DWORDs reserved (0)Top
INT 21 P - Phar Lap 386/DOS-Extender VMM - NEW LOAD PROGRAM FOR DEBUG AX = 252Ah DS:EDX -> ASCIZ program name ES:EBX -> parameter block (see #01363) ECX = size of LDT buffer in bytes ESI = bit flags bit 0: allow demand paging rather than loading entire program bit 1: demand page from swap file rather than from .EXP Return: CF clear if successful EAX = VMM handle or FFFFFFFFh if none ECX = number of descriptors in LDT buffer CF set on error EAX = error code 02h file error EBX = file error code (see #01370) ECX = DOS error code if EBX=1,2,3, or 8 08h insufficient memory EBX = memory error code (see #01371) 80h LDT buffer too small 87h called twice without intervening call to AX=2531h SeeAlso: AX=2512h,AX=2517h,AX=2529h,AX=2531h (Table 01370) Values for Phar Lap file error code: 01h DOS open error 02h DOS seek error 03h DOS read error 04h not an .EXP or .REX file 05h invalid file format 06h -OFFSET is not a multiple of 64K 07h -NOPAGE incompatible with -REALBREAK/-OFFSET 08h DOS error loading .EXE file (Table 01371) Values for Phar Lap memory error code: 01h out of physical memory 02h out of swap space 04h unable to change extended memory allocation 05h -MAXPGMMEM exceeded 06h insufficient low memory to REALBREAK value 07h insufficient low memory for PSP and environmentTop
INT 21 Pu - Phar Lap 386/DOS-Extender - CREATE UNMAPPED PAGES AX = 252Bh BH = 00h ??? Return: ???Top
INT 21 Pu - Phar Lap 386/DOS-Extender - CREATE ALLOCATED PAGES AX = 252Bh BH = 01h ??? Return: ???Top
INT 21 Pu - Phar Lap 386/DOS-Extender - CREATE PHYSICAL DEVICE PAGES AX = 252Bh BH = 02h ??? Return: ???Top
INT 21 Pu - Phar Lap 386/DOS-Extender - MAP DATA FILE AX = 252Bh BH = 03h ??? Return: ??? SeeAlso: AX=252Bh/BH=0BhTop
INT 21 Pu - Phar Lap 386/DOS-Extender - GET PAGE TYPES AX = 252Bh BH = 04h ??? Return: ??? Note: returns one word per page SeeAlso: #01372 Bitfields for Phar Lap page information: Bit(s) Description (Table 01372) 7 mapped to read/write data file 6 mapped to read-only data file 5 swapped to disk 4 locked 3-0 page type 0 unmapped 1 allocated 2 physical device pageTop
INT 21 P - Phar Lap 386/DOS-Extender - VIRTUAL MEMORY MANAGEMENT - PAGE LOCKING AX = 252Bh BH = function 05h lock pages 06h unlock pages BL = address type 00h linear address ECX = linear start address of memory region 01h segmented address ES:ECX -> start of memory region EDX = size of memory region in bytes Return: CF clear if successful CF set on error Note: this function is also supported by FlashTek X-32VM; if X-32 is not using virtual memory, this function always succeedsTop
INT 21 Pu - Phar Lap 386/DOS-Extender - FREE PHYSICAL PAGES AX = 252Bh BH = function (07h,08h) ??? Return: ???Top
INT 21 P - Phar Lap 386/DOS-Extender v4.1 - GET PAGETABLE ENTRY/PAGE TABLE INFO AX = 252Bh BH = 09h BL = subfunction 00h get page table entry by linear address ECX = linear address for which to get page table entry 01h get page table entry by logical address ES:ECX = address for which to get page table entry Return: CF clear if successful EAX = page table entry EBX = additional page table information CF set on error EAX = error code 0009h invalid address 0082h running under DPMI SeeAlso: AX=251Dh,AX=252Bh/BH=0AhTop
INT 21 P - Phar Lap 386/DOS-Extender v4.1 - SET PAGETABLE ENTRY/PAGE TABLE INFO AX = 252Bh BH = 0Ah BL = subfunction 00h set page table entry for linear address ECX = linear address for which to get page table entry 01h set page table entry for logical address ES:ECX = address for which to get page table entry ESI = page table entry EDI = additional page table information Return: CF clear if successful CF set on error EAX = error code 0009h invalid address 0082h running under DPMI SeeAlso: AX=252Bh/BH=09hTop
INT 21 P - Phar Lap 386/DOS-Extender v4.1+ - MAP DATA FILE AT FILE OFFSET AX = 252Bh BH = 0Bh BL = subfunction 00h by linear address ECX = linear address at which to map data file 01h by logical address ES:ECX = logical address at which to map data file EDX = number of bytes to map DS:ESI -> mapping structure (see #01373) DS:EDI -> ASCIZ filename Return: CF clear if successful CF set on error EAX = error code 0002h file error ECX = phase (01h opening file, 02h seeking, 03h reading) EDX = error code returned by DOS 0009h invalid address 0081h invalid parameters or 386|VMM not present 0086h all 386|VMM file handles already in use SeeAlso: AX=252Bh/BH=03h,AX=252Bh/BH=09h Format of Phar Lap mapping structure: Offset Size Description (Table 01373) 00h DWORD starting file offset to be mapped 04h DWORD DOS file access and sharing modes (see #01403 at INT 21/AH=3Dh)Top
INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0 - ADD UNMAPPED PAGES AT END OF SEGMENT AX = 252Ch BX = segment selector ECX = number of 4K pages to add Return: CF clear if successful EAX = offset in segment of beginning of unmapped pages CF set on error EAX = error code 08h insufficent memory 09h invalid selector 82h not supported by current DPMITop
INT 21 P - Phar Lap 386/DOS-Extender VMM v2.3+ - CLOSE VMM FILE HANDLE AX = 252Dh EBX = VMM file handle Return: CF clear if successful CF set on error EAX = error code (81h invalid VMM handle)Top
INT 21 P - Phar Lap 386/DOS-Extender VMM v2.3+ - GET/SET VMM PARAMETERS AX = 252Eh CL = direction (00h get parameters, 01h set parameters) DS:EBX -> parameter buffer (see #01374) Return: CF clear if successful CF set on error EAX = error code (81h bad parameter value) Format of Phar Lap VMM parameter buffer: Offset Size Description (Table 01374) 00h DWORD flags bit 0: page fault logging enabled ---v5.0+ --- bit 1: swap extender to disk during DOS EXEC call bit 2: don't zero allocated memory 04h DWORD scan period for page aging, in milliseconds 08h DWORD maximum size (in bytes) to check on each page scan 0Ch 52 BYTEs unusedTop
INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0 - WRITE RECORD TO VMM PAGE LOG FILE AX = 252Fh DS:EBX -> data to be written CX = size of data in bytes Return: CF clear if successful CF set on error EAX = error code (85h no page log file or not 386/VMM)Top
INT 21 P - Phar Lap 386/DOS-Ext VMM v2.3+ - SET SIZE OF BUFFER FOR DOS CALLS AX = 2530h ECX = size of data buffer in bytes (1024 to 65536) Return: CF clear if successful CF set on error EAX = error code 08h insufficient low memory 81h invalid size SeeAlso: AX=2517hTop
INT 21 P - Phar Lap 386/DOS-Extender VMM v3.0 - READ/WRITE LDT DESCRIPTOR AX = 2531h BX = segment selector ECX = direction (00h read, 01h write) DS:EDX -> 8-byte buffer for descriptor contents Return: CF clear if successful CF set on error EAX = error code 81h invalid selector 82h DPMI running, or not a code or data segmentTop
INT 21 P - Phar Lap 386/DOS-Extender - GET EXCEPTION HANDLER VECTOR AX = 2532h CL = exception number (00h-0Fh) Return: CF clear if successful ES:EBX = CS:EIP of current exception handler CF set on error (CL > 0Fh) Notes: this call is also supported by the FlashTek X-32VM extender this function is incompatible with 386|VMM; use AX=2522h instead SeeAlso: AX=2522h,AX=2533hTop
INT 21 P - Phar Lap 386/DOS-Extender - SET EXCEPTION HANDLER VECTOR AX = 2533h CL = exception number (00h-0Fh) DS:EDX = CS:EIP of new exception handler Return: CF clear if successful CF set on error (CL > 0Fh) Notes: this call is also supported by the FlashTek X-32VM extender this function is incompatible with 386|VMM; use AX=2522h instead SeeAlso: AX=2522h,AX=2532hTop
INT 21 P - Phar Lap 386/DOS-Extender v3.0+ - GET INTERRUPT FLAG AX = 2534h Return: CF clear EAX = interrupt state (00h disabled, 01h enabled)Top
INT 21 P - Phar Lap 386/DOS-Extender v3.0+ - READ/WRITE SYSTEM REGISTERS AX = 2535h EBX = direction (00h read registers, 01h write) DS:EDX -> system register record (see #01375) Return: CF clear Note: this call is only available under MS Windows if PHARLAP.386 VDD is installed Format of Phar Lap system register record: Offset Size Description (Table 01375) 00h DWORD CR0 04h 4 DWORDs DR0,DR1,DR2,DR3 14h 2 DWORDs reserved 1Ch 2 DWORDs DR6,DR7 24h 3 DWORDs reservedTop
INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0+ - MIN/MAX EXTENDED/CONV MEMORY USAGE AX = 2536h EBX = bit flags bit 0: modifying conventional memory rather than extended memory bit 1: setting maximum memory usage rather than minimum ECX = new limit in 4K pages Return: CF clear if successful EAX = new limit CF set on error EAX = error code (08h memory error or -NOPAGE set) EBX = maximum limit in pages ECX = minimum limit in pagesTop
INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0 - ALLOCATE DOS MEMORY ABOVE DOS BUFFER AX = 2537h BX = number of paragraphs to allocate Return: CF clear if successful AX = real-mode segment of allocated block CF set on error AX = error code 07h MS-DOS memory chain corrupted 08h insufficient low memory BX = size in paragraphs of largest free block SeeAlso: AH=48hTop
INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0 - READ PROTMODE REGS AFTER SFTWARE INT AX = 2538h DS:EBX -> buffer for registers (see #01368) ECX = register record to retrieve 00h first interrupt state 01h next interrupt state EDX = handle for current interrupt state Return: CF clear if successful DS:EBX buffer filled EDX = handle of current interrupt state ESI = number of interrupt which occurred CF set on error EAX = error code 81h invalid handle in EDX 83h register saving not enabled 84h no more interrupt states SeeAlso: AX=2527h,AX=2528hTop
INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0 - GET OFFSET OF .EXP FILE HEADER AX = 2539h BX = MS-DOS file handle for open file Return: CF clear if successful EAX = offset of .EXP header in file CF set on error EAX = error code (02h file error) EBX = file error code 02h DOS error seeking 03h DOS error reading 04h invalid file type 05h invalid file format ECX = DOS error code if EBX=02h or 03h current file position in file modifiedTop
INT 21 P - Phar Lap 386/DOS-Extender v3.0+ - INSTALL MOD. SEG FAILURE HANDLER AX = 253Ah ES:EBX -> function to be called when INT 21/AH=4Ah is about to return an error Return: CF clear ES:EBX -> previous handler SeeAlso: AH=4AhTop
INT 21 P - Phar Lap 386/DOS-Extender v3.0+ - JUMP TO REAL MODE CODE, NO CONTEXT AX = 253Bh DS:EBX -> buffer containing register contents (see #01368) Return: never returns SeeAlso: AX=2528hTop
INT 21 P - Phar Lap 386/DOS-Extender VMM v3.0+ - SHRINK 386|VMM SWAP FILE AX = 253Ch Return: CF clear EAX = old size of swap file in bytes EBX = new size of swap file in bytesTop
INT 21 P - Phar Lap 386/DOS-Extender v4.0+ - READ/WRITE IDT DESCRIPTOR AX = 253Dh BL = interrupt number ECX = direction (0 = read, 1 = write) DS:EDX -> 8-byte buffer for descriptor Return: CF clear if successful DS:EDX filled if reading CF set on error EAX = error code (0082h if running under DPMI) Desc: access hardware-level IDT rather than the internal 386/DOS-Extender shadow IDT Notes: this call will always fail under DPMI because it is not possible to access the IDT the descriptor is not checked when writing this call can normally be used only by programs running in ring 0 because the processor does not allow an interrupt to be vectored to a less privileged ringTop
INT 21 Pu - Phar Lap 386/DOS-Extender v6.0+ - ALLOCATE LDT DESCRIPTOR AX = 253Fh BX = LDT descriptor to allocate (0000h for any) ??? Return: ???Top
INT 21 Pu - Phar Lap 386/DOS-Extender v6.0+ - FORCE ALIAS OF SEGMENT AX = 2540h ??? Return: ???Top
INT 21 Pu - Phar Lap 386/DOS-Extender v6.0+ - FREE DLL AX = 2544h ??? Return: ???Top
INT 21 Pu - Phar Lap 386/DOS-Extender v6.0+ - GET/SET PROCEDURE ADDRESS AX = 2545h ECX = direction (00h get, 01h set) ??? Return: ???Top
INT 21 Pu - Phar Lap 386/DOS-Extender v6.0+ - GET MODULE HANDLE AX = 2546h ??? Return: ???Top
INT 21 P - Phar Lap 386/DOS-Extender - ALLOCATE MS-DOS MEMORY BLOCK AX = 25C0h BX = number of 16-byte paragraphs of MS-DOS memory requested Return: CF clear if successful AX = real-mode paragraph address of memory CF set on error AX = error code 07h MS-DOS memory control blocks destroyed 08h insufficient memory BX = size in paragraphs of largest available memory block SeeAlso: AX=25C1h,AX=25C2hTop
INT 21 P - Phar Lap 386/DOS-Extender - RELEASE MS-DOS MEMORY BLOCK AX = 25C1h CX = real-mode paragraph address of memory block to free Return: CF clear if successful EAX destroyed CF set on error AX = error code 07h MS-DOS memory control blocks destroyed 09h invalid memory block address in CX SeeAlso: AX=25C0h,AX=25C2hTop
INT 21 P - Phar Lap 386/DOS-Extender - MODIFY MS-DOS MEMORY BLOCK AX = 25C2h BX = new requested block size in paragraphs CX = real-mode paragraph address of memory block to modify Return: CF clear if successful EAX destroyed CF set on error AX = error code 07h MS-DOS memory control blocks destroyed 08h insufficient memory 09h invalid memory block address in CX BX = size in paragraphs of largest available memory block SeeAlso: AX=25C0h,AX=25C1hTop
INT 21 P - Phar Lap 386/DOS-Extender - EXECUTE PROGRAM AX = 25C3h ES:EBX -> pointer to parameter block (see #01377) DS:EDX -> pointer to ASCIZ program filename Return: CF clear if successful all registers unchanged CF set on error EAX = error code (see #01376) (Table 01376) Values for Phar Lap error code: 01h function code in AL is invalid ??? 02h file not found or path invalid 05h access denied 08h insufficient memory to load program 0Ah environment invalid 0Bh invalid file format Format of parameter block: Offset Size Description (Table 01377) 00h DWORD 32-bit offset of environment string 04h WORD segment selector of environment string 06h DWORD 32-bit offset of command-tail string 0Ah WORD segment selector of command-tail stringTop
INT 21 - DOS 1+ - CREATE NEW PROGRAM SEGMENT PREFIX AH = 26h DX = segment at which to create PSP (see #01378) Return: AL destroyed Notes: new PSP is updated with memory size information; INTs 22h, 23h, 24h taken from interrupt vector table; the parent PSP field is set to 0 (DOS 2+) DOS assumes that the caller's CS is the segment of the PSP to copy BUG: DR DOS 6.0 original releases 05/1991 & 08/1991 had a problem where the segment from which the PSP was copied was incorrect so that the PSP was not filled correctly and did not contain the command tail. The DR DOS 6.0 BDOS patch "PAT312" English (1992/01/07, XDIR /C: A0C6h) and later "full" rebuilds fix this problem (see INT 21/AX=4452h). SeeAlso: AH=4Bh,AH=50h,AH=51h,AH=55h,AH=62h,AH=67h Format of Program Segment Prefix (PSP): Offset Size Description (Table 01378) 00h 2 BYTEs INT 20 instruction for CP/M CALL 0 program termination the CDh 20h here is often used as a signature for a valid PSP 02h WORD segment of first byte beyond memory allocated to program 04h BYTE (DOS) unused filler (OS/2) count of fake DOS version returns 05h BYTE CP/M CALL 5 service request (FAR CALL to absolute 000C0h) BUG: (DOS 2+ DEBUG) PSPs created by DEBUG point at 000BEh 06h WORD CP/M compatibility--size of first segment for .COM files 08h 2 BYTEs remainder of FAR JMP at 05h 0Ah DWORD stored INT 22 termination address 0Eh DWORD stored INT 23 control-Break handler address 12h DWORD DOS 1.1+ stored INT 24 critical error handler address 16h WORD segment of parent PSP 18h 20 BYTEs DOS 2+ Job File Table, one byte per file handle, FFh = closed 2Ch WORD DOS 2+ segment of environment for process (see #01379) 2Eh DWORD DOS 2+ process's SS:SP on entry to last INT 21 call 32h WORD DOS 3+ number of entries in JFT (default 20) 34h DWORD DOS 3+ pointer to JFT (default PSP:0018h) 38h DWORD DOS 3+ pointer to previous PSP (default FFFFFFFFh in 3.x) used by SHARE in DOS 3.3 3Ch BYTE DOS 4+ (DBCS) interim console flag (see AX=6301h) Novell DOS 7 DBCS interim flag as set with AX=6301h (possibly also used by Far East MS-DOS 3.2-3.3) 3Dh BYTE (APPEND) TrueName flag (see INT 2F/AX=B711h) 3Eh BYTE (Novell NetWare) flag: next byte initialized if CEh (OS/2) capabilities flag 3Fh BYTE (Novell NetWare) Novell task number if previous byte is CEh 40h 2 BYTEs DOS 5+ version to return on INT 21/AH=30h 42h WORD (MSWindows3) selector of next PSP (PDB) in linked list Windows keeps a linked list of Windows programs only 44h WORD (MSWindows3) "PDB_Partition" 46h WORD (MSWindows3) "PDB_NextPDB" 48h BYTE (MSWindows3) bit 0 set if non-Windows application (WINOLDAP) 49h BYTE unused by DOS versions <= 6.00 4Ch WORD (MSWindows3) "PDB_EntryStack" 4Eh 2 BYTEs unused by DOS versions <= 6.00 50h 3 BYTEs DOS 2+ service request (INT 21/RETF instructions) 53h 2 BYTEs unused in DOS versions <= 6.00 55h 7 BYTEs unused in DOS versions <= 6.00; can be used to make first FCB into an extended FCB 5Ch 16 BYTEs first default FCB, filled in from first commandline argument overwrites second FCB if opened 6Ch 16 BYTEs second default FCB, filled in from second commandline argument overwrites beginning of commandline if opened 7Ch 4 BYTEs unused 80h 128 BYTEs commandline / default DTA command tail is BYTE for length of tail, N BYTEs for the tail, followed by a BYTE containing 0Dh Notes: in DOS v3+, the limit on simultaneously open files may be increased by allocating memory for a new open file table, filling it with FFh, copying the first 20 bytes from the default table, and adjusting the pointer and count at 34h and 32h. However, DOS will only copy the first 20 file handles into a child PSP (including the one created on EXEC). in an OS/2 DOS box, values of D0h-FEh in the open file table indicate device drivers network redirectors based on the original MS-Net implementation use values of 80h-FEh in the open file table to indicate remote files; Novell NetWare also uses values from FEh down to 80h or one more than FILES= (whichever is greater) to indicate remote files (except on OS/2, where is uses CFh down to 80h) MS-DOS 5.00 incorrectly fills the FCB fields when loading a program high; the first FCB is empty and the second contains the first parameter some DOS extenders place protected-mode values in various PSP fields such as the "parent" field, which can confuse PSP walkers. Always check either for the CDh 20h signature or that the suspected PSP is at the beginning of a memory block which owns itself (the preceding paragraph should be a valid MCB with "owner" the same as the suspected PSP). Novell NetWare updates the fields at offsets 3Eh and 3Fh without checking that a legal PSP segment is current; see AH=50h for further discussion for 4DOS and Windows95, the command tail may be more than 126 characters; in that case, the length byte will be set to 7Fh (with an 0Dh in the 127th position at offset FFh), and the first 126 characters will be stored in the PSP, with the entire command line in the environment variable CMDLINE; under at least some versions of 4DOS, the byte at offset FFh is *not* set to 0Dh, so there is no terminating carriage return in the PSP's command tail. BUG: When shelling out from the Borland Pascal 7.00 IDE, overly-long command lines will not be delimited by a 0Dh character, and the length byte is set to 80h! A workaround is to always patch in a 0Dh at the last position of the command line buffer before scanning the command line. Format of environment block: Offset Size Description (Table 01379) 00h N BYTEs first environment variable, ASCIZ string of form "var=value" N BYTEs second environment variable, ASCIZ string ... N BYTEs last environment variable, ASCIZ string of form "var=value" BYTE 00h ---DOS 3.0+ --- WORD number of strings following environment (normally 1) N BYTEs ASCIZ full pathname of program owning this environment other strings may followTop
INT 21 - DOS 1+ - RANDOM BLOCK READ FROM FCB FILE AH = 27h CX = number of records to read DS:DX -> opened FCB (see #01345) Return: AL = status 00h successful, all records read 01h end of file, no data read 02h segment wrap in DTA, no data read 03h end of file, partial read Disk Transfer Area filled with records read from file CX = number of records read (return AL = 00h or 03h) Notes: read begins at current file position as specified in FCB; the file position is updated after reading not supported by MS Windows 3.0 DOSX.EXE DOS extender SeeAlso: AH=21h,AH=28h,AH=3Fh"DOS"Top
INT 21 - DOS 1+ - RANDOM BLOCK WRITE TO FCB FILE AH = 28h CX = number of records to write DS:DX -> opened FCB (see #01345) Disk Transfer Area contains records to be written Return: AL = status 00h successful 01h disk full or file read-only 02h segment wrap in DTA CX = number of records written Notes: write begins at current file position as specified in FCB; the file position is updated after writing if CX = 0000h on entry, no data is written; instead the file size is adjusted to be the same as the file position specified by the random record and record size fields of the FCB if the data to be written is less than a disk sector, it is copied into a DOS disk buffer, to be written out to disk at a later time not supported by MS Windows 3.0 DOSX.EXE DOS extender SeeAlso: AH=22h,AH=27h,AH=40h,AH=59h/BX=0000hTop
INT 21 - DOS 1+ - PARSE FILENAME INTO FCB AH = 29h AL = parsing options (see #01380) DS:SI -> filename string (both '*' and '?' wildcards OK) ES:DI -> buffer for unopened FCB Return: AL = result code 00h successful parse, no wildcards encountered 01h successful parse, wildcards present FFh failed (invalid drive specifier) DS:SI -> first unparsed character ES:DI buffer filled with unopened FCB (see #01345) Notes: asterisks in the name are expanded to question marks in the FCB all processing stops when a filename terminator is encountered cannot be used with filespecs which include a path (DOS 2+) Novell NetWare monitors the result code since an 'invalid drive' may signal an attempt to reconnect a network drive; if there are no connections to the specified drive, NetWare attempts to build a connection and map the drive to the SYS:LOGIN directory SeeAlso: AH=0Fh,AH=16h,AH=26h Bitfields for parsing options: Bit(s) Description (Table 01380) 0 skip leading separators 1 use existing drive number in FCB if no drive is specified, instead of setting field to zero 2 use existing filename in FCB if no base name is specified, instead of filling field with blanks 3 use existing extension in FCB if no extension is specified, instead of filling field with blanks 4-7 reserved (0)Top
INT 21 - DOS 1+ - GET SYSTEM DATE AH = 2Ah Return: CX = year (1980-2099) DH = month DL = day ---DOS 1.10+--- AL = day of week (00h=Sunday) SeeAlso: AH=2Bh"DOS",AH=2Ch,AH=E7h"Novell",INT 1A/AH=04h,INT 2F/AX=120DhTop
INT 21 - DOS 1+ - SET SYSTEM DATE AH = 2Bh CX = year (1980-2099) DH = month (1-12) DL = day (1-31) Return: AL = status 00h successful FFh invalid date, system date unchanged Note: DOS 3.3+ also sets CMOS clock; due to the limitations of the CLOCK$ driver interface, the CMOS time is also updated to the current DOS time (which is the BIOS time-of-day clock with the default CLOCK$ driver) SeeAlso: AH=2Ah,AH=2Dh,INT 1A/AH=05hTop
INT 21 - AI Architects - ??? - INSTALLATION CHECK AH = 2Bh CX = 4149h ('AI') DX = 413Fh ('A?') Return: AL <> FFh if installed Note: Borland's TKERNEL makes this callTop
INT 21 - Super PC-Kwik v3.20+ - INSTALLATION CHECK AH = 2Bh CX = 4358h ('CX') Return: AL = FFh if PC-Kwik/PC-Cache not installed AL = 00h if installed CF clear CX = 6378h ('cx') BX = ??? DX = version (DH = major version, DL = binary minor version) Note: PC Tools PC-Cache v5.x and Qualitas Qcache v4.00 are OEM versions of Super PC-Kwik, and thus support this call (PC-Cache 5.1 corresponds to PC-Kwik v3.20) SeeAlso: INT 13/AH=A0h,INT 13/AH=B0h,INT 16/AX=FFA5h/CX=1111h Index: PC-Cache;installation check|Qualitas Qcache;installation check Index: installation check;PC-Cache 5.x|installation check;Qualitas QcacheTop
INT 21 - DESQview - INSTALLATION CHECK AH = 2Bh CX = 4445h ('DE') DX = 5351h ('SQ') AL = subfunction (DV v2.00+) 01h get version Return: BX = version (BH = major, BL = minor) Note: early copies of v2.00 return 0002h 02h get shadow buffer info, and start shadowing Return: BH = rows in shadow buffer BL = columns in shadow buffer DX = segment of shadow buffer 04h get shadow buffer info Return: BH = rows in shadow buffer BL = columns in shadow buffer DX = segment of shadow buffer 05h stop shadowing Return: AL = FFh if DESQview not installed Notes: in DESQview v1.x, there were no subfunctions; this call only identified whether or not DESQview was loaded. DESQview v2.52 performs function 01h for all subfunction requests 0Ch and higher and appears to ignore all lower-numbered functions not listed here. DESQview versions 2.50-2.52 are part of DESQview/X v1.0x; version 2.53 is part of DESQview/X v1.10; and version 2.63 is part of DESQview/X v2.00. BUG: subfunction 05h does not appear to work correctly in DESQview 2.52 SeeAlso: INT 10/AH=FEh,INT 10/AH=FFh,INT 15/AX=1024h,INT 15/AX=DE30hTop
INT 21 - ELRES v1.1 - INSTALLATION CHECK AH = 2Bh CX = 454Ch ('EL') DX = 5253h ('RS') Return: ES:BX -> ELRES history structure (see #01381) DX = DABEh (signature, DAve BEnnett) Program: ELRES is an MS-DOS return code (errorlevel) recorder by David H. Bennett which stores recent errorlevel values, allows them to be retrieved for use in batch files, and can place them in an environment variable SeeAlso: AH=4Bh"ELRES",AH=4Dh Format of ELRES history structure: Offset Size Description (Table 01381) 00h WORD number of return codes which can be stored by following buffer 02h WORD current position in buffer (treated as a ring) 04h N BYTEs ELRES bufferTop
INT 21 - The Volkov Commander - GET POINTER TO LEFT PANEL DATA STRUCTURE AX = 2B00h CX = 5643h ('VC') DX = 4F4Dh ('OM') Return: AL = 0 ES:BX -> left panel data structure Program: Volcov Commander is a shell for MS-DOS by Vsevolod V. Volkov SeeAlso: AX=2B01h/CX=5643h,AX=2B02h/CX=5643hTop
INT 21 - The Volkov Commander - GET POINTER TO RIGHT PANEL DATA STRUCTURE AX = 2B01h CX = 5643h ('VC') DX = 4F4Dh ('OM') Return: AL = 0 ES:BX -> right panel data structure SeeAlso: AX=2B00h/CX=5643h,AX=2B02h/CX=5643hTop
INT 21 - The Volkov Commander - GET POINTER TO GLOBAL VARIABLES AX = 2B02h CX = 5643h ('VC') DX = 4F4Dh ('OM') Return: AL = 0 ES:BX -> global variables SeeAlso: AX=2B00h/CX=5643h,AX=2B01h/CX=5643hTop
INT 21 - Quarterdeck DOS-UP.SYS v2.00 - INSTALLATION CHECK AX = 2B01h CX = 444Dh ('DM') DX = 4158h ('AX') Return: AX = 0000h if installed BX = DOS-UP version (BH = minor, BL = major) CX = 4845h ('HE') DX = 5245h ('RE') ES = DOS-UP driver segmentTop
INT 21 - TAME v2.10+ - INSTALLATION CHECK AX = 2B01h CX = 5441h ('TA') DX = 4D45h ('ME') ---v2.60--- BH = ??? 00h skip ???, else do Return: AL = 02h if installed ES:DX -> data area in TAME-RES (see #01382,#01386,#01388) Program: TAME is a shareware program by David G. Thomas which gives up CPU time to other partitions under a multitasker when the current partition's program incessantly polls the keyboard or system time Format of TAME 2.10-2.20 data area: Offset Size Description (Table 01382) 00h BYTE data structure minor version number (01h in TAME 2.20) 01h BYTE data structure major version number (07h in TAME 2.20) 02h DWORD number of task switches 06h DWORD number of keyboard polls 0Ah DWORD number of time polls 0Eh DWORD number of times DESQview told program runs only in foreground 12h DWORD original INT 10h 16h DWORD original INT 14h 1Ah DWORD original INT 15h 1Eh DWORD original INT 16h 22h DWORD original INT 17h 26h DWORD original INT 21h 2Ah DWORD original INT 28h 2Eh WORD offset of TAME INT 10h handler 30h WORD offset of TAME INT 14h handler 32h WORD offset of TAME INT 15h handler 34h WORD offset of TAME INT 16h handler 36h WORD offset of TAME INT 17h handler 38h WORD offset of TAME INT 21h handler 3Ah WORD offset of TAME INT 28h handler 3Ch WORD X in /max:X,Y or /freq:X,Y 3Eh WORD Y in /max:X,Y or /freq:X,Y 40h WORD number of polls remaining before next task switch 42h WORD /KEYIDLE value 44h BYTE interrupts already grabbed by TAME (see #01383) 45h BYTE flags for interrupts which may be acted on (same bits as above) 46h BYTE TAME enabled (01h) or disabled (00h) 47h BYTE /TIMEPOLL (01h) or /NOTIMEPOLL (00h) 48h BYTE /NOTIMER (01h) or /TIMER (00h) 49h BYTE window or task number for this task 4Ah BYTE multitasker type (see #01384) 4Bh BYTE type of task switching selected bit 0: DESQview??? bit 1: DoubleDOS??? bit 2: TopView??? bit 3: KeySwitch bit 4: HLT instruction 4Ch BYTE ??? 4Dh BYTE flags bit 1: /FREQ instead of /MAX 4Eh BYTE /FG: value 4Fh BYTE task switches left until next FGONLY DESQview API call 50h BYTE ??? Bitfields for interrupts already grabbed by TAME: Bit(s) Description (Table 01383) 0 INT 10h 1 INT 14h 2 INT 15h 3 INT 16h 4 INT 17h 5 INT 21h 6 INT 28h (Table 01384) Values for multitasker type: 01h DESQview 02h DoubleDOS 03h TopView 04h OmniView 05h VM/386 Bitfields for type of task switching selected: Bit(s) Description (Table 01385) 0 DESQview 1 DoubleDOS 2 TopView 3 OmniView 4 KeySwitch 5 HLT instruction Format of TAME 2.30 data area: Offset Size Description (Table 01386) 00h BYTE data structure minor version number (02h in TAME 2.30) 01h BYTE data structure major version number (0Ah in TAME 2.30) 02h DWORD number of task switches 06h DWORD number of keyboard polls 0Ah DWORD number of time polls 0Eh DWORD number of times DESQview told program runs only in foreground 12h DWORD time of last /CLEAR or TAME-RES load 16h DWORD time yielded 1Ah DWORD time spent polling 1Eh DWORD time spent waiting on key input with INT 16/AH=01h,11h 22h DWORD original INT 10h 26h DWORD original INT 14h 2Ah DWORD original INT 15h 2Eh DWORD original INT 16h 32h DWORD original INT 17h 36h DWORD original INT 21h 3Ah DWORD original INT 28h 3Eh WORD offset of TAME INT 10h handler 40h WORD offset of TAME INT 14h handler 42h WORD offset of TAME INT 15h handler 44h WORD offset of TAME INT 16h handler 46h WORD offset of TAME INT 17h handler 48h WORD offset of TAME INT 21h handler 4Ah WORD offset of TAME INT 28h handler 4Ch WORD X in /max:X,Y or /freq:X,Y 4Eh WORD Y in /max:X,Y or /freq:X,Y 50h WORD number of polls remaining before next task switch 52h WORD /KEYIDLE value 54h WORD /FG: value 56h WORD task switches left until next FGONLY DESQview API call 58h WORD multitasker version 5Ah WORD virtual screen segment 5Ch BYTE interrupts already grabbed by TAME (see #01383) 5Dh BYTE flags for interrupts which may be acted on (same bits as above) 5Eh BYTE window or task number for this task 5Fh BYTE multitasker type (see #01384) 60h BYTE type of task switching selected (bit flags) (see #01385) 61h BYTE watch_DOS 62h BYTE action flags (see #01387) 63h BYTE old status 64h WORD signature DA34h Bitfields for TAME action flags: Bit(s) Description (Table 01387) 0 TAME enabled 1 /FREQ instead of /MAX (X and Y count fields are per tick) 2 /TIMEPOLL 3 /KEYPOLL 4 inhibit timer 5 enable status monitoring SeeAlso: #01386,#01388 Format of TAME 2.60 data area: Offset Size Description (Table 01388) 00h BYTE data structure minor version number (02h in TAME 2.60) 01h BYTE data structure major version number (0Bh in TAME 2.60) 02h DWORD number of task switches 06h DWORD number of keyboard polls 0Ah DWORD number of time polls 0Eh DWORD number of times DESQview told program runs only in foreground 12h DWORD time of last /CLEAR or TAME-RES load 16h DWORD time yielded 1Ah DWORD time spent polling 1Eh DWORD time spent waiting on key input with INT 16/AH=01h,11h 22h 4 BYTEs ??? 26h DWORD original INT 10h 2Ah DWORD original INT 14h 2Eh DWORD original INT 15h 32h DWORD original INT 16h 36h DWORD original INT 17h 3Ah DWORD original INT 21h 3Eh DWORD original INT 28h 42h WORD offset of TAME INT 10h handler 44h WORD offset of TAME INT 14h handler 46h WORD offset of TAME INT 15h handler 48h WORD offset of TAME INT 16h handler 4Ah WORD offset of TAME INT 17h handler 4Ch WORD offset of TAME INT 21h handler 4Eh WORD offset of TAME INT 28h handler 50h WORD X in /max:X,Y or /freq:X,Y 52h WORD Y in /max:X,Y or /freq:X,Y 54h WORD number of polls remaining before next task switch 56h WORD /KEYIDLE value 58h 4 BYTEs ??? 5Ch WORD X in /boost:X,Y 5Eh WORD Y in /boost:X,Y 60h WORD /FG: value 62h WORD task switches remaining until next FGONLY DESQview API call 64h WORD multitasker version ??? 66h WORD virtual screen segment 68h BYTE interrupts already grabbed by TAME (see #01383) 69h BYTE flags for interrupts which may be acted on (same bits as above) 6Ah BYTE window or task number for this task 6Bh BYTE multitasker type (see #01384) 6Ch BYTE type of task switching selected (bit flags) (see #01385) 6Dh BYTE watch_DOS 6Eh BYTE action flags (see #01387) 6Fh BYTE old status 70h WORD signature DA34hTop
INT 21 - VIRUS - "Maltese Amoeba" - INSTALLATION CHECK AX = 2B16h CX = 0643h Return: AX = 1603h if installedTop
INT 21 - pcANYWHERE IV/LAN - INSTALLATION CHECK AX = 2B44h ('D') BX = 4D41h ('MA') CX = 7063h ('pc') DX = 4157h ('AW') Return: AX = resident program 4F4Bh ('OK') if large host resident 6F6Bh ('ok') if small host resident CX:DX -> API entry point (see #01389) SeeAlso: INT 16/AH=79h (Table 01389) Call pcANYWHERE API entry point with: AX = 0000h get pcANYWHERE IV version DS:SI -> BYTE buffer for host type code Return: AH = version number AL = revision number DS:DI buffer byte filled with 00h full-featured host 01h limited-feature LAN host other API may not be supported AX = 0001h initialize operation DS:SI -> initialization request structure (see #01390) Return: AX = function status (see #01393) AX = 0002h get status Return: AH = current operating mode (see #01390) AL = current connection status (see #01392) AX = 0003h suspend remote screen updates Return: AX = function status (see #01393) AX = 0004h resume screen updates Return: AX = function status (see #01393) AX = 0005h end current remote access session DS:SI -> termination request structure (see #01391) Return: AX = function status (see #01393) AX = 0006h remove pcANYWHERE IV from memory Return: AX = status (see #01393) AX = 8000h read data from communications channel DS:BX -> buffer CX = buffer size Return: AX >= number of characters read/available AX < 0 on error AX = 8001h write data to communications channel DS:BX -> buffer CX = buffer size Return: AX >= number of characters written AX < 0 on error AX = 8002h get connection status Return: AX = status > 0000h if connection active = 0000h if connection lost < 0000h on error Format of pcANYWHERE initialization request structure: Offset Size Description (Table 01390) 00h BYTE operating mode 00h wait for a call 01h hot key activates 02h incoming call activates 03h initiate a call 01h 3 BYTEs user ID to append to config file names 04h WORD DS-relative pointer to path for config files 06h WORD DS-relative pointer to path for program files Format of pcANYWHERE termination request structure: Offset Size Description (Table 01391) 00h BYTE operating mode after termination 00h wait for a call 01h hot key activates 02h incoming call activates 80h use current mode FFh remove from memory Bitfields for current connection status: Bit(s) Description (Table 01392) 0 a physical connection is active 1 remove screen updating is active 2 connection checking is active 3 hot key detection is active 4 background file transfer is active (Table 01393) Values for pcANYWHERE function status: 0000h function completed successfully FFD1h unable to release interrupt vectors FFD2h unable to release allocated memory FFF2h unable to establish a connection when operating mode is "Initiate a call" FFF3h modem configuration is invalid (corrupt config) FFF4h modem initialization failed (no modem response) FFF5h the communications device could not be initialized FFF6h the host operator aborted the function FFF7h the communications driver type specified in the configuration file is different than the one loaded when pcANYWHERE IV was started FFF9h the configuration file is invalid FFFAh the configuration file could not be found FFFBh no session is active FFFCh a remote access session is active FFFDh the specified operating mode is invalidTop
INT 21 - Volkov Commander - INSTALLATION CHECK AH = 2Bh CX = 5643h ('VC') DX = 4F4Dh ('OM') AL = function number 00h get left window data address 01h get right window data address 02h get address of general variables Return: AL = 00h if Volkov Commander installed AH = version code (27h for v4.00.039) ES:BX -> requested data Program: Volkov Commander is a Norton Commander-like DOS shellTop
INT 21 - WDTSR.COM - INSTALLATION CHECK AH = 2Bh CX = 6269h ('bi') DX = 742Dh ('t-') Return: AL = FFh if not installed AL = 77h ('w') if WDTSR is installed CX = 6174h ('at') DX = 6368h ('ch') ES = resident code segment ES:DI -> identification and configuration data Program: WDTSR is a driver for the bitWatch watchdog hardware by bit-design GmbH SeeAlso: AH=2Bh/CX=6269h"bitFOSSI",INT 14/AH=14h"FOSSIL",INT 15/AH=C3hTop
INT 21 - bitFOSS - INSTALLATION CHECK AH = 2Bh CX = 6269h ('bi') DX = 7446h ('tF') Return: AL = FFh if not installed AL = 4Fh ('O') if bitFOSS is installed CX = 5353h ('SS') DX = 494Ch ('IL') ES = resident code segment ES:DI -> identification data Program: bitFOSS is a revision 5 FOSSIL driver SeeAlso: AH=2Bh/CX=6269h"bitFOSSI",INT 11/AH=BChTop
INT 21 - bitFOSSI - INSTALLATION CHECK AH = 2Bh CX = 6269h ('bi') DX = 7449h ('tI') Return: AL = FFh if not installed AL = 53h ('S') if bitFOSSI is installed CX = 444Eh ('DN') DX = 2D46h ('-F') ES = resident code segment ES:DI -> identification data Program: bitFOSSI is a revision 5 FOSSIL driver for ???'s ISDN board SeeAlso: AH=2Bh/CX=6269h"bitFOSS",INT 11/AH=BChTop
INT 21 - DOS 1+ - GET SYSTEM TIME AH = 2Ch Return: CH = hour CL = minute DH = second DL = 1/100 seconds Note: on most systems, the resolution of the system clock is about 5/100sec, so returned times generally do not increment by 1 on some systems, DL may always return 00h SeeAlso: AH=2Ah,AH=2Dh,AH=E7h"Novell",INT 1A/AH=00h,INT 1A/AH=02h,INT 1A/AH=FEh SeeAlso: INT 2F/AX=120DhTop
INT 21 - VIRUS - "Anti Pode 2.0" - INSTALLATION CHECK AH = 2Ch Return: DL = F2h if resident SeeAlso: AX=1812h"VIRUS",AX=2C2ChTop
INT 21 - SKUDO - INSTALLATION CHECK AX = 2C00h CX = 534Bh ('SK') DX = 5544h ('UD') BX = 4F21h ('O!') Return: AX = 5349h ('SI') if installed CH = version number CL = subversion Program: SKUDO is an antivirus TSR by Jordi MasTop
INT 21 - VIRUS - "LockJaw/Proto-T" - INSTALLATION CHECK AX = 2C2Ch Return: AX = 0DCDh if resident SeeAlso: AH=2Ch"VIRUS",AX=3000h"VIRUS"Top
INT 21 - DOS 1+ - SET SYSTEM TIME AH = 2Dh CH = hour CL = minute DH = second DL = 1/100 seconds Return: AL = result 00h successful FFh invalid time, system time unchanged Note: DOS 3.3+ also sets CMOS clock; due to the limitations of the CLOCK$ driver interface, the CMOS date is also updated to the current DOS date SeeAlso: AH=2Bh"DOS",AH=2Ch,INT 1A/AH=01h,INT 1A/AH=03h,INT 1A/AH=FFh"AT&T"Top
INT 21 - PC-Mix - INSTALLATION CHECK AX = 2D01h CX = 7820h ('X ') DX = 6D69h ('MI') Return: AL = 00h if installedTop
INT 21 - DOS 1+ - SET VERIFY FLAG AH = 2Eh DL = 00h (DOS 1.x/2.x only) AL = new state of verify flag 00h off 01h on Notes: default state at system boot is OFF when ON, all disk writes are verified provided the device driver supports read-after-write verification SeeAlso: AH=54hTop
INT 21 - DOS 2+ - GET DISK TRANSFER AREA ADDRESS AH = 2Fh Return: ES:BX -> current DTA Note: under the FlashTek X-32 DOS extender, the pointer is in ES:EBX SeeAlso: AH=1AhTop
INT 21 - DOS 2+ - GET DOS VERSION AH = 30h ---DOS 5+ --- AL = what to return in BH 00h OEM number (see #01394) 01h version flag Return: AL = major version number (00h if DOS 1.x) AH = minor version number BL:CX = 24-bit user serial number (most versions do not use this) ---if DOS <5 or AL=00h--- BH = MS-DOS OEM number (see #01394) ---if DOS 5+ and AL=01h--- BH = version flag bit 3: DOS is in ROM other: reserved (0) Notes: the OS/2 v1.x Compatibility Box returns major version 0Ah (10) the OS/2 v2.x Compatibility Box returns major version 14h (20) OS/2 Warp 3.0 Virtual DOS Machines report v20.30; Warp 4 VDMs report v20.40. the Windows NT DOS box returns version 5.00, subject to SETVER DOS 4.01 and 4.02 identify themselves as version 4.00; use INT 21/AH=87h to distinguish between the original European MS-DOS 4.0 and the later PC-DOS 4.0x and MS-DOS 4.0x IBM DOS 6.1 reports its version as 6.00; use the OEM number to distinguish between MS-DOS 6.00 and IBM DOS 6.1 (there was never an IBM DOS 6.0) IBM's PC DOS 7 and Y2K updates report themselves as IBM 7.0 to be distinguished from the MS-DOS 7.0 portion of Windows 95. MS-DOS 6.21 reports its version as 6.20; version 6.22 returns the correct value Windows95 returns version 7.00 (the underlying MS-DOS), as did the "Chicago" beta (reported in _Microsoft_Systems_Journal_,August 1994); Windows95 OSR2 and OSR2.5 (OPK3) return MS version 7.10 DR DOS 5.0 and 6.0 report version 3.31; Novell DOS 7 reports IBM v6.00, which some software displays as IBM DOS v6.10 (because of the version mismatch in true IBM DOS, as mentioned above). The Novell DOS 7 SETVER.EXE has an undocumented option /G x.y which sets the "global" DOS version returned by this function for all executables not given a specific version number in SETVER to major version x and minor version y. Heiko Goeman's Advanced WinDOS 2.10/2.11/2.21 returns "IBM" DOS 5.00 (subject to SETVER) and serial number 0. All versions of CCI Multiuser DOS up to "CCI Multiuser DOS 7.22 Gold" as of 1997-02-10 report DOS 3.31. DR DOS 3.31, 3.32, 3.33, 3.34, 3.35, 3.40, 3.41, 5.0, 6.0 and DR PalmDOS/NetWare PalmDOS 1.0 report version 3.31; DR DOS "Panther" BETA 1 and "StarTrek" report as 5.0. Novell DOS 7, OpenDOS 7.01, DR-OpenDOS 7.02, DR-DOS 7.02, DR-DOS 7.03 all report themselves as IBM 6.00, which some software displays as IBM DOS 6.10 (because of the version mismatch in true IBM DOS, as mentioned above). Use INT 21/AX=4452h to distinguish the DR-DOS family from PC DOS. The Novell DOS 7 and OpenDOS 7.01 SETVER.EXE has an undocumented option /G x.y which sets the "global" DOS version returned by this function for all executables not given a specific version number in SETVER to major version x >= 5 and minor version y = 0..254, y = 255 is used to disable the BDOS version check at INT 21/AX=4452h. A slightly modified option has been documented for DR-OpenDOS 7.02+: in /X mode it now allows for x >= 1, while y >= 100 requires /X mode, and y >= 128 is used to control advanced version control means now (see below). DR-DOS 7.02+ IBMDOS.COM (since 1998-01-10) now recognizes optional paths to filenames stored in the SETVER list. Previously such entries were never found. This allows for a three staged model for SETVERed versions: highest priority = entry with path is matching. middle priority = entry without path is matching. lowest priority = use global version (SETVER /G). The DR-DOS 7.02+ SETVER 1.01+ (1998-01-12) has also been enhanced to allow DOS *and* BDOS version faking (see INT 21/AX=4452h): In /X mode, setting a sub-version of y = 128..255 will be reported as 0..127 DOS sub-version, sub-versions of y = 100..127 will instead be used to report this value as BDOS version (64h..7Fh) via INT 21/AX=4452h, and the DOS revision stored in PCM_HEADER in the IBMDOS.COM file will be used to report the DOS sub-version (usually this holds 0, but it can be patched to other values, see INT 21/AX=4452h !!!). Note, that DR-DOS SHARE 2.05+ (1998-01-05) has relaxed version checking, and will install on any DOS revision 0..127, as long as run on a DR-DOS 72h+ kernel (formerly it was bound to a revision byte of 0 only). Under Novell DOS 7+, the SETVERing also affects the version number WORD stored at offset +40h in each program's PSP (see #01378). This holds true even for special sub-versions of 100..255 (see INT 21/AX=4452h). generic MS-DOS 3.30, Compaq MS-DOS 3.31, and others identify themselves as PC-DOS by returning OEM number 00h the version returned under DOS 4.0x may be modified by entries in the special program list (see #01662 at AH=52h); the version returned under DOS 5+ may be modified by SETVER--use AX=3306h to get the true version number SeeAlso: AX=3000h/BX=3000h,AX=3306h,AX=4452h,AH=87h,INT 15/AX=4900h SeeAlso: AH=20h"S/DOS",INT 2F/AX=122Fh,INT 2F/AX=4010h,INT 2F/AX=4A33h SeeAlso: INT 2F/AX=E002h (Table 01394) Values for DOS OEM number: 00h * IBM - (Novell DOS, Caldera OpenDOS, DR-OpenDOS, and DR-DOS 7.02+ report IBM as their OEM) 01h * Compaq 02h * MS Packaged Product 04h * AT&T 05h * ZDS (Zenith Electronics, Zenith Electronics) Note: Zenith DOS 3.30 supports >32MB hard disks; this OEM ID can be used to detect that support 06h * Hewlett-Packard 07h * Zenith Data Systems (ZDS, Groupe Bull), for DOS 5.0+ 08h * Tandon 09h * AST (AST Europe Ltd.) 0Ah * Asem 0Bh * Hantarex 0Ch * SystemsLine 0Dh * Packard-Bell 0Eh * Intercomp 0Fh * Unibit 10h * Unidata 16h * DEC 17h * Olivetti DOS 23h * Olivetti (may have been a typo, since 23 = 17h) 28h * Texas Instruments 29h * Toshiba 33h - Novell (Windows/386 device IDs only) 34h * MS Multimedia Systems (Windows/386 device IDs only) 35h * MS Multimedia Systems (Windows/386 device IDs only) 4Dh * Hewlett-Packard (HP) 5Eh - RxDOS (Api Software & Mike Podanoffsky) http://www.freedos.org/ 66h - PhysTechSoft (PTS-DOS) http://www.phystechsoft.com/ probably Paragon Technology Systems Corporation PTS-DOS as well 99h - General Software's Embedded DOS CDh - Paragon Technology Systems Corporation ("Source DOS" S/DOS 1.0+) (see also INT 21/AH=20h"S/DOS") EDh - reserved for future OpenDOS/DR-DOS based projects http://www.drdos.org EEh DR DOS EFh Novell DOS Note: released versions of Novell DOS 7 use OEM ID 00h instead FDh FreeDOS http://www.freedos.org/ FFh * Microsoft, Phoenix (listed as "undefined" by Microsoft) Notes: '*' indicates an OEM release of MS-DOS, while '-' indicates an OEM number used by a non-Microsoft DOS known OEM releases of MS-DOS: AT&T DOS 3.10 (uses DOS 2.x cluster sizes and FAT structures) Commodore DOS 3 Compaq DOS 3.31 (>32MB partitions similar to MS-DOS 4+) Computerland DOS 3.10 (mix of DOS 2.x and 3.x disk mechanisms) Eagle MS-DOS 1.25 (DOS 1.x with some hard disk support and built-in ANSI.SYS functionality) Epson Equity III DOS 3.10 (different clustering) Leading Edge NEC DOS 3.3 Olivetti DOS 2.11 Phoenix DOS 3.3, 4.01 Sanyo DOS 3.2 Tandy Toshiba DOS Unisys Wyse MS-DOS 3 Zenith DOS 2.x (uses Zenith disk mechanism, extra drives at G:) Zenith DOS 3.x (can be configured for Zenith or MS-DOS mechanism) Zenith DOS 3.3 PLUS (>32MB partitions similar to MS-DOS 4+)Top
INT 21 - Phar Lap 386/DOS-Extender, Intel Code Builder - INSTALLATION CHECK AH = 30h EAX = 00003000h EBX = 50484152h ("PHAR") Return: AL = major DOS version AH = minor DOS version EAX bits 31-16 = 4458h ('DX') if 386/DOS-extender installed BL = ASCII major version number EAX bits 31-16 = 4243h ('BC') if Intel Code Builder installed EDX = address of GDA SeeAlso: AX=2501h,AX=FF00h,INT 2F/AX=F100hTop
INT 21 - VIRUS - "Possessed" - INSTALLATION CHECK AH = 30h DX = ABCDh Return: DX = DCBAh if installed SeeAlso: AX=0D20h,AH=30h/SI=1234h,AX=3000h"VIRUS",AX=30F1hTop
INT 21 - VIRUS - "ANDROMEDA-758" -INSTALLATION CHECK AH = 30h SI = 1234h Return: AX = FFDDh if resident SeeAlso: AH=30h/DX=ABCDh,AX=3000h"VIRUS"Top
INT 21 - CTask 2.0+ - INSTALLATION CHECK AX = 3000h BX = 1234h DS:DX -> 8-byte version string (DX < FFF0h) "CTask21",00h for v2.1-2.2 Return: AL = DOS major version AH = DOS minor version CX:BX -> Ctask global data block Program: CTask is a multitasking kernel for C written by Thomas Wagner Note: if first eight bytes of returned data block equal eight bytes passed in, CTask is residentTop
INT 21 - PC-MOS/386 v3.0 - INSTALLATION CHECK/GET VERSION AX = 3000h BX = 3000h CX = DX = 3000h Return: AX = PC-MOS version Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating system by The Software Link, Inc. SeeAlso: AH=30h,INT D4/AH=02h,INT D4/AH=10hTop
INT 21 - VIRUS - "Jackal" - INSTALLATION CHECK AX = 3000h BX = 614Ah ('aJ') CX = 6B63h ('kc') DX = 6C61h ('la') Return: BX = ??? SeeAlso: AX=2C2Ch"VIRUS",AX=3030h"VIRUS"Top
INT 21 - StopPrg v2.0 - INSTALLATION CHECK AX = 3022h Return: AX = DOS version (see AH=30h) CX = 1112h if StopPrg installed BX = segment of resident code Program: StopPrg is a resident program aborter by MAK-TRAXON's Prophet Note: StopPrg may be temporarily disabled by storing 9090h in the word at 0000h:04FEhTop
INT 21 - VIRUS - "IMTC" -INSTALLATION CHECK AX = 3030h BX = 694Dh Return: DX = 7443h if resident SeeAlso: AX=3000h/BX=614Ah"VIRUS",AX=3032h"VIRUS"Top
INT 21 - VIRUS - "Uruguay" - INSTALLATION CHECK AX = 3032h DX = 1234h Return: AX = 5678h if resident SeeAlso: AX=3030h"VIRUS",AX=30F1h"VIRUS"Top
INT 21 - VIRUS - "Dutch-555"/"Quit 1992" - INSTALLATION CHECK AX = 30F1h Return: AL = 00h if resident SeeAlso: AH=30h/DX=ABCDh,AX=3032h,AX=330Fh,AX=33DAhTop
INT 21 - DESQ??? - INSTALLATION CHECK AX = 30FFh CX = 4445h ("DE") DX = 5351h ("SQ") Return: BH = 05h if installed ??? Note: called by DUBLDISK.COM v2.6; this function is not supported by DESQview, so it may be for DESQview's precursor DESQ. SeeAlso: AX=4404h"DUBLDISK"Top
INT 21 - DOS 2+ - TERMINATE AND STAY RESIDENT AH = 31h AL = return code DX = number of paragraphs to keep resident Return: never Notes: the value in DX only affects the memory block containing the PSP; additional memory allocated via AH=48h is not affected the minimum number of paragraphs which will remain resident is 11h for DOS 2.x and 06h for DOS 3.0+ most TSRs can save some memory by releasing their environment block before terminating (see #01378 at AH=26h,AH=49h) any open files remain open, so one should close any files which will not be used before going resident; to access a file which is left open from the TSR, one must switch PSP segments first (see AH=50h) SeeAlso: AH=00h,AH=4Ch,AH=4Dh,INT 20,INT 22,INT 27Top
INT 21 - DOS 2+ - GET DOS DRIVE PARAMETER BLOCK FOR SPECIFIC DRIVE AH = 32h DL = drive number (00h = default, 01h = A:, etc) Return: AL = status 00h successful DS:BX -> Drive Parameter Block (DPB) (see #01395) for specified drive FFh invalid or network drive Notes: the OS/2 compatibility box supports the DOS 3.3 version of this call except for the DWORD at offset 12h this call updates the DPB by reading the disk; the DPB may be accessed via the DOS list of lists (see #01627 at AH=52h) if disk access is not desirable. undocumented prior to the release of DOS 5.0; only the DOS 4.0+ version of the DPB has been documented, however supported by DR DOS 3.41+; DR DOS 3.41-6.0 return the same data as MS-DOS 3.31 IBM ROM-DOS v4.0 also reports invalid/network (AL=FFh) on the ROM drive SeeAlso: AH=1Fh,AH=52h,AX=7302h Format of DOS Drive Parameter Block: Offset Size Description (Table 01395) 00h BYTE drive number (00h = A:, 01h = B:, etc) 01h BYTE unit number within device driver 02h WORD bytes per sector 04h BYTE highest sector number within a cluster 05h BYTE shift count to convert clusters into sectors 06h WORD number of reserved sectors at beginning of drive 08h BYTE number of FATs 09h WORD number of root directory entries 0Bh WORD number of first sector containing user data 0Dh WORD highest cluster number (number of data clusters + 1) 16-bit FAT if greater than 0FF6h, else 12-bit FAT 0Fh BYTE number of sectors per FAT 10h WORD sector number of first directory sector 12h DWORD address of device driver header (see #01646) 16h BYTE media ID byte (see #01356) 17h BYTE 00h if disk accessed, FFh if not 18h DWORD pointer to next DPB ---DOS 2.x--- 1Ch WORD cluster containing start of current directory, 0000h=root, FFFFh = unknown 1Eh 64 BYTEs ASCIZ pathname of current directory for drive ---DOS 3.x--- 1Ch WORD cluster at which to start search for free space when writing 1Eh WORD number of free clusters on drive, FFFFh = unknown ---DOS 4.0-6.0--- 0Fh WORD number of sectors per FAT 11h WORD sector number of first directory sector 13h DWORD address of device driver header (see #01646) 17h BYTE media ID byte (see #01356) 18h BYTE 00h if disk accessed, FFh if not 19h DWORD pointer to next DPB 1Dh WORD cluster at which to start search for free space when writing, usually the last cluster allocated 1Fh WORD number of free clusters on drive, FFFFh = unknown SeeAlso: #01357,#01663,#01787 at AX=7302h,#04039 at INT E0/CL=71hTop
INT 21 - DOS 2+ - EXTENDED BREAK CHECKING AH = 33h AL = subfunction 00h get current extended break state Return: DL = current state, 00h = off, 01h = on 01h set state of extended ^C/^Break checking DL = new state 00h off, check only on character I/O functions 01h on, check on all DOS functions Return: (Novell DOS 7) DL = old state of extended Break checks Note: under DOS 3.1+ and DR DOS, this function does not use any of the DOS-internal stacks and may thus be called at any time SeeAlso: AX=3302hTop
INT 21 - DOS 3.x+ internal - GET AND SET EXTENDED CONTROL-BREAK CHECKING STATE AX = 3302h DL = new state (00h for OFF, 01h for ON) Return: DL = old state of extended BREAK checking Notes: this function does not use any of the DOS-internal stacks and may thus be called at any time; one possible use is modifying Control-Break checking from within an interrupt handler or TSR not supported by DR DOS through version 6.0 (error code 01h); newly-supported by Novell DOS 7 SeeAlso: AH=33hTop
INT 21 - DOS 3.4/4.0 - GET CURRENT CPSW STATE AX = 3303h Return: DL = current CPSW Notes: this function and AX=3304h were intended to support a proposed code-page switching flag (using the WORD at offset 0Ch in the DOS directory entry for codepage information); however, this function has always been a NOP in public releases of DOS and OS/2. See _DOS_Internals_ Chapter 2 for more information. the released MS-DOS 4.00 IO.SYS has an undocumented CONFIG.SYS directive named CPSW= and that beside others the MS-DOS 4.00 ATTRIB supported a number of undocumented special parameters for "predefined" Extended Attributes (EAs) e.g. ATTRIB filename [(CODEPAGE|CP)[=new_value]]. this function does not use any of the DOS-internal stacks and may thus be called at any time. It is directly dispatched from the INT 21h entry point with interrupts disabled. SeeAlso: AX=3304hTop
INT 21 - DOS 3.4/4.0 - SET CPSW STATE AX = 3304h DL = new CPSW state Return: nothing Notes: this function and AX=3303h were intended to support a proposed code-page switching flag (using the WORD at offset 0Ch in the DOS directory entry for codepage information); however, this function has always been a NOP in public releases of DOS and OS/2. See _DOS_Internals_ Chapter 2 for more information. the released MS-DOS 4.00 IO.SYS has an undocumented CONFIG.SYS directive named CPSW= and that beside others the MS-DOS 4.00 ATTRIB supported a number of undocumented special parameters for "predefined" Extended Attributes (EAs) e.g. ATTRIB filename [(CODEPAGE|CP)[=new_value]]. this function does not use any of the DOS-internal stacks and may thus be called at any time. It is directly dispatched from the INT 21h entry point with interrupts disabled. SeeAlso: AX=3303h,AH=11h,AX=5702hTop
INT 21 - DOS 4.0+ - GET BOOT DRIVE AX = 3305h Return: DL = boot drive (1=A:,...) Notes: This function does not use any of the DOS-internal stacks and may thus be called at any time. It is directly dispatched from the INT 21h entry point with interrupts disabled. NEC 9800-series PCs always call the boot drive A: and assign the other drive letters sequentially to the other drives in the system this call is supported by OS/2 Warp 3.0, but not earlier versions of OS/2; it is also supported by Novell DOS 7Top
INT 21 - DOS 5+ - GET TRUE VERSION NUMBER AX = 3306h Return: BL = major version BH = minor version DL = revision (bits 2-0, all others 0) DH = version flags bit 3: DOS is in ROM bit 4: DOS is in HMA AL = FFh if true DOS version < 5.0 Notes: this function always returns the true version number, unlike AH=30h, whose return value may be changed with SETVER because of the conflict from the CBIS redirector (see next entry), programs should check whether BH is less than 100 (64h) and BL is at least 5 before accepting the returned BX as the true version number; however, even this is not entirely reliable when that redirector is loaded Under MS-DOS/PC DOS, DR DOS, PTS-DOS, S/DOS this function does not use any of the DOS internal stacks and thus is fully reentrant OS/2 v2.1 will return BX=0A14h (version 20.10) Windows 95 and Windows 95 SP1 return version 7.00; Windows 95 OSR2 and OPK3 (OSR2.5) return version MS 7.10. the Windows NT DOS box returns BX=3205h (version 5.50) Novell DOS 7 returns IBM v6.00, which some software displays as IBM DOS v6.10 (because of the version mismatch in true IBM DOS mentioned for INT 21/AH=30h); versions through Update 15 all return revision code 00h Windows95 and Windows95 SP1 return version 7.00; Windows95 OSR2 returns version 7.10 Heiko Goeman's Advanced WinDOS 2.10/2.11/2.21 returns DOS 5.00, revision 0. Novell DOS 7, OpenDOS 7.01, DR-OpenDOS 7.02, DR-DOS 7.02, DR-DOS 7.03 all return IBM 6.00, which some software displays as IBM DOS 6.10 (because of the version mismatch in true IBM DOS mentioned for INT 21/AH=30h); versions through Novell DOS 7 Update 15.2 (01/1996) all return revision code 00h. The DOS revision is stored in bits 7-0 of the "patch_version" field in the PCM_HEADER structure in the IBMDOS.COM file (see also INT 21/AX=4452h !!!). The version flags (DH) are stored in bits 15-8 of "patch_version", but is updated at runtime to reflect the actual status. "patch_version" is also reported as DX in INT 21/AX=4452h. Unlike MS-DOS, under Novell DOS 7+ IBMDOS.COM will also allow to SETVER the returned "true" DOS version same as with INT 21/AX=3000h and INT 21/AX=3001h. DR-DOS 7.02+ IBMDOS.COM (since 1998-01-10) now recognizes optional paths to filenames stored in the SETVER list. Previously such entries were never found. This enables a three staged model of SETVERed versions: highest priority = entry with path is matching. middle priority = entry without path is matching. lowest priority = use global version (SETVER /G). The DR-DOS 7.02+ SETVER 1.01+ (1998-01-12) has also been enhanced to allow BDOS and DOS version faking (see INT 21/AX=4452h). In /X mode, a set sub-version of y = 128..255 will be reported as 0..127 DOS sub-version, sub-versions of y = 100..127 will be used to report this value as BDOS version (64h..7Fh) with INT 21/AX=4452h instead while bits 6-0 of the DOS revision stored in PCM_HEADER in the IBMDOS.COM file will be used to report the BH DOS sub-version 0..127 (usually this holds 0, but it can be patched to other values). DR-DOS SHARE 2.05 (1998-01-05) has relaxed version checking now, and will install on any DOS revision 0..127 (formerly it was bound to DOS revision 0 only), as long as run on a DR-DOS 72h or 73h BDOS kernel. Hence, if there will be changes in the SHARE implementation without changing the BDOS version, DR-DOS SHARE 2.05 can still be stopped from installing by changing the DOS revision in PCM_HEADER to something in the range 128..255. Under Novell DOS 7+, the version SETVERing also affects the version number WORD stored at offset +40h in each program's PSP (see Table xxxx at INT 21/AH=26h). This holds true even for special sub-versions of 100..255 (see INT 21/AX=4452h). S/DOS 1.0 (1995) returns a DOS revision of 9, while its own PTS OEM revision still defaults to 0 (see also INT 21/AH=20h"S/DOS"). BUG: DR DOS 5.0 and 6.0 return CF set/AX=0001h for INT 21/AH=33h subfunctions other than 00h-02h and 05h, while MS-DOS returns AL=FFh for invalid subfunctions SeeAlso: AH=30h,INT 2F/AX=122Fh,INT 2F/AX=E000h"SETDRVER"Top
INT 21 - CBIS network - NETWORK REDIRECTOR - ??? AX = 3306h Return: AX = 3306h BL = ??? (usually 00h) BH = ??? (usually 00h or FFh) Note: unknown function, is in conflict with DOS 5+ version call SeeAlso: AX=3306h"DOS"Top
INT 21 - Windows95 - SET/CLEAR DOS_FLAG AX = 3307h DL = subfunction 00h clear bit 5 of "DOS_FLAG" 01h set bit 5 of "DOS_FLAG" Return: ???Top
INT 21 - VIRUS - "Burghofer" - INSTALLATION CHECK AX = 330Fh Return: AL = 0Fh if resident (DOS returns AL=FFh) SeeAlso: AX=30F1h,AX=33DAh,AX=33E0hTop
INT 21 - Diet Disk v1.0 - INSTALLATION CHECK AX = 3341h Return: DX = 1234h if installed CX = resident code segment Program: Diet Disk is a public domain transparent data file compressor by Barry NanceTop
INT 21 - VIRUS - "CoffeeShop" - INSTALLATION CHECK AX = 33DAh Return: AH = A5h if resident AL = virus version SeeAlso: AX=33DB,AX=33DCh,AX=330Fh,AX=33E0h,AX=5643h"VIRUS"Top
INT 21 - VIRUS - "CoffeeShop" - GENERATE RANDOM NUMBER AX = 33DBh Return: ??? SeeAlso: AX=33DAh,AX=33DChTop
INT 21 - VIRUS - "CoffeeShop" - DISPLAY "LEGALIZE CANNABIS" GRAPHIC AX = 33DCh Return: ??? SeeAlso: AX=33DAh,AX=33DBhTop
INT 21 - VIRUS - "Oropax" - INSTALLATION CHECK AX = 33E0h Return: AL = E0h if resident (DOS returns AL=FFh) SeeAlso: AX=330Fh,AX=33DAh,AX=357FhTop
INT 21 - DOS 2+ - GET ADDRESS OF INDOS FLAG AH = 34h Return: ES:BX -> one-byte InDOS flag Notes: this function executes on the DOS stack, and thus cannot be called while another DOS function is already executing; you should use this function once at the beginning of the program and store the returned pointer rather than calling it when requiring DOS access the value of InDOS is incremented whenever an INT 21 function begins and decremented whenever one completes during an INT 28 call, it is safe to call some INT 21 functions even though InDOS may be 01h instead of zero InDOS alone is not sufficient for determining when it is safe to enter DOS, as the critical error handling decrements InDOS and increments the critical error flag for the duration of the critical error. Thus, it is possible for InDOS to be zero even if DOS is busy. SMARTDRV 4.0 sets the InDOS flag while flushing its buffers to disk, then zeros it on completion the critical error flag is the byte immediately following InDOS in DOS 2.x, and the byte BEFORE the InDOS flag in DOS 3.0+ and DR DOS 3.41+ (except COMPAQ DOS 3.0, where the critical error flag is located 1AAh bytes BEFORE the critical section flag) for DOS 3.1+, an undocumented call exists to get the address of the critical error flag (see AX=5D06h) this function was undocumented prior to the release of DOS 5.0. SeeAlso: AX=5D06h,AX=5D0Bh,INT 15/AX=DE1Fh,INT 28Top
INT 21 - DOS 2+ - GET INTERRUPT VECTOR AH = 35h AL = interrupt number Return: ES:BX -> current interrupt handler Note: under DR DOS 5.0+, this function does not use any of the DOS-internal stacks and may thus be called at any time SeeAlso: AH=25h,AX=2503hTop
INT 21 P - FlashTek X-32VM - ALLOCATE PROTECTED-MODE SELECTOR AX = 3501h Return: CF clear if successful BX = new selector CF set on error (no more selectors available) Note: the new selector will be an expand-up read/write data selector with undefined base and limit SeeAlso: AX=3502h,INT 31/AX=0000hTop
INT 21 P - FlashTek X-32VM - DEALLOCATE PROTECTED-MODE SELECTOR AX = 3502h BX = selector Return: CF clear if successful CF set on error (invalid selector) Note: only selectors allocated via AX=3501h should be deallocated SeeAlso: AX=3501h,INT 31/AX=0001hTop
INT 21 P - FlashTek X-32VM - SET SELECTOR BASE ADDRESS AX = 3503h BX = selector ECX = base address Return: CF clear if successful CF set on error (invalid selector) SeeAlso: AX=3504h,AX=3505h,INT 31/AX=0007hTop
INT 21 P - FlashTek X-32VM - GET SELECTOR BASE ADDRESS AX = 3504h BX = selector Return: CF clear if successful ECX = absolute base address of selector CF set on error (invalid selector) SeeAlso: AX=3503h,INT 31/AX=0006hTop
INT 21 P - FlashTek X-32VM - SET SELECTOR LIMIT AX = 3505h BX = selector ECX = desired limit Return: CF clear if successful ECX = actual limit set CF set on error (no more selectors available) Note: the limit will be rounded down to nearest 4K boundary if the requested limit is greater than 1MB SeeAlso: AX=3503h,INT 31/AX=0008hTop
INT 21 P - FlashTek X-32VM - PHYSICAL ADDRESS MAPPING AX = 350Ah EBX = absolute physical address ECX = size in bytes of area to map Return: CF clear if successful CF set on error (insufficient memory or service refused by DPMI host) Notes: should not make repeated calls for the same physical address there is no provision for unmapping memoryTop
INT 21 P - FlashTek X-32VM - UPDATE AND RETURN AVAILABLE FREE MEMORY AX = 350Bh DS = default selector for DS Return: CF clear EAX = maximum amount of memory which can be allocated via AX=350Ch SeeAlso: AX=350ChTop
INT 21 P - FlashTek X-32VM - ALLOCATE A BLOCK OF MEMORY AX = 350Ch ECX = size of block in bytes DS = default DS Return: CF clear if successful EAX = near pointer to new block EDX = new lowest legal value for stack CF set on error (requested size not multiple of 4K) SeeAlso: AX=350Bh,AX=350DhTop
INT 21 P - FlashTek X-32VM - RESERVE BLOCK OF MEMORY FOR 32-BIT STACK AX = 350Dh EBX = current ESP value ECX = size of block in bytes DS = default DS Return: CF clear if successful EBX = new value for ESP EDX = suggested new limit for SS CF set on error Note: this function should only be called once during initialization SeeAlso: AX=350Bh,AX=350ChTop
INT 21 - VIRUS - "Agiplan"/"Month 4-6" - INSTALLATION CHECK AX = 357Fh Return: DX = FFFFh if installed SeeAlso: AX=33E0h,AX=3DFFhTop
INT 21 - DOS 2+ - GET FREE DISK SPACE AH = 36h DL = drive number (00h = default, 01h = A:, etc) Return: AX = FFFFh if invalid drive else AX = sectors per cluster BX = number of free clusters CX = bytes per sector DX = total clusters on drive Notes: free space on drive in bytes is AX * BX * CX total space on drive in bytes is AX * CX * DX "lost clusters" are considered to be in use according to Dave Williams' MS-DOS reference, the value in DX is incorrect for non-default drives after ASSIGN is run this function does not return proper results on CD-ROMs; use AX=4402h"CD-ROM" instead (FAT32 drive) the reported total and free space are limited to 2G-32K should they exceed that value SeeAlso: AH=1Bh,AH=1Ch,AX=4402h"CD-ROM",AX=7303hTop
INT 21 - DOS 2+ - "SWITCHAR" - GET SWITCH CHARACTER AX = 3700h Return: AL = status 00h successful DL = current switch character FFh unsupported subfunction Desc: Determine the character which is used to introduce command switches. This setting is ignored by MS-DOS commands in version 4.0 and higher, but is honored by many third-party programs and by Novell DOS 7 external commands BUG: Novell DOS 7's COMMAND.COM (prior to Update 15) fails to honor the SwitChar setting for internal commands even though COMMAND.COM honors it in its own command tail (i.e. COMMAND /?); even in Update 15, internal commands fail to honor SwitChar for the /? help option Notes: documented in some OEM versions of some releases of DOS supported by OS/2 compatibility box always returns AL=00h/DL=2Fh for MS-DOS 5+ and DR DOS 3.41-6.0 Novell DOS 7 COMMAND.COM indicates switch characters other than '/' by changing the first backslash (and only the first one) in the path it prints for PROMPT $p with a forward slash SeeAlso: AX=3701hTop
INT 21 - DOS 2+ - "SWITCHAR" - SET SWITCH CHARACTER AX = 3701h DL = new switch character Return: AL = status 00h successful FFh unsupported subfunction Notes: documented in some OEM versions of some releases of DOS; DOS 2.x had a SWITCHAR=c setting in CONFIG.SYS supported by OS/2 compatibility box and Novell DOS 7 ignored by MS-DOS 5+ and DR DOS 3.41-6.0; DR DOS 6.0 and Novell DOS 7 leave AX unchanged SeeAlso: AX=3700hTop
INT 21 - DOS 2.x and 3.3+ only - "AVAILDEV" - SPECIFY \DEV\ PREFIX USE AH = 37h AL = subfunction 02h get availdev flag Return: DL = 00h \DEV\ must precede character device names = nonzero \DEV\ is optional 03h set availdev flag DL = new state 00h \DEV\ is mandatory nonzero \DEV\ is optional Return: AL = status 00h successful FFh unsupported subfunction Notes: all versions of DOS from 2.00 allow \DEV\ to be prepended to device names without generating an error even if the directory \DEV does not actually exist (other paths generate an error if they do not exist); DOS 2.x has an AVAILDEV= option in CONFIG.SYS to make \DEV mandatory although MS-DOS 3.3+, DR DOS 3.41+, and Novell DOS 7 accept these calls, they have no effect, and AL=02h always returns DL=FFh (except for Novell DOS 7, which leaves AX unchanged for both subfunctions)Top
INT 21 - XPACK v1.52+ - TSR INSTALLATION CHECK AX = 37A0h BX = 6A6Dh ('jm') Return: AL = FFh if not present as TSR (default return value from DOS) AX = 0000h if installed as a TSR CX = 6A6Dh ('jm') DX = version ID (0152h) Program: XPACK is a transparent file compressor/decompressor by JauMing Tseng SeeAlso: AX=37A1h/BX=6A6Dh,AX=37A3h/BX=6A6DhTop
INT 21 - XPACK v1.52+ - UNINSTALL AX = 37A1h BX = 6A6Dh ('jm') Return: AX = status 0000h successful FFFFh failed Program: XPACK is a transparent file compressor/decompressor by JauMing Tseng SeeAlso: AX=37A0h/BX=6A6DhTop
INT 21 - XPACK v1.52+ - GET TSR STATUS AX = 37A2h BX = 6A6Dh ('jm') Return: AX = 0000h (successful) DL = status (01h active, 00h disabled) SeeAlso: AX=37A3h/BX=6A6DhTop
INT 21 - XPACK v1.52+ - SET TSR STATUS AX = 37A3h BX = 6A6Dh ('jm') DL = status (01h active, 00h disabled) Return: AX = 0000h (successful) SeeAlso: AX=37A0h/BX=6A6Dh,AX=37A2h/BX=6A6DhTop
INT 21 - XPACK v1.65 - GET TEMPORARY DIRECTORY NAME AX = 37A6h BX = 6A6Dh ('jm') Return: AX = 0000h DS:DX -> name of temporary directory Program: XPACK is a transparent file compressor/decompressor by JauMing Tseng SeeAlso: AX=37A0h/BX=6A6Dh,AX=37A7h/BX=6A6DhTop
INT 21 - XPACK v1.65 - SET TEMPORARY DIRECTORY NAME AX = 37A7h BX = 6A6Dh ('jm') DS:DX -> ASCIZ name of temporary directory (max 64 chars) Return: AX = 0000h Note: the specified directory name must include a drive letter and end with a backslash (e.g. 'c:\dos\',0) SeeAlso: AX=37A0h/BX=6A6Dh,AX=37A6h/BX=6A6DhTop
INT 21 - DIET v1.43e - TSR INSTALLATION CHECK AX = 37D0h BX = 899Dh ('DI' + 'ET') Return: AL = FFh if not present as TSR (default return value from DOS) AX = 0000h if installed as a TSR CX = 899Dh DX = version ID Program: DIET is a transparent file compressor/decompressor by Teddy Matsumoto SeeAlso: AX=37D1h,AX=37D2h,AX=37D4h,AX=37D6h,AX=37DFh,AX=4BF0h,AX=4BF1hTop
INT 21 - DIET v1.43e - GET DIET.EXE RESIDENT SEGMENT AX = 37D1h BX = 899Dh ('DI' + 'ET') Return: AX = 0000h CX = code segment of TSR part of DIET.EXE DX = memory block segment of TSR DIET.EXE (0000h if installed as device driver) SeeAlso: AX=37D0h,AX=37DFhTop
INT 21 - DIET v1.43e - GET TSR CONTROL FLAGS AX = 37D2h BX = 899Dh ('DI' + 'ET') Return: AX = 0000h DL = control flag (00h active, else disabled) DH = skip flag (nonzero while TSR active) SeeAlso: AX=37D0h,AX=37D3h,AX=37D4hTop
INT 21 - DIET v1.43e - SET TSR CONTROL FLAGS AX = 37D3h BX = 899Dh ('DI' + 'ET') DL = control flag (00h active, else disabled) DH = skip flag (00h) Return: AX = 0000h SeeAlso: AX=37D0h,AX=37D2h,AX=37D5hTop
INT 21 - DIET v1.43e - GET TSR OPTIONS AX = 37D4h BX = 899Dh ('DI' + 'ET') Return: AX = 0000h DX = TSR options (see #01396) SeeAlso: AX=37D0h,AX=37D2h,AX=37D5h Bitfields for DIET TSR options: Bit(s) Description (Table 01396) 0 automated compression of DIETed file 1 automated compression of newly-created file 2 suppress DIET message 3 display original file size 4-15 reserved (0)Top
INT 21 - DIET v1.43e - SET TSR OPTIONS AX = 37D5h BX = 899Dh ('DI' + 'ET') DX = TSR options (see #01396) Return: AX = 0000h Program: DIET is a transparent file compressor/decompressor by Teddy Matsumoto SeeAlso: AX=37D0h,AX=37D3h,AX=37D4hTop
INT 21 - DIET v1.43e - GET TEMPORARY DIRECTORY NAMES AX = 37D6h BX = 899Dh ('DI' + 'ET') Return: AX = 0000h DS:DX -> name of temporary directory or 0000h:0000h for current dir SeeAlso: AX=37D0h,AX=37D7hTop
INT 21 - DIET v1.43e - SET TEMPORARY DIRECTORY NAMES AX = 37D7h BX = 899Dh ('DI' + 'ET') DS:DX -> ASCIZ name of temporary directory (max 61 chars) 0000h:0000h for current directory Return: AX = 0000h Note: the specified directory name must include a drive letter and end with a backslash SeeAlso: AX=37D0h,AX=37D6hTop
INT 21 - DIET v1.43e - SET ADDRESS OF EXTERNAL PROCEDURE AX = 37DCh BX = 899Dh ('DI' + 'ET') DS:DX -> external procedure (see #01397) Return: AX = 0000h Note: the resident code will call the specified external procedure at the beginning of decompression and when compression is exited on failure SeeAlso: AX=37DDh (Table 01397) Values DIET external procedure is called with: STACK: WORD class FFFDh creation failed for unknown reasons FFFEh creation failed due to lack of space FFFFh file creation error else file handle of DIETed file to be decompressed DWORD -> compressed filename DWORD -> decompressed or temporary filename Return: SI,DI,BP,DS,ES must be preserved by external procedureTop
INT 21 - DIET v1.43e - RELEASE EXTERNAL PROCEDURE AX = 37DDh BX = 899Dh ('DI' + 'ET') Program: DIET is a transparent file compressor/decompressor by Teddy Matsumoto Note: unlinks the external procedure specified by AX=37DCh SeeAlso: AX=37DChTop
INT 21 - DIET v1.43e - READ EMS STATUS AX = 37DEh BX = 899Dh ('DI' + 'ET') Return: AX = 0000h CX = EMS status 0000h not used 0001h used as work area 0002h used for code and as work area DX = EMM handle when EMS is in useTop
INT 21 - DIET v1.43e - UNINSTALL TSR AX = 37DFh BX = 899Dh ('DI' + 'ET') Return: AX = status 0000h successful 00FFh failed Program: DIET is a transparent file compressor/decompressor by Teddy Matsumoto SeeAlso: AX=37D0h Index: uninstall;DIETTop
INT 21 - DOS 2+ - GET COUNTRY-SPECIFIC INFORMATION AH = 38h --DOS 2.x-- AL = 00h get current-country info DS:DX -> buffer for returned info (see #01398,#01399) Return: CF set on error AX = error code (02h) CF clear if successful AX = country code (MS-DOS 2.11 only) buffer at DS:DX filled --DOS 3.0+-- AL = 00h for current country AL = 01h thru 0FEh for specific country with code <255 (see #01400) AL = 0FFh for specific country with code >= 255 BX = 16-bit country code (see #01400) DS:DX -> buffer for returned info (see #01399) Return: CF set on error AX = error code (02h) CF clear if successful AX = country code (Novell NWDOS v7.0) BX = country code DS:DX buffer filled Note: this function is not supported by the Borland DPMI host, but no error is returned; as a workaround, one should allocate a buffer in conventional memory with INT 31/AX=0100h and simulate an INT 21 with INT 31/AX=0300h SeeAlso: AH=65h,INT 10/AX=5001h,INT 2F/AX=1404h Format of DOS 2.00-2.10 country info: Offset Size Description (Table 01398) 00h WORD date format 0 = USA mm dd yy 1 = Europe dd mm yy 2 = Japan yy mm dd 02h BYTE currency symbol 03h BYTE 00h 04h BYTE thousands separator char 05h BYTE 00h 06h BYTE decimal separator char 07h BYTE 00h 08h 24 BYTEs reserved Format of DOS 2.11+ country info: Offset Size Description (Table 01399) 00h WORD date format (see #01398) 02h 5 BYTEs ASCIZ currency symbol string 07h 2 BYTEs ASCIZ thousands separator 09h 2 BYTEs ASCIZ decimal separator 0Bh 2 BYTEs ASCIZ date separator 0Dh 2 BYTEs ASCIZ time separator 0Fh BYTE currency format bit 2 = set if currency symbol replaces decimal point bit 1 = number of spaces between value and currency symbol bit 0 = 0 if currency symbol precedes value 1 if currency symbol follows value 10h BYTE number of digits after decimal in currency 11h BYTE time format bit 0 = 0 if 12-hour clock 1 if 24-hour clock 12h DWORD address of case map routine (FAR CALL, AL = character to map to upper case [>= 80h]) 16h 2 BYTEs ASCIZ data-list separator 18h 10 BYTEs reserved (Table 01400) Values for country code: 001h (1) United States 002h (2) Canadian-French 003h (3) Latin America 004h (4) Canada (English) 007h (7) Russia 014h (20) Egypt 01Bh (27) South Africa 01Eh (30) Greece 01Fh (31) Netherlands 020h (32) Belgium 021h (33) France 022h (34) Spain 023h (35) Bulgaria??? 024h (36) Hungary (not supported by DR DOS 5.0) 026h (38) Yugoslavia (not supported by DR DOS 5.0) -- obsolete 027h (39) Italy / San Marino / Vatican City 028h (40) Romania 029h (41) Switzerland / Liechtenstein 02Ah (42) Czechoslovakia / Tjekia / Slovakia (not supported by DR DOS 5.0) 02Bh (43) Austria (DR DOS 5.0) 02Ch (44) United Kingdom 02Dh (45) Denmark 02Eh (46) Sweden 02Fh (47) Norway 030h (48) Poland (not supported by DR DOS 5.0) 031h (49) Germany 033h (51) Peru 034h (52) Mexico 035h (53) Cuba 036h (54) Argentina 037h (55) Brazil (not supported by DR DOS 5.0) 038h (56) Chile 039h (57) Columbia 03Ah (58) Venezuela 03Ch (60) Malaysia 03Dh (61) International English / Australia 03Eh (62) Indonesia / East Timor 03Fh (63) Philippines 040h (64) New Zealand 041h (65) Singapore 042h (66) Thailand (or Taiwan???) 051h (81) Japan (DR DOS 5.0, MS-DOS 5.0+) 052h (82) South Korea (DR DOS 5.0) 054h (84) Vietnam 056h (86) China (MS-DOS 5.0+) 058h (88) Taiwan (MS-DOS 5.0+) 05Ah (90) Turkey (MS-DOS 5.0+) 05Bh (91) India 05Ch (92) Pakistan 05Dh (93) Afghanistan 05Eh (94) Sri Lanka 062h (98) Iran 063h (99) Asia (English) 066h (102) ??? (Hebrew MS-DOS 5.0) 070h (112) Belarus 0C8h (200) Thailand (PC DOS 6.1+) (reported as 01h due to a bug in PC DOS COUNTRY.SYS) 0D4h (212) Morocco 0D5h (213) Algeria 0D8h (216) Tunisia 0DAh (218) Libya 0DCh (220) Gambia 0DDh (221) Senegal 0DEh (222) Maruitania 0DFh (223) Mali 0E0h (224) African Guinea 0E1h (225) Ivory Coast 0E2h (226) Burkina Faso 0E3h (227) Niger 0E4h (228) Togo 0E5h (229) Benin 0E6h (230) Mauritius 0E7h (231) Liberia 0E8h (232) Sierra Leone 0E9h (233) Ghana 0EAh (234) Nigeria 0EBh (235) Chad 0ECh (236) Centra African Republic 0EDh (237) Cameroon 0EEh (238) Cape Verde Islands 0EFh (239) Sao Tome and Principe 0F0h (240) Equatorial Guinea 0F1h (241) Gabon 0F2h (242) Congo 0F3h (243) Zaire 0F4h (244) Angola 0F5h (245) Guinea-Bissau 0F6h (246) Diego Garcia 0F7h (247) Ascension Isle 0F8h (248) Seychelles 0F9h (249) Sudan 0FAh (250) Rwhanda 0FBh (251) Ethiopia 0FCh (252) Somalia 0FDh (253) Djibouti 0FEh (254) Kenya 0FFh (255) Tanzania 100h (256) Uganda 101h (257) Burundi 103h (259) Mozambique 104h (260) Zambia 105h (261) Madagascar 106h (262) Reunion Island 107h (263) Zimbabwe 108h (264) Namibia 109h (265) Malawi 10Ah (266) Lesotho 10Bh (267) Botswana 10Ch (268) Swaziland 10Dh (269) Comoros 10Eh (270) Mayotte 122h (290) St. Helena 129h (297) Aruba 12Ah (298) Faroe Islands 12Bh (299) Greenland 15Eh (350) Gibraltar 15Fh (351) Portugal 160h (352) Luxembourg 161h (353) Ireland 162h (354) Iceland 163h (355) Albania 164h (356) Malta 165h (357) Cyprus 166h (358) Finland 167h (359) Bulgaria 172h (370) Lithuania (reported as 372 due to a bug in MS-DOS COUNTRY.SYS) 173h (371) Latvia (reported as 372 due to a bug in MS-DOS COUNTRY.SYS) 174h (372) Estonia 175h (373) Moldova 177h (375) ??? (MS-DOS 7.10 / Windows98) 17Ch (380) Ukraine 17Dh (381) Serbia / Montenegro 180h (384) Croatia 181h (385) Croatia (PC DOS 7+) 182h (386) Slovenia 183h (387) Bosnia-Herzegovina (Latin) 184h (388) Bosnia-Herzegovina (Cyrillic) (PC DOS 7+) (reported as 381 due to a bug in PC DOS COUNTRY.SYS) 185h (389) FYR Macedonia 1A5h (421) Czech Republic / Tjekia (PC DOS 7+) 1A6h (422) Slovakia (reported as 421 due to a bug in COUNTRY.SYS) 1F4h (500) Falkland Islands 1F5h (501) Belize 1F6h (502) Guatemala 1F7h (503) El Salvador 1F8h (504) Honduras 1F9h (505) Nicraragua 1FAh (506) Costa Rica 1FBh (507) Panama 1FCh (508) St. Pierre and Miquelon 1FDh (509) Haiti 24Eh (590) Guadeloupe 24Fh (591) Bolivia 250h (592) Guyana 251h (593) Ecuador 252h (594) rench Guiana 253h (595) Paraguay 254h (596) Martinique / French Antilles 255h (597) Suriname 256h (598) Uruguay 257h (599) Netherland Antilles 29Ah (666) Russia??? (PTS-DOS 6.51 KEYB) 29Bh (667) Poland??? (PTS-DOS 6.51 KEYB) 29Ch (668) Poland??? (Slavic???) (PTS-DOS 6.51 KEYB) 29Eh (670) Saipan / N. Mariana Island 29Fh (671) Guam 2A0h (672) Norfolk Island (Australia) / Christmas Island/Cocos Islands / Antartica 2A1h (673) Brunei Darussalam 2A2h (674) Nauru 2A3h (675) Papua New Guinea 2A4h (676) Tonga Islands 2A5h (677) Solomon Islands 2A6h (678) Vanuatu 2A7h (679) Fiji 2A8h (680) Palau 2A9h (681) Wallis & Futuna 2AAh (682) Cook Islands 2ABh (683) Niue 2ACh (684) American Samoa 2ADh (685) Western Samoa 2AEh (686) Kiribati 2AFh (687) New Caledonia 2B0h (688) Tuvalu 2B1h (689) French Polynesia 2B2h (690) Tokealu 2B3h (691) Micronesia 2B4h (692) Marshall Islands 2C7h (711) ??? (currency = EA$, code pages 437,737,850,852,855,857) 311h (785) Arabic (Middle East/Saudi Arabia/etc.) 324h (804) Ukraine 329h (809) Antigua and Barbuda / Anguilla / Bahamas / Barbados / Bermuda British Virgin Islands / Cayman Islands / Dominica Dominican Republic / Grenada / Jamaica / Montserra St. Kitts and Nevis / St. Lucia / St. Vincent and Grenadines Trinidad and Tobago / Turks and Caicos 352h (850) North Korea 354h (852) Hong Kong 355h (853) Macao 357h (855) Cambodia 358h (856) Laos 370h (880) Bangladesh 376h (886) Taiwan (MS-DOS 6.22+) 3C0h (960) Maldives 3C1h (961) Lebanon 3C2h (962) Jordan 3C3h (963) Syria / Syrian Arab Republic 3C4h (964) Iraq 3C5h (965) Kuwait 3C6h (966) Saudi Arabia 3C7h (967) Yemen 3C8h (968) Oman 3C9h (969) Yemen??? (Arabic MS-DOS 5.0) 3CBh (971) United Arab Emirates 3CCh (972) Israel (Hebrew) (DR DOS 5.0,MS-DOS 5.0+) 3CDh (973) Bahrain 3CEh (974) Qatar 3CFh (975) Bhutan 3D0h (976) Mongolia 3D1h (977) Nepal 3E3h (995) Myanmar (Burma) (10xxx) reserved for ISO 28601/ISO 8601 or derivative national stds (11xxx) reserved for Euro currency support (12xxx) reserved for ISO 28601 + Euro currency (1xxxx) not yet defined (20xxx) reserved for ISO 28601/ISO 8601 or derivative national stds (21xxx) reserved for Euro currency support (22xxx) reserved for ISO 28601 + Euro currency (2xxxx) not yet defined (30xxx) reserved for user-definable country codes (31xxx) reserved for OEM-defined country codes (32000+) reserved for future expansion Note: not all country codes are supported by all versions of DOSTop
INT 21 - DOS 3.0+ - SET COUNTRY CODE AH = 38h DX = FFFFh AL = 01h thru FEh for specific country with code <255 AL = FFh for specific country with code >= 255 BX = 16-bit country code (see #01400) Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful Note: not supported by OS/2 SeeAlso: INT 2F/AX=1403hTop
INT 21 - DOS 2+ - "MKDIR" - CREATE SUBDIRECTORY AH = 39h DS:DX -> ASCIZ pathname Return: CF clear if successful AX destroyed CF set on error AX = error code (03h,05h) (see #01680 at AH=59h/BX=0000h) Notes: all directories in the given path except the last must exist fails if the parent directory is the root and is full DOS 2.x-3.3 allow the creation of a directory sufficiently deep that it is not possible to make that directory the current directory because the path would exceed 64 characters under the FlashTek X-32 DOS extender, the pointer is in DS:EDX SeeAlso: AH=3Ah,AH=3Bh,AH=6Dh,AX=7139h,AH=E2h/SF=0Ah,AX=43FFh/BP=5053h SeeAlso: INT 2F/AX=1103h,INT 60/DI=0511hTop
INT 21 - DOS 2+ - "RMDIR" - REMOVE SUBDIRECTORY AH = 3Ah DS:DX -> ASCIZ pathname of directory to be removed Return: CF clear if successful AX destroyed CF set on error AX = error code (03h,05h,06h,10h) (see #01680 at AH=59h/BX=0000h) Notes: directory must be empty (contain only '.' and '..' entries) under the FlashTek X-32 DOS extender, the pointer is in DS:EDX SeeAlso: AH=39h,AH=3Bh,AX=713Ah,AH=E2h/SF=0Bh,INT 2F/AX=1101h,INT 60/DI=0512hTop
INT 21 - DOS 2+ - "CHDIR" - SET CURRENT DIRECTORY AH = 3Bh DS:DX -> ASCIZ pathname to become current directory (max 64 bytes) Return: CF clear if successful AX destroyed CF set on error AX = error code (03h) (see #01680 at AH=59h/BX=0000h) Notes: if new directory name includes a drive letter, the default drive is not changed, only the current directory on that drive changing the current directory also changes the directory in which FCB file calls operate under the FlashTek X-32 DOS extender, the pointer is in DS:EDX SeeAlso: AH=47h,AX=713Bh,INT 2F/AX=1105hTop
INT 21 - DOS 2+ - "CREAT" - CREATE OR TRUNCATE FILE AH = 3Ch CX = file attributes (see #01401) DS:DX -> ASCIZ filename Return: CF clear if successful AX = file handle CF set on error AX = error code (03h,04h,05h) (see #01680 at AH=59h/BX=0000h) Notes: if a file with the given name exists, it is truncated to zero length under the FlashTek X-32 DOS extender, the pointer is in DS:EDX DR DOS checks the system password or explicitly supplied password at the end of the filename against the reserved field in the directory entry before allowing access SeeAlso: AH=16h,AH=3Dh,AH=5Ah,AH=5Bh,AH=93h,INT 2F/AX=1117h Bitfields for file attributes: Bit(s) Description (Table 01401) 0 read-only 1 hidden 2 system 3 volume label (ignored) 4 reserved, must be zero (directory) 5 archive bit 7 if set, file is shareable under Novell NetWareTop
INT 21 - DOS 2+ - "OPEN" - OPEN EXISTING FILE AH = 3Dh AL = access and sharing modes (see #01402) DS:DX -> ASCIZ filename CL = attribute mask of files to look for (server call only) Return: CF clear if successful AX = file handle CF set on error AX = error code (01h,02h,03h,04h,05h,0Ch,56h) (see #01680 at AH=59h) Notes: file pointer is set to start of file if SHARE or a network is loaded, the file open may fail if the file is already open, depending on the combination of sharing modes (see #01403,#01404) file handles which are inherited from a parent also inherit sharing and access restrictions files may be opened even if given the hidden or system attributes under the FlashTek X-32 DOS extender, the pointer is in DS:EDX DR DOS checks the system password or explicitly supplied password at the end of the filename (following a semicolon) against the reserved field in the directory entry before allowing access sharing modes are only effective on local drives if SHARE is loaded BUG: Novell DOS 7 SHARE v1.00 would refuse file access in the cases in #01403 marked with [1] (read-only open of a read-only file which had previously been opened in compatibility mode); this was fixed in SHARE v1.01 of 09/29/94 SeeAlso: AH=0Fh,AH=3Ch,AX=4301h,AX=5D00h,INT 2F/AX=1116h,INT 2F/AX=1226h Bitfields for access and sharing modes: Bit(s) Description (Table 01402) 2-0 access mode 000 read only 001 write only 010 read/write 011 (DOS 5+ internal) passed to redirector on EXEC to allow case-sensitive filenames 3 reserved (0) 6-4 sharing mode (DOS 3.0+) (see #01403) 000 compatibility mode 001 "DENYALL" prohibit both read and write access by others 010 "DENYWRITE" prohibit write access by others 011 "DENYREAD" prohibit read access by others 100 "DENYNONE" allow full access by others 111 network FCB (only available during server call) 7 inheritance if set, file is private to current process and will not be inherited by child processes SeeAlso: #01782,#01403 (Table 01403) Values of DOS 2-6.22 file sharing behavior: | Second and subsequent Opens First |Compat Deny Deny Deny Deny Open | All Write Read None |R W RW R W RW R W RW R W RW R W RW - - - - -| - - - - - - - - - - - - - - - - - Compat R |Y Y Y N N N 1 N N N N N 1 N N W |Y Y Y N N N N N N N N N N N N RW|Y Y Y N N N N N N N N N N N N - - - - -| Deny R |C C C N N N N N N N N N N N N All W |C C C N N N N N N N N N N N N RW|C C C N N N N N N N N N N N N - - - - -| Deny R |2 C C N N N Y N N N N N Y N N Write W |C C C N N N N N N Y N N Y N N RW|C C C N N N N N N N N N Y N N - - - - -| Deny R |C C C N N N N Y N N N N N Y N Read W |C C C N N N N N N N Y N N Y N RW|C C C N N N N N N N N N N Y N - - - - -| Deny R |2 C C N N N Y Y Y N N N Y Y Y None W |C C C N N N N N N Y Y Y Y Y Y RW|C C C N N N N N N N N N Y Y Y Legend: Y = open succeeds, N = open fails with error code 05h C = open fails, INT 24 generated 1 = open succeeds if file read-only, else fails with error code 2 = open succeeds if file read-only, else fails with INT 24 SeeAlso: #01636,#01404 (Table 01404) Values for DOS 7.x file sharing behavior: | Second and subsequent Opens First |Compat Deny Deny Deny Deny Open | All Write Read None |R W RW A R W RW A R W RW A R W RW A R W RW A - - - - -| - - - - - - - - - - - - - - - - - - - - - - - - Compat R |Y Y Y Y N N N N Y N N Y N N N Y Y N N Y W |Y Y Y C N N N N N N N N N N N Y Y N N Y RW|Y Y Y C N N N N N N N N N N N Y Y N N Y NA|Y C C Y N N N N Y N N Y N N N Y Y N N Y - - - - -| Deny R |C C C C N N N N N N N N N N N N N N N N All W |C C C C N N N N N N N N N N N N N N N N RW|C C C C N N N N N N N N N N N N N N N N NA|C C C C N N N N N N N N N N N N N N N N - - - - -| Deny R |Y C C Y N N N N Y N N Y N N N Y Y N N Y Write W |C C C C N N N N N N N N Y N N Y Y N N Y RW|C C C C N N N N N N N N N N N Y Y N N Y NA|Y C C Y N N N N Y N N Y N N N Y Y N N Y - - - - -| Deny R |C C C C N N N N N Y N N N N N N N Y N N Read W |C C C C N N N N N N N N N Y N N N Y N N RW|C C C C N N N N N N N N N N N N N Y N N NA|Y Y Y Y N N N N Y Y Y Y N N N Y Y Y Y Y - - - - -| Deny R |Y Y Y Y N N N N Y Y Y Y N N N Y Y Y Y Y None W |C C C C N N N N N N N N Y Y Y Y Y Y Y Y RW|C C C C N N N N N N N N N N N Y Y Y Y Y NA|Y Y Y Y N N N N Y Y Y Y N N N Y Y Y Y Y Legend: R -> reading, W -> writing, RW -> both reading & writing, A/NA -> reading without access time update Y = open succeeds, N = open fails with error code 05h C = open fails, INT 24 generated SeeAlso: #01403,#01636Top
INT 21 - VIRUS - "GT-SPOOF" -INSTALLATION CHECK AX = 3D76h Return: AX = 763Dh if resident SeeAlso: AX=357Fh,AX=3DFFhTop
INT 21 - VIRUS - "JD-448" - INSTALLATION CHECK AX = 3DFFh Return: AX = 4A44h if resident SeeAlso: AX=3D76h,AX=4203hTop
INT 21 - DOS 2+ - "CLOSE" - CLOSE FILE AH = 3Eh BX = file handle Return: CF clear if successful AX destroyed CF set on error AX = error code (06h) (see #01680 at AH=59h/BX=0000h) Notes: if the file was written to, any pending disk writes are performed, the time and date stamps are set to the current time, and the directory entry is updated recent versions of DOS preserve AH because some versions of Multiplan had a bug which depended on AH being preserved SeeAlso: AH=10h,AH=3Ch,AH=3Dh,INT 2F/AX=1106h,INT 2F/AX=1227hTop
INT 21 - DOS 2+ - "READ" - READ FROM FILE OR DEVICE AH = 3Fh BX = file handle CX = number of bytes to read DS:DX -> buffer for data Return: CF clear if successful AX = number of bytes actually read (0 if at EOF before call) CF set on error AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h) Notes: data is read beginning at current file position, and the file position is updated after a successful read the returned AX may be smaller than the request in CX if a partial read occurred if reading from CON, read stops at first CR under the FlashTek X-32 DOS extender, the pointer is in DS:EDX BUG: Novell NETX.EXE v3.26 and 3.31 do not set CF if the read fails due to a record lock (see AH=5Ch), though it does return AX=0005h; this has been documented by Novell SeeAlso: AH=27h,AH=40h,AH=93h,INT 2F/AX=1108h,INT 2F/AX=1229hTop
INT 21 - Turbo Debug HARDWARE BREAKPOINTS - READ STATUS BLOCK AH = 3Fh BX = handle for character device "TDHDEBUG" CX = number of bytes to read DS:DX -> buffer for status block (see #01406) Return: CF clear if successful AX = number of bytes actually read CF set on error AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h) SeeAlso: AH=40h"Turbo Debug" (Table 01405) Values for status of Turbo Debugger command: 00h successful 01h invalid handle 02h no more breakpoints available 03h hardware does not support specified breakpoint type 04h previous command prevents execution 05h debugger hardware not found 06h hardware failure 07h invalid command 08h driver not initialized yet FEh recursive entry (hardware breakpoint inside hw bp handler) Format of Turbo Debugger status block: Offset Size Description (Table 01406) 00h BYTE status of command (see #01405) ---status for command 01h--- 01h WORD device driver interface version number (currently 1) 03h WORD device driver software version 05h BYTE maximum simultaneous hardware breakpoints 06h BYTE configuration bits (see #01407) 07h BYTE supported breakpoint types (see #01408) 08h WORD supported addressing match modes (see #01409) 0Ah WORD supported data matches (see #01410) 0Ch BYTE maximum data match length (01h, 02h, or 04h) 0Dh WORD size of onboard memory (in KB) 0Fh WORD maximum number of trace-back events 11h WORD hardware breakpoint enable byte address segment (0000h if not supported) ---status for command 04h--- 01h BYTE handle to use when referring to the just-set breakpoint Bitfields for Turbo Debugger configuration bits: Bit(s) Description (Table 01407) 0 CPU and DMA accesses are distinct 1 can detect DMA transfers 2 supports data mask 3 hardware pass counter on breakpoints 4 can match on data as well as addresses Bitfields for Turbo Debugger supported breakpoint types: Bit(s) Description (Table 01408) 0 memory read 1 memory write 2 memory read/write 3 I/O read 4 I/O write 5 I/O read/write 6 instruction fetch Bitfields for Turbo Debugger supported addressing match modes: Bit(s) Description (Table 01409) 0 any address 1 equal to test value 2 not equal 3 above test value 4 below test value 5 below or equal 6 above or equal 7 within range 8 outside range Bitfields for Turbo Debugger supported data matches: Bit(s) Description (Table 01410) 0 any data 1 equal to test value 2 not equal 3 above test value 4 below test value 5 below or equal 6 above or equal 7 within range 8 outside rangeTop
INT 21 - PC/TCP IPCUST.SYS - READ CONFIGURATION DATA AH = 3Fh BX = handle for character device "$IPCUST" CX = number of bytes to read DS:DX -> buffer for configuration data (see #01411) Return: CF clear if successful AX = number of bytes actually read CF set on error AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h) Notes: if less than the entire data is read or written, the next read/write continues where the previous one ended; IOCTL calls AX=4402h and AX=4403h both reset the location at which the next operation starts to zero the data pointer is also reset to zero if the previous read or write reached or exceeded the end of the data, when the current function is read and the previous was write, or vice versa v2.1+ uses a new configuration method, but allows the installation of IPCUST.SYS for backward compatibility with other software which must read the PC/TCP configuration SeeAlso: AH=40h"IPCUST",AX=4402h"IPCUST",AX=4402h"FTPSOFT" Format of PC/TCP configuration data: Offset Size Description (Table 01411) 00h 12 BYTEs IPCUST.SYS device driver header (see #01646) 12h BYTE ??? 13h BYTE ??? 14h WORD ??? 16h BYTE bit flags bit 0: send BS rather than DEL for BackSpace key bit 1: wrap long lines 17h BYTE ??? 18h 64 BYTEs ASCIZ hostname 58h 64 BYTEs ASCIZ domain name (fully qualified domain name is hostname.domain-name) 98h 16 BYTEs ASCIZ username A8h 64 BYTEs ASCIZ full name E8h 64 BYTEs ASCIZ office address 128h 32 BYTEs ASCIZ phone number 148h WORD offset from GMT in minutes 14Ah 4 BYTEs ASCIZ timezone name 14Eh WORD number of time servers 150h ? DWORDs (big-endian) IP addresses for time servers ??? 164h WORD number of old-style name servers 166h 3 DWORDs (big-endian) IP addresses for name servers 172h WORD number of domain name servers 174h 3 DWORDs (big-endian) IP addresses for domain name servers 180h DWORD (big-endian) IP address of default gateway 184h DWORD (big-endian) IP address of log server 188h DWORD (big-endian) IP address of cookie server 18Ch DWORD (big-endian) IP address of lpr server 190h DWORD (big-endian) IP address of imagen print server 194h 54 BYTEs ??? 1E8h WORD TCP default window size in bytes 1EAh WORD TCP low window size 1ECh 64 BYTEs ASCIZ host tabel filename 22Ch 2 BYTEs ??? 22Eh 80 BYTEs ASCIZ mail relay host name 27Eh BYTE ??? 27Fh BYTE ??? bit flags 280h 44 BYTEs ??? 2ACh WORD ??? 2AEh 202 BYTEs ???Top
INT 21 - WORKGRP.SYS - GET ENTRY POINT AH = 3Fh BX = file handle for device "NET$HLP$" CX = 0008h DS:DX -> buffer for entry point record (see #01485) Return: CF clear if successful AX = number of bytes actually read (0 if at EOF before call) CF set on error AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h) Program: WORKGRP.SYS is the portion of Microsoft's Workgroup Connection which permits communication with PCs running Windows for Workgroups or LAN Manager SeeAlso: AX=4402h"WORKGRP.SYS",INT 2F/AX=9400hTop
INT 21 - BW-TCP - GET DRIVER INFO AH = 3Fh BX = file handle for device "ETHDEV27" CX = 002Bh DS:DX -> buffer for driver info (see #01412) Return: CF clear if successful AX = number of bytes actually read (0 if at EOF before call) CF set on error AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h) Program: BW-TCP is a TCP/IP protocol stack by Beame & Whiteside Software InstallCheck: for the TCP/IP stack, test for the existence of the character device UDP-IP10 Note: the B&W socket library performs an INT 21/AX=4401h with DX=0060h before making this call to retrieve the driver information; one should also call the private API interrupt with AH=15h SeeAlso: INT 14/AH=56h,INT 62/AH=00h"ETHDEV",INT 63/AH=03h,INT 64/AH=01h Index: installation check;BW-TCP hardware driver Index: installation check;BW-TCP TCPIP.SYS Format of BW-TCP driver info: Offset Size Description (Table 01412) 00h WORD I/O base address 02h BYTE shared memory page (01h = segment 0100h, etc.) 03h BYTE interrupt vector for private API 04h BYTE IRQ used by board 05h WORD size of data buffer 07h WORD maximum transfer window 09h WORD time zone 0Bh BYTE address type (01h user, 04h RARP, 05h BOOTP) 0Ch DWORD internet address 10h WORD "value" ??? 12h BYTE subnet mask 13h WORD "ether_pointer" ??? 15h WORD offset in device driver of log server records (see #01413) 17h WORD offset in device driver of name server records (see #01413) 19h WORD offset in device driver of print server records (see #01413) 1Bh WORD offset in device driver of time server records (see #01413) 1Dh WORD offset in device driver of gateway records (see #01413) 1Fh WORD segment address of device driver 21h BYTE transfer size 22h 9 BYTEs network adapter board name ---11/21/91+ --- 23h BYTE ETHDEV version (major in high nybble, minor in low nybble) 24h BYTE ETHDEV revision 25h BYTE TCPIP version (major in high nybble, minor in low nybble) 26h BYTE TCPIP revision 27h BYTE BWRPC version (major in high nybble, minor in low nybble) 28h BYTE BWRPC revision 29h BYTE BWNFS version (major in high nybble, minor in low nybble) 2Ah BYTE BWNFS revision 2Bh BYTE Telnet version (major in high nybble, minor in low nybble) 2Ch BYTE Telnet revision 2Dh BYTE NETBIOS version (major in high nybble, minor in low nybble) 2Eh BYTE NETBIOS revision Note: for each driver, if version=0, the driver is not installed or does not support the version check Format of BW-TCP server records: Offset Size Description (Table 01413) 00h BYTE number of server records following 01h N DWORDs internet addresses of serversTop
INT 21 - Trusted Access - NB.SYS - GET STATE AH = 3Fh BX = file handle for device "$$NB$$NB" CX = 0002h (size of state) DS:DX -> buffer for state record (see #01414) Return: CF clear if successful AX = number of bytes actually read (0 if at EOF before call) CF set on error AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h) Program: Trusted Access is a security and access-control package by Lassen Software, Inc.; NB.SYS is a device driver to prevent the user from terminating CONFIG.SYS or AUTOEXEC.BAT with Ctrl-Break SeeAlso: AH=40h"NB.SYS",AX=4101h Format of Trusted Access state record: Offset Size Description (Table 01414) 00h BYTE 00h off, 01h on 01h BYTE keys being disabled bit 0: Ctrl-Break bit 1: SysReq bit 2: Ctrl and Alt bit 3: Ctrl-Alt-Del bit 7: all keys (overrides other bits)Top
INT 21 U - IFSHLP.SYS - GET ENTRY POINT AH = 3Fh BX = file handle for device "IFS$HLP$" CX = 0008h (size of buffer in bytes) DS:DX -> buffer for entry point record (see #01415) Return: CF clear if successful AX = number of bytes actually read (0 if at EOF before call) CF set on error AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h) Program: IFSHLP.SYS is a support driver for Microsoft Windows for Workgroups SeeAlso: AX=4402h"IFSHLP" Format of IFSHLP.SYS entry point record: Offset Size Description (Table 01415) 00h 4 BYTEs (call) required signature if called via IOCTL 70h E9h 34h 37h for Windows 3.11 70h E9h 35h 37h for Windows 3.11 (ret) signature 34h 37h 70h EFh (Windows 3.11) (ret) signature 35h 37h 70h EFh (Windows95) 04h DWORD (ret) pointer to FAR call entry point (see #01416) (Table 01416) Call IFSHLP.SYS entry point with: STACK: WORD function number (00h-0Ch) 00h get ??? data 01h set interrupt intercepts (trap) 02h remove interrupt intercepts (untrap) 03h ??? LPT2 04h ??? LPT1 05h revector INT 2F to trap and remove trap for others 06h set ??? flag 07h clear ??? flag 08h get ??? flag word ---Windows 3.11 only--- 09h ??? 0Ah ??? 0Bh ??? 0Ch get ??? ---if function 00h--- Return: DX:AX -> ??? data (see #01417) BX destroyed ---if function 01h--- STACK: DWORD new intercept (trap) address Return: AX = status 0000h successful 0001h failed (already set) DX = 0000h BX destroyed Note: the trap handler is called with a function number in BX, and the original BX on top of the stack; a null handler must perform a POP BX and an IRET ---if function 02h--- Return: AX = status 0000h successful 0001h failed (not set) DX = 0000h BX destroyed ---if function 03h,04h--- STACK: WORD ??? Return: AX = 0000h DX = 0000h BX destroyed ---if function 05h--- ??? Return: BX destroyed ---if function 06h--- Return: AX = 0001h and DX = 0000h if already set AX,DX unchanged if successful BX destroyed ---if function 07h--- Return: AX = 0001h and DX = 0000h if not set AX,DX unchanged if successful BX destroyed ---if function 08h--- Return: DX = 0000h AX = flags bit 0: set/cleared by functions 06h and 07h bit 1: trap is currently set (refer to functions 01h/02h) BX destroyed ---if function 09h--- Return: AX = status 0000h successful 0001h failed (already called) BX destroyed ---if function 0Ah--- STACK: WORD ??? ??? Return: BX destroyed ---if function 0Bh--- Return: AX = status 0000h successful 0001h failed (not set) BX destroyed ---if function 0Ch--- Return: AX = 0000h ES:BX -> ??? data ---if function > 0Ch--- Return: AX = 0001h DX = 0000h BX destroyed Format of IFSHLP ??? data: Offset Size Description (Table 01417) 00h DWORD -> DOS Swappable Data Area (see #01687,#01689) 02h WORD ??? offset in DOS data segment? 04h WORD offset in DOS data segment of current-PSP WORD 06h WORD ??? 08h WORD ??? 0Ah WORD ??? 0Ch DWORD -> DOS List of Lists (see #01627) 10h ??? SeeAlso: #01416Top
INT 21 - VIRUS - "KYZ/LieWait" - INSTALLATION CHECK AH = 3Fh BX = FEB0h Return: BX = 1212h if resident SeeAlso: AX=3032h"VIRUS",AX=4BF1h"VIRUS"Top
INT 21 - DOS 2+ - "WRITE" - WRITE TO FILE OR DEVICE AH = 40h BX = file handle CX = number of bytes to write DS:DX -> data to write Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h) Notes: if CX is zero, no data is written, and the file is truncated or extended to the current position data is written beginning at the current file position, and the file position is updated after a successful write for FAT32 drives, the file must have been opened with AX=6C00h with the "extended size" flag in order to expand the file beyond 2GB; otherwise the write will fail with error code 0005h (access denied) the usual cause for AX < CX on return is a full disk BUG: a write of zero bytes will appear to succeed when it actually failed if the write is extending the file and there is not enough disk space for the expanded file (DOS 5.0-6.0); one should therefore check whether the file was in fact extended by seeking to 0 bytes from the end of the file (INT 21/AX=4202h/CX=0000h/DX=0000h) under the FlashTek X-32 DOS extender, the pointer is in DS:EDX SeeAlso: AH=28h,AH=3Fh"DOS",AH=93h,INT 2F/AX=1109hTop
INT 21 - Turbo Debug HARDWARE BREAKPOINTS - SEND CMD TO HARDWARE BRKPNT DRIVER AH = 40h BX = handle for character device "TDHDEBUG" CX = number of bytes to write DS:DX -> hardware breakpoint command (see #01418) Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h) Note: results are retrieved by reading from the device SeeAlso: AH=3Fh"Turbo Debug" Format of Turbo Debugger hardware breakpoint commands: Offset Size Description (Table 01418) 00h BYTE command code 00h install interrupt vectors 01h get hardware capabilities 02h enable hardware breakpoints 03h disable hardware breakpoints 04h set hardware breakpoint 05h clear hardware breakpoint 06h set I/O base address and reset hardware 07h restore interrupt vectors ---command code 00h--- 01h DWORD pointer to Turbo Debugger entry point to be jumped to on hardware breakpoint; call with CPU state the same as on the breakpoint except for pushing AX and placing an entry code (FFh if breakout button or breakpoint handle) in AH ---command code 04h--- 01h BYTE breakpoint type 00h memory read 01h memory write 02h memory read/write 03h I/O read 04h I/O write 05h I/O read/write 06h instruction fetch 02h BYTE address matching mode (see #01419) 03h DWORD 32-bit linear low address 07h DWORD 32-bit linear high address 0Bh WORD pass count 0Dh BYTE data size (01h, 02h, or 04h) 0Eh BYTE source of matched bus cycle (01h CPU, 02h DMA, 03h either) 0Fh BYTE data-matching mode (see #01419) 10h DWORD low data value 14h DWORD high data value 18h DWORD data mask specifying which bits of the data are tested ---command code 05h--- 01h BYTE handle of breakpoint to clear (breakpoint returned from command 04h) ---command code 06h--- 01h WORD base address of hardware debugger board (Table 01419) Values for Turbo Debugger address/data matching mode: 00h match any 01h equal to test value 02h different from test value 03h above test value 04h below test value 05h below or equal to test value 06h above or equal to test value 07h within inclusive range 08h outside specified rangeTop
INT 21 - PC/TCP IPCUST.SYS - WRITE CONFIGURATION DATA AH = 40h BX = handle for character device "$IPCUST" CX = number of bytes to write DS:DX -> buffer for configuration data (AH=3Fh"IPCUST") Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h) Notes: if less than the entire data is read or written, the next read/write continues where the previous one ended; IOCTL calls AX=4402h and AX=4403h both reset the location at which the next operation starts to zero the data pointer is also reset to zero if the previous read or write reached or exceeded the end of the data, when the current function is read and the previous was write, or vice versa v2.1+ uses a new configuration method, but allows the installation of IPCUST.SYS for backward compatibility with other software which must read the PC/TCP configuration SeeAlso: AH=3Fh"IPCUST",AX=4402h"IPCUST"Top
INT 21 U - Trusted Access - NB.SYS - SET STATE AH = 40h BX = handle for character device "$$NB$$NB" DS:DX -> state record (see #01414) CX ignored Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h) Program: Trusted Access is a security and access-control package by Lassen Software, Inc.; NB.SYS is a device driver to prevent the user from terminating CONFIG.SYS or AUTOEXEC.BAT with Ctrl-Break SeeAlso: AH=3Fh"NB.SYS"Top
INT 21 - FARTBELL.EXE - INSTALLATION CHECK AX = 4000h BX = 0002h CX = 0000h DS:DX = 0000h:0000h Return: CF clear if installed AX = CS of resident code Program: FARTBELL is a joke program by Guenther Thiele which makes various noises when programs output a bell SeeAlso: AX=4001hTop
INT 21 - FARTBELL.EXE - FORCE NOISE AX = 4001h BX = 0002h CX = 0000h DS:DX = 0000h:0000h Program: FARTBELL is a joke program by Guenther Thiele which makes various noises when programs output a bell SeeAlso: AX=4000hTop
INT 21 - DOS 2+ - "UNLINK" - DELETE FILE AH = 41h DS:DX -> ASCIZ filename (no wildcards, but see notes) CL = attribute mask for deletion (server call only, see notes) Return: CF clear if successful AX destroyed (DOS 3.3) AL seems to be drive of deleted file CF set on error AX = error code (02h,03h,05h) (see #01680 at AH=59h/BX=0000h) Notes: (DOS 3.1+) wildcards are allowed if invoked via AX=5D00h, in which case the filespec must be canonical (as returned by AH=60h), and only files matching the attribute mask in CL are deleted DR DOS 5.0-6.0 returns error code 03h if invoked via AX=5D00h; DR DOS 3.41 crashes if called via AX=5D00h with wildcards DOS does not erase the file's data; it merely becomes inaccessible because the FAT chain for the file is cleared deleting a file which is currently open may lead to filesystem corruption. Unless SHARE is loaded, DOS does not close the handles referencing the deleted file, thus allowing writes to a nonexistant file. under DR DOS and DR Multiuser DOS, this function will fail if the file is currently open under the FlashTek X-32 DOS extender, the pointer is in DS:EDX BUG: DR DOS 3.41 crashes if called via AX=5D00h SeeAlso: AH=13h,AX=4301h,AX=4380h,AX=5D00h,AH=60h,AX=7141h,AX=F244h SeeAlso: INT 2F/AX=1113hTop
INT 21 - SoftLogic Data Guardian - ??? AX = 4101h DX = FFFEh Return: AX = 0000h if installed Note: resident code sets several internal variables on this call SeeAlso: AH=3Fh"NB.SYS",INT 16/AX=FFA3h/BX=0000hTop
INT 21 - DOS 2+ - "LSEEK" - SET CURRENT FILE POSITION AH = 42h AL = origin of move 00h start of file 01h current file position 02h end of file BX = file handle CX:DX = (signed) offset from origin of new file position Return: CF clear if successful DX:AX = new file position in bytes from start of file CF set on error AX = error code (01h,06h) (see #01680 at AH=59h/BX=0000h) Notes: for origins 01h and 02h, the pointer may be positioned before the start of the file; no error is returned in that case (except under Windows NT), but subsequent attempts at I/O will produce errors if the new position is beyond the current end of file, the file will be extended by the next write (see AH=40h); for FAT32 drives, the file must have been opened with AX=6C00h with the "extended size" flag in order to expand the file beyond 2GB BUG: using this method to grow a file from zero bytes to a very large size can corrupt the FAT in some versions of DOS; the file should first be grown from zero to one byte and then to the desired large size SeeAlso: AH=24h,INT 2F/AX=1228hTop
INT 21 - VIRUS - "Shake" - INSTALLATION CHECK AX = 4203h Return: AX = 1234h if resident SeeAlso: AX=3DFFh,AX=4243hTop
INT 21 - VIRUS - "Invader" - INSTALLATION CHECK AX = 4243h Return: AX = 5678h if resident SeeAlso: AX=4203h,AX=44A0h,AX=4B04hTop
INT 21 - DOS 2+ - GET FILE ATTRIBUTES AX = 4300h DS:DX -> ASCIZ filename Return: CF clear if successful CX = file attributes (see #01420) AX = CX (DR DOS 5.0) CF set on error AX = error code (01h,02h,03h,05h) (see #01680 at AH=59h) Notes: under the FlashTek X-32 DOS extender, the filename pointer is in DS:EDX under DR DOS 3.41 and 5.0, attempts to change the subdirectory bit are simply ignored without an error BUG: Windows for Workgroups returns error code 05h (access denied) instead of error code 02h (file not found) when attempting to get the attributes of a nonexistent file. This causes open() with O_CREAT and fopen() with the "w" mode to fail in Borland C++. SeeAlso: AX=4301h,AX=4310h,AX=7143h,AH=B6h,INT 2F/AX=110Fh,INT 60/DI=0517hTop
INT 21 - DOS 2+ - "CHMOD" - SET FILE ATTRIBUTES AX = 4301h CX = new file attributes (see #01420) DS:DX -> ASCIZ filename Return: CF clear if successful AX destroyed CF set on error AX = error code (01h,02h,03h,05h) (see #01680 at AH=59h) Notes: will not change volume label or directory attribute bits, but will change the other attribute bits of a directory (the directory bit must be cleared to successfully change the other attributes of a directory, but the directory will not be changed to a normal file as a result) MS-DOS 4.01 reportedly closes the file if it is currently open for security reasons, the Novell NetWare execute-only bit can never be cleared; the file must be deleted and recreated under the FlashTek X-32 DOS extender, the filename pointer is in DS:EDX DOS 5.0 SHARE will close the file if it is currently open in sharing- compatibility mode, otherwise a sharing violation critical error is generated if the file is currently open DR DOS 3.41/5.0 will silently ignore attempts to change the 'directory' attribute bit SeeAlso: AX=4300h,AX=4311h,AX=7143h,INT 2F/AX=110Eh Bitfields for file attributes: Bit(s) Description (Table 01420) 7 shareable (Novell NetWare) 7 pending deleted files (Novell DOS, OpenDOS) 6 unused 5 archive 4 directory 3 volume label execute-only (Novell NetWare) 2 system 1 hidden 0 read-onlyTop
INT 21 - MS-DOS 7 - GET COMPRESSED FILE SIZE AX = 4302h DS:DX -> ASCIZ pathname for file or directory Return: CF clear if successful ??? = compressed size of file/directory in bytes CF set on error AX = error code Note: on volumes which do not support compression, the returned size is the actual file size rounded up to the next cluster boundary SeeAlso: AH=71h,AH=72hTop
INT 21 - DR DOS 3.41+ internal - GET ACCESS RIGHTS AX = 4302h DS:DX -> ASCIZ pathname Return: CF clear if successful CX = access rights (see #01421) AX = CX (DR DOS 5.0) CF set on error AX = error code Desc: Determine which operations the calling program may perform on a specified file without being required to provide a password. Notes: this protection scheme has been coordinated on all current Digital Research/Novell operating systems (DR DOS 3.41+, DRMDOS 5.x, and FlexOS 2+) this function is documented in DR DOS 6.0 and corresponds to the "Get/Set File Attributes" function, subfunction 2, documented in Concurrent DOS. only FlexOS actually uses the "execution" bits; DR DOS 3.41+ treats them as "read" bits. DR DOS 3.41-5.x only use bits 0-3. Only DR DOS 6.0 using a DRMDOS 5.x security system allowing for users and groups uses bits 4-11. SeeAlso: AX=4303h,#01354 at INT 21/AH=11h Bitfields for DR DOS file access rights: Bit(s) Description (Table 01421) 0 owner delete requires password 1 owner execution requires password (FlexOS) 2 owner write requires password 3 owner read requires password 4 group delete requires password 5 group execution requires password (FlexOS) 6 group write requires password 7 group read requires password 8 world delete requires password 9 world execution requires password (FlexOS) 10 world write requires password 11 world read requires passwordTop
INT 21 - DR DOS 3.41+ internal - SET ACCESS RIGHTS AND PASSWORD AX = 4303h CX = access rights bits 11-0: access rights (see #01421) bit 15: new password is to be set DS:DX -> ASCIZ pathname [DTA] = new password if CX bit 15 is set (blank-padded to 8 characters) Return: CF clear if successful CF set on error AX = error code Notes: if the file is already protected, the old password must be added after the pathname, separated by a ";". As with all password handling in DR DOS, the old password is processed by the kernel, not any applications or utilities making the call. this function is documented in DR DOS 6.0 and corresponds to the "Get/Set File Attributes" function, subfunction 3, documented in Concurrent DOS. SeeAlso: AH=0Fh,AH=17h,AX=4302h"DR DOS",AX=4305h,AX=4454hTop
INT 21 U - DR DOS 5.0-6.0 internal - GET ENCRYPTED PASSWORD AX = 4304h DS:DX -> ASCIZ filename ??? Return: CF clear if successful CX = AX = 0000h if no password assigned to file CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) Note: this function is only supported by DR DOS 5.0 and 6.0 and DRMDOS 5.1 SeeAlso: AX=4303h,AX=4305hTop
INT 21 U - DR DOS 5.0-6.0 internal - SET EXTENDED FILE ATTRIBUTES AX = 4305h DS:DX -> ASCIZ filename ??? Return: CF clear if successful CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) Desc: this function allows the extended attributes, and optionally the encrypted password, of a file to be set. Note: this function is only supported by DR DOS 5.0 and 6.0 and DRMDOS 5.1 SeeAlso: AX=4304h,AX=4311hTop
INT 21 O - DR DOS 6.0 - GET FILE OWNER AX = 4306h DS:DX -> ASCIZ filename Return: CF clear if successful AX = CX = value set with AX=4307h CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) Note: no longer supported by Novell DOS 7 / OpenDOS SeeAlso: AX=4307hTop
INT 21 O - DR DOS 6.0 - SET FILE OWNER AX = 4307h CX = ??? (owner identification number?) DS:DX -> ASCIZ filename Return: CF clear if successful CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) Note: no longer supported by Novell DOS 7 / OpenDOS SeeAlso: AX=4306hTop
INT 21 - Banyan VINES 2.1+ - GET EXTENDED FILE ATTRIBUTES AX = 4310h DS:DX -> ASCIZ filename Return: CF clear if successful CH = attributes (see #01422) CF set on error AX = error code (01h,02h,03h,05h) (see #01680 at AH=59h/BX=0000h) Note: the filename may be a directory but must be on a VINES file service SeeAlso: AX=4300h,AX=4311h,AH=B6h,INT 2F/AX=110FhTop
INT 21 - Banyan VINES 2.1+ - SET EXTENDED FILE ATTRIBUTES AX = 4311h CH = new attributes (see #01422) DS:DX -> ASCIZ filename Return: CF clear if successful CF set on error AX = error code (01h,02h,03h,05h) (see #01680 at AH=59h/BX=0000h) Note: the filename may be a directory but must be on a VINES file service SeeAlso: AX=4301h,AX=4305h,AX=4310h,INT 2F/AX=110Eh Bitfields for VINES extended file attributes: Bit(s) Description (Table 01422) 7 unused 6 shareable 5 execute-only 4-0 unusedTop
INT 21 - Q87, Q387 - INSTALLATION CHECK AX = 4321h BX = 0000h EAX = 87654321h (entire EAX value is required, not just AX) Return: EAX = 12345678h if installed Program: Q387 (renamed to Q87 as of v3.7) is a math coprocessor emulator from Quickware Note: this function is available only in virtual-86 mode in older versions; newer versions also provide it in MS Windows 16- and 32-bit protected mode SeeAlso: AX=4321h/BX=0001h,AX=4321h/BX=0002h,INT 67/AX=4321hTop
INT 21 - Q87, Q387 - ENABLE EMULATOR AX = 4321h BX = 0001h EAX = 87654321h (entire EAX value is required, not just AX) Desc: enable the emulator by setting the CPU MSW's EM bit and updating the BIOS equipment list Note: this function is available only in virtual-86 mode in older versions; newer versions also provide it in MS Windows 16- and 32-bit protected mode SeeAlso: AX=4321h/BX=0000h,AX=4321h/BX=0002hTop
INT 21 - Q87, Q387 - DISABLE EMULATOR AX = 4321h BX = 0002h EAX = 87654321h (entire EAX value is required, not just AX) Desc: disable the emulator by clearing the CPU MSW's EM bit and updating the BIOS equipment list Note: this function is available only in virtual-86 mode in older versions; newer versions also provide it in MS Windows 16- and 32-bit protected mode SeeAlso: AX=4321h/BX=0000h,AX=4321h/BX=0001hTop
INT 21 - Novell DOS 7 - UNDELETE PENDING DELETE FILE AX = 4380h ??? Return: ??? SeeAlso: AH=41h,AX=4381hTop
INT 21 - Novell DOS 7 - PURGE PENDING DELETE FILE AX = 4381h ??? Return: ??? SeeAlso: AH=41h,AX=4380hTop
INT 21 - DR-DOS >7.03 - RESERVED AX = 4382h-438Fh Notes: These previously unused functions are reserved for future versions of DR-DOS (post 7.03). AX=4382h will be identical to the previous AX=4302h, which is now also used by MS-DOS 7+ for a different purpose. SeeAlso: INT 21h/4302hTop
INT 21 - MS-DOS 7.20 (Win98) - EXTENDED-LENGTH FILENAME OPERATIONS AX = 43FFh BP = 5053h ('PS') CL = function 39h "mkdir" create directory DS:DX -> ASCIZ pathname 56h rename file DS:DX -> ASCIZ filename of existing file (no wildcards) ES:DI -> ASCIZ new filename (no wildcards) Return: CF clear if successful AX destroyed CF set on error AX = error code (03h,05h) (see #01680 at AH=59h/BX=0000h) Note: these functions are equivalent to INT 21/AH=39h and INT 21/AH=56h, but with a maximum path length of 128 characters instead of 67; unlike INT 21/AX=71xxh, these functions are available under bare DOS and not just in a Windows DOS box SeeAlso: AH=39h,AH=56h,AX=7139h,AX=7156hTop
INT 21 - DOS 2+ - IOCTL - GET DEVICE INFORMATION AX = 4400h BX = handle Return: CF clear if successful DX = device information word (see #01423) AX destroyed CF set on error AX = error code (01h,05h,06h) (see #01680 at AH=59h/BX=0000h) Notes: value in DH corresponds to high byte of device driver's attribute word if handle refers to a character device Novell NetWare reportedly does not return a drive number in bits 5-0 for a disk file this function was not supported by Digital Research's DOS Plus SeeAlso: AX=4401h,INT 2F/AX=122Bh Bitfields for device information word: Bit(s) Description (Table 01423) character device 14 device driver can process IOCTL requests (see AX=4402h"DOS 2+") 13 output until busy supported 11 driver supports OPEN/CLOSE calls 8 ??? (set by MS-DOS 6.2x KEYB) 7 set (indicates device) 6 EOF on input 5 raw (binary) mode 4 device is special (uses INT 29) 3 clock device 2 NUL device 1 standard output 0 standard input disk file 15 file is remote (DOS 3.0+) 14 don't set file date/time on closing (DOS 3.0+) 11 media not removable 8 (DOS 4 only) generate INT 24 if no disk space on write or read past end of file 7 clear (indicates file) 6 file has not been written 5-0 drive number (0 = A:) SeeAlso: INT 29Top
INT 21 - DOS 2+ - IOCTL - SET DEVICE INFORMATION AX = 4401h BX = handle (must refer to character device) DX = device information word (see #01423) (DH must be zero for DOS version prior to 6.x) Return: CF clear if successful CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Note: this function was not supported by Digital Research's DOS Plus SeeAlso: AX=4400h,INT 2F/AX=122BhTop
INT 21 - DOS 2+ - IOCTL - READ FROM CHARACTER DEVICE CONTROL CHANNEL AX = 4402h BX = file handle referencing character device CX = number of bytes to read DS:DX -> buffer Return: CF clear if successful AX = number of bytes actually read CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: format of data is driver-specific (also see separate entries below for some specific cases) this function was not supported by Digital Research's DOS Plus SeeAlso: AX=4400h,AX=4403h"DOS",AX=4404h"DOS",INT 2F/AX=122BhTop
INT 21 - Network Driver Interface Specification (NDIS) 2.0.1 - PROTOCOL MANAGER AX = 4402h BX = file handle for device "PROTMAN$" CX = 000Eh (size of request block) DS:DX -> request block (see #01424,#01425,#01426,#01427,#01428,#01432,#01433) Return: CF clear if successful AX = number of bytes actually read CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=4402h"FTPSOFT" Format of NDIS request block for GetProtocolManagerInfo: Offset Size Description (Table 01424) 00h WORD 01h 02h WORD returned status (see #01434) 04h DWORD returned pointer to structure representing parsed user config 08h DWORD unused 0Ch WORD returned BCD version of NDIS on which Protocol Manager is based SeeAlso: #01425,#01426,#01427,#01428,#01429,#01430,#01431,#01432,#01433 Format of NDIS request block for RegisterModule: Offset Size Description (Table 01425) 00h WORD 02h 02h WORD returned status (see #01434) 04h DWORD pointer to module's common characteristics table (see #01435) 08h DWORD pointer to list of modules to which the module is to be bound 0Ch WORD unused SeeAlso: #01424,#01426,#01427,#01428,#01429,#01430,#01431,#01432,#01433 Format of NDIS request block for BindAndStart: Offset Size Description (Table 01426) 00h WORD 03h 02h WORD returned status (see #01434) 04h DWORD caller's virtual address in FailingModules structure 08h DWORD unused 0Ch WORD unused SeeAlso: #01424,#01425,#01427,#01428,#01429,#01430,#01431,#01432,#01433 Format of NDIS request block for GetProtocolManagerLinkage: Offset Size Description (Table 01427) 00h WORD 04h 02h WORD returned status (see #01434) 04h DWORD returned dispatch point 08h DWORD unused 0Ch WORD returned protocol manager DS Note: the dispatch point may be called as follows instead of using this IOCTL STACK: WORD protocol manager DS DWORD pointer to request block Return: AX = returned status STACK popped SeeAlso: #01424,#01425,#01426,#01428,#01429,#01430,#01431,#01432,#01433 Format of NDIS request block for GetProtocolIniPath: Offset Size Description (Table 01428) 00h WORD 05h 02h WORD returned status (see #01434) 04h DWORD pointer to a buffer for the ASCIZ pathname of PROTOCOL.INI 08h DWORD unused 0Ch WORD buffer length SeeAlso: #01424,#01425,#01426,#01427,#01429,#01430,#01431,#01432,#01433 Format of NDIS request block for RegisterProtocolManagerInfo: Offset Size Description (Table 01429) 00h WORD 06h 02h WORD returned status (see #01434) 04h DWORD pointer to structure containing parsed user config file 08h DWORD unused 0Ch WORD length of structure SeeAlso: #01424,#01425,#01426,#01427,#01428,#01430,#01431,#01432,#01433 Format of NDIS request block for InitAndRegister: Offset Size Description (Table 01430) 00h WORD 07h 02h WORD returned status (see #01434) 04h DWORD unused 08h DWORD poitner to ASCIZ name of the module to be prebind initialized 0Ch WORD unused SeeAlso: #01424,#01425,#01426,#01427,#01428,#01429,#01431,#01432,#01433 Format of NDIS request block for UnbindAndStop: Offset Size Description (Table 01431) 00h WORD 08h 02h WORD returned status (see #01434) 04h DWORD failing modules as for BindAndStart 08h DWORD if not 0000h:0000h, pointer to ASCIZ name of module to unbind if 0000h:0000h, terminate a set of previously dynamically bound protocol modules 0Ch WORD unused SeeAlso: #01424,#01425,#01426,#01427,#01428,#01429,#01430,#01432,#01433 Format of NDIS request block for BindStatus: Offset Size Description (Table 01432) 00h WORD 09h 02h WORD returned status (see #01434) 04h DWORD must be 0000h:0000h on return, points to root tree 08h DWORD 0000h:0000h 0Ch WORD unused under DOS SeeAlso: #01424,#01425,#01426,#01427,#01428,#01429,#01430,#01431,#01433 Format of NDIS request block for RegisterStatus: Offset Size Description (Table 01433) 00h WORD 0Ah 02h WORD returned status (0000h, 0008h, 002Ch) (see #01434) 04h DWORD 0000h:0000h 08h DWORD pointer to 16-byte ASCIZ module name 0Ch WORD 0000h Note: not supported by the 10NET v5.0 PROTMAN$ driver SeeAlso: #01424,#01425,#01426,#01427,#01428,#01429,#01430,#01431,#01432 (Table 01434) Values for NDIS status code: 0000h success 0001h wait for release--protocol has retained control of the data buffer 0002h request queued 0003h frame not recognized 0004h frame rejected 0005h frame should be forwarded 0006h out of resource 0007h invalid parameter 0008h invalid function 0009h not supported 000Ah hardware error 000Bh transmit error 000Ch unrecognized destination 000Dh buffer too small 0020h already started 0021h binding incomplete 0022h driver not initialized 0023h hardware not found 0024h hardware failure 0025h configuration failure 0026h interrupt conflict 0027h MAC incompatible 0028h initialization failed 0029h no binding 002Ah network may be disconnected 002Bh incompatible OS version 002Ch already registered 002Dh path not found 002Eh insufficient memory 002Fh info not found 00FFh general failure F000h-FFFFh reserved for vendor-specific codes, treated as general failure Format of NDIS common characteristics table: Offset Size Description (Table 01435) 00h WORD size of table in bytes 02h BYTE NDIS major version 03h BYTE NDIS minor version 04h WORD reserved 06h BYTE module major version 07h BYTE module minor version 08h DWORD module function flag bits bit 0: binding at upper boundary supported bit 1: binding at lower boundary supported bit 2: dynamically bound bits 3-31 reserved, must be 0 0Ch 16 BYTEs ASCIZ module name 1Ch BYTE upper boundary protocol level (see #01436) 1Dh BYTE upper boundary interface type for MACs: 1 = MAC for data links and transports: to be defined for session: 1 = NCB any level: 0 = private (ISV-defined) 1Eh BYTE lower boundary protocol level (see #01436) 1Fh BYTE lower boundary interface type same as offset 1Dh 20h WORD module ID filled in by protocol manager 22h WORD module DS 24h DWORD system request entry point 28h DWORD pointer to service-specific characteristics (see #01438,#01440) 0000h:0000h if none 2Ch DWORD pointer to service-specific status, or 0000h:0000h if none (see #01441) 30h DWORD pointer to upper dispatch table (see #01437) 0000h:0000h if none 34h DWORD pointer to lower dispatch table (see #01437) 0000h:0000h if none 38h 2 DWORDs reserved, must be 0 Note: for compatibility with NDIS 1.x.x, a major version of 00h is interpreted as 01h (Table 01436) Values for NDIS boundary protocol level: 00h physical 01h Media Access Control 02h Data link 03h network 04h transport 05h session FFh not specified Format of NDIS dispatch table: Offset Size Description (Table 01437) 00h DWORD -> common characteristics table (see #01435) 04h 4 BYTEs ??? 08h DWORD -> ??? function (called with 12 bytes of stack arguments) 0Ch DWORD -> ??? function (called with 10 bytes of stack arguments) 10h DWORD -> ??? function (called with 16 bytes of stack arguments) 14h DWORD -> ??? function (called with 4 bytes of stack arguments) 18h DWORD -> ??? function (called with 18 bytes of stack arguments) 1Ch DWORD -> ??? function (called with 12 bytes of stack arguments) Format of MAC Service-Specific Characteristics Table: Offset Size Description (Table 01438) 00h WORD length of table in bytes 02h 16 BYTEs ASCIZ MAC type name, "802.3", "802.4", "802.5", "802.6", "DIX", "DIX+802.3", "APPLETALK", "ARCNET", "FDDI", "SDLC", "BSC", "HDLC", or "ISDN" 12h WORD length of station addresses in bytes 14h 16 BYTEs permanent station address 24h 16 BYTEs current station address 34h DWORD current functional adapter address (00000000h if none) 38h DWORD pointer to multicast address list 3Ch DWORD link speed in bits/sec 40h DWORD service flags (see #01439) 44h WORD maximum frame size which may be both sent and received 46h DWORD total transmit buffer capacity in bytes 4Ah WORD transmit buffer allocation block size in bytes 4Ch DWORD total receive buffer capacity in bytes 50h WORD receive buffer allocation block size in bytes 52h 3 BYTEs IEEE vendor code 55h BYTE vendor adapter code 56h DWORD pointer to ASCIZ vendor adapter description 5Ah WORD IRQ used by adapter 5Ch WORD transmit queue depth 5Eh WORD maximum supported number of data blocks in buffer descriptors 60h N BYTEs vendor-specific info SeeAlso: #01440 Bitfields for service flags: Bit(s) Description (Table 01439) 0 supports broadcast 1 supports multicast 2 supports functional/group addressing 3 supports promiscuous mode 4 station address software settable 5 statistics always current 6 supports InitiateDiagnostics 7 supports loopback 8 MAC does primarily ReceiveChain indications instead of ReceiveLookahead indications 9 supports IBM source routing 10 supports MAC reset 11 supports Open/Close adapter 12 supports interrupt request 13 supports source routing bridge 14 supports GDT virtual addresses (OS/2 version) 15 multiple TransferDatas allowed durign a single indication 16 MAC normally sets FrameSize = 0 in ReceiveLookahead 17-31 reserved, must be 0 Format of NetBIOS Service-Specific Characteristics Table: Offset Size Description (Table 01440) 00h WORD length of table in bytes 02h 16 BYTEs ASCIZ type name of NetBIOS module 12h WORD NetBIOS module code 14h N BYTEs vendor-specific info SeeAlso: #01438 Format of MAC Service-Specific Status Table: Offset Size Description (Table 01441) 00h WORD length of table in bytes 02h DWORD seconds since 0:00 1/1/70 when diagnostics last run (FFFFFFFFh = never) 06h DWORD MAC status bits (see #01442) 0Ah WORD current packet filter flags (see #01443) 0Ch DWORD pointer to media-specific status table or 0000h:0000h 10h DWORD seconds past 0:00 1/1/70 of last ClearStatistics 14h DWORD total frames received (FFFFFFFFh = not counted) 18h DWORD frames with CRC error (FFFFFFFFh = not counted) 1Ch DWORD total bytes received (FFFFFFFFh = not counted) 20h DWORD frames discarded--no buffer space (FFFFFFFFh = not counted) 24h DWORD multicast frames received (FFFFFFFFh = not counted) 28h DWORD broadcast frames received (FFFFFFFFh = not counted) 2Ch DWORD frames with errors (FFFFFFFFh = not counted) 30h DWORD overly large frames (FFFFFFFFh = not counted) 34h DWORD frames less than minimum size (FFFFFFFFh = not counted) 38h DWORD multicast bytes received (FFFFFFFFh = not counted) 3Ch DWORD broadcast bytes received (FFFFFFFFh = not counted) 40h DWORD frames discarded--hardware error (FFFFFFFFh = not counted) 44h DWORD total frames transmitted (FFFFFFFFh = not counted) 48h DWORD total bytes transmitted (FFFFFFFFh = not counted) 4Ch DWORD multicast frames transmitted (FFFFFFFFh = not counted) 50h DWORD broadcast frames transmitted (FFFFFFFFh = not counted) 54h DWORD broadcast bytes transmitted (FFFFFFFFh = not counted) 58h DWORD multicast bytes transmitted (FFFFFFFFh = not counted) 5Ch DWORD frames not transmitted--timeout (FFFFFFFFh = not counted) 60h DWORD frames not transmitted--hardware error (FFFFFFFFh = not countd) 64h N BYTEs vendor-specific info Bitfields for MAC status bits: Bit(s) Description (Table 01442) 0-2 operational status 000 hardware not installed 001 hardware failed startup diagnostics 010 hardware configuration problem 011 hardware fault 100 operating marginally due to soft faults 101 reserved 110 reserved 111 hardware fully operational 3 MAC bound 4 MAC open 5 diagnostics in progress 6-31 reserved Bitfields for packet filter flags: Bit(s) Description (Table 01443) 0 directed/multicast or group/functional 1 broadcast 2 promiscuous 3 all source routing 4-15 reserved, must be zeroTop
INT 21 U - MS-DOS 7.0+ - CONFIG$ device - GET CONFIGURATION INFORMATION AX = 4402h BX = file handle for character device "CONFIG$" CX = number of bytes to read (at least 5) DS:DX -> buffer for ??? data (see #01444) Return: CF clear if successful AX = number of bytes actually read CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=4403h"CONFIG$" Format of MS-DOS 7.0 CONFIG$ ??? data: Offset Size Description (Table 01444) 00h WORD ??? (0000h) 02h WORD ??? (0000h or value read from IO.SYS segment 70h) 04h BYTE ??? (value read from IO.SYS segment 70h)Top
INT 21 U - IBM SYSTEM 36/38 WORKSTATION EMULATION - VDI.SYS - GET ??? AX = 4402h BX = handle for character device "GDMS" CX = number of bytes to read (>= 4) DS:DX -> buffer (see #01445) Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful AX = number of bytes read Format of System 36/38 emulator returned data: Offset Size Description (Table 01445) 00h 4 BYTEs ??? 04h DWORD pointer to ??? 08h 4 BYTEs ???Top
INT 21 U - LASTBYTE.SYS v1.19 - IOCTL - GET ??? TABLE AX = 4402h BX = handle for device "LA$TBYTE" CX = 0004h DS:DX -> DWORD to hold address of 39-byte table of ??? Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful AX = number of bytes read Program: LASTBYTE.SYS is part of the shareware "The Last Byte" memory management package by Key Software Products SeeAlso: AX=4402h"HIGHUMM"Top
INT 21 - HIGHUMM.SYS v1.17+ - IOCTL - GET API ADDRESS AX = 4402h BX = handle for device "KSP$UMM" CX = 0004h DS:DX -> DWORD to hold entry point (see #01446) Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful AX = number of bytes read Program: HIGHUMM.SYS is part of the shareware "The Last Byte" memory management package by Key Software Products SeeAlso: AX=4402h"LASTBYTE" (Table 01446) Call HIGHUMM.SYS entry point with: AH = 00h allocate UMB (same as XMS function 10h) (see INT 2F/AX=4310h) DX = size in paragraphs Return: BX = segment number (if successful) DX = size of requested block/size of largest block AH = 01h deallocate UMB (same as XMS func 11h) (see INT 2F/AX=4310h) DX = segment number of UMB AH = 02h request a bank-switched memory block DX = size in paragraphs Return: BX = segment number (if successful) DX = size of requested block/size of largest block AH = 03h release a bank-switched memory block DX = segment number AH = 04h transfer data to/from high memory DS:SI -> source ES:DI -> destination CX = length in bytes Note: enables bank-switched memory, does the copy, then disables bank-switched memory AH = 05h get a word from bank-switched memory ES:DI -> word to read Return: DX = word AH = 06h put a word to bank-switched memory ES:DI -> word to write DX = word AH = 07h put a byte to bank-switched memory ES:DI -> byte to write DL = byte AH = 08h enable bank-switched memory DS:SI -> 6-byte status save area AH = 09h disable bank-switched memory DS:SI -> 6-byte save area from enable call (AH=08h) AH = 0Ah assign name to UMB or high bank-switched block DX = segment number DS:SI -> 8-byte blank-padded name AH = 0Bh locate UMB block by name DS:SI -> 8-byte blank-padded name Return: BX = segment number (if successful) DX = size of block AH = 0Ch locate bank-switched block by name DS:SI -> 8-byte blank-padded name Return: BX = segment number (if successful) DX = size of block Return: AX = status code 0001h successful 0000h failed BL = error code 80h not implemented B0h insufficient memory, smaller block available B1h insufficient memory, no blocks available B2h invalid segment number Note: only functions 00h and 01h are always available; the remaining functions are only enabled if the proper commandline switch is givenTop
INT 21 - SMARTDRV.SYS v3.x only - IOCTL - GET CACHE STATUS AX = 4402h BX = file handle for device "SMARTAAR" CX = number of bytes to read (min 28h) DS:DX -> buffer for status record (see #01447) Return: CF clear if successful AX = number of bytes actually read CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Note: NCache2 (from the Norton Utilities v8.0) attempts to support this interface, but does not do so correctly, often hanging the system; one should use the SmartDrive v4.x or NCache private interfaces (see INT 2F/AX=4A10h/BX=0000h,INT 2F/AX=FE00h/DI=4E55h) SeeAlso: AX=4403h"SMARTDRV",INT 2F/AX=4A10h/BX=0000h Format of SMARTDRV status record: Offset Size Description (Table 01447) 00h BYTE write-through flag (always 01h) 01h BYTE writes should be buffered (always 00h) 02h BYTE cache enabled if 01h 03h BYTE driver type (01h extended memory, 02h expanded) 04h WORD clock ticks between cache flushes (currently unused) 06h BYTE cache contains locked tracks if nonzero 07h BYTE flush cache on INT 19 reboot if nonzero 08h BYTE cache full track writes if nonzero 09h BYTE double buffering (for VDS) state (00h off, 01h on, 02h dynamic) 0Ah DWORD original INT 13 vector 0Eh BYTE minor version number 0Fh BYTE major version number 10h WORD unused 12h WORD sectors read \ 14h WORD sectors already in cache > may be scaled rather than 16h WORD sectors already in track buffer / absolute counts 18h BYTE cache hit rate in percent 19h BYTE track buffer hit rate in percent 1Ah WORD total tracks in cache 1Ch WORD number of tracks in use 1Eh WORD number of locked tracks 20h WORD number of dirty tracks 22h WORD current cache size in 16K pages 24h WORD original (maximum) cache size in 16K pages 26h WORD minimum cache size in 16K pages 28h DWORD pointer to byte flag to increment for locking cache contentsTop
INT 21 - CD-ROM device driver - IOCTL INPUT AX = 4402h BX = file handle referencing character device for CD-ROM driver CX = number of bytes to read DS:DX -> control block (see #01449) Return: CF clear if successful AX = number of bytes actually read CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: the data returned depends on the first byte of the control block (two bytes for functions 01h/07h/0Bh, see #01449); the remainder of the control block is filled by the driver some device drivers support several subunits (that is more than one drive) but it is not possible to distinguish between them with this function; use INT 2F/AX=1510h or INT 2F/AX=0802h instead under Windows95, the "mscd$$$$" device cannot be opened so you cannot obtain the handle required by this function: use INT 2F/AX=1510h or INT 2F/AX=0802h instead SeeAlso: AX=4403h"CD-ROM",INT 2F/AX=0802h,INT 2F/AX=1510h (Table 01448) Values for CD-ROM data being requested: 00h device driver header address 01h drive head location 02h reserved 03h error statistics 04h audio channel info 05h raw drive bytes (uninterpreted and device-specific) 06h device status 07h sector size 08h volume size 09h media change status 0Ah audio disk info 0Bh audio track info 0Ch audio Q-Channel info 0Dh audio sub-channel info 0Eh UPC code 0Fh audio status info Format of CD-ROM control block: Offset Size Description (Table 01449) 00h BYTE data being requested (see #01448) ---function 00h--- 01h DWORD device driver header address (see also AH=52h,#01646) ---function 01h--- 01h BYTE (call) addressing mode 00h HSG 01h Red Book 02h DWORD current location of drive's head logical sector number in HSG mode frame/second/minute/unused in Red Book mode (HSG sector = minute * 4500 + second * 75 + frame - 150) ---function 03h--- 01h N BYTEs undefined as of 5 Aug 88 specification ---function 04h--- 01h BYTE input channel (0-3) for output channel 0 02h BYTE volume for output channel 0 03h BYTE input channel (0-3) for output channel 1 04h BYTE volume for output channel 1 05h BYTE input channel (0-3) for output channel 2 06h BYTE volume for output channel 2 07h BYTE input channel (0-3) for output channel 3 08h BYTE volume for output channel 3 Notes: output channels 0 and 1 are left and right, 2 and 3 are left prime and right prime; a volume of 00h is off the default setting is for each input channel to be assigned to the same-numbered output channel at full (FFh) volume ---function 05h--- 01h BYTE number of bytes read 02h 128 BYTEs buffer for drive bytes ---function 06h--- 01h DWORD device parameters (see #01450) ---function 07h--- 01h BYTE (call) read mode 00h cooked 01h raw 02h WORD (return) sector size in bytes ---function 08h--- 01h DWORD volume size in sectors BUGS: Aztech device driver v1.10 and v1.27 (at least) return the last sector number, i.e. total number of sectors - 1 Windows95 returns the total number of sectors + 150 (see the Red Book to HSG conversion formula at function 01h to understand why this happens) ---function 09h--- 01h BYTE media change status 00h don't know 01h media unchanged FFh media has been changed ---function 0Ah--- 01h BYTE lowest audio track number 02h BYTE highest audio track number 03h DWORD start address of lead-out track (Red Book format) --function 0Bh--- 01h BYTE (call) track number 02h DWORD starting point of track (Red Book format) 06h BYTE track control info bits 15,14,12: track type (notice: bits not contiguous!) 000 two audio channels, no pre-emphasis 001 two audio channels with pre-emphasis 010 data track 100 four audio channels, no pre-emphasis 101 four audio channels with pre-emphasis other reserved bit 13: digital copy permitted ---function 0Ch--- 01h BYTE CONTROL and ADR byte (as received from drive) 02h BYTE track number 03h BYTE point or index 04h BYTE minute \ 05h BYTE second > running time within track 06h BYTE frame / 07h BYTE zero 08h BYTE "AMIN" or "PMIN" \ 09h BYTE "ASEC" or "PSEC" > running time on disk 0Ah BYTE "AFRAME" or "PFRAME" / ---function 0Dh--- 01h DWORD starting frame address (Red Book format) 05h DWORD transfer address 09h DWORD number of sectors to read Note: copies 96 bytes of sub-channel info per sector into buffer ---function 0Eh--- 01h BYTE CONTROL and ADR byte 02h 7 BYTEs UPC/EAN code (13 BCD digits,low-order nybble of last byte is 0) 09h BYTE zero 0Ah BYTE "AFRAME" ---function 0Fh--- ??? documentation not yet available 01h WORD pause status (0000h not paused, 0001h paused) 03h DWORD audio play start address 07h DWORD ??? audio play length or end address Bitfields for CD-ROM device parameters: Bit(s) Description (Table 01450) 0 door open 1 door unlocked 2 supports raw reading in addition to cooked 3 writable 4 can play audio/video tracks 5 supports interleaving 6 reserved 7 supports prefetch requests 8 supports audio channel control 9 supports Red Book addressing in addition to HSG 10 audio is playing 11 no disk in drive 12 supports R-W subchannelsTop
INT 21 - Quarterdeck - QEMM-386 v5+ - GET API ENTRY POINT AX = 4402h BX = file handle for device "QEMM386$" CX = 0004h DS:DX -> DWORD buffer for API entry point Return: CF clear if successful buffer filled (refer to INT 67/AH=3Fh for entry point parameters) CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Note: Quarterdeck recently (June 1993) documented this function, but the documentation incorrectly states that it is only available for QEMM 6+ SeeAlso: AX=4402h"HOOKROM",INT 2F/AX=D201h/BX=5145h,INT 67/AH=3FhTop
INT 21 U - Quarterdeck - HOOKROM.SYS - GET HOOKED VECTOR TABLE AX = 4402h BX = file handle for device "HOOKROM$" CX = 0004h DS:DX -> DWORD buffer for address of hooked vector table (see #01451) Return: CF clear if successful DS:DX buffer filled CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=4402h/SF=01h Format of HOOKROM.SYS hooked vector table entry: Offset Size Description (Table 01451) 00h 5 BYTEs FAR jump to actual interrupt handler (end of table if first byte is not EAh) 05h BYTE interrupt vector numberTop
INT 21 - Advanced SCSI Programming Interface (ASPI) - INTERFACE AX = 4402h BX = file handle for device "SCSIMGR$" CX = 0004h or 0005h (refer to notes below) DS:DX -> buffer for result (see #01452), set to zeros before call Return: CF clear if successful AX = 0004h or 0005h (refer to notes below) CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: the variant of the call requesting five bytes is an UNDOCUMENTED extension supported by Adaptec's ASPI2DOS.SYS, ASPI4DOS.SYS, and ASPI7DOS.SYS; if made of a host manager which does not support the variant, only four bytes will be returned. If the variant is supported, Adaptec's WINASPI.DLL assumes that the host manager is an "advanced" one which operates in either real or protected mode (and thus does not require a DPMI INT 31/AX=0301h call to be invoked from protected mode). Support of the five-byte variant also appears to imply that an advanced ASPI host manager uses no temporary storage space except the SRB (see #01454) and the stack, and that it is fully reentrant. if called with a standard request for four bytes, even Adaptec's advanced drivers return only the requested four bytes containing the ASPI entry point address the function address is called with the address of a SCSI Request Block (see #01454) on the stack and the caller must clean up the stack SeeAlso: AX=440Ch"ASPITAPE",INT 11/AH=FFh"WD7000" Format of ASPI IOCTL result: Offset Size Description (Table 01452) 00h DWORD function address 04h BYTE number of SCSI host adapters supported by host manager (Table 01453) Values for ASPI request number: 00h "HA_INQ" host adapter inquiry / extended host adapter inquiry 01h "GET_TYPE" get device type 02h "EXEC_SIO" execute SCSI I/O 03h "ABORT_SRB" abort SRB 04h "RESET_DEV" reset SCSI device 05h "SET_HAPRMS" set host adapter parameters 06h get disk drive information 7Fh (Adaptec) get ASPI manager info? Note: request 7Fh is supported by all the Adaptec's DOS ASPI managers: ASPI2DOS.SYS (for AHA-152x), ASPI4DOS.SYS (for AHA-154x/164x), ASPI7DOS.SYS (for AIC-77xx), and ASPI8DOS.SYS (for AIC-78xx) Format of SCSI Request Block (64 bytes): Offset Size Description (Table 01454) 00h BYTE request number (see #01453) 01h BYTE request status (see #01455) 02h BYTE host adapter ID 03h BYTE request flags (see #01456) 04h DWORD reserved (0) ---request 00h--- 08h BYTE (ret) number of host adapters 09h BYTE (ret) target adapter ID 0Ah 16 BYTEs (ret) SCSI manager ID 1Ah 16 BYTEs (ret) host adapter ID 2Ah 16 BYTEs (ret) host adapter-unique parameters (see #90010,#90011) ---extended request 00h--- 04h 2 BYTEs (call) extended request signature 55h AAh (ret) if extended request supported, reply AAh 55h 06h WORD (call) length of extended buffer at offset 3Ah (ret) number of bytes returned in extended buffer 08h BYTE (ret) number of host adapters 09h BYTE (ret) target adapter ID 0Ah 16 BYTEs (ret) SCSI manager ID 1Ah 16 BYTEs (ret) host adapter ID 2Ah 16 BYTEs (ret) host adapter-unique parameters 3Ah N BYTEs extended buffer 3Ah WORD features (see #01457) 3Ch WORD maximum scatter/gather list length 3Eh DWORD maximum SCIS data transfer size (0 = unlimited) ---request 01h--- 08h BYTE target ID 09h BYTE logical unit number 0Ah BYTE (ret) device type (see #01460) ---request 02h--- 08h BYTE target ID 09h BYTE logical unit number 0Ah DWORD data allocation length (ret) residual byte length (if supported and requested) 0Eh BYTE sense allocation length 0Fh DWORD data buffer pointer 13h DWORD next request pointer (for linking) 17h BYTE CDB length 18h BYTE (ret) host adapter status (see #01454) 19h BYTE (ret) target status (see #01459) 1Ah DWORD post routine address (see #01466) 1Eh WORD real mode Post DS 20h DWORD SRB pointer 24h WORD reserved 26h DWORD SRB physical address 2Ah 22 BYTEs SCSIMGR$ workspace 40h N BYTEs CCB, including sense data (20-24 bytes) ---request 03h--- 08h DWORD address of SRB to abort ---request 04h--- 08h BYTE target ID 09h BYTE logical unit number 0Ah 14 BYTEs reserved 18h BYTE (ret) host adapter status (see #01458) 19h BYTE (ret) target status (see #01459) 1Ah DWORD post routine address 1Eh 34 BYTEs workspace ---request 05h--- 08h 16 BYTEs host adapter-unique parameters ---request 06h--- 08h BYTE target ID 09h BYTE logical unit number 0Ah BYTE disk drive flags (see #01461) 0Bh BYTE INT 13h drive number 0Ch BYTE preferred head number translation 0Dh BYTE preferred sector size translation 0Eh 10 BYTEs reserved ---request 7Fh--- 08h WORD base I/O port address 0Ah BYTE number of I/O ports used 0Bh BYTE ??? (01h returned for AHA-152x) 0Ch BYTE interrupt level 0Dh BYTE DMA channel 0Eh BYTE (ASPI7DOS.SYS) EISA slot number (ASPI8DOS.SYS) PCI device number 0Fh BYTE bits 7-1: reserved (0) bit 0: (AHA-152x) ??? 10h DWORD ASPI entry point address 14h DWORD previous ASPI entry point address 18h WORD offset to "ASPI request dispatcher" procedure 1Ah WORD offset to "interrupt handler" procedure 1Ch WORD offset to some procedure 1Eh WORD offset to some procedure 20h WORD offset to host adapter data 22h BYTE ??? (apparently always 02h) 23h BYTE reserved??? (0) 24h BYTE (ASPI8DOS.SYS) PCI bus number? 25h 11 BYTEs reserved??? (0) SeeAlso: #01462 (Table 01455) Values for ASPI request status: 00h not done yet 01h completed successfully 02h aborted by host 04h SCSI I/O error 80h invalid 81h no adapter 82h no device attached else status SeeAlso: #01454 Bitfields for ASPI request flags: Bit(s) Description (Table 01456) 0 posting enabled 1 linking enabled 2 residual byte length reported in Data Allocation Length field 3 transfer from SCSI target to host 4 transfer from host to SCSI target 5 scatter/gather 7-6 reserved Note: no data is transferred if both bits 3 and 4 are set; if neither is set, the direction is determined by the SCSI command SeeAlso: #01454 Bitfields for ASPI extended features: Bit(s) Description (Table 01457) 0 scatter/gather supported 1 residual byte length reported 2 Wide SCSI 16 host adapter 3 Wide SCSI 32 host adapter 15-4 reserved SeeAlso: #01454 (Table 01458) Values for host adapter status: 00h no error detected 11h select timeout 12h data overrun 13h bus error 14h bus failure (Table 01459) Values for target status: 00h no status 02h sense data stored in SRB 08h target busy 18h reservation error (Table 01460) Values for device type: 00h disk drive 01h tape drive (streamer) 02h printer 03h processor 04h WORM drive 05h CD-ROM drive 06h scanner 07h optical drive 08h autochanger 09h communications device (Table 01461) Values for disk drive flags: 00h no INT 13 access 01h INT 13 with DOS access 02h INT 13 without DOS access 03h invalid flags Format of CCB: Offset Size Description (Table 01462) 00h BYTE command code (see #01463) 01h BYTE flags bits 4-0: vary by function bits 7-5: logical unit number 02h BYTE "adr_1" 03h BYTE "adr_0" 04h BYTE length 05h BYTE control ... 06h/0Ah 14 BYTEs buffer for sense data (see #01464) SeeAlso: #01454 (Table 01463) Values for CCB command code: 00h test unit ready 01h rewind 03h request sense data 05h get block size limits 08h Group 0 read 0Ah Group 0 write 10h write file marks 11h SCSI Space (set position?) 12h SCSI Inquire 15h set mode information 16h reserve SCSI device 17h release SCSI device 19h erase 1Ah request mode information 1Bh load/unload media 1Dh request target self-check 24h set window parameters 25h get window parameters 28h Group 1 read 2Ah Group 1 write 31h document feeder control 34h get scan data status ---vendor-specific commands--- D3h get document feeder status D4h set document feeder mode Format of sense data: Offset Size Description (Table 01464) 00h BYTE error code (bit 7 set if valid) 01h BYTE segment number 02h BYTE sense key bit 6: EOM bit 5: ILI bits 0-3: sense key (see #01465) 03h 4 BYTEs information bytes 07h BYTE additional sense length (0Ah) 08h 4 BYTEs command-specific information 0Ch BYTE additional sense code 0Dh BYTE additional sense code qualifier 0Eh BYTE field replaceable unit code 0Fh 3 BYTEs sense key specific bytes (Table 01465) Values for sense key: 00h no sense data 02h SCSI unit not ready 03h media error 04h unrecoverable hardware error 05h illegal parameter in CDB 06h target has been reset 0Bh target aborted command (Table 01466) Values ASPI post function is called with: STACK: DWORD -> SRB (see #01454) which completed interrupts disabled Return: EBP, EBX, ESI, EDI must be preserved interrupts disabled Note: the post function may issue any ASPI function except an abort; it should complete as quickly as possible Format of ASPI2DOS.SYS v3.65 host adapter unique parameters: Offset Size Description (Table 90010) 00h WORD reserved? (0) 02h WORD reserved? (0) 04h WORD base I/O port address 06h BYTE interrupt level 07h 9 BYTEs reserved (0) SeeAlso: #90011,#01454 Format of ASPI4DOS.SYS v3.35 host adapter unique parameters: Offset Size Description (Table 90011) 00h WORD offset to "ASPI request dispatcher" procedure 02h WORD offset to "interrupt handler" procedure 04h 12 BYTEs reserved (0) SeeAlso: #90010,#01454Top
INT 21 U - Qualitas 386MAX v6.00+ - IOCTL INPUT - GET STATE AX = 4402h BX = file handle for device "386MAX$$" CX = number of bytes to read DS:DX -> BYTE 03h followed by 386MAX state buffer (see #01467) Return: CF clear if successful buffer at DS:DX+1 filled AX = number of bytes actually copied CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: if the value given in CX is less than the size of the state record (5Ah for v6.01, 66h for v7.00), only a partial state record will be returned the state is 40h bytes for 386MAX (actually ASTEMM) v2.20 ("386MAX$$" did not exist yet, use "QMMXXXX0" and then "EMMXXXX0" instead) and 56h bytes for v5.11. to invoke 386MAX API functions, push DX onto the stack, load DX with the word at offset 25h in the returned state, load all other registers as needed for the desired function, and execute an OUT DX,AL or OUT DX,AX; DX will be set to the pushed value on return if it is not otherwise modified by the API function. For safety, in case a function is not supported or 386MAX is not present, SP should be saved and restored around the API call. Windows 3.1 Standard mode, LAN Manager, and Windows for Workgroups all use the 386MAX API; LAN Manager and Windows for Workgroups reportedly make some calls incorrectly SeeAlso: AX=4403h/SF=03h"386MAX",INT 67/AH=3Fh Format of 386MAX v6.01+ state: Offset Size Description (Table 01467) -1 BYTE (call) 03h 00h 6 BYTEs signature "386MAX" 06h 4 BYTEs version string "N;NN" or "N.NN" (i.e. "6;01" for v6.01) (';' by default; apparently changed to a period when 386MAX has linked high RAM into DOS's memory chain) 0Ah WORD segment of low-memory portion of 386MAX.SYS 0Ch 2 BYTEs ??? 0Eh WORD segment of ??? memory block or 0000h 10h WORD bit flags 1 (see #01468) 12h WORD starting address of video memory in KB 14h 2 BYTEs ??? 16h WORD total high DOS memory in KB 18h 2 BYTEs ??? 1Ah WORD available shared memory in KB 1Ch WORD KBytes extended memory used by 386MAX 1Eh 2 BYTEs ??? 20h WORD total extended memory in KB 22h WORD IO port to write (OUT DX,AL) to invoke 386MAX INT 15 functions 24h WORD IO port to write (OUT DX,AL) to invoke 386MAX API functions (see #01481) 26h WORD ??? (depends on DOS version) 28h WORD size of ??? in paragraphs 2Ah DWORD machine type (see #01476) 2Eh DWORD -> first DOS memory control block 32h WORD system configuration flags (see #01469) 34h WORD debugging flags 1 (see #01470) 36h WORD debugging flags 2 (see #01471) 38h 2 BYTEs ??? 3Ah WORD segment of first MCB in high memory chain 3Ch WORD feature flags 1 (see #01473) 3Eh WORD feature flags 2 (see #01474) 40h WORD feature flags 3 (see #01475) 42h WORD segment of first 386MAX control block??? (see #01477) 44h WORD amount of memory to report available on INT 15/AH=88h 46h 4 BYTEs ??? 4Ah WORD number of K at start of address space swapped with fast extended memory (SWAP= parameter) 4Ch 2 BYTEs ??? 4Eh WORD segment address of ??? 50h WORD debugging flags 3 (see #01472) 52h DWORD old INT 21h 56h DWORD pointer to 386MAX's EMS (INT 67h) handler ---386MAX v7.00--- 5Ah DWORD KB of extended memory managed by 386MAX 5Eh DWORD bytes of extended memory (EXT= parameter) 62h 4 BYTEs ??? Bitfields for 386MAX bit flags 1: Bit(s) Description (Table 01468) 1 ??? 2 allow A20 to be enabled/disabled??? 3 ??? (cleared by calling INT 67 functions or starting MSWindows) 4 high RAM present??? 5 386MAX in AUTO mode 6 386MAX enabled 7 386MAX is providing EMS services 8 ??? (affects API function 08h) 9 A20 gate closed (A20 disabled) (see INT 15/AX=2402h) 10 Weitek support enabled 11 ??? 12 ROMs not shadowed??? 13 QPMS has been used 14 ??? 15 ??? Bitfields for 386MAX system configuration flags: Bit(s) Description (Table 01469) 1 ROM compressed??? 3 ??? 5 386MAX loaded into high memory 6 Microchannel bus 7 Weitek math coprocessor detected 9 ??? (also generates INT 01 on ??? and INT 03 on ???) 11 PC/XT (thus only single 8259 interrupt controller present, DMA only in 1st megabyte, etc) 13 LMLTOP= specified 14 enable A20 control??? 15 ??? Bitfields for 386MAX debugging flags 1: Bit(s) Description (Table 01470) 0 DEBUG=LED 1 DEBUG=X67 2 DEBUG=INV 3 DEBUG=EMSPTED 4 DEBUG=JMP 5 DEBUG=CALL 6 DEBUG=HLT 7 DEBUG=PMR 8 DEBUG=CR3 9 DEBUG=CAPS or DEBUG=INT 10 DEBUG=RC 11 DEBUG=ROM 12 DEBUG=XM 13 DEBUG=SOR 14 DEBUG=XR 15 DEBUG=EMSERR (generate INT 01 on returning error from EMS call) Bitfields for 386MAX debugging flags 2: Bit(s) Description (Table 01471) 0 DEBUG=ROMSWAP 1 DEBUG=UNSHADOWROM 2 DEBUG=COMPROM 3 DEBUG=DPMIPHYS 4 DEBUG=ALLROM 5 DEBUG=VMS 6 DEBUG=XMS (generate INT 01 on XMS calls) 7 DEBUG=I06 8 DEBUG=VCPI 9 DEBUG=XDMA 10 DEBUG=X09 13 DEBUG=I67 (generate INT 01 on every INT 67 call) 14 DEBUG=EVM (generate INT 01 on entering V86 mode) 15 DEBUG=EMSSAVE or DEBUG=VDS Bitfields for 386MAX debugging flags 3: Bit(s) Description (Table 01472) 10 DEBUG=EPM 12 DEBUG=ABIOS 13 DEBUG=XMSPTED 14 DEBUG=TIME 15 DEBUG=SCRUB Bitfields for 386MAX feature flags 1: Bit(s) Description (Table 01473) 1 Weitek present 2 no DPMI services 3 NODMA 4 TERSE 5 NOROM 6 NOPARITY 8 NOFLEX (IGNOREFLEXFRAME) 11 don't create UMBs 12 don't backfill below video memory (NOLOW) 13 FRAME= specified 14 EXT= specified 15 NOEMS, allow prior expanded memory manager to provide EMS Bitfields for 386MAX feature flags 2: Bit(s) Description (Table 01474) 0 UNSHIFT specified (FORCEA20 disabled) 1 NOXRAM 2 NOSCSI specified 3 SCREEN specified 4 enabled EISADMA 5 slow DMA 6 RESETKEYB specified 7 ??? 9 TOP384 10 ??? 11 NOWARMBOOT 12 USE= specified 13 ROM= specified Bitfields for 386MAX feature flags 3: Bit(s) Description (Table 01475) 0 Windows3 support enabled 1 SHADOWROM 2 don't compress ROM (NOCOMPROM) 3 ??? (related to PRGREG=) 4 ??? (related to PRGREG=) 5 SHADOWRAM 6 DOS4 specified 7 NOLOADHIGH 8 NOPULSE 11 FORCEA20 12 DMA buffer enabled 13 NOSCRUB 15 NOFRAME Bitfields for 386MAX machine type: Bit(s) Description (Table 01476) 12 Amstrad 13 Epson 14 Zenith Data Systems 15 "ASEM" 16 NEC 17 "HPRS" model codes 69h and 6Ah 18 Dell 19 "CA" 20 ITT (Xtra Business Systems/Alcatel) 21 Toshiba 5100 22 Olivetti 23 Quadram Quad386 (BIOS model FEh, submodel A6h) 24 Tandy??? 25 AST 386 26 INBOARD, ??? version 27 INBOARD, ??? version 28 INBOARD, ??? version 29 "HPRS" 30 Compaq 386 31 JET386 Format of 386MAX control block: Offset Size Description (Table 01477) 00h WORD segment of next block (FFFFh if last) 02h WORD segment of previous block (FFFFh if first) 04h 12 BYTEs filename 10h WORD resident size in paragraphs 12h WORD environment size??? 14h WORD real prsent environment size + 1 (0000h if ENVSAVE used) 16h 2 BYTEs ??? 18h DWORD initial size or SIZE=n in 386LOAD commandline 1Ch DWORD SIZE=-1 ??? 20h DWORD SIZE= ??? 24h BYTE PRGREG= if specified, else FFh 25h BYTE ENVREG= if specified, else FFh 26h BYTE FlexFrame (00h not present, 01h present) 27h 3 BYTEs ??? 2Ah BYTE GROUP= or 00h if not present 2Bh BYTE ??? 2Ch WORD PSP Format of 386MAX high memory info record: Offset Size Description (Table 01478) 00h WORD segment address of memory region 02h WORD size of memory region in paragraphs 04h BYTE type or flags??? 00h if locked out 02h if EMS page frame 04h if high RAM 42h if ROM 05h BYTE ??? Format of 386MAX ROM shadowing record: Offset Size Description (Table 01479) 00h WORD logical start segment of ROM??? (may be used by BlueMAX when it squeezes together the ROMs to make room) 02h WORD physical start segment of ROM 04h 2 BYTEs ??? 06h WORD size of shadowed ROM in paragraphs 08h 2 BYTEs ??? 0Ah WORD flags bit 15: shadowing enabled for this ROM??? bit 14: ??? bit 13: ??? bit 12: ??? bit 10: ??? (Table 01480) Values for 386MAX memory type: 00h unused by EMS 01h DOS 04h page frame overlapping ROM??? 80h high memory 84h page frame??? 87h video ROM??? Note: the type may be 00h (unused) if the 16K page is split among different uses (such as ROM and high RAM) (Table 01481) Call 386MAX API (via OUT DX,AL) with: STACK: WORD value for DX AH = 00h unused Return: AH = 84h (unsupported function) AH = 01h get high memory information ES:DI -> buffer for array of high memory info records (see #01478) Return: CX = number of records placed in buffer AH = 02h get shadowed ROM info ES:DI -> buffer for array of ROM shadowing records (see #01479) Return: CX = number of records placed in buffer AH = 03h get 386MAX state ES:DI -> 90-byte buffer for state (see #01467) Return: AH = 00h (successful) buffer filled AH = 04h get memory types??? ES:DI -> buffer for memory type info (array of bytes, one per 16K page) (see #01480) Return: CX = number of bytes placed in buffer AH = 05h get page table entries AL = A20 control (00h enable A20 first, 01h leave unchanged) CX = buffer size in bytes (0000h = enough for all memory from given start to end of memory managed by 386MAX) SI = first K to report (rounded down to 4K page) ES:DI -> buffer for returned page table entries Return: CX = number of bytes returned (four per 4K page) ES:DI buffer filled AH = 06h get memory speed info ES:DI -> buffer for memory speed records (see #01482) Return: AH = 00h (successful) CX = number of bytes placed in buffer Note: this function can take over a second to execute AH = 07h map/unmap multiple handle pages DX = EMS handle (on stack) STACK: DWORD -> EMS mapping record Return: AH = status (00h,80h,83h,8Ah,8Bh) Format of EMS mapping record: Offset Size Description 00h WORD function 0000h use physical page numbers 0001h use segment addresses 02h WORD EMS handle 04h WORD number of mapping entries following 06h 2N WORDs logical page number and physical page/segment logical page FFFFh means unmap physical page SeeAlso: INT 67/AH=50h AH = 08h "EMM2_GOREAL" check whether possible to disable 386MAX AL = ??? (00h or nonzero) Return: AH = status (00h OK, A4h not possible at this time) Note: if AL=00h, this function always returns success AH = 09h toggle Bit Flags 1 flags BX = bitmask of bit flags 1's flags to toggle (see #01468) Return: AH = 00h (successful) Note: enables A20 first AH = 0Ah toggle Debugging Flags 1 flags BX = bitmask of Debugging Flags 1's bits to toggle (see #01470) Return: AH = 00h (successful) Notes: enables A20 first does ??? if bit 3 on after specified bits are toggled AH = 0Bh toggle Debugging Flags 2 flags BX = bitmask of Debugging Flags 2's bits to toggle (see #01471) Return: AH = 00h (successful) Note: enables A20 first AH = 0Ch toggle feature flags 3 BX = bitmask of feature flags 3's bits to toggle (see #01475) Return: AH = 00h (successful) Note: enables A20 first AH = 0Dh specify 386MAX high-memory location BX = segment address of high-memory real-mode portion of 386MAX CX = current segment of real-mode stub??? Return: AH = status (00h successful) ??? AH = 0Eh CRT controller register virtualization AL = subfunction 00h allow access to CRTC I/O ports 03B4h/03B5h, 03D4h/03D5h 01h trap accesses to CRTC I/O ports AH = 0Fh reboot system Return: never AH = 10h unused Return: AH = 84h (unsupported function) AH = 11h get high memory information ES:DI -> 96-byte buffer for high memory info Return: AH = 00h (successful) ES:DI buffer filled Notes: each byte in buffer contains bit flags for a 4K page in the A000h-FFFFh region bit 0: page is writeable bit 1: physical address same as linear address bit 2: EMS page frame bit 6: page is part of the QPMS window this function can take over a second to execute, because it does a 128K read for each page in an attempt to flush any RAM cache the system may have AH = 12h shadow RAM mapping AL = subfunction 00h unshadow ROMs (except page FFh if NOWARMBOOT set) 01h map shadow RAM into ROM regions??? Return: AH = 00h (successful) if AL=00h or 01h AH = 8Fh otherwise AH = 13h shadow RAM page protection AL = subfunction 00h set all shadowed ROM 4K pages to read-only 01h set all shadowed ROM 4K pages to read-write Return: AH = 00h (successful) if AL=00h or 01h AH = 8Fh otherwise AH = 14h get Programmable Option Select info??? ES:DI -> 54-byte buffer for POS data??? Return: AH = 00h if successful AH = A4h on error Note: the buffer consists of nine 6-byte fields; the first eight for slots 1-8, the last for the system board AH = 15h ??? ??? Return: ??? AH = 16h get 386MAX memory usage screen ES:DI -> buffer for memory info display CX = size of buffer in bytes Return: ES:DI buffer filled with '$'-terminated string (if large enough to hold entire usage screen) Note: the screen is 0303h bytes in v7.00 AH = 17h Windows 3 startup/termination AL = subfunction 00h Windows3 initializing DX (on stack) = Windows startup flags DI = Windows version number (major in upper byte) ES:BX = 0000h:0000h DS:SI = 0000h:0000h Return: CX = 0000h if OK for Windows to load <> 0 if Windows should not load ES:BX -> startup info structure DS:SI -> Virtual86 mode enable/disable callback 01h Windows3 terminating ES:BX -> ??? DX (on stack) = Windows exit flags Return: ??? AH = 18h QPMS (Qualitas Protected Memory Services) AL = subfunction 00h get QPMS configuration Return: BX = starting segment of QPMS memory window CX = number of 4K pages reserved for QPMS??? DX = number of 4K pages in QPMS window??? 01h map QPMS memory page??? BX = 4K page number within memory reserved for QPMS??? CL = 4K page number within QPMS memory window??? 02h mark all QPMS memory read-only 03h mark all QPMS memory read-write Return: AH = status (00h,8Ah,8Bh,8Fh) AH = 19h get linear address for physical address EDX = physical address (low word on stack) Return: AH = status 00h successful EDX = linear address at which physical address may be accessed 8Bh physical address currently not addressable Note: enables A20 first AH = 1Ah set page table entry EDX = new page table entry (low word on stack) ESI = linear address of page to map (bits 0-11 clear) Return: AH = status (00h,8Bh) Note: enables A20 first AH = 1Bh get ??? Return: AH = status BX = ??? CX = number of ??? EDX = physical address of ??? AH = 1Ch get original interrupt vector AL = interrupt vector (00h-7Fh) Return: AH = 00h (successful) EDX = original vector before 386MAX loaded (segment in high word, offset in low word) Note: no range checking is performed; requests for INTs 80h- FFh will return random values AH = 1Dh display string??? SI = ??? Return: AH = 00h (successful) ??? Note: this function appears to be broken in v7.00 AH = 1Eh get memory info ES:DI -> memory info (see #01483) Return: ??? AH = 1Fh get DPMI host information Return: AX = 0000h if successful BX = DPMI flags (see #03152 at INT 31/AX=0400h) CL = CPU type (02h = 80286, 03h = 80386, etc.) DX = DPMI ver supported (DH=major, DL=2-digit minor) SI = ??? ES???:DI -> ??? Note: NOP if NODPMI switch specified AH = 20h (v7.00) get ??? AL = index of ??? Return: EDX = ??? for specified ??? AH = 21h (v7.00) STACKS support AL = 00h get STACKS parameters Return: BX = ??? (0060h for v7.00) CX = number of stacks for hardware interrupts DX = size of each stack in bytes SI = ??? (low and high bytes are separate values) DI = ??? (low and high bytes are separate values) low byte = logical page number set by subfn 02h ES = ??? AL = 01h set ??? "EMM2_DSTKS" EBX = ??? ECX = ??? AL = 02h set ??? BL = logical page number for ??? (00h-03h) Return: AH = status (00h,8Ah) AH = 22h (v7.00) call ??? for every load module AL = which function to call 00h call ??? else call ???? Return: AH = 00h Note: if AL=00h, calls the protected-mode function pointed at by the DWORD at offset 22h from the start of each module installed by a LOAD= directive; if AL<>00h, it calls the function pointed at by the DWORD at offset 28h of the load module AH = 23h (v7.00) ??? AL = 00h set ??? BL = ??? Return: AH = 00h or unchanged (depending on ???) AL = 01h set ??? BL = ??? BH = ??? CX = ??? DX = ??? (on top of stack) Return: AH = status (00h if successful, 8Fh once table full) Note: this call adds one entry to an internal table on each call, until the table is full AL = 02h get ??? CX = size of buffer ES:DI -> buffer for ??? (60 bytes total data) Return: CX = number of bytes actually returned Note: returns the array storing the values set with AX=2301h Format of one entry in array: Offset Size Description 00h BYTE ??? (BL from subfn 01h) 01h WORD ??? (CX from subfn 01h) 03h BYTE ??? (BH from subfn 01h) 04h WORD ??? (DX from subfn 01h) AL = 03h set ??? name/path ES:DI -> buffer containing ASCIZ ??? AL = 04h get ??? ES:DI -> buffer for ASCIZ ??? Note: the ASCIZ string for subfunctions 03h and 04h does not appear to be used by 386MAX, and may serve merely for communication between two other Qualitas programs AH = 24h (v7.00) high memory control AL = 00h get high memory state Return: BX = current state 00h high memory removed from DOS memory chain 01h high memory included in DOS memory chain AL = 01h set high memory state BX = new state 00h high memory removed from DOS memory chain 01h high memory included in DOS memory chain else Return: ??? (error, but return varies according to ???) AH = 25h (v7.00) remove high RAM from DOS memory chain AH = 26h (v7.00) ??? BX = ??? CX = ??? SI = ??? DI = ??? Return: AH = status BX = ??? CX = ??? AH = 27h (v7.00) ??? AL = 00h get ??? Return: BX = number of paragraphs for ??? AL = 01h ??? BX = ??? ES??? = ??? AL = 02h ??? ??? AL = 03h ??? CX = ??? DX = ??? ES??? = ??? Return: ??? AH = 28h (v7.00) get ??? Return: AH = status (00h,8Fh) (see #03648 at INT 67/AH=40h) if AH=00h, CX = ??? DX = ??? AH = 29h (v7.00) get ??? Return: AX = ??? AH = 40h-5Dh EMS services (see INT 67/AH=40h, etc.) AH = DEh VCPI services (see INT 67/AX=DE00h, etc.) Return: AH = status (as for EMS INT 67 calls) 00h successful 80h internal error 81h hardware malfunction 83h invalid handle 84h undefined function 8Ah invalid logical page nuber 8Bh illegal physical page number 8Fh undefined subfunction A4h access denied etc. STACK popped (value placed in DX if no specific return value for DX) Format of 386MAX memory speed record: Offset Size Description (Table 01482) 00h DWORD page table entry for 4K page 04h WORD number of microticks (840ns units) required for REP LODSD of entire 4K page Format of 386MAX memory info [array]: Offset Size Description (Table 01483) 00h DWORD linear start address 04h DWORD size in bytes 08h WORD XMS handle (if next byte = 04h) ??? (if next byte = 05h) ??? (if next byte = 06h) ??? (if next byte = 13h) ??? (if next byte = 14h) ??? (if next byte = 15h) ??? (if next byte = 23h) ??? (if next byte = 24h) ??? (if next byte = 26h) else unused 0Ah BYTE type 00h = ???, 01h = VDISK, 02h = INT 15h extended memory, 03h = ??? extended, 04h = XMS handle's memory, 05h = ???, 06h = ???, 07h = ???, 08h = ???, 09h = ???, 0Ah = ???, 0Bh = ???, 11h = ???, 12h = ???, 14h = ???, 15h = ???, 19h = ???, 1Ah = ???, 1Bh = ???, 1Ch = ???, 1Dh = ???, 1Eh = ???, 1Fh = ???, 20h = ???, 21h = ???, 23h = ???, 24h = ???, 26h = ??? 0Bh BYTE ??? (00h for types 00h-03h, 07h-0Bh, 19h-21h; 80h for types 04h/13h-15h/23h-26h; ??? for type 05h)Top
INT 21 - PGS1600.DEV - IOCTL - GET CONFIGURATION INFO AX = 4402h BX = file handle for device "PGS1600$" CX = 0018h (size of buffer) DS:DX -> configuration buffer (see #01484) Return: CF clear if successful buffer filled AX = number of bytes actually copied CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: PGS1600.DEV is a device driver for the Cornerstone Technology PG1600 display adapter, which provides a 1600x1200 monochrome display as well as one of two emulations, MDA or CGA. SeeAlso: AX=4403h"PGS1600" Format of PGS1600.DEV configuration information: Offset Size Description (Table 01484) 00h WORD version (high byte = major, low byte = minor) 02h WORD board initialisation mode 04h WORD board I/O address 03D0h CGA emulation 03B0h MDA emulation 0390h no emulation 0350h no emulation, alternate 06h WORD emulation buffer segment B800h CGA emulation B000h MDA emulation 0000h no emulation 08h WORD PG1600 graphics buffer segment 0Ah WORD number of bytes between consecutive graphic rows 0Ch WORD horizontal pixel size 0Eh WORD vertical pixel size 10h WORD horizontal dots per inch 12h WORD vertical dots per inch 14h WORD graphics buffer bits per pixel 16h WORD monitor bits per pixelTop
INT 21 - PC/TCP IPCUST.SYS - RESET CONFIGURATION DATA READ POINTER AX = 4402h BX = file handle referencing device "$IPCUST" CX, DS:DX ignored Return: CF clear if successful AX destroyed CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: there are a total of 378h bytes of configuration data for IPCUST.SYS version 2.05. If less than the entire data is read or written, the next read/write continues where the previous one ended; this call and AX=4403h both reset the location at which the next operation starts to zero v2.1+ uses a new configuration method, but allows the installation of IPCUST.SYS for backward compatibility with other software which must read the PC/TCP configuration SeeAlso: AH=3Fh"IPCUST",AH=40h"IPCUST",AX=4403h"IPCUST"Top
INT 21 - WORKGRP.SYS - GET API ENTRY POINT AX = 4402h BX = file handle for device "NET$HLP$" CX = 0008h DS:DX -> buffer for entry point record (see #01485) Return: CF clear if successful AX = number of bytes actually read CF set on error AX = error code Program: WORKGRP.SYS is the portion of Microsoft's Workgroup Connection which permits communication with PCs running Windows for Workgroups or LAN Manager SeeAlso: AH=3Fh"WORKGRP.SYS" Format of WORKGRP.SYS entry point record: Offset Size Description (Table 01485) 00h WORD 3633h \ signature??? 02h WORD EF6Fh / 04h DWORD address of entry point (see #01486) Note: first four bytes of buffer must be 6Fh E9h 33h 36h on entry when using IOCTL rather than READ to get the entry point record (Table 01486) Call WORKGRP entry point with: STACK: WORD function number (0000h-0009h) Return: STACK unchanged SeeAlso: #01487,#01488,#01489,#01490,#01491,#01492,#01493,#01494 (Table 01487) Call WORKGRP function 00h with: STACK: WORD 0000h (function "get ???") Return: DX:AX -> data table (Table 01488) Call WORKGRP function 01h with: STACK: WORD 0001h (function "hook ???") Return: STACK: DWORD pointer to ??? WORD 0001h (function number) (Table 01489) Call WORKGRP function 02h with: STACK: WORD 0002h (function "unhook ???") ??? Return: ??? (Table 01490) Call WORKGRP function 03h with: STACK: WORD 0003h (function "reenable printer port") WORD LPT port number Return: ??? (Table 01491) Call WORKGRP function 04h with: STACK: WORD 0004h (function "disable printer port") WORD LPT port number Return: ??? (Table 01492) Call WORKGRP function 05h with: STACK: WORD 0005h (function "???") ??? Return: ??? (Table 01493) Call WORKGRP function 06h with: STACK: WORD 0006h (function "???") Return: STACK unchanged AX = 0000h DX = 0000h (Table 01494) Call WORKGRP functions 07h-09h with: STACK: WORD 0007h-0009h (NOP functions) Return: STACK unchanged AX = 0001h DX = 0000hTop
INT 21 - 10NET v5.0 - 10BEUI.DOS - API AX = 4402h BX = file handle referencing device "10BEUI$" DS:DX -> parameter record (see #01495) CX ignored Return: CF clear if successful AX destroyed CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=4402h"10MEMMGR",INT 6F/AH=00h"10NET" Format of 10NET 10BEUI.DOS parameter record: Offset Size Description (Table 01495) 00h WORD 000Ah (function number???) 02h WORD ??? 04h DWORD pointer to buffer for ??? 08h 4 BYTEs ??? 0Ch WORD transfer sizeTop
INT 21 - 10NET v5.0 - 10MEMMGR.SYS - API AX = 4402h BX = file handle referencing device "MEMMGR0$" DS:DX -> 6-byte buffer for interface info (see #01496) CX ignored Return: CF clear if successful AX destroyed CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=4402h"10BEUI",INT 6F/AH=00h"10NET" Format of 10NET 10MEMMGR.SYS interface info: Offset Size Description (Table 01496) 00h DWORD address of entry point (see #01497) 04h WORD version (0500h for v5.00) (Table 01497) Call 10NET 10MEMMGR.SYS entry point with: AL = 01h ??? BX = ??? Return: CF clear if successful CF set on error AX = error code AL = 02h ??? ??? AL = 03h ??? ??? AL = 04h set/restore memory allocation strategy BX = subfunction 0000h set strategy 0001h restore strategy Return: CF clear if successful CF set on error (if function disabled) various registers destroyed AL = other Return: CF set AX = 0000h BL = 01hTop
INT 21 - Compaq AG1024.SYS - RGDI - GET DRIVER LOCATION AX = 4402h BX = file handle for device "$$$$RGDI" CX = 0006h (size of returned data) DS:DX -> location record (see #01498) Return: CF clear if successful buffer filled CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: AG1024.SYS is a device driver for the Advanced Graphics 1024 adapter SeeAlso: AX=4403h"RGDI" Format of Compaq AG1024.SYS location record: Offset Size Description (Table 01498) 00h WORD signature 55AAh 02h WORD segment of ??? 04h WORD segment of device driver's codeTop
INT 21 - FTPSOFT.DOS v3.1 - GET ??? AX = 4402h BX = file handle for device "FTPSOFT$" CX = size of buffer DS:DX -> buffer for data (see #01499) Return: CF clear if successful buffer filled CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: FTPSOFT.DOS is a device driver for Protocol Manager support from FTP Software, Inc. SeeAlso: AH=3Fh"PC/TCP",AX=4402h"NDIS" Format of FTPSOFT.DOS data: Offset Size Description (Table 01499) 00h WORD (call) BA98h (if different, no data returned) 02h DWORD -> NDIS common characteristics table (see #01435 at AX=4402h"NDIS") 06h DWORD (call) -> new dispatch table (see #01437 at AX=4402h"NDIS") 0Ah DWORD -> 28-byte buffer for ??? data 0Eh DWORD ??? 12h DWORD -> FAR function to reset dispatch jump table to defaults 16h BYTE ??? Note: the addresses in the new dispatch table are copied into an internal jump table which may be reset by calling the function pointed at by offset 12hTop
INT 21 U - PenDOS PENDEV.SYS - GET ENTRY POINTS AX = 4402h BX = file handle for device "$$PENDOS" or "$$PD_REG" CX = size of buffer (4 for $$PENDOS and a 4,8,12, or 16 for $$PD_REG) DS:DX -> buffer for entry point record (see #01500) Return: CF clear if successful buffer filled CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: A limited version of PenDOS by Communication Intelligence Corporation, which provides pen capability to keyboard-based programs, is bundled with IBM DOS 6.1 SeeAlso: AX=4403h"PENDEV.SYS" Format of PENDEV.SYS entry point record: Offset Size Description (Table 01500) 00h DWORD -> array of jumps 04h WORD offset of function to retrieve entry point (see #01501) 06h 2 BYTEs signature "Pe" 08h WORD offset of function to set entry point (see #01502) 0Ah 2 BYTEs signature "nD" 0Ch WORD offset of function to clear entry point (see #01503) 0Eh WORD signature "OS" (Table 01501) Call PENDEV.SYS function to retrieve entry point with: AX = index of entry point (0-9) Return: CF clear if successful DX:AX -> desired entry point CF set on error (AX out of range) (Table 01502) Call PENDEV.SYS function to set entry point with: AX = index of entry point (0-9) DX:SI -> new handler Return: CF clear if successful CF set on error (AX out of range) (Table 01503) Call PENDEV.SYS function to clear entry point with: AX = index of entry point (0-9) Return: CF clear if successful CF set on error (AX out of range) Note: resets the jump at the specified entry point to its default target, which simply returnsTop
INT 21 U - LAN Manager - TCPDRV.DOS - API AX = 4402h BX = file handle referencing device "TCPDRV$" CX = 0019h DS:DX -> buffer containing request block (see #01504) Return: CF clear if successful buffer filled CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: TCPDRV.DOS is the low-level device driver supporting LAN Manager's TCP/IP protocol stack Format of TCPDRV.DOS request block: Offset Size Description (Table 01504) 00h BYTE (call) function number 00h initialize ??? 06h get ??? 07h get ??? 01h BYTE (call) 00h (ret) error code if error, unchanged if successful 02h WORD signature 4354h ('CT') ---function 00h--- 04h DWORD (call) pointer to ??? FAR function function is called with ES:BX -> device driver request used to invoke this function 08h 4 BYTEs ??? 0Ch DWORD (call) pointer to ??? record, WORD at offset 22h is read 10h DWORD (ret) -> ??? buffer if 0000h:0000h on call ---function 06h--- 04h 4 BYTEs ??? 08h DWORD (ret) pointer to ??? ---function 07h--- 04h DWORD (ret) pointer to ??? recordTop
INT 21 U - PC Tools 9 CPRLOW.EXE - GET CODE AND DATA ADDRESSES AX = 4402h BX = file handle referencing device "RECLOWLD" DS:DX -> buffer for address list (see #01505) CX ignored Return: CF clear if successful buffer filled CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Format of CPRLOW address list: Offset Size Description (Table 01505) 00h WORD segment of CPRLOW code 02h WORD offset in code segment of ??? entry point (switches into protected mode) 04h WORD offset in code segment of jump array (see #01506) 06h WORD segment of copy of interrupt vector table at CPRLOW load time Note: neither the entry point nor the jump array is valid until after a CPR /LOAD, because CPR.EXE installs the code into CPRLOW at runtime. Format of CPRLOW jump array: Offset Size Description (Table 01506) 00h 3 BYTEs initialize CPRLOW interrupt hooks 03h 3 BYTEs reset timers and enable CPR (hotkey enable) 06h 3 BYTEs disable CPR (hotkey disable) 09h 3 BYTEs clear ??? flag, hotkey disable, and ??? 0Ch 3 BYTEs initialize delay loop counter (destroys AX,BX,CX,DX) 0Fh 3 BYTEs disable CPR completely (commandline /DISABLE) 12h 3 BYTEs enable ??? if CPR enabled by both cmdline and hotkey 15h 3 BYTEs enable CPR (commandline /ENABLE)Top
INT 21 U - Creative Technology CTMMSYS.SYS v1.00.01 - API AX = 4402h BX = file handle for device "CTMMSYS$" CX = 0004h (size of data) DS:DX -> buffer for entry point (see #01507) Return: CF clear if successful buffer updated CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: CTMMSYS.SYS is the Creative DOS Multimedia Architecture Integration driver SeeAlso: AX=4402h"CTSB2",INT 80/BX=0000h"SBFM" Format of CTMMSYS.SYS entry point record: Offset Size Description (Table 01507) 00h DWORD (call) signature 4D6D7443h (ASCII "CtmM") (ret) pointer to CTMMSYS entry point (see #01508) SeeAlso: #01509 (Table 01508) Call CTMMSYS.SYS entry point with: AX = ??? STACK: WORD ??? WORD ??? WORD ??? (0001h,0002h,0005h,0006h) WORD ??? DWORD -> ??? WORD ??? WORD ??? Return: DX:AX = ??? or error code 0000h:000Bh invalid value for ??? 0000h:000Fh API call already in progress SeeAlso: #01507Top
INT 21 U - Creative Technology CTSB2.SYS v1.01.01 - API AX = 4402h BX = file handle for device "CTSOUND0" CX = 0004h (size of data) DS:DX -> buffer for entry point (see #01509) Return: CF clear if successful buffer updated CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: CTMMSYS.SYS is the Creative DOS Multimedia Architecture Integration driver SeeAlso: AX=4402h"CTMMSYS",INT 80/BX=0000h"SBFM" Format of CTSB2.SYS entry point record: Offset Size Description (Table 01509) 00h DWORD (call) signature 4D6D7443h (ASCII "CtmM") (ret) pointer to CTSB2 entry point (see #01510) SeeAlso: #01507 (Table 01510) Call CTSB2.SYS entry point with: AX = ??? STACK: DWORD -> ??? WORD function number (0100h,0200h,0300h,0400h,0500h,0600h,0701h) DWORD -> ??? WORD ??? WORD ??? Return: DX:AX = ??? or error code 0000h:0004h invalid subfunction??? 0000h:000Bh invalid value for ??? 0000h:000Fh API call already in progress SeeAlso: #01509Top
INT 21 U - Novell DOS 7+ EMM386.EXE - GET STATE RECORD AX = 4402h BX = file handle for device "EMMXXXX0" or "EMMQXXX0" CX = 003Eh (size of state record) DS:DX -> buffer for state record (see #01511) Return: CF clear if successful buffer filled (see #03603 at INT 67/AH=3Fh) CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Note: This function is called by the Novell DOS 7+ MEM utility. Format of Novell DOS 7 - DR-DOS 7.03 EMM386.EXE state record: Offset Size Description (Table 01511) 00h WORD signature EDC0h 02h 12 BYTEs (ret) bitmap for include range 0Eh 12 BYTEs (ret) bitmap for auto range 1Ah 12 BYTEs (ret) bitmap for BIOS range 26h 12 BYTEs (ret) bitmap for ROM range 32h 12 BYTEs (ret) bitmap for map range Note: each bitmap covers the upper-memory address range A000h-FFFFh, where offset X bit B within the bitmap indicates the state of the 4K page starting at segment A000h + (8X + B) * 100hTop
INT 21 U - Memory Managers - GET API ENTRY POINT AX = 4402h subfn 00h BX = file handle for device "EMMXXXX0" CX = 0006h (size of buffer in bytes) DS:DX -> buffer for API entry point record (see #01512) first byte must be 00h on entry Return: CF clear if successful buffer filled (see #03603 at INT 67/AH=3Fh) CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: this function is supported by Microsoft EMM386.EXE v4.45+ and CEMM v5.10+, and is intended for use by MS Windows as it starts up if no other program has hooked INT 67, an alternate installation check for CEMM is testing for the string "COMPAQ EXPANDED MEMORY MANAGER 386" at offset 14h in the INT 67 handler's segment; if present, the word at offset 12h contains the offset of the API entry point SeeAlso: AX=4402h/SF=01h,AX=4402h/SF=02h,AX=4402h"EMM386",INT 67/AH=3Fh Format of memory manager API entry point record: Offset Size Description (Table 01512) 00h WORD ??? (0022h for CEMM 5.11, 0025h for MS EMM386 v4.45) 02h DWORD manager's private API entry point (see #01513,#03666 at INT 67/AX=FFA5h) (Table 01513) Call CEMM v5.10+ entry point with: AH = 00h get memory manager's state Return: AH = state bit 0: turned OFF bit 1: AUTO mode enabled AH = 01h set memory manager's state AL = new state (00h ON, 01h OFF, 02h AUTO) Return: CF clear if successful CF set on error AH = 02h Weitek coprocessor support AL = subfunction 00h get Weitek support state Return: AL = status bit 0: Weitek coprocessor is present bit 1: Weitek support is enabled 01h turn on Weitek support 02h turn off Weitek support Return: CF clear if successful CF set on error AH = error code (01h invalid subfunc, 02h no Weitek) AH = 05h get statistics ??? AH > 06h Return: CF set AH = 01h (invalid function) Notes: AH=03h,04h,06h are NOPs which return CF clear, presumably for backwards compatibility with earlier versions of CEMM in v5.11, AH=05h merely prints an error message (using INT 21/AH=09h) stating that a different version of CEMM is installed and it is therefore not possible to display the statisticsTop
INT 21 U - Memory Managers - GET EMM IMPORT STRUCTURE ADDRESS AX = 4402h subfn 01h BX = file handle for device "EMMXXXX0" CX = 0006h (size of buffer in bytes) DS:DX -> buffer for EMM import structure record (see #01514) first byte must be 01h on entry Return: CF clear if successful buffer filled (see also #03603 at INT 67/AH=3Fh) CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: this function is supported by Microsoft EMM386.EXE v4.45+, QEMM-386 v6+, and CEMM v5.10+, and is intended for use by MS Windows as it starts up for QEMM-386, this call always returns an error if Windows3 support has been disabled with the NW3 switch SeeAlso: AX=4402h/SF=00h,AX=4402h"EMM386",INT 2F/AX=D201h/BX=5145h SeeAlso: INT 67/AH=3Fh Format of EMM import structure record: Offset Size Description (Table 01514) 00h DWORD physical address of EMM import structure (see #01515) 04h BYTE EMM import structure major version 05h BYTE EMM import structure minor version Note: vession 1.00 contains only EMS information (Windows 3.0+) version 1.10 contains UMB/XMS/HMA/EMS information (Windows 3.1) version 1.11 is version 1.10 plus memory manager maker/product name SeeAlso: #03643 Format of Global EMM Import record: Offset Size Description (Table 01515) 00h BYTE bit flags bit 2: ??? bit 3: free EMM386 virtual HMA only if hma_page_table_paddr!=0 bit 4: no UMB??? 01h BYTE reserved (0) 02h WORD size of structure in bytes 04h WORD structure version 06h DWORD reserved 0Ah 384 BYTEs 64 EMS frame status records (see #01516), one per 16K of real-mode 1M address space 18Ah BYTE ??? (must be at least 3*number_of_EMS_frames+4) 18Bh BYTE number of UMB frame descriptors following 18Ch 4N DWORDs UMB frame descriptors each is 4 DWORDs giving physical page numbers for the four 4K pages of a 16K EMS frame (00000000h if non-UMB page) var BYTE number of EMS handle info records following 16N BYTEs EMS handle info records (see #01518) ---version 1.10+ --- DWORD realmode INT 67 vector (used by Windows to set breakpoints) DWORD physical address of HMA page table values BYTE number of free page entries following 2N DWORDs free page entries each is: DWORD physical page number DWORD number of consecutive physical pages BYTE number of XMS handle info records following 00h if memory manager does not emulate XMS or has real mode XMS code which can execute in the Windows environment 12N BYTEs XMS handle info records (see #01519) BYTE number of free UMB info records following 2N WORDs free UMB info records each is: WORD real mode start segment WORD size in paragraphs ---version 1.11--- 20 BYTEs blank-padded maker name 20 BYTEs blank-padded product name Format of EMS frame status record: Offset Size Description (Table 01516) 00h BYTE frame type (see #01517) 01h BYTE owner handle (00h/FFh = none) from frame including UMB index to UMB frame descriptors 02h WORD logical page for frame, 7FFFh if none, FFFFh if non-EMS frame 04h BYTE EMS physical page number (FFh for non-EMS = don't care???) 05h BYTE flags for non-EMS frames (00h for EMS frame) bits 0,1 for first 4K, bits 2,3 for second 4K, etc: 10: direct mapping (linear address = physical address) 01: UMB mapping Bitfields for EMS frame type: Bit(s) Description (Table 01517) 0 EMS frame 1 (if EMS frame) in standard 64K page frame 2 first 4K of frame is UMB 3 second 4K of frame is UMB 4 third 4K of frame is UMB 5 last 4K of frame is UMB Format of EMS handle info record: Offset Size Description (Table 01518) 00h BYTE handle number (00h = system handle) 01h BYTE flags bit 0: normal handle rather than system handle bit 2: ??? (set by some EMS managers) 02h 8 BYTEs EMS handle's name 0Ah WORD number of 16K pages for handle 0Ch DWORD physical address of page table entries forming page map Note: all values should be zero for the system handle if no large frame support is present Format of XMS handle info record: Offset Size Description (Table 01519) 00h WORD handle 02h WORD flags bit 0: handle usable by Windows (already in use when Windows started if clear) bit 1: reserved (0) 04h DWORD size in KB (may be zero, used only if flags bit 0 set) 08h DWORD physical address (only if flags bit 0 set)Top
INT 21 U - Memory Managers - GET MEMORY MANAGER VERSION AX = 4402h subfn 02h BX = file handle for device "EMMXXXX0" CX = 0002h (size of buffer in bytes) DS:DX -> buffer for memory manager version (see #01520) first byte must be 02h on entry Return: CF clear if successful buffer filled CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Note: this function is supported by Microsoft EMM386.EXE v4.45+ and CEMM v5.10+, and is intended for use by MS Windows as it starts up SeeAlso: AX=4402h/SF=00h,AX=4402h"EMM386",INT 67/AH=3Fh Format of memory manager version: Offset Size Description (Table 01520) 00h BYTE major version 01h BYTE minor version (binary)Top
INT 21 U - Microsoft EMM386.EXE v4.45 - GET MEMORY MANAGER INFORMATION AX = 4402h BX = file handle for device "EMMXXXX0" CX = size of buffer in bytes (varies, see #01521) DS:DX -> buffer for returned data (see #01521) first byte must be set on entry to indicate desired data Return: CF clear if successful buffer filled CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: an error is returned if the number of bytes to be read does not match the number of bytes returned for the specified data item this function is part of the interface which allows MS Windows to cooperate with memory managers SeeAlso: AX=4402h/SF=00h,AX=4402h/SF=01h,AX=4402h/SF=02h,INT 67/AX=FFA5h Format of EMM386.EXE data buffer: Offset Size Description (Table 01521) 00h BYTE (call) function 03h get ??? 04h get ??? ---function 03h--- 00h WORD ??? 02h WORD ??? ---function 04h--- 00h WORD segment of UMB containing EMM386 code/data 02h WORD number of paragraphs of EMM386 code/data in UMB 04h WORD ???Top
INT 21 U - IFSHLP.SYS - GET ENTRY POINT AX = 4402h BX = file handle for device "IFS$HLP$" CX = 0008h (size of buffer in bytes) DS:DX -> buffer for entry point record (see #01415 at AH=3Fh"IFSHLP") Return: CF clear if successful buffer filled CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) SeeAlso: AH=3Fh"IFSHLP"Top
INT 21 - ATA Software Programming Interface (ATASPI) - INTERFACE AX = 4402h BX = file handle for device "$ATAMGR$" CX = 0004h (size of buffer in bytes) DS:DX -> buffer for result (see #90000), set to zeros before call Return: CF clear if successful AX = 0004h CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: ATASPI is an API to control IDE, EIDE, and ATAPI devices, proposed by Future Domain; there's at least one driver in existence which conforms to this specification: ATASPI16.SYS by Future Domain (see #90002) on the stack and the caller must clean up the stack Future Domain ATASPI16.SYS v2.2 performs ATASPI calls using INT 4Fh interface instead of this INT 21/4402h interface and itself supports both interfaces SeeAlso: AX=4402h"ASPI",INT 4F/AX=0081h,INT 4F/AX=0082h,PORT 01F0h-01F7h"HDC1" Format of ATASPI IOCTL result: Offset Size Description (Table 90000) 00h DWORD ATASPI entry point address (Table 90001) Call ATASPI entry point with: STACK: DWORD -> ATA Request Block (ARB) (see #90003) Notes: caller must clean up the stack the large-model C declaration is void (*entry)(ARB_Struct *); SeeAlso: #90000 (Table 90002) Values for ATASPI command code: 00h ATA controller inquiry 01h get ATA device type 02h execute ATA I/O 03h abort ATA request 04h reset ATA device 05h set ATA controller parameter 06h get ATA disk drive information SeeAlso: #90003 Format of ATA Request Block (ARB): Offset Size Description (Table 90003) 00h BYTE command code (see #90002) 01h BYTE (ret) status (see #90004) 02h BYTE ATA controller number 03h BYTE request flags (see #90005) 04h DWORD reserved (0) ---request 00h--- 08h BYTE (ret) total number of ATA controllers valid only if ATA controller number = 0FFh 09h BYTE reserved (0) 0Ah 16 BYTEs (ret) ATA manager ID 1Ah 16 BYTEs (ret) ATA controller ID 2Ah 16 BYTEs (ret) controller unique parameters (see #90010) ---request 01h--- 08h BYTE device ID (00h = master, 01h = slave) 09h BYTE reserved (0) 0Ah BYTE (ret) peripheral device type (see #90007) ---request 02h--- 08h BYTE device ID 09h BYTE reserved (0) 0Ah DWORD data transfer length (ret) residual byte length 0Eh BYTE sense allocation length (N) 0Fh DWORD data buffer pointer 13h DWORD reserved (0) 17h BYTE ACB length (M) for Task File requests must be set to 07h, for ATAPI Packet requests must match the number of bytes in the packet 18h BYTE (ret) ATA controller status (see #90006) 19h BYTE (ret) device status value of the error register, 00h if no error (see #P0512) 1Ah DWORD post routine address (see #90009) 1Eh WORD data transfer block size (in bytes) number of data bytes to transfer per hardware interrupt for Task File requests; number of data bytes host prefers to transfer per hardware interrupt for ATAPI Packet commands 20h 32 BYTEs reserved for ATASPI workspace 40h M BYTEs ATA/ATAPI command block (ACB) contains AT Task File Structure (see #90008) if bit 2 of the request flags is set, ATAPI packet (see #03236,#03237,#03238) if bit 2 is cleared 40h+M N BYTEs sense allocation area ---request 03h--- 08h DWORD address of ARB to be aborted ---request 04h--- 08h BYTE device ID 09h 15 BYTEs reserved (0) 18h BYTE (ret) ATA controller status (see #90006) 19h BYTE (ret) device status 1Ah DWORD post routine address (see #90009) 1Eh 34 BYTEs reserved for ATASPI workspace ---request 05h--- 08h 16 BYTEs controller unique parameters (vendor unique) ---request 06h--- 08h BYTE device ID 09h BYTE reserved (0) 0Ah BYTE (ret) drive flags (see #01461) 0Bh BYTE (ret) INT 13h drive 0Ch BYTE (ret) preferred head translation 0Dh BYTE (ret) preferred sector translation 0Eh 10 BYTEs reserved (0) (Table 90004) Values for ATASPI request status: 00h request in progress 01h request completed without error 02h request aborted by host 04h request completed with error 80h invalid request 81h invalid ATA controller number 82h ATA device not installed 83h ATA controller/device busy Note: if ATASPI ever returns 83h as the status, it is the responsibility of the driver/applications to re-send the request at a later time SeeAlso: #90003 Bitfields for request flags: Bit(s) Description (Table 90005) 7 reserved (0) 6 "ByteXfer" =0 use word transfer mode =1 use byte transfer mode 5 (ATAPI device) DSC unavailable action (DUA) =0 queue the request and service it when DSC bit is set =1 return with status 83h 4-3 direction 00 direction determined by device 01 data in 10 data out 11 no data transfer 2 request type =0 ATAPI Packet Command =1 AT Task File Structure 1 reserved (0) 0 "Post" =0 disable posting =1 enable posting SeeAlso: #90003 (Table 90006) Values for ATA controller status: 00h no error 11h device not present 12h data overrun/underrun SeeAlso: #90003 (Table 90007) Values for peripheral device type: 00h direct-access device (e.g. magnetic disk) 01h tape device (QIC-121 SCSI Architectural Model) 02h-04h reserved 05h CD-ROM device 06h reserved 07h optical memory device (e.g. some optical disks) 08h-0Bh reserved 0Ch tape device (Cost Sensitive Architectural Model) 0Dh-1Eh reserved 1Fh unknown or no device type 80h non-ATAPI device SeeAlso: #90003 Format of AT Task File Structure: Offset Size Description (Table 90008) 00h features register 01h sector count register 02h cylinder LSB register 04h cylinder MSB register 05h device/head register (see #P0513) 06h command register (see #P0515) SeeAlso: #90005 (Table 90009) Values ATASPI post function is called with: STACK: DWORD -> ARB (see #90003) which completed interrupts disabled Return: EBP, EBX, ESI, EDI must be preserved interrupts disabled Notes: the post function may issue any ATASPI function except an abort; it should complete as quickly as possible the large-model C declaration is void (*post)(ARB_Struct *); SeeAlso: #90003 Format of Future Domain controller unique parameters: Offset Size Description (Table 90010) 00h WORD controller features 02h WORD controller main I/O port 04h WORD controller alternate I/O port 06h BYTE controller IRQ 07h BYTE ??? (00h or 01h) 08h BYTE ??? (00h or 01h) 09h 7 BYTEs reserved (0) SeeAlso: #90003Top
INT 21 - DRFAT32.SYS device driver - IOCTL INPUT AX = 4402h BX = file handle referencing character device for DRFAT32.SYS driver (e.g. "FAT32XXX" in the default configuration) CX = number of bytes to read DS:DX -> control block (see #04108) Return: CF clear if successful AX = number of bytes actually read CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: the data returned depends on the first byte of the control block the remainder of the control block is filled by the driver one DRFAT32.SYS device driver supports up to 8 subunits (that is up to 8 FAT32 partitions). By default, DRFAT32.SYS logs in all FAT32 partitions it finds, however, by using command line options /C (CHS), /L (LBA), /H (Hidden) and /P:1..4 (Primary), /E:1..255 (Logical Drive), and /U:min[,max] (Unit 128..255) it can be directed to attach only to one or a specific range of partitions. Multiple DRFAT32.SYS drivers can be loaded in a system when using the /D:name option. To assign them to the redirector, the /D:name option must be repeated for each of the DRFAT32.SYS drivers in the DRFAT32.EXE command line. SeeAlso: AX=4402h"CD-ROM",INT 2F/AX=0802h Format of DRFAT32 control block: Offset Size Description (Table 04108) 00h BYTE data being requested 00h device driver header address 09h media change status 48h address of DRFAT32 geometry table else error ---function 00h--- 01h DWORD device driver header address (see also AH=52h,#01646) ---function 09h--- 01h BYTE media change status 00h don't know 01h media unchanged FFh media has been changed ---DRFAT32 function 48h--- 01h DWORD address of DRFAT32 geometry table (see #04109) Format of DRFAT32 Geometry Table: Offset Size Description (Table 04109) 00h 8*59 BYTEs eight DRFAT32 partition data tables (see #04110) 1D8h BYTE DRFAT32 access flags (see #04111) 1D9h BYTE DRFAT32 status flags (see #04112) Note: This is the table layout used by DRFAT32.SYS 1.00 which supports up to 8 sub-units. The layout of this table and its records may change, so the version indicator in the device driver's signature ("FAT320") and the size of the public data structure should be checked first. SeeAlso: #04108 Format of DRFAT32 partition data table: Offset Size Description (Table 04110) 00h BYTE size of following public data structure (9) --- public data (needed by the DRFAT32.EXE redirector) --- 01h WORD bytes per sector 03h BYTE sectors per cluster 04h WORD reserved sectors 06h DWORD root directory start cluster --- private data --- 0Ah DWORD sectors per track 0Eh DWORD root directory sector 12h DWORD partition start sector 16h DWORD highest partition sector allowed (only if range checking enabled) 1Ah DWORD absolute cluster start sector (cluster start sector+partition start sector) 1Eh DWORD total sectors per track (number of heads * sectors per track) 22h BYTE drive unit (default 80h) 23h BYTE temp buffer: CHS sectors to write (if verify enabled) 24h BYTE INT 13h extension version --- CHS data --- 25h WORD cylinder 27h WORD head 29h WORD sector --- LBA data --- 2Bh 16 BYTEs disk address packet (see #00272 at INT 13/AH=42h) SeeAlso: #04109 Bitfields for DRFAT32 access flags: Bit(s) Description (Table 04111) 7 using LBA addressing instead of CHS 6 using INT 13h extensions (see also INT 13/AH=48h) 5 multi-sector access allowed 4 force media change indication on removable drives 3 force verify after every write (/W) 2 more than 1024 cylinders, less than 64 heads (/A) 1 client-side asynchronous buffering allowed (/B), normally =0 0 read-only access (/R) SeeAlso: #04109,#04112 Bitfields for DRFAT32 status flags: Bit(s) Description (Table 04112) 7-2 reserved (0) 1 Save Guard enabled (blocks any further writes after a fault) 0 volume may have dirty sectors (set after write operations) SeeAlso: #04109,#04111Top
INT 21 - DOS 2+ - IOCTL - WRITE TO CHARACTER DEVICE CONTROL CHANNEL AX = 4403h BX = file handle referencing character device CX = number of bytes to write DS:DX -> data to write Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: format of data is driver-specific (also see separate entries below for some specific cases) if the file handle refers to "4DOSSTAK", the 4DOS (v2.x-3.03) KEYSTACK.SYS driver will push the specified characters on the keyboard stack; similarly for "NDOSSTAK", the NDOS KEYSTACK.SYS driver will push the characters onto the keyboard stack this function was not supported by Digital Research's DOS Plus SeeAlso: AX=4400h,AX=4402h"DOS 2+",AX=4405h"DOS",INT 2F/AX=122Bh SeeAlso: INT 2F/AX=D44Dh,INT 2F/AX=D44FhTop
INT 21 - SMARTDRV.SYS v3.x only - IOCTL - CACHE CONTROL AX = 4403h BX = handle for device "SMARTAAR" CX = number of bytes to write DS:DX -> SMARTDRV control block (see #01523) Return: CF clear if successful AX = number of bytes actually written 0000h if control block too small for given command CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Note: NCache2 (from the Norton Utilities v8.0) attempts to support this interface, but does not do so correctly, often hanging the system; one should use the SmartDrive v4.x or NCache private interfaces (see INT 2F/AX=4A10h/BX=0000h,INT 2F/AX=FE00h/DI=4E55h) SeeAlso: AX=4402h"SMARTDRV",INT 2F/AX=4A10h/BX=0000h (Table 01522) Values for SMARTDRV function code: 00h flush cache 01h flush and discard cache 02h disable caching (flushes and discards cache first) 03h enable caching 04h control write caching 05h set flushing tick count 06h lock cache contents 07h unlock cache contents 08h set flush-on-reboot flag 09h unused 0Ah control full-track caching 0Bh reduce cache size 0Ch increase cache size 0Dh set INT 13 chain address Format of SMARTDRV control block: Offset Size Description (Table 01523) 00h BYTE function code (see #01522) ---functions 00h-03h,06h,07h--- no additional fields ---function 04h--- 01h BYTE write caching control action 00h turn off write-through 01h turn on write-through 02h turn off write buffering (also flushes cache) 03h turn on write buffering (also flushes cache) ---function 05h--- 01h WORD number of timer ticks between cache flushes ---function 08h--- 01h BYTE new flush-on-reboot flag (00h off, 01h on) ---function 0Ah--- 01h BYTE full-track writes are 00h not cached 01h cached ---functions 0Bh,0Ch--- 01h WORD number of 16K pages by which to increase/reduce cache size ---function 0Dh--- 01h DWORD new address to which to chain on INT 13 Note: the previous address is not preservedTop
INT 21 - CD-ROM device driver - IOCTL OUTPUT AX = 4403h BX = file handle referencing character device for CD-ROM driver CX = number of bytes to write DS:DX -> control block (see #01524) Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: some device drivers support several subunits (that is more than one drive) but it is not possible to distinguish between them with this function; use INT 2F/AX=1510h or INT 2F/AX=0802h instead under Windows95, the "mscd$$$$" device cannot be opened so you cannot obtain the handle required by this function: use INT 2F/AX=1510h or INT 2F/AX=0802h instead SeeAlso: AX=4402h"CD-ROM",INT 2F/AX=0802h,INT 2F/AX=1510h Format of CR-ROM control block: Offset Size Description (Table 01524) 00h BYTE function code 00h eject disk 01h lock/unlock door 02h reset drive 03h control audio channel 04h write device control string 05h close tray ---functions 00h,02h,05h--- no further fields ---function 01h--- 01h BYTE lock function 00h unlock door 01h lock door ---function 03h--- 01h BYTE input channel (0-3) for output channel 0 02h BYTE volume for output channel 0 03h BYTE input channel (0-3) for output channel 1 04h BYTE volume for output channel 1 05h BYTE input channel (0-3) for output channel 2 06h BYTE volume for output channel 2 07h BYTE input channel (0-3) for output channel 3 08h BYTE volume for output channel 3 Note: output channels 0 and 1 are left and right, 2 and 3 are left prime and right prime; a volume of 00h is off ---function 04h--- 01h N BYTEs bytes to send directly to the CD-ROM drive without interpretationTop
INT 21 U - MS-DOS 7.0+ - CONFIG$ device - SET??? CONFIGURATION INFORMATION AX = 4403h BX = file handle for character device "CONFIG$" CX = number of bytes to write DS:DX -> buffer containing ??? Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Note: IOCTL Output to CONFIG$ is only available while IO.SYS is booting the system; once CONFIG.SYS has been processed, this call always succeeds, ignoring any input SeeAlso: AX=4403h"CONFIG$"Top
INT 21 - Brian Antoine Seagate ST-01 SCSI.SYS - IOCTL - EXECUTE COMMANDS AX = 4403h BX = handle for device "SCSITAPE" CX = number of bytes to write DS:DX -> SCSITAPE control block (see #01525) Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=4405h"ST-01",INT 78/AH=10h Format of SCSITAPE control block: Offset Size Description (Table 01525) 00h WORD command type 'F' Format (argument 1 = interleave, argument 2 = format type) 'E' Erase 'R' Rewind 'L' Load 'N' No Load 'S' Space (argument 1 = count, argument 2 = type) 'M' File Mark (argument 1 = count) 'A' Reassign 02h WORD argument 1 04h WORD argument 2 06h WORD segment of command buffer 08h WORD offset of command buffer 0Ah WORD length of command bufferTop
INT 21 U - AI Architects - OS/x86??? - API AX = 4403h BX = handle for device "AIA_OS" CX = number of bytes to write (ignored) DS:DX -> 12-byte buffer (see #01526), first byte is command: 81h installation check 82h get API entry point 84h uninstall Return: CF clear if successful AX = number of bytes actually written DS:DX buffer filled CF set on error AX = error code (01h,05h,06h,0Ch,0Dh) (see #01680 at AH=59h) Notes: these functions are only available if the DOS extender was loaded as a device driver in CONFIG.SYS called by TKERNEL (a licensed version of AI Architects/Ergo OS/x86) SeeAlso: INT 2F/AX=FBA1h/BX=0081h,INT 2F/AX=FBA1h/BX=0082h Index: installation check;OS/x86|entry point;OS/x86|uninstall;OS/x86 Format of buffer on return: Offset Size Description (Table 01526) 00h 4 BYTEs signature "IABH" ---if function 81h--- (no additional fields) ---if function 82h--- 04h DWORD pointer to API entry point (see INT 2F/AX=FBA1h/BX=0082h) ---if function 84h--- 04h WORD success indicator 06h WORD segment of ??? 08h WORD segment of ??? memory block to free if nonzero 0Ah WORD segment of ??? memory block to free if nonzeroTop
INT 21 - PGS1600.DEV - IOCTL - SET CONFIGURATION??? AX = 4403h BX = file handle for device "PGS1600$" CX = 0018h (size of buffer) DS:DX -> configuration buffer (see #01484 at AX=4402h"PGS1600") Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: PGS1600.DEV is a device driver for the Cornerstone Technology PG1600 display adapter, which provides a 1600x1200 monochrome display as well as one of two emulations, MDA or CGA. SeeAlso: AX=4402h"PGS1600"Top
INT 21 - PC/TCP IPCUST.SYS - RESET CONFIGURATION DATA READ POINTER AX = 4403h BX = file handle referencing device "$IPCUST" CX, DS:DX ignored Return: CF clear if successful AX destroyed CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: there are a total of 378h bytes of configuration data for IPCUST.SYS version 2.05. If less than the entire data is read or written, the next read/write continues where the previous one ended; this call and AX=4402h both reset the location at which the next operation starts to zero v2.1+ uses a new configuration method, but allows the installation of IPCUST.SYS for backward compatibility with other software which must read the PC/TCP configuration SeeAlso: AH=3Fh"IPCUST",AH=40h"IPCUST",AX=4402h"IPCUST"Top
INT 21 - Compaq AG1024.SYS - CPQ_MGES - IOCTL OUTPUT AX = 4403h BX = file handle referencing device "CPQ_MGES" DS:DX -> request packet (see #01527) CX ignored Return: CF clear if successful AX destroyed data buffer filled (if applicable) first word of request packet set to number of bytes of data available (amount returned is smaller of this and requested amount) CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: AG1024.SYS is a device driver for the Advanced Graphics 1024 adapter SeeAlso: AX=4403h"RGDI" Format of Compaq AG1024.SYS request packet: Offset Size Description (Table 01527) 00h WORD function 0000h get ??? (26h bytes) 0001h get ??? (36h bytes) 0002h set ??? (same as returned by function 0001h) 0003h get ??? (6 bytes) 0004h get ??? 0005h get ??? 0006h get ??? (10h bytes) 0007h set ??? (same as returned by function 0006h) ---functions 00h-03h,06h,07h--- 02h WORD size of data buffer 04h DWORD -> buffer for function's data ---functions 04h,05h--- 02h WORD ??? 04h WORD size of data buffer 06h DWORD -> buffer to receive dataTop
INT 21 - Compaq AG1024.SYS - RGDI - IOCTL OUTPUT AX = 4403h BX = file handle referencing device "$$$$RGDI" DS:DX -> request packet (see #01528) CX ignored Return: CF clear if successful AX destroyed data buffer filled (if applicable) first word of request packet set to number of bytes of data available (amount returned is smaller of this and requested amount) CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: AG1024.SYS is a device driver for the Advanced Graphics 1024 adapter SeeAlso: AX=4402h"RGDI",AX=4403h"CPQ_MGES" Format of Compaq AG1024.SYS request packet: Offset Size Description (Table 01528) 00h WORD function 0000h get entry points 0001h get ??? 02h DWORD address of buffer for returned dataTop
INT 21 U - Qualitas 386MAX v6.01+ - TURN 386MAX OFF AX = 4403h subfn 01h BX = handle for device "386MAX$$" DS:DX -> BYTE 01h CX ignored Return: DS:DX -> BYTE status (00h = successful) CF clear if successful AX destroyed CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Note: this function will fail if any EMS or UMBs are in use SeeAlso: AX=4403h/SF=02h,AX=4403h/SF=03h,AX=4403h/SF=05hTop
INT 21 U - Qualitas 386MAX v6.01+ - TURN 386MAX ON AX = 4403h subfn 02h BX = handle for device "386MAX$$" DS:DX -> BYTE 02h CX ignored Return: DS:DX -> BYTE status (00h = successful) CF clear if successful AX destroyed CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=4403h/SF=01h,AX=4403h/SF=03h,AX=4403h/SF=05hTop
INT 21 U - Qualitas 386MAX v6.01+ - SET STATE AX = 4403h subfn 03h BX = handle for device "386MAX$$" CX = number of bytes to copy (up to size of state buffer) DS:DX -> BYTE 03h followed by state buffer (see #01467 at AX=4402h"386MAX") Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Note: the first byte of the buffer must be either 01h, 02h, or 03h (specifying the version of the state record) and the buffer must contain CX bytes AFTER the initial byte SeeAlso: AX=4402h"386MAX"Top
INT 21 U - Qualitas 386MAX v7.00+ - LIMIT AUTOMATIC ACTIVATION TO STD EMS CALLS AX = 4403h subfn 05h BX = handle for device "386MAX$$" DS:DX -> BYTE 05h CX ignored Return: CF clear if successful AX destroyed CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Desc: specifies that 386MAX will only shift from AUTO to ON mode on standard EMS calls INT 67/AH=40h-5Dh SeeAlso: AX=4403h/SF=02h,AX=4403h/SF=03h,AX=4403h/SF=06hTop
INT 21 U - Qualitas 386MAX v7.00+ - ALLOW AUTOMATIC ACTIVATION ON ANY INT 67 AX = 4403h subfn 06h BX = handle for device "386MAX$$" DS:DX -> BYTE 06h CX ignored Return: CF clear if successful AX destroyed CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Desc: specified that 386MAX should shift from AUTO to ON mode on any INT 67 call other than INT 67/AH=3Fh SeeAlso: AX=4403h/SF=01h,AX=4403h/SF=03h,AX=4403h/SF=05hTop
INT 21 U - PenDOS PENDEV.SYS - ??? AX = 4403h BX = file handle for device "$$PENDOS" or "$$PD_REG" CX = size of buffer DS:DX -> buffer containing ??? Return: CF clear if successful buffer filled CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: A limited version of PenDOS by Communication Intelligence Corporation, which provides pen capability to keyboard-based programs, is bundled with IBM DOS 6.1 Note: this call sets the WORD at offset 1Ah into the device driver request header used to call the driver to 0000h. SeeAlso: AX=4402h"PENDEV.SYS"Top
INT 21 - DR DOS $IDLE$ - IOCTL - DYNAMIC IDLE DETECTION CONTROL AX = 4403h BX = file handle referencing character device $IDLE$ CX = number of bytes to write (0004h) DS:DX -> $IDLE$ IOCTL structure (see #04113) Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: When the DR DOS IBMBIO.COM detects the presence of the $IDLE$ device during startup, it will retrieve the address of the idle state data area via INT 21/AX=4458h and pass it along to the $IDLE$ device driver by calling this function. Format of DR DOS $IDLE$ IOCTL structure: Offset Size Description (Table 04113) 00h DWORD -> idle state data area (see Table !!! at INT 21/AX=4458h)Top
INT 21 - DOS 2+ - IOCTL - READ FROM BLOCK DEVICE CONTROL CHANNEL AX = 4404h BL = drive number (00h = default, 01h = A:, etc.) CX = number of bytes to read DS:DX -> buffer Return: CF clear if successful AX = number of bytes actually read CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: format of data is driver-specific this function was not supported by Digital Research's DOS Plus SeeAlso: AX=4402h"DOS 2+",AX=4405h"DOS",INT 2F/AX=122BhTop
INT 21 - Stacker - GET DEVICE DRIVER ADDRESS AND SET VOLUME NUMBER AX = 4404h BL = drive number (00h = default, 01h = A:, etc.) CX = 0004h DS:DX -> DWORD buffer to receive device driver address Return: buffer filled with pointer into Stacker device driver (see #02550): driver + 19h if Stacker Anywhere controls this drive driver + 1Ah if Stacker controls this drive unchanged else Notes: in addition to returning the address of the Stacker device driver, this call also sets the volume number at offset 58h in the device driver (see #02550 at INT 25/AX=CDCDh) Stacker Anywhere does not link its built-in device driver into the standard device driver chain, but it can be found via CDS/DPB this call can be used as an installation check for all versions of Stacker and Stacker Anywhere to avoid the INT 25 call SeeAlso: AX=4408h,AX=440Eh,AH=52h,INT 25/AX=CDCDhTop
INT 21 - Stacker - GET STACVOL FILE SECTORS AX = 4404h BL = drive number (0 is current drive) CX = byte count (i.e., 200h = 1 sector) DS:DX -> buffer (see #01529) Return: Data Buffer contains the number of sectors requested from the STACVOL physical file for the drive specified. Format of Stacker buffer: Offset Size Description (Table 01529) 00h WORD 01CDh 02h WORD sector count 04h DWORD number of starting sector 08h DWORD far pointer to Data BufferTop
INT 21 - DUBLDISK.SYS v2.6 - GET INFO AX = 4404h BL = drive number of DoubleDisk drive (00h = default, 01h = A:, etc.) CX = number of bytes (000Ah-0014h, call ignored otherwise) DS:DX -> data record (see #01530) Return: CF clear if successful AX = number of bytes read CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: DUBLDISK.SYS is the device driver portion of DoubleDisk, a disk expander by Vertisoft Systems, Inc. InstallCheck: for v2.6, scan memory for the signature "FAT 2.6 byte:", which is immediately followed by a data table (see #01531) BUG: VOPT (a disk optimizer by Golden Bow Software) assumes that any driver which returns the "correct" number of bytes when the first word of the buffer for the data record contains the signature value 4444h is DoubleDisk; a workaround is for the non-DoubleDisk driver to return no data if the signature is present SeeAlso: AX=440Dh"DOS 3.2+" Index: installation check;DUBLDISK.SYS Format of DUBLDISK data record: Offset Size Description (Table 01530) 00h WORD (call) signature 4444h 02h BYTE (call) function 00h ??? 01h ??? ---function 00h--- 02h BYTE (ret) ??? 03h BYTE (ret) ??? ---function 01h--- 02h WORD (ret) 4444h 04h WORD allocation unit size??? 06h WORD ??? 08h WORD ??? 0Ah BYTE ??? Format of DUBLDISK signature data table: Offset Size Description (Table 01531) 00h 5 BYTEs ??? 05h BYTE first drive number 06h BYTE number of drives 07h ???Top
INT 21 - DBLSPACE.BIN - IOCTL - FLUSH OR INVALIDATE INTERNAL CACHES AX = 4404h BL = drive number (00h = default, 01h = A:, etc) CX = 000Ah (size of DSPACKET structure) DS:DX -> DSPACKET structure (see #01532) Return: CF clear if IOCTL successful -- check DSPACKET for actual status AX = number of bytes actually transferred CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=4405h"DBLSPACE",INT 2F/AX=4A11h/BX=0000h Format of DoubleSpace DSPACKET structure: Offset Size Description (Table 01532) 00h WORD signature 444Dh ("DM") 02h BYTE command code 46h ('F') flush internal caches 49h ('I') flush and invalidate internal caches 03h WORD result code (ret) 4F4Bh ("OK") if successful, else unchanged 05h 5 BYTEs paddingTop
INT 21 - DBLSPACE.BIN v6.2 - IOCTL - GET ??? FOR SPECIFIED DRIVE AX = 4404h BL = drive number (00h = default, 01h = A:, etc) CX = size of DSPACKET structure (ignored in DOS 6.2) DS:DX -> DSPACKET structure (see #01533) Return: CF clear if IOCTL successful -- check DSPACKET for actual status AX = number of bytes actually transferred CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=4405h"DBLSPACE",INT 2F/AX=4A11h/BX=0000h Format of DoubleSpace DSPACKET structure: Offset Size Description (Table 01533) 00h WORD signature 444Dh ("DM") 02h BYTE command code 53h ('S') get ??? for specified drive 03h WORD result code (ret) 4F4Bh ("OK") if successful, else unchanged 05h DWORD (ret) pointer to 96-byte ??? data 09h DWORD (ret) pointer to ??? data 0Dh 3 BYTEs reservedTop
INT 21 U - DoubleTools v1.0 - GET ??? AX = 4404h BL = drive number (00h = default, 01h = A:, etc) CX = 0006h DS:DX -> DoubleTools structure (see #01534) Return: CF clear if IOCTL successful -- check DSPACKET for actual status AX = number of bytes actually transferred CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Note: the Transporter device driver has the signature 55h 61h 50h 74h ("DaPt") twelve bytes after it beginning Format of DoubleTools structure: Offset Size Description (Table 01534) 00h WORD (call) signature 55h AAh (ret) signature 78h 70h ("xp") 02h WORD (call) signature 52h 16h (ret) ??? 04h WORD (ret) segment of driver's DS (same as its PSP)Top
INT 21 U - xDISK v3.31 - CONFIGURE AX = 4404h BL = drive number (00h = default, 01h = A:, etc) CX = 0047h (length of version string) DS:DX -> 79-byte buffer for version string and ??? DS:0081h = commandline containing new switches for driver Return: CF clear if successful AX = number of bytes actually transferred CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: xDISK is a shareware resizeable EMS RAMdisk by FM de Monasterio SeeAlso: AX=4405h"xDISK",INT 2F/AH=DDh/BX=7844h"xDISK"Top
INT 21 - COMBI-disk v1.13 - GET DATA RECORD AX = 4404h BL = drive number (00h = default, 01h = A:, etc) CX = 0032h (length of data packet) DS:DX -> buffer for data packet (see #01535) Return: CF clear if successful AX = number of bytes actually transferred CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: COMBI-disk is a shareware combination cache and RAMdisk sharing a single pool of memory by Vadim V. Vlasov InstallCheck: scan the valid drives for one which returns a correctly-sized data packet with the proper signature in the first field SeeAlso: AX=4405h"COMBI" Index: installation check;COMBI-disk Format of COMBI-disk data packet: Offset Size Description (Table 01535) 00h 6 BYTEs ASCIZ signature "COMBI" 06h WORD version (high byte = major, low = decimal minor version) 08h BYTE current options 09h BYTE sectors per allocation block 0Ah WORD maximum buffer in KB 0Ch WORD current buffer in KB (less than max if XMS memory being lent) 0Eh WORD total number of allocation blocks 10h WORD current number of allocation blocks 12h WORD number of blocks being used by RAM disk 14h WORD number of blocks being used by cache or unused 16h WORD number of dirty cache blocks 18h WORD number of blocks which could not be written out due to errors 1Ah WORD total number of read requests 1Ch WORD total number of sectors read 1Eh WORD number of BIOS read requests (cache misses) 20h WORD number of sectors read via BIOS (cache misses) 22h WORD total number of write requests 24h WORD total number of sectors written 26h WORD number of BIOS write requests 28h WORD number of sectors written via BIOS 2Ah WORD number of RAM disk read requests 2Ch WORD number of sectors read from RAM disk 2Eh WORD number of RAM disk write requests 30h WORD number of sectors written to RAM diskTop
INT 21 - SFS v1.00 - GET CONFIGURATION INFORMATION AX = 4404h BL = drive number (00h = default, 01h = A:, etc) CX = 001Ah (length of data packet) DS:DX -> buffer for data packet (see #01536) Return: CF clear if successful AX = number of bytes actually transferred CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: SFS (Secure FileSystem) is a shareware encrypting disk driver by Peter C. Gutmann SeeAlso: AX=4405h"SFS" Format of SFS data packet: Offset Size Description (Table 01536) 00h 4 BYTEs signature string "SFS1" 04h WORD SFS unit number (0-based) 06h WORD drive on which the SFS volume is mounted 08h DWORD sector offset of logical volume from start of physical volume 0 if logical volume = physical volume 0Ch WORD flag: 00h = no disk mounted, 01h = disk mounted 0Eh WORD flag: 00h read/write, 01h read-only 10h WORD quick-unmount hotkey (high byte = shift state, low = scan code) (see #00006) 12h WORD auto-unmount time in minutes, or 0000h if already expired, or FFFFh if not set 14h WORD time in minutes remaining before auto-unmount 16h WORD internal driver check code 0000h no error 0001h driver consistency check failed 0002h unit consistency check failed 18h WORD disk access mode 0000h BIOS 0001h IDE direct access 0002h SCSI direct accessTop
INT 21 - DOS 2+ - IOCTL - WRITE TO BLOCK DEVICE CONTROL CHANNEL AX = 4405h BL = drive number (00h = default, 01h = A:, etc) CX = number of bytes to write DS:DX -> data to write Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: format of data is driver-specific this function was not supported by Digital Research's DOS Plus SeeAlso: AX=4403h"DOS",AX=4404h"DOS",INT 2F/AX=122BhTop
INT 21 - Brian Antoine Seagate ST-01 SCSI.SYS - IOCTL - EXECUTE COMMANDS AX = 4405h BX = drive number (00h = default, 01h = A:, etc) CX = number of bytes to write DS:DX -> SCSIDISK control block (see also #01525 at AX=4403h"ST-01") Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=4403h"ST-01"Top
INT 21 U - DBLSPACE.BIN - IOCTL - FLUSH OR INVALIDATE INTERNAL CACHES AX = 4405h BL = drive number (00h = default, 01h = A:, etc) CX = 000Ah (size of DSPACKET structure) DS:DX -> DSPACKET structure (see #01537) Return: CF clear if IOCTL successful -- check DSPACKET for actual status AX = number of bytes actually transferred CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Note: this call is identical to the documented AX=4404h SeeAlso: AX=4404h"DBLSPACE",INT 2F/AX=4A11h/BX=0000h Format of DoubleSpace DSPACKET structure: Offset Size Description (Table 01537) 00h WORD signature 444Dh ("DM") 02h BYTE command code 46h ('F') flush internal caches 49h ('I') flush and invalidate internal caches 03h WORD result code (ret) 4F4Bh ("OK") if successful, else unchanged 05h 5 BYTEs paddingTop
INT 21 U - xDISK v3.31 - ??? AX = 4405h BL = drive number (00h = default, 01h = A:, etc) CX = number of bytes to write DS:DX -> buffer containing version string ??? Return: CF clear if successful AX = number of bytes actually transferred CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: xDISK is a shareware resizeable EMS RAMdisk by FM de Monasterio SeeAlso: AX=4404h"xDISK",INT 2F/AH=DDh/BX=7844h"xDISK"Top
INT 21 - COMBI-disk v1.13 - CONTROL COMBI-disk AX = 4405h BL = drive number (00h = default, 01h = A:, etc) for RAM disk CX = number of bytes to write DS:DX -> buffer containing command packet (see #01539) Return: CF clear if successful AX = number of bytes actually transferred CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=4404h"COMBI" (Table 01538) Values for COMBI-disk command code: 80h flush cache 81h change options byte 82h shrink memory 83h expand memory 84h get dirty block information 85h reset write errors 86h reset counters Format of COMBI-disk command packet: Offset Size Description (Table 01539) 00h WORD version 02h BYTE command code (see #01538) ---command code 80h--- no additional fields ---command code 81h--- 03h BYTE new options byte (see #01540) ---command code 82h--- 03h WORD number of KB to release ---command code 83h--- 03h WORD number of KB to expand ---command code 84h--- 03h DWORD -> buffer for block info (see #01541) ---command code 85h--- 03h DWORD block ID ---command code 86h--- 03h BYTE which counters to reset bit 0: hard disk read counts bit 1: hard disk write counts bit 2: RAM disk read/write counts Note: multiple commands may be placed in a single packet by stringing together as many command/argument pairs as desired Bitfields for COMBI-disk options byte: Bit(s) Description (Table 01540) 0 cache off 1 cache frozen 2 write caching enabled 3 delayed writing disabled 5 fix memory allocation (no XMS lending) 6 no 'sector not found' error Format of COMBI-disk block info: Offset Size Description (Table 01541) 00h DWORD block ID 04h BYTE bitmask of valid sectors in block 05h BYTE bitmask of dirty sectors in block 06h BYTE last error returned by BIOS 07h BYTE number of errorsTop
INT 21 - SFS v1.00 - DRIVER CONTROL AX = 4405h BL = drive number (00h = default, 01h = A:, etc) CX = number of bytes to write DS:DX -> data to write (see #01543) Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: SFS (Secure FileSystem) is a shareware encrypting disk driver by Peter C. Gutmann SeeAlso: AX=4404h"SFS" (Table 01542) Values for SFS control function: 00h "PACKET_SET_DISKINFO" set disk parameters 01h "PACKET_SET_KEYINFO" set keying information 02h "PACKET_SET_READONLY" select read/write or read-only 03h "PACKET_SET_DRIVENO" set drive number to mount 04h "PACKET_SET_MOUNTSTATUS" set mount status 05h "PACKET_SET_UNMOUNT" set/clear quick-unmount hotkey 06h "PACKET_SET_TIMEOUT" set/clear auto-unmount timeout Format of SFS control data packet: Offset Size Description (Table 01543) 00h WORD signature 4330h ('C0') 02h WORD function (see #01542) ---function 00h--- 04h WORD sector size in bytes 06h BYTE sectors per cluster 07h WORD number of boot sectors 09h BYTE number of copies of FAT 0Ah WORD size of root directory in entries 0Ch WORD number of sectors on disk, 16-bit 0Eh BYTE media descriptor byte 0Fh WORD sectors per FAT 11h WORD sectors per track 13h WORD number of heads 15h DWORD number of hidden sectors 19h DWORD number of sectors on disk, 32-bit ---function 01h--- 04h 20 BYTEs master IV for encrypted disk 18h 64 BYTEs NDC/SHS keying information ---function 02h--- 04h WORD read-only state: 00h read-only, 01h read/write ---function 03h--- 04h WORD drive number (see #01544) 06h DWORD sector offset of logical volume from start of physical volume 0 if logical volume = physical volume ---function 04h--- 04h WORD mount status (00h unmounted, 01h mounted) ---function 05h--- 04h WORD hotkey (high byte = shift state, low byte = scan code or 00h) (see #00006) 0000h to disable hotkey ---function 06h--- 04h WORD timeout in minutes before automatic unmount 0000h to disable auto-unmount Notes: the data for function 00h corresponds to a DOS BPB (see AH=53h) functions 00h, 01h, and 03h automatically unmount the encrypted drive unmounting a drive with function 04h also destroys the encryption information in the driver and forces all dirty buffers to be flushed Bitfields for SFS drive number: Bit(s) Description (Table 01544) 15-12 drive access mode 0000 BIOS access 0001 direct IDE access 0010 direct SCSI access ---if BIOS access--- 11-8 unused (0) 7-0 BIOS drive number ---if IDE access--- 11-8 unused (0) 7-0 IDE drive number ---if SCSI access--- 11-8 SCSI host number 7-4 SCSI target ID 3-0 SCSI logical unit numberTop
INT 21 U - SUPERSTOR - IOCTL - INSTALL CHECK AX = 4405h BL = drive number (00h = default, 01h = A:, etc) (BH = 0???) CX = 000Ch (size of SuperStor packet structure) DS:DX -> SuperStor packet structure (see #04114) Return: CF clear if IOCTL successful -- check SuperStor packet for actual status AX = number of bytes actually transferred??? CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Note: This function is called with CX = 0008h for command 06h by NWCACHE although the Request Packet can be larger. WINSWAP.SYS calls it with 000Ch - also for command 06h. Format of SuperStor packet: Offset Size Description (Table 04114) 00h WORD (call) product signature AA55h (ret) result code, 0000h if successful 02h BYTE (call) SuperStor product ID (01h) 03h BYTE (call) SuperStor command parameter: 06h = get compressed drive structure / drive parameters 07h = return the compressed length of a file 08h = return real drive ID for swapped drive 09h = validate the contents of the cluster 0Bh = checks whether deleted cluster is free 0Ch = reallocate previously deleted cluster 0Dh = read absolute sector from the drive 0Eh = write absolute sector to the drive 0Fh = instruct the driver to rebuild tables 10h = flush any cached Replacement Block Table (RBT) sectors to the drive ---command 06h--- 04h DWORD (ret) pointer to SuperStor CVF's compressed unit structure (see #04115) 08h DWORD (ret) pointer to internal status structure ---command 07h--- 04h DWORD (ret) size of file in bytes 08h WORD (ret) first cluster number ---command 08h--- 04h BYTE (ret) swapped drive (0-based) ---commands 09h,0Bh,0Ch--- 04h WORD (call) cluster ---commands 0Dh,0Eh--- 04h DWORD (call) first logical sector to transfer 08h WORD (call) number of logical sectors to transfer 0Ah DWORD (call) pointer to buffer ---command 0Fh--- 04h WORD (call) temporary buffer area ---command 10h--- no additional parameters Format of SuperStor CVF compressed unit structure: Offset Size Description (Table 04115) 00h 31 BYTEs BIOS parameter block for compressed drive (see #01663) 1Fh 5 BYTEs reserved for future expansion of the BPB 24h 33 BYTEs DOS 4-6 style drive parameter block for compressed drive (see #01395) 45h 2 BYTEs reserved for future expansion of the DPB 47h WORD first sector of relocation table (RBT) 49h WORD first sector of file allocation table 4Bh WORD first sector of the data area 4Dh BYTE sec2byteshift 4Eh 2 BYTEs ??? Note: Reportedly these two bytes did not exist in ADDSTOR's specification, so the whole structure would have been documented differently. 50h WORD sectors per cluster 52h BYTE sector shift 53h WORD compression ratio 55h DWORD number of physical sectors in the host file 59h WORD OS version 5Bh BYTE SuperStor level 5Ch BYTE unknown??? 5Dh BYTE flags bits 7-1: ??? bit 0: drive is mounted 5Eh BYTE unknown??? 5Fh DWORD pointer to CVF's underlaying host DCB this should be the physical DPB for this unit -> +00h BYTE host unit DOS unit number +01h BYTE CVF's driver host subunit number Note: As this SuperStor compressed unit structure's structure is located within the segment the SuperStor driver has occupied, the segment value of its address can be used as an installation check, since it contains the signature "ADDSTOR" at offset 20h in the SuperStor driver. This is used by Novell DOS 7 WINSWAP.SYS to check for the presence of SuperStor. SeeAlso: #04114 Index: installation check;SuperStorTop
INT 21 - DOS 2+ - IOCTL - GET INPUT STATUS AX = 4406h BX = file handle Return: CF clear if successful AL = input status 00h not ready (device) or at EOF (file) FFh ready AH may be destroyed (refer to note) CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: files may not register as being at EOF if positioned there by AH=42h under DOS 5.0, on a successful return, AH contains either the next character which will be read or 1Ah if at EOF; under a Windows95 DOS box, AH seems to be either unchanged or 00h this function was not supported by Digital Research's DOS Plus BUG: the CLOCK$ device under DR DOS 3.41 always indicates 'Ready'; this was corrected in v5.0 SeeAlso: AX=4407h,INT 2F/AX=122BhTop
INT 21 - DOS 2+ - IOCTL - GET OUTPUT STATUS AX = 4407h BX = file handle Return: CF clear if successful AL = input status 00h not ready FFh ready CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: for DOS 2+, files are always ready for output, even if the disk is full or no media is in the drive this function was not supported by Digital Research's DOS Plus SeeAlso: AX=4406h,INT 2F/AX=122BhTop
INT 21 - DOS 3.0+ - IOCTL - CHECK IF BLOCK DEVICE REMOVABLE AX = 4408h BL = drive number (00h = default, 01h = A:, etc) Return: CF clear if successful AX = media type (0000h removable, 0001h fixed) CF set on error AX = error code (01h,0Fh) (see #01680 at AH=59h/BX=0000h) Notes: in addition to the normal operation, if Stacker is installed, this call also sets the volume number at offset 58h in the Stacker device driver (except under DR DOS 3.41-5.0, which do not pass through this call to the driver; use AX=440Eh instead) (see AX=4404h"Stacker",AX=440Eh,INT 25/AX=CDCDh) this function was not supported by Digital Research's DOS Plus SeeAlso: AX=4400h,AX=4404h"Stacker",AX=4409h,INT 2F/AX=122BhTop
INT 21 - DOS 3.1+ - IOCTL - CHECK IF BLOCK DEVICE REMOTE AX = 4409h BL = drive number (00h = default, 01h = A:, etc) Return: CF clear if successful DX = device attribute word bit 15: drive is SUBSTituted bit 13: (DR DOS 3.41/5.0 local drives only) always set media ID needed bit 12: drive is remote bit 9: direct I/O not allowed CF set on error AX = error code (01h,0Fh,15h) (see #01680 at AH=59h/BX=0000h) Notes: on local drives, DX bits not listed above are the attribute word from the device driver header (see #01646 at AH=52h); for remote drives, the other bits appear to be undefined for MS-DOS versions prior to 5.0 (they are all cleared in DOS 5+) checking whether DX=0800h on return appears to be a fairly reliable method for detecting Microsoft's RAMDRIVE, though not for other ramdisks (there appears to be no simple yet foolproof method for detecting ramdisks, although the presence of only a single copy of the FAT and only a single head on non-removable devices is a fairly good indicator); for Windows95, RAMDRIVE returns DX=4800h for non-existent remote drives, this function sometimes returns AX=0015h (drive not ready) instead of AX=000Fh (invalid drive) on the first call; a subsequent call will return the correct error code this function was not supported by Digital Research's DOS Plus SeeAlso: AX=4400h,AX=4408h,AX=440Ah,INT 2F/AX=122BhTop
INT 21 - DOS 3.1+ - IOCTL - CHECK IF HANDLE IS REMOTE AX = 440Ah BX = handle Return: CF clear if successful DX = attribute word (as stored in SFT) bit 15: set if remote bit 14: date/time not set on close CF set on error AX = error code (01h,06h) (see #01680 at AH=59h/BX=0000h) Notes: if file is remote, Novell Advanced NetWare 2.0 returns the number of the file server on which the handle is located in CX DR DOS 3.41 and 5.0 clear all bits of DX except bit 15; Novell DOS 7 fully supports this function this function was not supported by Digital Research's DOS Plus SeeAlso: AX=4400h,AX=4409h,AH=52h,INT 2F/AX=122BhTop
INT 21 - DOS 3.1+ - IOCTL - SET SHARING RETRY COUNT AX = 440Bh CX = pause between retries (default 1) DX = number of retries (default 3) Return: CF clear if successful CF set on error AX = error code (01h) (see #01680 at AH=59h/BX=0000h) Notes: delay is dependent on processor speed (value in CX specifies number of 64K-iteration empty loops to execute) if DX=0000h on entry, the retry count is left unchanged this function was not supported by Digital Research's DOS Plus SeeAlso: AH=52h,INT 2F/AX=1224h,INT 2F/AX=122BhTop
INT 21 - DOS 3.2+ - IOCTL - GENERIC CHARACTER DEVICE REQUEST AX = 440Ch BX = device handle CH = category code (see #01545) CL = function number (see #01546) DS:DX -> parameter block (see #01547,#01548,#01549,#01550,#01551,#01552) SI = parameter to pass to driver (European MS-DOS 4.0, OS/2 comp box) DI = parameter to pass to driver (European MS-DOS 4.0, OS/2 comp box) Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful DS:DX -> iteration count if CL=65h SI = returned value (European MS-DOS 4.0, OS/2 comp box) DI = returned value (European MS-DOS 4.0, OS/2 comp box) Note: DR DOS 3.41 and 5.0 return error code 16h on CL=45h,65h if the device does not support a retry counter SeeAlso: AX=440Dh"DOS 3.2+",INT 2F/AX=0802h,INT 2F/AX=122Bh,INT 2F/AX=14FFh SeeAlso: INT 2F/AX=1A01h (Table 01545) Values for IOCTL category code: 00h unknown (DOS 3.3+) 01h COMn: (DOS 3.3+) 02h reserved for terminal control 03h CON (DOS 3.3+) 04h reserved for keyboard control 05h LPTn: 07h mouse control (European MS-DOS 4.0) 08h reserved for disk control -- same as for block devices (see INT 21/AX=440Dh) 9Eh Media Access Control driver (STARLITE) 00h-7Fh reserved for Microsoft 80h-FFh reserved for OEM/user-defined SeeAlso: #01558 (Table 01546) Values for generic character IOCTL function: 00h MAC driver Bind (STARLITE) (see #01547) 40h DOS 3??? only: was reserved for set screen mode (see #04116) 45h set iteration (retry) count (see #01548) 4Ah select code page (see #01549) 4Ch start code-page preparation (see #01550) 4Dh end code-page preparation (see #01551) 5Fh set display information (DOS 4.0+) (see #01552) 60h DOS 3??? only: was reserved for get screen mode (see #04116) 65h get iteration (retry) count 6Ah query selected code page (see #01549) 6Bh query codepage prepare list (DOS 4.0+) (see #01553) 7Fh get display information (DOS 4.0+) (see #01552) Note: bit assignments for function code: bit 7: set to ignore if unsupported, clear to return error bit 6: set if passed to driver, clear if intercepted by DOS bit 5: set if queries data from device, clear if sends command (by convention, if a function both queries and sends data, bit 5 should be clear) bits 4-0: subfunction Format of parameter block for function 00h: Offset Size Description (Table 01547) 00h 8 BYTEs ASCIZ signature "STARMAC" 08h WORD version 0Ah WORD flags bit 0: media requires connect or listen request before use bit 1: network is a LAN (broadcast/multicast supported) bit 2: point-to-point network 0Ch WORD handle for use with MAC driver's private interface (filled in by MAC driver) 0Eh WORD context 10h WORD approximate speed in KB/sec (filled in by MAC driver) 12h WORD approximate cost in cents per hour (filled in by MAC driver) 14h WORD maximum packet size in bytes (filled in by MAC driver) 16h WORD addressing format (filled in by MAC driver) 0000h general addressing 0001h Ethernet addressing 0002h Token Ring addressing 0003h Token Bus addressing 18h DWORD Send entry point (filled in by MAC driver) 1Ch DWORD RegisterEventHandler entry point (filled in by MAC driver) 20h DWORD SetPacketFilter entry point (filled in by MAC driver) 24h DWORD UnBind entry point (filled in by MAC driver) Format of parameter block for DOS 3??? screen mode functions 40h and 60h: Offset Size Description (Table 04116) 00h WORD length of folowing data (0009h) 02h BYTE mode type 03h WORD number of colors 05h WORD width 07h WORD height Note: these functions appear never to have been released to the public SeeAlso: #01546 Format of parameter block for function 45h: Offset Size Description (Table 01548) 00h WORD number of times output is attempted before driver assumes device is busy Format of parameter block for functions 4Ah and 6Ah: Offset Size Description (Table 01549) 00h WORD length of data 02h WORD code page ID (see #01757 at INT 21/AX=6602h) 04h 2N BYTEs DCBS (double byte character set) lead byte range start/end for each of N ranges (DOS 4.0) WORD 0000h end of data (DOS 4.0) Format of parameter block for function 4Ch: Offset Size Description (Table 01550) 00h WORD flags DISPLAY.SYS = 0000h PRINTER.SYS bit 0 clear to prepare downloaded font, set to prepare cartridge selection 02h WORD length of remainder of parameter block 04h WORD number of code pages following 06h N WORDs code page 1,...,N Format of parameter block for function 4Dh: Offset Size Description (Table 01551) 00h WORD length of data 02h WORD code page ID (see #01757 at INT 21/AX=6602h) Format of parameter block for functions 5Fh and 7Fh: Offset Size Description (Table 01552) 00h BYTE level (0 for DOS 4.x-6.0) 01h BYTE reserved (0) 02h WORD length of following data (14) 04h WORD control flags bit 0 set for blink, clear for intensity bits 1-15 reserved 06h BYTE mode type (1=text, 2=graphics) 07h BYTE reserved (0) 08h WORD colors 0000h = monochrome else N bits per pixel 0Ah WORD pixel columns 0Ch WORD pixel rows 0Eh WORD character columns 10h WORD character rows Format of parameter block for function 6Bh: Offset Size Description (Table 01553) 00h WORD length of following data 02h WORD number of hardware code pages 04h N WORDs hardware code pages 1,...,N WORD number of prepared code pages N WORDs prepared code pages 1,...,NTop
INT 21 - Greg Shenaut ASPITAPE.SYS - INTERFACE AX = 440Ch BX = device handle CH = category code 07h tape (ASPITAPE.SYS) CL = function 01h "mtop" - perform tape operation 02h "mtget" - get tape status 03h ignore end-of-tape errors 04h enable end-of-tape errors DS:DX -> parameter block (see #01554,#01555) Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful DS:DX -> data block Notes: This device driver is a simple DOS interface to the Adaptec Advanced SCSI Programming Interface (ASPI). It provides the following device names as access to the SCSI tape, 'RMTx' (rewind on close) and 'NRMTx' (NO rewind on close) where x can go from 0 to 3. There may also be the following names 'MTx' and 'NMTx' which default to 1024 byte blocks. The names may also have a '$' appended to try and make them unique from file names of 'RMT0' etc. once opend these devices must be put into RAW mode SeeAlso: AX=4402h"ASPI" Format of ASPITAPE.SYS mtop parameter block: Offset Size Description (Table 01554) 00h WORD operation code 00h "MTWEOF" - write an end-of-file record 01h "MTFSF" - forward space file 02h "MTBSF" - backward space file 03h "MTFSR" - forward space record 04h "MTBSR" - backward space record 05h "MTREW" - rewind 06h "MTOFFL" - rewind and unload 07h "MTNOP" - perform TEST UNIT READY 02h DWORD repetition count Format of ASPITAPE.SYS mtget parameter block: Offset Size Description (Table 01555) 00h BYTE ASPI host ID 01h BYTE SCSI target ID 02h BYTE SCSI logical unit number 03h BYTE device parameters bit 0: drive must use fixed-block read and write bit 7: drive is an ASPI device 04h BYTE current device state (see #01556) 05h BYTE unit number within driver 06h WORD fixed block blocksize 08h BYTE last SCSI status 09h BYTE last SCSI sense key 0Ah WORD last SCSI opcode (packed) (see #01557) 0Ch WORD residual bytes from SCSI opcode Bitfields for ASPITAPE.SYS current device state: Bit(s) Description (Table 01556) 0 device currently opened in buffered mode 1 drive currently opened in nonbuffered mode 2 rewind drive on last close 3 drive has been written on 4 drive has been read from 5 next read will return 0 bytes 6 EOM will resemble EOF 7 drive may be busy rewinding Bitfields for SCSI opcode: Bit(s) Description (Table 01557) 0-7 SCSI operation (SCSI packet byte 0) 8-10 SCSI flags (SCSI packet byte 1) 11-12 ASPI "Direction Bits" (ASPI SRB byte 3)Top
INT 21 - DOS 3.2+ - IOCTL - GENERIC BLOCK DEVICE REQUEST AX = 440Dh BL = drive number (00h=default,01h=A:,etc) CH = category code (see #01558) CL = minor code (function) (see #01559) DS:DX -> (DOS) parameter block (see #01560,#01562,#01563,#01564,#01565) SI:DI -> (OS/2 comp box) parameter block (see #01566,#01568,#01569,#01572) Return: CF set on error AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h) CF clear if successful DS:DX -> data block if CL=60h or CL=61h Notes: DOS 4.01 seems to ignore the high byte of the number of directory entries in the BPB for diskettes. functions 46h and 66h undocumented in DOS 4.x, documented for DOS 5+ the DUBLDISK.SYS v2.6 driver only supports minor codes 60h and 67h DR DOS 3.41-6.0 only support minor codes 40h-42h and 60h-62h; all other minor codes return error code 16h some PCMCIA calls reportedly appear to be dangerous for MS-DOS versions prior to 5.0 minor code 60h normally produces no I/O except with AutoMount=1 for DBLSPACE/DRVSPACE SeeAlso: AX=440Ch,AX=440Dh/CX=084Ah,AX=440Dh/CX=0871h,AH=69h,INT 2F/AX=0802h SeeAlso: INT 2F/AX=122Bh (Table 01558) Values for block device IOCTL category code: 08h disk drive 48h FAT32 disk drive 00h-7Fh reserved for Microsoft 80h-FFh reserved for OEM/user-defined (Table 01559) Values for generic block IOCTL minor code: 00h (OS/2) \ used to lock/unlock a drive 01h (OS/2) / 40h set device parameters (see #01560) 41h write logical device track (see #01562) 42h format and verify logical device track (see #01563) 46h (DOS 4.0+) set volume serial number (see #01565,AH=69h) 47h (DOS 4.0+) set access flag (see #01566) 48h (Enh. Disk Drive Spec) set media lock state (see #01567,INT 13/AH=45h) 49h (Enh. Disk Drive Spec) eject media in drive (see INT 13/AH=49h) no parameter block required 4Ah (MS-DOS 7.0) lock logical volume (see AX=440Dh/CX=084Ah) 4Bh (MS-DOS 7.0) lock physical volume (see AX=440Dh/CX=084Bh) 50h (PCMCIA) attribute memory write 51h (PCMCIA) common memory write 52h (PCMCIA) force media change (DOS 5+ ???) (see #01568) 53h (PCMCIA) erase drive 54h (PCMCIA) erase media 56h (PCMCIA) set erase status callback 57h (PCMCIA) append Card Information Structure (CIS) tuple 58h (PCMCIA) erase CIS tuples 60h get device parameters (see #01560) 61h read logical device track (see #01562) 62h verify logical device track (see #01564) 66h (DOS 4.0+) get volume serial number (see #01565,AH=69h) 67h (DOS 4.0+) get access flag (see #01566) 68h (DOS 5.0+) sense media type (see #01569) 6Ah (MS-DOS 7.0) unlock logical volume (see AX=440Dh/CX=086Ah) no parameter block required 6Bh (MS-DOS 7.0) unlock physical volume (see AX=440Dh/CX=086Bh) no parameter block required 6Ch (MS-DOS 7.0) get lock flag (see AX=440Dh/CX=086Ch) no parameter block required 6Dh (MS-DOS 7.0) enumerate open files (see AX=440Dh/CX=086Dh) 6Eh (MS-DOS 7.0) find swap file (see AX=440Dh/CX=086Eh) 6Fh (MS-DOS 7.0) get drive map information (see #01570) 70h (PCMCIA) attribute memory read 70h (MS-DOS 7.0) get current lock state (see AX=440Dh/CX=0870h) no parameter block required 71h (MS-DOS 7.0) get first cluster (see AX=440Dh/CX=0871h) 73h (PCMCIA) get memory media information (DOS 5+ ???) (see #01572) 76h (PCMCIA) get erase status callback 77h (PCMCIA) get first Card Information Structure (CIS) tuple 78h (PCMCIA) get next CIS tuple 7Fh (PCMCIA) get ??? information (see #01573,#01574) Format of parameter block for functions 40h, 60h: Offset Size Description (Table 01560) 00h BYTE special functions bit 0 set if function to use current BPB, clear if Device BIOS Parameter Block field contains new default BPB bit 1 set if function to use track layout fields only must be clear if CL=60h bit 2 set if all sectors in track same size (should be set) bits 3-7 reserved (MS-DOS, Novell DOS 7) bit 5: skip head settling time (WinDOS 2.11) bit 6: format access flag (WinDOS 2.11) 01h BYTE device type (see #01561) 02h WORD device attributes bit 0 set if nonremovable medium bit 1 set if door lock ("changeline") supported bits 2-15 reserved 04h WORD number of cylinders 06h BYTE media type for 1.2M drive 00h 1.2M disk (default) 01h 320K/360K disk F8h for DUBLDISK.SYS v2.6 expanded drives always 00h for other drive types 07h 31 BYTEs device BPB (see #01663 at AH=53h), bytes after BPB offset 1Eh omitted; final six bytes only transferred on function 40h with BYTE 00h bit 0 set for MS-DOS 5.0 ---function 40h only--- 26h WORD number of sectors per track (start of track layout field) (maximum 63) 28h N word pairs: number,size of each sector in track ---category code 48h (FAT32), function 40h--- 07h 53 BYTEs extended BPB (see #01664) 3Ch 32 BYTEs reserved 5Ch WORD number of track table entries 5Eh 2N WORDs sector table (word pairs: number/size of each sector in track) ---category code 48h (FAT32), function 60h--- 07h 53 BYTEs extended BPB (see #01664) 3Ch 32 BYTEs reserved (Table 01561) Values for device type: 00h 320K/360K 5.25-inch floppy disk 01h 1.2M 5.25-inch floppy disk 02h 720K floppy disk 03h single-density 8-inch disk 04h double-density 8-inch disk 05h fixed disk 06h tape drive 07h (DOS 3.3+) other type of block device, normally 1.44M floppy 08h read/write optical disk 09h (DOS 5+) 2.88M 3.5-inch floppy FFh (some DOS 5 betas) 2.88M 3.5-inch floppy Format of parameter block for functions 41h, 61h: Offset Size Description (Table 01562) 00h BYTE special functions (reserved, must be zero) 01h WORD number of disk head 03h WORD number of disk cylinder 05h WORD number of first sector to read/write 07h WORD number of sectors 09h DWORD transfer address Note: under Windows95, a volume must be locked (see AX=440Dh/CX=084Bh) in order to perform direct accesses such as track reads and writes with this IOCTL function Format of parameter block for function 42h: Offset Size Description (Table 01563) 00h BYTE reserved, must be zero (DOS <3.2) bit 0=0: format/verify track 1: format status call (DOS 3.2+), don't actually format bit 1: format multiple tracks, require additional WORD (hard disks only) bits 2-7 reserved, must be zero value on return (DOS 3.3+): 00h specified tracks, sectors/track supported by BIOS 01h function not supported by BIOS 02h specified tracks, sectors/track not allowed for drive 03h no disk in drive 01h WORD number of disk head 03h WORD number of disk cylinder ---BYTE 00h bit 1 set--- 05h WORD number of tracks to format Format of parameter block for function 62h: Offset Size Description (Table 01564) 00h BYTE reserved, must be zero (DOS <3.2) bit 0=0: verify single track 1: verify multiple tracks bits 1-7 reserved, must be zero value on return (DOS 3.3+): 00h specified tracks, sectors/track supported by BIOS 01h function not supported by BIOS 02h specified tracks, sectors/track not allowed for drive 03h no disk in drive 01h WORD number of disk head 03h WORD number of disk cylinder 05h WORD number of tracks to verify (equivalent to 255 or fewer sectors) Format of parameter block for functions 46h, 66h: Offset Size Description (Table 01565) 00h WORD (call) info level (should be 0000h) 02h DWORD disk serial number (binary) 06h 11 BYTEs volume label or "NO NAME " 11h 8 BYTEs filesystem type "FAT12 " or "FAT16 " (generally CL=66h only, but MS-DOS 5.0 will write the given filesystem type to the disk) Note: under MS-DOS 7.0 or a Windows95 DOS box, the volume label field can return as all blanks even when a volume label has been set (the Win95 installation seems to blank the volume label field in the partition boot sector; once LABEL has been run, the volume label is reported correctly) SeeAlso: AH=69h Format of parameter block for functions 47h, 67h: Offset Size Description (Table 01566) 00h BYTE special-function field (must be zero) 01h BYTE disk-access flag, nonzero if access allowed by driver Format of parameter block for function 48h: Offset Size Description (Table 01567) 00h BYTE (call) locking operation 00h lock media in drive 01h unlock media 02h get locking status 01h BYTE (ret) drive's lock status (number of pending locks on drive) Note: also supported by MS-DOS 7.0+ Format of parameter block for function 52h: 00h BYTE (call) unused??? (Table 01568) (ret) 00h if flash/ATA drive but no card inserted unchanged otherwise Notes: the absense of a flash card should be tested by checking the DOS error code rather than the returned byte the parameter byte is cleared to 00h erroneously by the Award PCDISK.EXE v1.02c PCMCIA/ATA driver if no ATA card is inserted (bug corrected in PCDISK.EXE v1.02h and later) not supported by the SystemSoft ATADRV.EXE and the Phoenix PCMATA.SYS PCMCIA/ATA drivers Format of parameter block for function 68h: Offset Size Description (Table 01569) 00h BYTE 01h for default media type, 00h for any other media type (see also INT 13/AH=20h"Compaq") 01h BYTE 02h for 720K, 07h for 1.44M, 09h for 2.88M Format of parameter block for function 6Fh: Offset Size Description (Table 01570) 00h BYTE (call) length of this buffer (in bytes) 01h BYTE (ret) number of bytes in parameter block actually used 02h BYTE (ret) drive flags (see #01571) 03h BYTE (ret) physical drive number 00h-7Fh floppy 80h-FEh hard FFh no physical drive 04h DWORD (ret) bitmap of logical drives associated with physical drive bit 0 = drive A:, etc. 08h QWORD (ret) relative block address of partition start Bitfields for Get Drive Map Information drive flags: Bit(s) Description (Table 01571) 0 protected-mode driver for logical drive 1 protected-mode driver in use for physical drive corresponding to the logical drive 2 drive available only in protected mode 3 protected-mode drive supports media ejection 4 drive issues media insertion and removal notifications SeeAlso: #01570 Format of parameter block for function 73h: Offset Size Description (Table 01572) 00h BYTE ??? 00h ATA card inserted ??? 80h ATA card not inserted ??? 01h BYTE length of parameter block ??? apparently always 40h 02h BYTE ??? 00h ATA card not inserted ??? 0Dh ATA card inserted ??? 03h 2 BYTEs ??? (apparently always 00h) 05h BYTE drive number (0=first) ??? 06h BYTE total number of drives ??? 07h BYTE ??? 00h ATA card not inserted ??? 01h ATA card inserted ??? 08h 17 BYTEs ??? 19h BYTE ??? 00h ATA card not inserted ??? 01h ATA card inserted ??? 1Ah BYTE ??? (apparently always 01h) 1Bh BYTE ??? 00h ATA card not inserted ??? 01h ATA card inserted ??? 1Ch 2 BYTEs ??? (apparently always 0015h) 1Eh 2 BYTEs ??? 20h 2 BYTEs ??? (apparently always 0110h) 22h 15 BYTEs ??? 31h 2 BYTEs ??? (apparently always 7000h) 33h 11 BYTEs driver signature "AWARD PDISK" for Award PCDISK.EXE PCMCIA/ATA driver "MS-BIOS " for HP 200LX generic ATA driver 3Eh 2 BYTEs ??? Notes: parameter structure possibly depends on driver this function is not supported by the SystemSoft ATADRV.EXE and the Phoenix PCMATA.SYS PCMCIA/ATA drivers Format of parameter block for function 7Fh for SystemSoft ATADRV.EXE: Offset Size Description (Table 01573) 00h DWORD -> unknown location within driver Note: function supported by the SystemSoft ATADRV.EXE PCMCIA/ATA driver but not by the Award PCDISK.EXE PCMCIA/ATA driver SeeAlso: #01574 Format of parameter block for function 7Fh for Phoenix PCMATA.SYS: Offset Size Description (Table 01574) 00h 8 BYTEs ??? Note: this function supported by the Phoenix PCMATA.SYS PCMCIA/ATA driver but not by the Award PCDISK.EXE PCMCIA/ATA driver SeeAlso: #01573Top
INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - LOCK LOGICAL VOLUME AX = 440Dh CX = 084Ah / 484Ah (category code 08h for FAT12/16, 48h for FAT32; minor code 4Ah) BL = drive number (01h=A:,02h=B:,etc) BH = lock level (00h-04h) DX = drive permissions (see #01575) for Level 1 lock or second Level 0 lock when formatting Return: CF set on error AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h) CF clear if successful Notes: the logical volume must be locked before direct disk accesses are permitted by Windows95/98 the commandline LOCK issues a level 4 lock Windows98 only permits lock levels 0 and 4 BUG: Windows98 will return an error (invalid function) if the specified drive number is zero or more than 32, but only allocated 26 bytes for recording locks, so BL=1Bh..20h will trash internal data structures SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=084Bh,AX=440Dh/CX=086Ah SeeAlso: AX=440Dh/CX=086Ch Bitfields for drive permissions: Bit(s) Description (Table 01575) 0 allow writes 1 disallow new file mappings 2 volume locked for formattingTop
INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - LOCK PHYSICAL VOLUME AX = 440Dh CX = 084Bh / 484Bh (category code 08h for FAT12/16, 48h for FAT32; minor code 4Bh) BH = logical drive number (00h = default, 01h = A:, etc.) BL = lock level (00h-03h) DX = drive permissions (see #01575) for Level 1 lock or second Level 0 lock when formatting Return: CF set on error AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h) CF clear if successful Desc: lock all logical volumes on the same physical volume as the indicated drive Note: the physical volume must be locked before direct disk writes via INT 13 are permitted by Windows95 SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=084Ah,AX=440Dh/CX=086Bh SeeAlso: AX=440Dh/CX=086ChTop
INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - UNLOCK LOGICAL VOLUME AX = 440Dh CX = 086Ah / 486Ah (category code 08h for FAT12/16, 48h for FAT32; minor code 6Ah) BL = drive number (00h=default,01h=A:,etc) Return: CF set on error AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h) CF clear if successful Note: the logical volume must be locked before direct disk accesses via INT 13 are permitted by Windows95 BUG: Windows98 will return an error (invalid function) if the specified drive number is zero or more than 32, but only allocated 26 bytes for recording locks, so BL=1Bh..20h will trash internal data structures SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=084Ah,AX=440Dh/CX=086BhTop
INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - UNLOCK PHYSICAL VOLUME AX = 440Dh CX = 086Bh / 486Bh (category code 08h for FAT12/16, 48h for FAT32; minor code 6Bh) BH = logical drive number (00h = default, 01h = A:, etc.) Return: CF set on error AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h) CF clear if successful Desc: lock all logical volumes on the same physical volume as the indicated drive SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=084Bh,AX=440Dh/CX=086AhTop
INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - GET LOCK FLAG STATE AX = 440Dh CX = 086Ch / 486Ch (category code 08h for FAT12/16, 48h for FAT32; minor code 6Ch) BL = drive number (00h=default,01h=A:,etc) Return: CF set on error AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h) CF clear if successful AX = access flag (see #01576) SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=084Ah,AX=440Dh/CX=084Bh SeeAlso: AX=440Dh/CX=0870h (Table 01576) Values for drive access flag: 0000h no writes/file mappings since last call 0001h write operation has occurred since last call 0002h file mapping has occurred since last call Note: function 6Ch resets the access flag every time it is calledTop
INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - ENUMERATE OPEN FILES AX = 440Dh CX = 086Dh / 486Dh (category code 08h for FAT12/16, 48h for FAT32; minor code 6Dh) BL = drive number (00h=default,01h=A:,etc) DS:DX -> buffer for ASCIZ pathname SI = file index (0000h to number of open files-1) DI = enumeration type (0000h all files, 0001h unmovable files) Return: CF set on error AX = error code (01h,02h,12h,etc.) (see #01680 at AH=59h/BX=0000h) 0012h if file index is out of range CF clear if successful AX = file open mode (BX from AX=6C00h or AX=716Ch) CX = file type (see #01577) SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=084Ah,AX=440Dh/CX=086Ch SeeAlso: AX=440Dh/CX=086Eh,AX=6C00h,AX=716Ch (Table 01577) Values for file type: 0000h normal file 0001h memory-mapped file (unmovable) 0002h unmovable file 0004h swap fileTop
INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - FIND SWAP FILE AX = 440Dh CX = 086Eh / 486Eh (category code 08h for FAT12/16, 48h for FAT32; minor code 6Eh) BL = drive number (00h=default,01h=A:,etc) DS:DX -> buffer for ASCIZ pathname SI = file index DI = enumeration type Return: CF set on error AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h) CF clear if successful AX = pager type 0001h no pager 0002h paging through MS-DOS 0003h protected-mode pager CX:BX = swap file size in 4K pages SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=086DhTop
INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - GET CURRENT LOCK STATE AX = 440Dh CX = 0870h / 4870h (category code 08h for FAT12/16, 48h for FAT32; minor code 70h) BL = drive number (00h=default,01h=A:,etc) Return: CF set on error AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h) CF clear if successful AX = current lock level (0-3) or FFFFh if not locked CX = lock permissions if AX<>FFFFh (see #01575) SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=086ChTop
INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - GET FIRST CLUSTER AX = 440Dh CX = 0871h / 4871h (category code 08h for FAT12/16, 48h for FAT32; minor code 71h) BX = filename character set (see #01578) DS:DX -> ASCIZ pathname for file or directory Return: CF set on error AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h) CF clear if successful DX:AX = first cluster number Note: this function finds any file or directory regardless of attributes, except that it will not find volume labels SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=086Ch,#01352 (Table 01578) Values for character set: 00h Windows ANSI 01h current OEM character set 02h UnicodeTop
INT 21 - DR PalmDOS - GENERIC IOCTL - LOGIN SECURITY AX = 440Dh CX = EDC1h (category code EDh, minor code C1h) BL = boot drive number (01h=A:,02h=B:,etc) Return: AL = 0 if already logged in AL <> 0 if system is still secured (not logged in) ES:DI -> ??? Notes: This function is called by DR PalmDOS IBMBIO.COM after CONFIG.SYS processing has finished and it has launched the LOGIN.SYS utility (if this is not in the root of the boot drive, the undocumented CONFIG.SYS LOGIN directive can be used to change the path and the moment when the login prompt will be displayed). If security is active and the user has still not logged in, IBMBIO.COM will display an error message and halt the system.Top
INT 21 - DOS 3.2+ - IOCTL - GET LOGICAL DRIVE MAP AX = 440Eh BL = drive number (00h=default,01h=A:,etc) Return: CF set on error AX = error code (01h,0Fh) (see #01680 at AH=59h/BX=0000h) CF clear if successful AL = 00h block device has only one logical drive assigned 1..26 the last letter used to reference the drive (1=A:,etc) Notes: DR DOS 3.41-5.0 DRIVER.SYS does not support drive mapping and thus always returns AL=00h; Windows NT 4.0 also always returns AL=00h in addition to the normal operation, if Stacker is installed, this call also sets the volume number at offset 58h in the Stacker device driver (DR DOS 3.41-5.0 only; use AX=4408h otherwise) (see AX=4404h"Stacker",INT 25/AX=CDCDh) SeeAlso: AX=4408h,AX=440Fh,INT 2F/AX=122BhTop
INT 21 - DOS 3.2+ - IOCTL - SET LOGICAL DRIVE MAP AX = 440Fh BL = physical drive number (00h=default,01h=A:,etc)) Return: CF set on error AX = error code (01h,0Fh) (see #01680 at AH=59h/BX=0000h) CF clear if successful drive now responds to next logical drive number Notes: maps logical drives to physical drives, similar to DOS's treatment of a single physical floppy drive as both A: and B: DR DOS 3.41-5.0 DRIVER.SYS does not support drive mapping and thus always returns an error on this function SeeAlso: AX=440Eh,INT 2F/AX=122BhTop
INT 21 - DOS 5+ - IOCTL - QUERY GENERIC IOCTL CAPABILITY (HANDLE) AX = 4410h BX = handle for device CH = category code (see #01545) CL = function code (see #01546) Return: CF clear if successful AX = 0000h specified IOCTL function is supported CF set on error AL = 01h IOCTL capability not available Note: a program which wishes to use Generic IOCTL calls beyond those in the standard DOS 3.2 set may use this call first to see whether a particular call is supported SeeAlso: AX=440Ch,AX=440Dh"DOS 3.2+",AX=4411hTop
INT 21 U - NewSpace - ENABLE DRIVER AX = 4410h BX = FFFFh Program: NewSpace is a TSR by Isogon Corporation which automatically compresses all files as they are written and decompresses them as they are read Note: compressed files are not accessible unless the driver is enabled SeeAlso: AX=4411h/BX=FFFFhTop
INT 21 - DOS 5+ - IOCTL - QUERY GENERIC IOCTL CAPABILITY (DRIVE) AX = 4411h BL = drive number CH = category code (see #01558) CL = function code (see #01559) Return: CF clear if successful AX = 0000h specified IOCTL function is supported CF set on error AL = 01h IOCTL capability not available Note: a program which wishes to use Generic IOCTL calls beyond those in the standard DOS 3.2 set may use this call first to see whether a particular call is supported SeeAlso: AX=440Ch,AX=440Dh"DOS 3.2+",AX=4410hTop
INT 21 U - NewSpace - DISABLE DRIVER AX = 4411h BX = FFFFh Program: NewSpace is a TSR by Isogon Corporation which automatically compresses all files as they are written and decompresses them as they are read Note: compressed files are not accessible unless the driver is enabled SeeAlso: AX=4410h/BX=FFFFhTop
INT 21 O - DR DOS 5.0-6.0 - DETERMINE DOS TYPE AX = 4412h CF set Return: CF set if not DR DOS AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if DR DOS DX = AX = version code (see #01580) Note: this obsolete call, which is no longer supported in Novell DOS 7, is identical to AX=4452h SeeAlso: AX=4452hTop
INT 21 U - NewSpace - INSTALLATION CHECK??? AX = 4412h BX = FFFFh Return: AX = PSP segment of NewRes (resident driver for NewSpace) BX:DX -> ??? CX = ??? SeeAlso: AX=4411h/BX=FFFFhTop
INT 21 U - NewSpace - GET ??? AX = 4413h BX = FFFFh Return: AX = code segment of NewRes (resident driver for NewSpace) BX = offset of ??? SeeAlso: AX=4412h/BX=FFFFhTop
INT 21 OU - DR DOS 5.0-6.0 - SET GLOBAL PASSWORD AX = 4414h DS:DX -> password string (blank-padded to 8 characters) Desc: Specify the master password for accessing files. Note: this obsolete call, which is no longer supported in Novell DOS 7, is identical to AX=4454h SeeAlso: AX=4454hTop
INT 21 U - NewSpace - DEBUGGING DUMP AX = 4414h BX = FFFFh Return: debugging dump written to X:\NEWSPACE.SMP SeeAlso: AX=4413h/BX=FFFFh,AX=44FFh/BX=FFFFhTop
INT 21 OU - DR DOS 5.0-6.0 - HISTORY BUFFER, SHARE, AND HILOAD CONTROL AX = 4416h to 4418h Note: these obsolete subfunctions (which are no longer supported in Novell DOS 7) are identical to AX=4456h through 4458h SeeAlso: AX=4456h,AX=4457h,AX=4458hTop
INT 21 - Concurrent DOS v3.2+ - INSTALLATION CHECK AX = 4451h Return: CF set if not Concurrent DOS AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful AH = single-user/multiuser nature (see #01581) 10h single-user AL = operating system version ID (see #01580) 14h multiuser AL = operating system version ID (see #01579) Notes: as of Concurrent DOS/XM 5.0 (possibly earlier), the version is stored in the environment variable VER and the OS type in variable OS use this function if you are looking for multiuser capabilities, AX=4452h for single-user this function should never return the single-user values; however, an application should be prepared to accept single-user values, i.e. it should check the returned AH and AL separately CCI Multiuser DOS 7.22 returns AX=DX=1466h. DR DOS 3.31+ error returns with AX=0001h SeeAlso: AX=4452h,AX=4459h (Table 01579) Values for Digital Research operating system version ID: 32h Concurrent PC DOS 3.2 41h Concurrent DOS 4.1 50h Concurrent DOS/XM 5.0 or Concurrent DOS/386 1.1 60h Concurrent DOS/XM 6.0 or Concurrent DOS/386 2.0 62h Concurrent DOS/XM 6.2 or Concurrent DOS/386 3.0 66h DR Multiuser DOS 5.1, CCT Multiuser DOS 7.x 67h Concurrent DOS 5.1 SeeAlso: #01581,#04023Top
INT 21 - DR DOS 3.41+ - DETERMINE DOS TYPE/GET DR DOS VERSION AX = 4452h ("DR") CF set Return: CF set if not DR DOS AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if DR DOS AX = version code AH = single-user/multiuser nature (see #01581) 10h single-user AL = operating system version ID (see #01580) 14h multiuser AL = operating system version ID (see #01579) DX modified (refer to note below) Notes: the DR DOS version is stored in the environment variable VER use this function if looking for single-user capabilities, AX=4451h if looking for multiuser; this call should never return multiuser values in DR DOS 3.41-6.0, DX=AX on return; for Novell DOS 7, DH=AH but DL=00h (reportedly, DH=00h when booting NWDOS7 from installation disks) Novell DOS 7 returns error code 0001h if SETVER x.255 is in effect for the calling program, or SETVER /G x.255 is in effect although based on DR DOS, CCI Multiuser DOS 7.xx, IMS Multiuser DOS 7.x, and IMS REAL/32 7.50+ do not support this call With OpenDOS 7.02 BETA 2 and DR-OpenDOS 7.02+, the install check in most tools has been changed to run with both, AH=10h and AH=14h to support possible future "client side" multiuser releases of DR-DOS which may return 14h instead of 10h. Tools should also strip off the CP/Net bit before checking the kernel version. Often used version checks like >= 1070h are invalid, therefore, hence the AH and AL must be checked seperately. In DR DOS 3.31-6.0, and DR PalmDOS, DX=AX on return. For Novell DOS 7 - DR DOS 7.03 the DX value returned by this function is the same as the DX value returned by INT 21/AX=3306h, and represents the DOS revision (bits 7-0, currently always DL=00h) and the version flags (bits 15-8, with bit 12 = DOS in HMA, bit 11 = DOS in ROM) of the "patch_version" field in the PCM_HEADER structure in the IBMDOS.COM file. The version flags, however, are updated at runtime to reflect the actual system status, resulting, for example, in DH=10h for DOS in HMA, and DH=0 when booting Novell DOS 7 from installation disks. The operating system version ID represents the BDOS (Basic Disk Operating System) kernel version (of the DRBDOS.SYS aka IBMDOS.COM file), and the two nibbles can actually be read as CP/M version and sub-version, that is DR-DOS 7.03 (version code 1073h) is actually CP/M-86 version 7.3. Due to lost original patch sources from the backups, Caldera OpenDOS 7.01 merely represented Novell DOS 7 Update 10 with minor changes. For Caldera DR-OpenDOS 7.02, all the Novell DOS 7 patches up to including Update 15.2 have been re-incorporated into the system from other sources, while the missing patches for IBMBIO.COM were independently re-implemented by Matthias Paul in 07/1997-10/1997. Novell DOS 7 (since 1993-11-08), OpenDOS 7.01 and OpenDOS 7.02 BETA IBMDOS.COM return error code 0001h if SETVER x.255 is in effect for the calling program, or SETVER /G x.255 is in effect. Since Caldera DR-OpenDOS 7.02 the SHARE 2.05+ (1998-01-05) driver uses INT 21/AX=65A2h as an *additional* BDOS version check: If the "FUCASE char" function is functional on a DR-DOS BDOS kernel 72h+, SHARE assumes it is running on an OpenDOS 7.02 BETA 1 (73h) kernel (or later) even if the BDOS version returned by INT 21/AX=4452h would indicate an earlier issue of the kernel. Some 3rd party drivers (like HPFS_DOS.EXE) were hardwired to detect Novell DOS 7 only, and so the kernel version had to be patched back on such systems to allow such drivers to work properly. The BDOS version and DOS revision are stored in PCM_HEADER of the IBMDOS.COM file, see table XXXX below. However, this is no longer necessary with the introduction of the DR-DOS 7.02+ IBMDOS.COM (since 1998-01-10) and SETVER 1.01+ (since 1998-01-12) because they allow to fake BDOS versions as well as faking DOS versions. In /X mode, a set sub-version of y = 100..127 will be used as BDOS version instead (64h..7Fh), while the DOS revision will be used to report the DOS sub-version instead. For example, given a DOS revision of 0, SETVER 6.114 would be the proper value to fake Novell DOS 7 (114=72h) on a DR-DOS 7.02+ system, reporting a DOS version of "IBM" 6.00. Sub-versions 128..255 will completely disable this BDOS version check, and report a DOS sub- version of 0..127. This is to work around problems with possibly hostile programs, that try to detect DR-DOS to not run on this OS. Additional version check for 1072h kernels: At API level, there is no known way to distinguish Novell DOS 7 from OpenDOS 7.01, however, an IBMBIO.COM/IBMDOS.COM file date since 1997 and the existance of an environment variable %OS%=OPENDOS usually indicates an OpenDOS system (but not the other way around; some OpenDOS BETAs still used %OS%=NWDOS!). Additional version checks for 1073h kernels: A functional test of INT 21/AX=65A2h (see above for SHARE) can be used to distinguish OpenDOS 7.02 BETA 1 from the later (OpenDOS 7.02 BETA 2+ and) DR-OpenDOS 7.02 and DR-DOS 7.02 releases, which are both the same, except for the name change and minor bug fixes. Testing for the INT 21/AX=6601h/BX=0000h bug can be used to differentiate the original release of DR-DOS 7.02 from later 7.02 updates and DR-DOS 7.03. The DR DOS version is stored in the environment variable VER. SeeAlso: AX=4412h,AX=4451h,AX=4459h (Table 01580) Values for Digital Research operating system version ID: 41h DOS Plus 1.2 60h DOS Plus 2.0 or 2.1 63h DR DOS 3.41 64h DR DOS 3.42 65h DR DOS 5.0 67h DR DOS 6.0 70h PalmDOS 71h DR DOS 6.0 March 1993 "business update" 72h Novell DOS 7.0 73h OpenDOS 7.02 SeeAlso: #01579,#01581,#04088,#04023 (Table 04088) Values for Digital Research operating system ID codes (full AX return value): ??41h - DOS Plus 1.2 1060h - DOS Plus 2.0 or 2.1 (1988-03-09???) (this was basically a Concurrent CP/M-86 with built-in DOS emulation developed between 1983-1986) 1060h - DR DOS 3.31 (OEM) (1988-04-27???, 06/1988) - DR DOS 3.32 (OEM) (1988-08-17) - DR DOS 3.33 (OEM) (1988-09-01) - DR DOS 3.34 (OEM) - DR DOS 3.35 (OEM) (1988-10-21) for example: at least an issue for "Prism System 232" (10/1988) and a French issue existed. 106?h - DR DOS 3.40 BETA 1 (1988-11-11) - DR DOS 3.40 (This is the first issue for sure known to be ROMmable, although DR DOS should have been ROMmable right from the start (1987).) 1063h - DR DOS 3.41 various OEM and retail releases (06/1989-07/1989) - DR DOS 3.41T 1064h - DR DOS 3.42 (It is not clear, if this issue was actually released, since Lineo recently (fall 1999) released some historical kernels, and one of them is sailing under the name DR DOS 5.0 "Leopard" BETA 1 and has copyright strings from 1990, while it still identifies itself as being DR DOS 3.41... Unfortunately the uploaded archive is broken, hence it is not possible to find out easily. Maybe DR DOS 3.42 was nothing more than this early "Leopard" BETA???) 1065h - DR DOS ??? (1990-02-01) - DR DOS 5.0 "Leopard" BETA 2 (1990-03-16), - DR DOS 5.0 "Leopard" BETA 2B (This was the first issue to use the new IBMBIO.COM/IBMDOS.COM names instead of DRBIOS.SYS/DRBDOS.SYS.) - DR DOS 5.0 "Leopard" BETA 3 (This issue still uses separate boot sectors for floppies and harddisks. The boot sector OEM label is still "DIGITAL".) - DR DOS 5.0 release (06/1990, 08/1990) (This issue has a combined boot sector for both, floppies and harddisks. The boot sector OEM label has changed to "IBM 3.3". DR DOS 5.0 was the first DOS to introduce high-load capabilities.) 1066h - DR DOS ??? (1990-08-09) - DR DOS 6.0 "Buxton" ALPHA (02/1991-03/1991) 1067h - DR DOS ??? (1991-03-15) 106?h - DR DOS 6.0 "Buxton" BETA 2 (??/1991) 106?h - DR DOS 6.0 "Buxton" BETA 3 (05/1991, 1991-06-27, 1991-06-28) 1067h - DR DOS 6.0 release (05/1991, 08/1991) - DR DOS 6.0 BDOS patch "PAT304" English (1991-11-29, XDIR /C: 9D8Ch) fix for "\\" in cmdline by Quick Basic 4.5/MS PDS 7.1 on Lantastic 4.0 - DR DOS 6.0 BDOS patch "PAT303" English (1991-12-03, XDIR /C: 66B0h) This patch makes INT 21/AH=4Eh (Search First) compatible with MS-DOS when the Volume Label attribute is set. Previously under DR DOS the volume label was only searched for if bit 3 was the only bit set in the attribute whereas MS-DOS searches for the volume label if bit 3 is set, irrespective of any other bits in the attribute. - DR DOS 6.0 BDOS patch "PAT306" English (1991-12-11, XDIR /C: 8DE5h) This patch fixes a problem with OPTASM which would give error 8 if there were not enough handles available. This patch forces the system to check for available handles before it opens a file. - DR DOS 6.0 BDOS patch "PAT312" English (1992-01-07, XDIR /C: A0C6h) This patch fixes a problem with INT 21/AH=26h (create PSP) the segment from which the PSP was copied was incorrect so the the PSP was not filled correctly and did not contain the command tail. - DR DOS 6.0 BDOS patch "PAT314" English (1992-01-10, XDIR /C: C964h) This patch modifies INT 21/AX=33xxh, the Ctrl Break handler to support undocumented MS-DOS function INT 21/AX=3302h. - DR DOS 6.0 BIOS patch "PAT315" English (1992-01-10, XDIR /C: DBAAh) This patch fixes a problem where, when booting from a Bernoulli drive, any DEVICE= statement in CONFIG.SYS failed if it was placed after the device driver RCD.SYS v7.x and DOSOAD.SYS v1.x - DR DOS 6.0 BDOS patch "PAT317" English (1992-01-27, XDIR /C: B701h) This patch fixes a problem where attempting to close a changed file on a write protected disk seems to work after the first retry. This was caused because when the retry is attempted the file has been marked as not changed, so the attempt to write to disk is not made. - DR DOS 6.0 BDOS patch "PAT321" English (1992-02-19, XDIR /C: 947Bh) This patch fixes a problem where the error codes returned from INT 25h and INT 26h for "drive not ready" and "write protect" errors were incorrect. - DR DOS 6.0 BDOS patch "PAT323" English (1992-02-20, XDIR /C: E1B0h) This patch fixes a problem where, if the first command entered after booting the machine is a single character, any use of the command line recall keys will only recall the first command. - DR DOS 6.0 ??? German (1992-02-21) - DR DOS 6.0 update (02/1992) - DR DOS 6.0 BDOS patch "PAT326" English (1992-03-05, XDIR /C: 8EF2h) This is an optional patch to prevent DRDOS from padding the environment of EXEPACKed applications or utilities. - DR DOS 6.0 ??? German (1992-03-27) - DR DOS 6.0 BDOS patch "PAT334" English (1992-03-27, XDIR /C: 2AFEh) This patch fixes a problem where selecting (R)etry after hitting ^P while the printer is offline caused the system to hang. - DR DOS 6.0 "Windows 3.1 update, April 1992" "dr6win" (03/1992, 1992-04-07). This public update only includes patches addressing full Windows 3.1 compatiblity. There should have been a full "business update" for registered users, shipping a little bit later. - DR DOS 6.0 ??? English (1992-04-07) - DR DOS 6.0 BDOS patch "pat354" English (1992-07-28, XDIR /C: 3398h) This patch for Beame and Whiteside Networks: On opening a duplicate file handle which describes a device, a device open call is made to inform the device driver that a new file handle has been opened. This patch is current and up to date as of 1992-11-10. - DR DOS 6.0 update (07/1992) - DR DOS 6.0 BDOS patch "PAT301" English (1992-10-28, XDIR /C: 959Bh) This patch fixes a problem with apps that opens a file, with Share loaded, but then cannot delete the file until the file is closed. This causes "Money Manager" to fail. - DR DOS 6.0 update (11/1992) Note: There is no known method to distinguish these different kernels at runtime, except for - maybe - checksumming the IBMBIO.COM/ IBMDOS.COM files. The listed patches only address a single problem, while the listed updates are full rebuilds, also including all previous fixes. 1070h - multitasking "Vladivar" kernel architecture and introduction of DOS-like structures (1991-07-26, 08/1991) - DR DOS ??? (1991-09-26) - DR PalmDOS "Merlin" BETA 1-2 - DR PalmDOS "Merlin" BETA 3 (1992-06-23) - DR PalmDOS "Merlin" Evaluation Release (1992-08-25) - DR PalmDOS Release Candidates 1-2 (1992-08-26) - DR PalmDOS/NetWare PalmDOS 1.0 (06/1992-11/1992) (DR PalmDOS was the first DR DOS re-incarnation that supported a genuine CDS, but still pretended to be DOS 3.31. Much of the former CP/M stuff was stripped out to reduce the code size to meet early Palmtop PC requirements. It introduced the patented dynamic idle detection method (by Roger Gross), a special issue of the TASKMAX program switcher (MINIMAX) to support Personal Information Modules (PIM) plug-in executables, supported Flash/ROM disk, XIP "Execute in Place" applications, and came with PCMCIA Card Services and Service Stack (SS) partially written by Ian Cullimore (ex-Poquet Computer Corporation founder). - DR DOS "Panther" BETA 1 (1992-10-16) (This issue already supported DPMS, had the "Vladivar" pre-emptive multitasker, DPMS-SuperStor disk compression, Multiuser-security (World/Group/Owner), and much improved multi-windowing ViewMAX/3 GUI which looked alot more like Windows than GEM. It pretended to be PC DOS 5. However, this issue was never released and later partially merged into the Novell DOS 7 project (without Multiuser-security and ViewMAX/3). In 1999, Caldera Thin Clients released ViewMAX/3 under GPL, see http://www.gemworld.com.) 1070h??? - DR DOS "StarTrek" (STDOS) (07/1992-05/1993) (A never released, though reportedly fully functional result of a Novell and Apple team-up utilizing the DR DOS "Vladivar" multi- tasker to run Apple's Intel-port of MacOS 7.1 on an issue of DR DOS "Panther", even emulating HFS and Mac resources on DOS FAT file- systems.) 1071h - DR DOS ??? (1992-11-26) - DR DOS 6.0 "business update" "DRDOS493" English for Windows for Workgroups 3.1 (1993-03-19) - DR DOS 6.0 patch "PATDR6" English (1993-03-19) for NetWare - DR DOS 6.0 patch "PAT394" English (1993-09-17) - Apparently also some issues of DR DOS "Panther"??? 1072h - Novell DOS 7/PNW "Smirnoff" BETA 1 (??/1993, probably 1993-04-26) - Novell DOS 7 "Panther" BETA 2 (08/1993) (This "Panther" issue is much different from the early 10/1992 "Panther" BETA 1.) - Novell DOS 7 "Panther/Smirnoff" BETA 2 (08/1993) - Novell DOS 7 "Panther/Smirnoff" BETA 3 (09/1993) (This issue does not have workarounds for Windows 3.1 "AARD" code) - Novell DOS 7 "Panther/Smirnoff" BETA 4 (10/1993) - Novell DOS 7 code freeze 1993-12-03???) - Novell DOS 7 release (12/1993-04/1994) (also known as NWDOS or ND7, sometimes erroneously called NDOS) - Novell DOS 7 German release (1994-02-22) (This issue is known to have workarounds for Windows 3.1 "AARD" code) - Novell DOS 7 updates 1-3 (???/1994) - Novell DOS 7 update 4 (1994-05-31) - Novell DOS 7 updates 5-9 (???/1994) - Novell DOS 7 update 10 (12/1994) - Novell DOS 7 update 11 (01/1995) - Novell DOS 7 update 12 (04/1995) - Novell DOS 7 update 13 (05/1995) - Novell DOS 7 update 14 (08-09/1995) - Novell DOS 7 update 15 (12/1995) - Novell DOS 7 update 15.2 (01/1996) Note: The Novell DOS 7 updates 4-15.2 are full rebuilds, not patched binaries. - Caldera OpenDOS 7.01 BETA (02/1997) (basically representing Novell DOS 7 update 10 with minor changes here and there) - Caldera OpenDOS 7.01 (02-03/1997) - Caldera OpenDOS 7.01 M.R.S. (05/1997) (release of the kernel source code) - Matthias Paul's enhanced OpenDOS 7.02 ALPHA 1-4 kernels (07-11/1997) 1073h - Caldera OpenDOS 7.02 BETA 1 (09/1997) (incorporating most the Novell DOS 7 update 15.2 changes, except for IBMBIO.COM changes, plus a few other enhancements) - Caldera OpenDOS 7.02 BETA 2 (11/1997) (now also incorporating Matthias Paul's ALPHA 4 enhancements, the Novell DOS update 15.2 IBMBIO.COM patches have been re-implemented) - Caldera OpenDOS 7.02 BETA 2A (12/1997) (now incorporating all Novell DOS 7 update 15.2 changes) - Caldera DR-OpenDOS 7.02 (1997-12-2x) (now for the first time the product name is written with a hyphen!!!) - Caldera DR-DOS 7.02 internal build (02/1998) - Caldera DR-DOS 7.02 release (03/1998) - Caldera DR-DOS 7.02A release (06/1998) - DR-DOS 7.02 Update 1 (08/1998) - DR-DOS 7.02 Update 2 (09/1998) - Caldera (Thin Clients) DR-DOS 7.03 BETA (1998-12-03), sometimes referred to as "DR-DOS 7.03 BETA 3" - Caldera (Thin Clients) DR-DOS 7.03 release (1998-12-24, 1999-01-06) - Lineo DR-DOS 7.03 release (1999-06-07, 1999-09-09) (this issue has no functional changes compared to the 1999-01-06 issue of DR-DOS 7.03) SeeAlso: #01580,#01579,#01581,#04023 Bitfields for CP/M type indicator: Bit(s) Description (Table 01581) 7-4 CPU type 0000 = 8080 0001 = 8086 3-0 OS type 0000 = CP/M 0001 = MP/M 0002 = CP/Net 0004 = multiuser Notes: Usually 10h (single-user) or 14h (multi-user). While earlier releases of the system utilities performed a test for a version code of (>)= (10)xxh, this was changed with DR-OpenDOS 7.02+ (now taking a possible multi-user version into account): Most utilities now test for AH being either 10h or 14h, and a BDOS version >=xxh to allow them to properly run on possible future multi-user releases of DR-DOS. Before doing this test, some of them strip off the CP/Net bit. SeeAlso: #01580Top
INT 21 U - DR DOS 3.41+ - SET GLOBAL PASSWORD AX = 4454h DS:DX -> password string (blank-padded to 8 characters) Desc: Specify the master password for accessing files. SeeAlso: AX=4303h,AX=4414hTop
INT 21 U - DR DOS 5.0+ - HISTORY BUFFER CONTROL AX = 4456h DL = control flags (see #01582) Return: AL = previous value of state flags (see #01583) Note: DR DOS 6.0 only checks bit 0 and ignores the rest of DL SeeAlso: #01584 Bitfields for control flags: Bit(s) Description (Table 01582) 0 whose buffer: 0=application, 1=COMMAND.COM ---Novell DOS 7--- 1 toggle HISTORY usage 2 toggle INSERT state Note: only one bit at a time may be used Bitfields for state flags: Bit(s) Description (Table 01583) 0 HISTORY buffer enabled 1 INSERT enabled 2-5 unused 7 whose buffer: 0=application, 1=COMMAND.COMTop
INT 21 U - DR DOS 5.0-6.0 - SHARE/HILOAD CONTROL AX = 4457h DH = subfunction 00h enable/disable SHARE DL = 00h disable = 01h enable else Return: AX = ??? 01h get HILOAD status Return: AX = status 0000h off 0001h on 02h set HILOAD status DL = new state (00h off, 01h on) Return: AX = ??? other Return: AX = ??? Note: This was seen called by COMMAND.COM of DR DOS 6.0; it does not seem to be supported by Novell DOS 7 SeeAlso: AX=4457h/DX=FFFFhTop
INT 21 OU - DR DOS 6.0 - GET SHARE STATUS AX = 4457h DX = FFFFh Return: AX = SHARE status Note: not supported by Novell DOS 7 SeeAlso: INT 2F/AX=1000hTop
INT 21 U - DR DOS 5.0+ internal - GET POINTER TO INTERNAL VARIABLE TABLE AX = 4458h Return: ES:BX -> internal variable table (see #01584,#01585) AX = ??? (0B50h for DR DOS 5.0, 0A56h for DR DOS 6.0, 0FE4h for Novell DOS 7) SeeAlso: AX=4452h Format of DR DOS 5.0-6.0 internal variable table: Offset Size Description (Table 01584) 00h WORD ??? 02h WORD segment of ??? 04h WORD offset within DOS data segment of history control structure for COMMAND.COM history buffer (see #01586) 06h WORD offset within DOS data segment of history control structure for application history buffer (see #01586) 08h BYTE initial history state flags (see #01583) 09h 2 BYTEs ??? 0Bh WORD KB of extended memory at startup 0Dh BYTE number of far jump entry points 0Eh WORD segment containing far jumps to DR DOS entry points (see #01587) 10h WORD (only if kernel loaded in HMA) offset in HMA of first free HMA memory block (see #01588) or 0000h if none; segment is FFFFh 12h WORD pointer to segment of environment variables set in CONFIG, or 0000h if already used ---DR DOS 6.0--- 14h WORD (only if kernel loaded in HMA) offset in HMA of first used HMA memory block (see #01588) or 0000h if none; segment is FFFFh 16h 8 BYTEs ??? 1Eh WORD offset in DOS data segment of full COUNTRY.SYS filename 20h 8 BYTEs ??? 28h WORD offset in DOS data segment of SHARE hook table 2Ah 2 BYTEs ??? 2Ch WORD offset in DOS data segment of far pointer to INT 2F/AX=1000h handler Notes: the segment used for the DR DOS 6.0 CONFIG environment variables (excluding COMSPEC, VER and OS) is only useful for programs/drivers called from CONFIG.SYS. The word is set to zero later when the area is copied to the COMMAND.COM environment space. This allows CONFIG.SYS to pass information to AUTOEXEC.BAT. the Novell DOS 7 KEYB uses offsets 10h,14h, and 2Ch in the same was as for DR DOS 6.0, so it is likely that the entire table is the same Format of Novell DOS 7 internal variable table: Offset Size Description (Table 01585) 00h ??? 1Eh WORD offset of COUNTRY.SYS filename 42h 16 DWORDs pointers to ??? entry points ??? Format of history control structure: Offset Size Description (Table 01586) 00h WORD segment of buffer 02h WORD size of buffer in bytes 04h WORD ??? Format of kernel entry jump table for DR DOS 5.0-6.0: Offset Size Description (Table 01587) 00h 5 BYTEs far jump to kernel entry point for CP/M CALL 5 05h 5 BYTEs far jump to kernel entry point for INT 20 0Ah 5 BYTEs far jump to kernel entry point for INT 21 0Fh 5 BYTEs far jump to kernel entry point for INT 22 (RETF) 14h 5 BYTEs far jump to kernel entry point for INT 23 (RETF) 19h 5 BYTEs far jump to kernel entry point for INT 24 1Eh 5 BYTEs far jump to kernel entry point for INT 25 23h 5 BYTEs far jump to kernel entry point for INT 26 28h 5 BYTEs far jump to kernel entry point for INT 27 2Dh 5 BYTEs far jump to kernel entry point for INT 28 32h 5 BYTEs far jump to kernel entry point for INT 2A (IRET) 37h 5 BYTEs far jump to kernel entry point for INT 2B (IRET) 3Ch 5 BYTEs far jump to kernel entry point for INT 2C (IRET) 41h 5 BYTEs far jump to kernel entry point for INT 2D (IRET) 46h 5 BYTEs far jump to kernel entry point for INT 2E (IRET) 4Bh 5 BYTEs far jump to kernel entry point for INT 2F Notes: all of these entry points are indirected through this jump table to allow the kernel to be relocated into high memory while leaving the actual entry addresses in low memory for maximum compatibility some of these entry points (22h,23h,24h,2Eh,2Fh) are replaced as soon as COMMAND.COM is loaded, and return immediately to the caller, some returning an error code (the original handler for INT 2F returns AL=03h [fail]). Format of HMA Memory Block (DR DOS 6.0 kernel loaded in HMA): Offset Size Description (Table 01588) 00h WORD offset of next HMA Memory Block (0000h if last block) 02h WORD size of this block in bytes (at least 10h) 04h BYTE type of HMA Memory Block (interpreted by MEM) 00h system 01h KEYB 02h NLSFUNC 03h SHARE 04h TaskMAX 05h COMMAND 05h var TSR (or system) code and data. DR DOS TSR's, such as KEYB, hooks interrupts using segment FFFEh instead FFFFh.Top
INT 21 - DR Multiuser DOS 5.0 - API AX = 4459h CL = function (see #04019 at INT E0"CP/M-86") DS,DX = parameters Notes: DR DOS 5.0 and Novell DOS 7 return CF set and AX=0001h this API is also available on INT E0 SeeAlso: AX=4452h,INT E0"CP/M-86"Top
INT 21 U - Concurrent DOS etc. - USER GROUP SUPPORT AX = 445Ah CX = operation type 00h get default file access rights 01h set default file access rights 02h get user/group 03h get security version 04h set security key (needs key) 05h set user/group (needs key) DX = data for operation if set BX = key (if required) Return: AX = result Note: This function was introduced on 1990/06/04 for CDOS. It has been supported by DR PalmDOS and DR DOS "Panther" (BDOS 1070h), but it is not supported by Novell DOS 7 - DR-DOS 7.03.Top
INT 21 - VIRUS - "Horns" - INSTALLATION CHECK AX = 44A0h Return: AH = FFh if installed SeeAlso: AX=4243h"VIRUS",AX=4B04h"VIRUS"Top
INT 21 U - Sun PC-NFS - API??? AX = 44E0h DS:DX -> ??? SS:BP -> stack frame (see #01589) Return: ??? Note: this function is also supported by Beame&Whiteside's BWPCNFS shim; the description presented here was derived from that shim Format of PC-NFS stack frame: Offset Size Description (Table 01589) 00h WORD -> previous stack frame 02h DWORD return addressTop
INT 21 U - NewSpace - ??? AX = 44FFh BX = FFFFh DX = ??? Program: NewSpace is a TSR by Isogon Corporation which automatically compresses all files as they are written and decompresses them as they are read SeeAlso: AX=4414h/BX=FFFFhTop
INT 21 - DOS 2+ - "DUP" - DUPLICATE FILE HANDLE AH = 45h BX = file handle Return: CF clear if successful AX = new handle CF set on error AX = error code (04h,06h) (see #01680 at AH=59h/BX=0000h) Notes: moving file pointer for either handle will also move it for the other, because both will refer to the same system file table for DOS versions prior to 3.3, file writes may be forced to disk by duplicating the file handle and closing the duplicate SeeAlso: AH=3Dh,AH=46hTop
INT 21 - DOS 2+ - "DUP2", "FORCEDUP" - FORCE DUPLICATE FILE HANDLE AH = 46h BX = file handle CX = file handle to become duplicate of first handle Return: CF clear if successful CF set on error AX = error code (04h,06h) (see #01680 at AH=59h/BX=0000h) Notes: closes file with handle CX if it is still open DOS 3.30 hangs if BX=CX on entry moving file pointer for either handle will also move it for the other, because both will refer to the same system file table SeeAlso: AH=3Dh,AH=45hTop
INT 21 - DOS 2+ - "CWD" - GET CURRENT DIRECTORY AH = 47h DL = drive number (00h = default, 01h = A:, etc) DS:SI -> 64-byte buffer for ASCIZ pathname Return: CF clear if successful AX = 0100h (undocumented) CF set on error AX = error code (0Fh) (see #01680 at AH=59h/BX=0000h) Notes: the returned path does not include a drive or the initial backslash many Microsoft products for Windows rely on AX being 0100h on success under the FlashTek X-32 DOS extender, the buffer pointer is in DS:ESI SeeAlso: AH=19h,AH=3Bh,AH=71h,INT 15/AX=DE25hTop
INT 21 - DOS 2+ - ALLOCATE MEMORY AH = 48h BX = number of paragraphs to allocate Return: CF clear if successful AX = segment of allocated block CF set on error AX = error code (07h,08h) (see #01680 at AH=59h/BX=0000h) BX = size of largest available block Notes: DOS 2.1-6.0 coalesces free blocks while scanning for a block to allocate .COM programs are initially allocated the largest available memory block, and should free some memory with AH=49h before attempting any allocations under the FlashTek X-32 DOS extender, EBX contains a protected-mode near pointer to the allocated block on a successful return SeeAlso: AH=49h,AH=4Ah,AH=58h,AH=83hTop
INT 21 - DOS 2+ - FREE MEMORY AH = 49h ES = segment of block to free Return: CF clear if successful CF set on error AX = error code (07h,09h) (see #01680 at AH=59h/BX=0000h) Notes: apparently never returns an error 07h, despite official docs; DOS 2.1+ code contains only an error 09h exit DOS 2.1-6.0 does not coalesce adjacent free blocks when a block is freed, only when a block is allocated or resized the code for this function is identical in DOS 2.1-6.0 except for calls to start/end a critical section in DOS 3.0+ SeeAlso: AH=48h,AH=4AhTop
INT 21 - DOS 2+ - RESIZE MEMORY BLOCK AH = 4Ah BX = new size in paragraphs ES = segment of block to resize Return: CF clear if successful CF set on error AX = error code (07h,08h,09h) (see #01680 at AH=59h/BX=0000h) BX = maximum paragraphs available for specified memory block Notes: under DOS 2.1-6.0, if there is insufficient memory to expand the block as much as requested, the block will be made as large as possible DOS 2.1-6.0 coalesces any free blocks immediately following the block to be resized SeeAlso: AH=48h,AH=49h,AH=83hTop
INT 21 - VIRUS??? AH = 4Ah BX = 00B6h ES = CX Return: ??? Note: this call is intercepted by the Search&Destroy SDRes v27.03 bundled with Novell DOS 7, and is presumably some virus's installation check SeeAlso: AH=0Eh/DL=ADh,AH=4Ah/BX=FFFFh,AH=D2h"VIRUS"Top
INT 21 - VIRUS??? AH = 4Ah BX = FFFFh CX = 0568h SI = 0129h DI = 0000h ES = BP Return: ??? Note: this call is intercepted by the Search&Destroy SDRes v27.03 bundled with Novell DOS 7, and is presumably some virus's installation check SeeAlso: AH=0Eh/DL=ADh,AH=4Ah/BX=00B6hTop
INT 21 - DOS 2+ - "EXEC" - LOAD AND/OR EXECUTE PROGRAM AH = 4Bh AL = type of load 00h load and execute 01h load but do not execute 03h load overlay (see #01591) 04h load and execute in background (European MS-DOS 4.0 only) "Exec & Go" (see also AH=80h) DS:DX -> ASCIZ program name (must include extension) ES:BX -> parameter block (see #01590,#01591,#01592) CX = mode (subfunction 04h only) 0000h child placed in zombie mode after termination 0001h child's return code discarded on termination Return: CF clear if successful BX,DX destroyed if subfunction 01h, process ID set to new program's PSP; get with INT 21/AH=62h CF set on error AX = error code (01h,02h,05h,08h,0Ah,0Bh) (see #01680 at AH=59h) Notes: DOS 2.x destroys all registers, including SS:SP under ROM-based DOS, if no disk path characters (colons or slashes) are included in the program name, the name is searched for in the ROM module headers (see #01595) before searching on disk for functions 00h and 01h, the calling process must ensure that there is enough unallocated memory available; if necessary, by releasing memory with AH=49h or AH=4Ah for function 01h, the AX value to be passed to the child program is put on top of the child's stack for function 03h, DOS assumes that the overlay is being loaded into memory allocated by the caller function 01h was undocumented prior to the release of DOS 5.0 some versions (such as DR DOS 6.0) check the parameters and parameter block and return an error if an invalid value (such as an offset of FFFFh) is found background programs under European MS-DOS 4.0 must use the new executable format this function ignores the filename extension, instead checking the first two bytes of the file to determine whether there is a valid .EXE header (see #01594); if not, the file is assumed to be in .COM format. If present, the file may be in any of several formats which are extensions of the original .EXE format (see #01593) .COM-format executables begin running with the following register values: AL = 00h if first FCB has valid drive letter, FFh if not AH = 00h if second FCB has valid drive letter, FFh if not CS,DS,ES,SS = PSP segment SP = offset of last word available in first 64K segment (note: AX is always 0000h under DESQview) old-format executables begin running with the following register values: AL = 00h if first FCB has valid drive letter, FFh if not AH = 00h if second FCB has valid drive letter, FFh if not DS,ES = PSP segment SS:SP as defined in .EXE header (note: AX is always 0000h under DESQview) new executables begin running with the following register values AX = environment segment BX = offset of command tail in environment segment CX = size of automatic data segment (0000h = 64K) ES,BP = 0000h DS = automatic data segment SS:SP = initial stack the command tail corresponds to an old executable's PSP:0081h and following, except that the 0Dh is turned into a NUL (00h); new format executables have no PSP under the FlashTek X-32 DOS extender, only function 00h is supported and the pointers are passed in DS:EDX and ES:EBX DR DOS 6 always loads .EXE-format programs with no fixups and .COM-format programs starting with 9Ch 55h (PUSHF/PUSH BP) above the 64K mark to avoid the EXEPACK bug, by extending the memory block containing the program's environment; this code is disabled if the name of the parent program as stored in the MCB is 'WIN'. DR DOS 3.41 and 5.0 check for a valid filename before testing the subfunction number, so the otherwise invalid subfunction 02h will only return error code 01h if the given filename actually exists; otherwise, errors 02h, 03h, or 05h are returned BUGS: DOS 2.00 assumes that DS points at the current program's PSP Load Overlay (subfunction 03h) loads up to 512 bytes too many if the file contains additional data after the actual overlay Load but Do Not Execute (subfunction 01h) is reported to corrupt the top word of the caller's stack if the loaded module terminates with INT 21/AH=4Ch in some versions of MS-DOS, including v5.00. SeeAlso: AX=4B05h,AH=4Ch,AH=4Dh,AH=64h/BX=0025h,AH=8Ah,INT 2E,INT 60/DI=0604h Format of EXEC parameter block for AL=00h,01h,04h: Offset Size Description (Table 01590) 00h WORD segment of environment to copy for child process (copy caller's environment if 0000h) 02h DWORD pointer to command tail to be copied into child's PSP 06h DWORD pointer to first FCB to be copied into child's PSP 0Ah DWORD pointer to second FCB to be copied into child's PSP 0Eh DWORD (AL=01h) will hold subprogram's initial SS:SP on return 12h DWORD (AL=01h) will hold entry point (CS:IP) on return SeeAlso: #01591,#01592 Format of EXEC parameter block for AL=03h: Offset Size Description (Table 01591) 00h WORD segment at which to load overlay 02h WORD relocation factor to apply to overlay if in .EXE format SeeAlso: #01590,#01592 Format of EXEC parameter block for FlashTek X-32: Offset Size Description (Table 01592) 00h PWORD 48-bit far pointer to environment string 06h PWORD 48-bit far pointer to command tail string SeeAlso: #01590,#01591 (Table 01593) Values for the executable types understood by various environments: MZ old-style DOS executable (see #01594) ZM used by some very early DOS linkers, and still supported as an alternate to the MZ signature by MS-DOS, PC DOS, PTS-DOS, and S/DOS NE Windows or OS/2 1.x segmented ("new") executable (see #01596) LE Windows virtual device driver (VxD) linear executable (see #01609) LX variant of LE used in OS/2 2.x (see #01609) W3 Windows WIN386.EXE file; a collection of LE files W4 Windows95 VMM32.VXD file PE Win32 (Windows NT and Win32s) portable executable based on Unix COFF DL HP 100LX/200LX system manager compliant executable (.EXM) MP old PharLap .EXP (see #01619) P2 PharLap 286 .EXP (see #01620) P3 PharLap 386 .EXP (see #01620) Format of .EXE file header: Offset Size Description (Table 01594) 00h 2 BYTEs .EXE signature, either "MZ" or "ZM" (5A4Dh or 4D5Ah) (see also #01593) 02h WORD number of bytes in last 512-byte page of executable 04h WORD total number of 512-byte pages in executable (includes any partial last page) 06h WORD number of relocation entries 08h WORD header size in paragraphs 0Ah WORD minimum paragraphs of memory required to allocate in addition to executable's size 0Ch WORD maximum paragraphs to allocate in addition to executable's size 0Eh WORD initial SS relative to start of executable 10h WORD initial SP 12h WORD checksum (one's complement of sum of all words in executable) 14h DWORD initial CS:IP relative to start of executable 18h WORD offset within header of relocation table 40h or greater for new-format (NE,LE,LX,W3,PE,etc.) executable 1Ah WORD overlay number (normally 0000h = main program) ---new executable--- 1Ch 4 BYTEs ??? 20h WORD behavior bits 22h 26 BYTEs reserved for additional behavior info 3Ch DWORD offset of new executable (NE,LE,etc) header within disk file, or 00000000h if plain MZ executable ---Borland TLINK--- 1Ch 2 BYTEs ??? (apparently always 01h 00h) 1Eh BYTE signature FBh 1Fh BYTE TLINK version (major in high nybble, minor in low nybble) 20h 2 BYTEs ??? (v2.0 apparently always 72h 6Ah, v3.0+ seems always 6Ah 72h) ---ARJ self-extracting archive--- 1Ch 4 BYTEs signature "RJSX" (older versions, new signature is "aRJsfX" in the first 1000 bytes of the file) ---LZEXE 0.90 compressed executable--- 1Ch 4 BYTEs signature "LZ09" ---LZEXE 0.91 compressed executable--- 1Ch 4 BYTEs signature "LZ91" ---PKLITE compressed executable--- 1Ch BYTE minor version number 1Dh BYTE bits 0-3: major version bit 4: extra compression bit 5: huge (multi-segment) file 1Eh 6 BYTEs signature "PKLITE" (followed by copyright message) ---LHarc 1.x self-extracting archive--- 1Ch 4 BYTEs unused??? 20h 3 BYTEs jump to start of extraction code 23h 2 BYTEs ??? 25h 12 BYTEs signature "LHarc's SFX " ---LHA 2.x self-extracting archive--- 1Ch 8 BYTEs ??? 24h 10 BYTEs signature "LHa's SFX " (v2.10) or "LHA's SFX " (v2.13) ---TopSpeed C 3.0 CRUNCH compressed file--- 1Ch DWORD 018A0001h 20h WORD 1565h ---PKARCK 3.5 self-extracting archive--- 1Ch DWORD 00020001h 20h WORD 0700h ---BSA (Soviet archiver) self-extracting archive--- 1Ch WORD 000Fh 1Eh BYTE A7h ---LARC self-extracting archive--- 1Ch 4 BYTEs ??? 20h 11 BYTEs "SFX by LARC " ---LH self-extracting archive--- 1Ch 8 BYTEs ??? 24h 8 BYTEs "LH's SFX " ---RAR self-extracting archive--- 1Ch 4 BYTEs signature "RSFX" ---other linkers--- 1Ch var optional information --- N N DWORDs relocation items each is the segment:offset from start of load image at which to add the actual load segment to the indicated WORD Notes: if the word at offset 02h is 4, it should be treated as 00h, since pre-1.10 versions of the MS linker set it that way if both minimum and maximum allocation (offset 0Ah/0Ch) are zero, the program is loaded as high in memory as possible (DOS only checks the maximum allocation, however) the maximum allocation is set to FFFFh by default additional data may be contained in the file beyond the end of the load image described by the .EXE header; this data may be overlays, the actual executable for newer-format executables, or debugging information (see #01600,#01624) relocations entries need not be in any particular order, although they are typically stored in order from beginning to end of the load image SeeAlso: #01596 Format of ROM Module Header: Offset Size Description (Table 01595) 00h 2 BYTEs ROM signature 55h, AAh 02h BYTE size of ROM in 512-byte blocks 03h 3 BYTEs POST initialization entry point (near JMP instruction) 06h ROM Program Name List [array] Offset Size Description 00h BYTE length of ROM program's name (00h if end of name list) 01h N BYTEs program name N+1 3 BYTEs program entry point (near JMP instruction) Format of new executable header: Offset Size Description (Table 01596) 00h 2 BYTEs "NE" (4Eh 45h) signature 02h 2 BYTEs linker version (major, then minor) 04h WORD offset from start of this header to entry table (see #01603) 06h WORD length of entry table in bytes 08h DWORD file load CRC (0 in Borland's TPW) 0Ch BYTE program flags (see #01597) 0Dh BYTE application flags (see #01598) 0Eh WORD auto data segment index 10h WORD initial local heap size 12h WORD initial stack size (added to data seg, 0000h if SS <> DS) 14h DWORD program entry point (CS:IP), "CS" is index into segment table 18h DWORD initial stack pointer (SS:SP), "SS" is segment index if SS=automatic data segment and SP=0000h, the stack pointer is set to the top of the automatic data segment, just below the local heap 1Ch WORD segment count 1Eh WORD module reference count 20h WORD length of nonresident names table in bytes 22h WORD offset from start of this header to segment table (see #01601) 24h WORD offset from start of this header to resource table 26h WORD offset from start of this header to resident names table 28h WORD offset from start of this header to module reference table 2Ah WORD offset from start of this header to imported names table (array of counted strings, terminated with a string of length 00h) 2Ch DWORD offset from start of file to nonresident names table 30h WORD count of moveable entry point listed in entry table 32h WORD file alignment size shift count 0 is equivalent to 9 (default 512-byte pages) 34h WORD number of resource table entries 36h BYTE target operating system 00h unknown 01h OS/2 02h Windows 03h European MS-DOS 4.x 04h Windows 386 05h BOSS (Borland Operating System Services) 81h PharLap 286|DOS-Extender, OS/2 82h PharLap 286|DOS-Extender, Windows 37h BYTE other EXE flags (see #01599) 38h WORD offset to return thunks or start of gangload area 3Ah WORD offset to segment reference thunks or length of gangload area 3Ch WORD minimum code swap area size 3Eh 2 BYTEs expected Windows version (minor version first) Note: this header is documented in detail in the Windows 3.1 SDK Programmer's Reference, Vol 4. SeeAlso: #01594 Bitfields for new executable program flags: Bit(s) Description (Table 01597) 0-1 DGROUP type 0 = none 1 = single shared 2 = multiple (unshared) 3 = (null) 2 global initialization 3 protected mode only 4 8086 instructions 5 80286 instructions 6 80386 instructions 7 80x87 instructions Bitfields for new executable application flags: Bit(s) Description (Table 01598) 0-2 application type 001 full screen (not aware of Windows/P.M. API) 010 compatible with Windows/P.M. API 011 uses Windows/P.M. API 3 is a Family Application (OS/2) 5 0=executable, 1=errors in image 6 non-conforming program (valid stack is not maintained) 7 DLL or driver rather than application (SS:SP info invalid, CS:IP points at FAR init routine called with AX=module handle which returns AX=0000h on failure, AX nonzero on successful initialization) Bitfields for other new .EXE flags: Bit(s) Description (Table 01599) 0 supports long filenames 1 2.X protected mode 2 2.X proportional font 3 gangload area Format of Codeview trailer (at end of executable): Offset Size Description (Table 01600) 00h WORD signature 4E42h ('NB') 02h WORD Microsoft debug info version number 04h DWORD Codeview header offset SeeAlso: #01624 Format of new executable segment table record: Offset Size Description (Table 01601) 00h WORD offset in file (shift left by alignment shift to get byte offs) 02h WORD length of image in file (0000h = 64K) 04h WORD segment attributes (see #01602) 06h WORD number of bytes to allocate for segment (0000h = 64K) Note: the first segment table entry is entry number 1 SeeAlso: #01604 Bitfields for segment attributes: Bit(s) Description (Table 01602) 0 data segment rather than code segment 1 unused??? 2 real mode 3 iterated 4 movable 5 sharable 6 preloaded rather than demand-loaded 7 execute-only (code) or read-only (data) 8 relocations (directly following code for this segment) 9 debug info present 10,11 80286 DPL bits 12 discardable 13-15 discard priority Format of new executable entry table item (list): Offset Size Description (Table 01603) 00h BYTE number of entry points (00h if end of entry table list) 01h BYTE segment number (00h if end of entry table list) 02h 3N BYTEs entry records Offset Size Description 00h BYTE flags bit 0: exported bit 1: single data bits 2-7: unused??? 01h WORD offset within segment Format of new executable relocation data (immediately follows segment image): Offset Size Description (Table 01604) 00h WORD number of relocation items 02h 8N BYTEs relocation items Offset Size Description 00h BYTE relocation type 00h LOBYTE 02h BASE 03h PTR 05h OFFS 0Bh PTR48 0Dh OFFS32 01h BYTE flags bit 2: additive 02h WORD offset within segment 04h WORD target address segment 06h WORD target address offset SeeAlso: #01601,#01605 Format of new executable resource data: Offset Size Description (Table 01605) 00h WORD alignment shift count for resource data 02h N RECORDs resources Format of resource record: Offset Size Description 00h WORD type ID 0000h if end of resource records >= 8000h if integer type else offset from start of resource table to type string 02h WORD number of resources of this type 04h DWORD reserved for runtime use 08h N Resources (see #01606) Note: resource type and name strings are stored immediately following the resource table, and are not null-terminated SeeAlso: #01606 Format of new executable resource entry: Offset Size Description (Table 01606) 00h WORD offset in alignment units from start of file to contents of the resource data 02h WORD length of resource image in bytes 04h WORD flags bit 4: moveable bit 5: shareable bit 6: preloaded 06h WORD resource ID >= 8000h if integer resource else offset from start of resource table to resource string 08h DWORD reserved for runtime use Notes: resource type and name strings are stored immediately following the resource table, and are not null-terminated strings are counted strings, with a string of length 0 indicating the end of the resource table SeeAlso: #01605,#01607 Format of new executable module reference table [one bundle of entries]: Offset Size Description (Table 01607) 00h BYTE number of records in this bundle (00h if end of table) 01h BYTE segment indicator 00h unused FFh movable segment, segment number is in entry else segment number of fixed segment 02h N RECORDs Format of segment record Offset Size Description 00h BYTE flags bit 0: entry is exported bit 1: entry uses global (shared) data bits 7-3: number of parameter words ---fixed segment--- 01h WORD offset ---moveable segment--- 01h 2 BYTEs INT 3F instruction (CDh 3Fh) 03h BYTE segment number 05h WORD offset Note: table entries are numbered starting from 1 SeeAlso: #01608 Format of new executable resident/nonresident name table entry: Offset Size Description (Table 01608) 00h BYTE length of string (00h if end of table) 01h N BYTEs ASCII text of string N+1 WORD ordinal number (index into entry table) Notes: the first string in the resident name table is the module name; the first entry in the nonresident name table is the module description the strings are case-sensitive; if the executable was linked with /IGNORECASE, all strings are in uppercase SeeAlso: #01607 Format of Linear Executable (enhanced mode executable) header: Offset Size Description (Table 01609) 00h 2 BYTEs "LE" (4Ch 45h) signature (Windows) "LX" (4Ch 58h) signature (OS/2) 02h BYTE byte order (00h = little-endian, nonzero = big-endian) 03h BYTE word order (00h = little-endian, nonzero = big-endian) 04h DWORD executable format level 08h WORD CPU type (see also INT 15/AH=C9h) 01h Intel 80286 or upwardly compatible 02h Intel 80386 or upwardly compatible 03h Intel 80486 or upwardly compatible 04h Intel Pentium (80586) or upwardly compatible 20h Intel i860 (N10) or compatible 21h Intel "N11" or compatible 40h MIPS Mark I (R2000, R3000) or compatible 41h MIPS Mark II (R6000) or compatible 42h MIPS Mark III (R4000) or compatible 0Ah WORD target operating system 01h OS/2 02h Windows 03h European DOS 4.0 04h Windows 386 0Ch DWORD module version 10h DWORD module type (see #01610) 14h DWORD number of memory pages 18h Initial CS:EIP DWORD object number DWORD offset 20h Initial SS:ESP DWORD object number DWORD offset 28h DWORD memory page size 2Ch DWORD (Windows LE) bytes on last page (OS/2 LX) page offset shift count 30h DWORD fixup section size 34h DWORD fixup section checksum 38h DWORD loader section size 3Ch DWORD loader section checksum 40h DWORD offset of object table (see #01611) 44h DWORD object table entries 48h DWORD object page map table offset (see #01613) 4Ch DWORD object iterate data map offset 50h DWORD resource table offset 54h DWORD resource table entries 58h DWORD resident names table offset (see #01614) 5Ch DWORD entry table offset (see #01615,#01616) 60h DWORD module directives table offset 64h DWORD Module Directives entries 68h DWORD Fixup page table offset 6Ch DWORD Fixup record table offset (see #01618) 70h DWORD imported modules name table offset 74h DWORD imported modules count 78h DWORD imported procedures name table offset 7Ch DWORD per-page checksum table offset 80h DWORD data pages offset 84h DWORD preload page count 88h DWORD non-resident names table offset 8Ch DWORD non-resident names table length 90h DWORD non-resident names checksum 94h DWORD automatic data object 98h DWORD debug information offset 9Ch DWORD debug information length A0h DWORD preload instance pages number A4h DWORD demand instance pages number A8h DWORD extra heap allocation ACh 12 BYTEs reserved B8h DWORD offset of VERSIONINFO resource (MS-Windows VxD only) BCh DWORD pointer to ??? (dynamically-loadable VxDs only???) C0h WORD device ID (MS-Windows VxD only) C2h WORD DDK version (MS-Windows VxD only) Note: used by EMM386.EXE, QEMM, and Windows 3.0 Enhanced Mode drivers Bitfields for Linear Executable module type: Bit(s) Description (Table 01610) 2 initialization (only for DLLs) 0 = global, 1 = per-process 4 no internal fixups in executable image 5 no external fixups in executable image 8-10 API compatibility 0 = unknown 1 = incompatible with PM windowing \ 2 = compatible with PM windowing > (only for 3 = uses PM windowing API / programs) 13 module not loadable (only for programs) 15-17 module type 000 program 001 library (DLL) 011 protected memory library module 100 physical device driver 110 virtual device driver 30 per-process library termination (requires valid CS:EIP, can't be set for .EXE) Format of object table entry: Offset Size Description (Table 01611) 00h DWORD virtual size in bytes 04h DWORD relocation base address 08h DWORD object flags (see #01612) 0Ch DWORD page map index 10h DWORD page map entries (see #01613) 14h 4 BYTEs reserved??? (apparently always zeros) Bitfields for object flags: Bit(s) Description (Table 01612) 0 readable 1 writable 2 executable 3 resource 4 discardable 5 shared 6 preloaded 7 invalid 8-9 type 00 normal 01 zero-filled 10 resident 11 resident and contiguous 10 resident and long-lockable 11 reserved 12 16:16 alias required 13 "BIG" (Huge: 32-bit) 14 conforming 15 "OBJECT_I/O_PRIVILEGE_LEVEL" 16-31 reserved Format of object page map table entry: Offset Size Description (Table 01613) 00h BYTE ??? (usually 00h) 01h WORD (big-endian) index to fixup table 0000h if no relocation info 03h BYTE type (00h hard copy in file, 03h some relocation needed) Format of resident names table entry: Offset Size Description (Table 01614) 00h BYTE length of name 01h N BYTEs name N+1 3 BYTEs ??? Format of LE linear executable entry table: Offset Size Description (Table 01615) 00h BYTE number of entries in table 01h 10 BYTEs per entry Offset Size Description 00h BYTE bit flags bit 0: non-empty bundle bit 1: 32-bit entry 01h WORD object number 03h BYTE entry type flags bit 0: exported bit 1: uses single data rather than instance bit 2: reserved bits 3-7: number of stack parameters 04h DWORD offset of entry point 08h 2 BYTEs ??? Note: empty bundles (bit flags at 00h = 00h) are used to skip unused indices, and do not contain the remaining nine bytes Format of LX linear executable entry table [array]: Offset Size Description (Table 01616) 00h BYTE number of bundles following (00h = end of entry table) 01h BYTE bundle type 00h empty 01h 16-bit entry 02h 286 callgate entry 03h 32-bit entry 04h forwarder entry bit 7 set if additional parameter typing information is present ---bundle type 00h--- no additional fields ---bundle type 01h--- 02h WORD object number 04h BYTE entry flags bit 0: exported bits 7-3: number of stack parameters 05h WORD offset of entry point in object (shifted by page size shift) ---bundle type 02h--- 02h WORD object number 04h BYTE entry flags bit 0: exported bits 7-3: number of stack parameters 05h WORD offset of entry point in object 07h WORD reserved for callgate selector (used by loader) ---bundle type 03h--- 02h WORD object number 04h BYTE entry flags bit 0: exported bits 7-3: number of stack parameters 05h DWORD offset of entry point in object ---bundle type 04h--- 02h WORD reserved 04h BYTE forwarder flags bit 0: import by ordinal bits 7-1 reserved 05h WORD module ordinal (forwarder's index into Import Module Name table) 07h DWORD procedure name offset or import ordinal number Note: all fields after the first two bytes are repeated N times Bitfields for linear executable fixup type: Bit(s) Description (Table 01617) 7 ordinal is BYTE rather than WORD 6 16-rather than 8-object number/module ordinal 5 addition with DWORD rather than WORD 4 relocation info has size with new two bytes at end 3 reserved (0) 2 set if add to destination, clear to replace destination 1-0 type 00 internal fixup 01 external fixup, imported by ordinal 10 external fixup, imported by name 11 internal fixup via entry table Format of linear executable fixup record: Offset Size Description (Table 01618) 00h BYTE type bits 7-4: modifier (0001 single, 0011 multiple) bits 3-0: type 0000 byte offset 0010 word segment 0011 16-bit far pointer (DWORD) 0101 16-bit offset 0110 32-bit far pointer (PWORD) 0111 32-bit offset 1000 near call or jump, WORD/DWORD based on seg attrib 01h BYTE linear executable fixup type (see #01617) ---if single type--- 02h WORD offset within page 04h relocation information ---internal fixup--- BYTE object number ---external,ordinal--- BYTE one-based module number in Import Module table BYTE/WORD ordinal number WORD/DWORD value to add (only present if modifier bit 4 set) ---external,name--- BYTE one-based module number in Import Module table WORD offset in Import Procedure names WORD/DWORD value to add (only present if modifier bit 4 set) ---if multiple type--- 02h BYTE number of items 03h var relocation info as for "single" type (above) N WORDs offsets of items to relocate Format of old Phar Lap .EXP file header: Offset Size Description (Table 01619) 00h 2 BYTEs "MP" (4Dh 50h) signature 02h WORD remainder of image size / page size (page size = 512h) 04h WORD size of image in pages 06h WORD number of relocation items 08h WORD header size in paragraphs 0Ah WORD minimum number of extra 4K pages to be allocated at the end of program, when it is loaded 0Ch WORD maximum number of extra 4K pages to be allocated at the end of program, when it is loaded 0Eh DWORD initial ESP 12h WORD word checksum of file 14h DWORD initial EIP 18h WORD offset of first relocation item 1Ah WORD overlay number 1Ch WORD ??? (wants to be 1) SeeAlso: #01620 Format of new Phar Lap .EXP file header: Offset Size Description (Table 01620) 00h 2 BYTEs signature ("P2" for 286 .EXP executable, "P3" for 386 .EXP) 02h WORD level (01h flat-model file, 02h multisegmented file) 04h WORD header size 06h DWORD file size in bytes 0Ah WORD checksum 0Ch DWORD offset of run-time parameters within file (see #01622) 10h DWORD size of run-time parameters in bytes 14h DWORD offset of relocation table within file 18h DWORD size of relocation table in bytes 1Ch DWORD offset of segment information table within file (see #01621) 20h DWORD size of segment information table in bytes 24h WORD size of segment information table entry in bytes 26h DWORD offset of load image within file 2Ah DWORD size of load image on disk 2Eh DWORD offset of symbol table within file or 00000000h 32h DWORD size of symbol table in bytes 36h DWORD offset of GDT within load image 3Ah DWORD size of GDT in bytes 3Eh DWORD offset of LDT within load image 42h DWORD size of LDT in bytes 46h DWORD offset of IDT within load image 4Ah DWORD size of IDT in bytes 4Eh DWORD offset of TSS within load image 52h DWORD size of TSS in bytes 56h DWORD minimum number of extra bytes to be allocated at end of program (level 1 executables only) 5Ah DWORD maximum number of extra bytes to be allocated at end of program (level 1 executables only) 5Eh DWORD base load offset (level 1 executables only) 62h DWORD initial ESP 66h WORD initial SS 68h DWORD initial EIP 6Ch WORD initial CS 6Eh WORD initial LDT 70h WORD initial TSS 72h WORD flags bit 0: load image is packed bit 1: 32-bit checksum is present bits 4-2: type of relocation table 74h DWORD memory requirements for load image 78h DWORD 32-bit checksum (optional) 7Ch DWORD size of stack segment in bytes 80h 256 BYTEs reserved (0) SeeAlso: #01619,#01623 Format of Phar Lap segment information table entry: Offset Size Description (Table 01621) 00h WORD selector number 02h WORD flags 04h DWORD base offset of selector 08h DWORD minimum number of extra bytes to be allocated to the segment Format of 386|DOS-Extender run-time parameters: Offset Size Description (Table 01622) 00h 2 BYTEs signature "DX" (44h 58h) 02h WORD minimum number of real-mode params to leave free at run time 04h WORD maximum number of real-mode params to leave free at run time 06h WORD minimum interrupt buffer size in KB 08h WORD maximum interrupt buffer size in KB 0Ah WORD number of interrupt stacks 0Ch WORD size in KB of each interrupt stack 0Eh DWORD offset of byte past end of real-mode code and data 12h WORD size in KB of call buffers 14h WORD flags bit 0: file is virtual memory manager bit 1: file is a debugger 16h WORD unprivileged flag (if nonzero, executes at ring 1, 2, or 3) 18h 104 BYTEs reserved (0) Format of Phar Lap repeat block header: Offset Size Description (Table 01623) 00h WORD byte count 02h BYTE repeat string length Format of Borland debugging information header (following load image): Offset Size Description (Table 01624) 00h WORD signature 52FBh 02h WORD version ID 04h DWORD size of name pool in bytes 08h WORD number of names in name pool 0Ah WORD number of type entries 0Ch WORD number of structure members 0Eh WORD number of symbols 10h WORD number of global symbols 12h WORD number of modules 14h WORD number of locals (optional) 16h WORD number of scopes in table 18h WORD number of line-number entries 1Ah WORD number of include files 1Ch WORD number of segment records 1Eh WORD number of segment/file correlations 20h DWORD size of load image after removing uninitialized data and debug information 24h DWORD debugger hook; pointer into debugged program whose meaning depends on program flags 28h BYTE program flags bit 0: case-sensitive link bit 1: pascal overlay program 29h WORD no longer used 2Bh WORD size of data pool in bytes 2Dh BYTE padding 2Eh WORD size of following header extension (currently 00h, 10h, or 20h) 30h WORD number of classes 32h WORD number of parents 34h WORD number of global classes (currently unused) 36h WORD number of overloads (currently unused) 38h WORD number of scope classes 3Ah WORD number of module classes 3Ch WORD number of coverage offsets 3Eh DWORD offset relative to symbol base of name pool 42h WORD number of browser information records 44h WORD number of optimized symbol records 46h WORD debugging flags 48h 8 BYTEs padding Note: additional information on the Borland debugging info may be found in Borland's Open Architecture Handbook SeeAlso: #01600Top
INT 21 - ELRES v1.0 only - INSTALLATION CHECK AH = 4Bh DS:DX = 0000h:0000h Return: ES:BX -> ELRES history structure (see #01381 at AH=2Bh/CX=454Ch) DX = DABEh (signature, DAve BEnnett) Program: ELRES is an MS-DOS return code (errorlevel) recorder by David H. Bennett SeeAlso: AH=2Bh/CX=454ChTop
INT 21 - VIRUS - "MG", "699"/"Thirteen Minutes" - INSTALLATION CHECK AX = 4B04h Return: CF clear if "MG" resident AX = 044Bh if "699"/"Thirteen Minutes" resident SeeAlso: AX=4243h,AH=4Ah/BX=FFFFh,AX=4B21hTop
INT 21 - DOS 5+ - SET EXECUTION STATE AX = 4B05h DS:DX -> execution state structure (see #01625) Return: CF clear if successful AX = 0000h CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) Note: used by programs which intercept AX=4B00h to prepare new programs for execution (including setting the DOS version number). No DOS, BIOS or other software interrupt may be called after return from this call before commencement of the child process. If DOS is running in the HMA, A20 is turned off on return from this call. SeeAlso: AH=4Bh Format of execution state structure: Offset Size Description (Table 01625) 00h WORD reserved (00h) 02h WORD type flags bit 0: program is an .EXE bit 1: program is an overlay 04h DWORD pointer to ASCIZ name of program file 08h WORD PSP segment of new program 0Ah DWORD starting CS:IP of new program 0Eh DWORD program size including PSPTop
INT 21 U - FBOOT v2.13 - PERFORM FAST BOOTSTRAP AX = 4B18h DX = 0010h BX = disk selector 0000h boot from floppy 0080h boot from hard disk Return: never if FastBoot installed Program: CyberWare FastBoot allows fast warm boots by skipping CMOS checking, ROM scan, RAM & peripheral components test InstallCheck: search for a character device driver called "FBOOT$$$"Top
INT 21 - VIRUS - "Holocaust"/"Telefonica" - ??? AX = 4B20h SeeAlso: AX=4B04h,AX=4B21hTop
INT 21 C - VIRUS - "Holocaust"/"Telefonica" - ??? AX = 4B21h Note: called at completion of virus installation SeeAlso: AX=4B04h,AX=4B20h,AX=4B25hTop
INT 21 - VIRUS - "1063"/"Mono" - INSTALLATION CHECK AX = 4B25h Return: DI = 1234h if resident SeeAlso: AX=4B21h,AX=4B40hTop
INT 21 - VIRUS - "Plastique"/"AntiCad" - INSTALLATION CHECK AX = 4B40h Return: AX = 5678h if resident SeeAlso: AX=4B25h,AX=4B41h,AX=4B4AhTop
INT 21 - VIRUS - "Plastique"/"AntiCad" - ??? AX = 4B41h ??? Return: ??? SeeAlso: AX=4B40hTop
INT 21 - VIRUS - "Jabberwocky" - INSTALLATION CHECK AX = 4B4Ah Return: AL = 57h if resident SeeAlso: AX=4B40h,AX=4B4BhTop
INT 21 - VIRUS - "Horse-2" - INSTALLATION CHECK AX = 4B4Bh Return: CF clear if resident SeeAlso: AX=4B4Ah,AX=4B4DhTop
INT 21 - VIRUS - "Murphy-2", "Patricia"/"Smack" - INSTALLATION CHECK AX = 4B4Dh Return: CF clear if resident SeeAlso: AX=4B4Ah,AX=4B50hTop
INT 21 - VIRUS - "Plastique-2576"/"AntiCad-2576" - INSTALLATION CHECK AX = 4B50h Return: AX = 1234h if resident SeeAlso: AX=4B4Dh,AX=4B53h,AX=4B60hTop
INT 21 - VIRUS - "Horse" - INSTALLATION CHECK AX = 4B53h Return: CF clear if resident SeeAlso: AX=4B50h,AX=4B53h/BX=2121h,AX=4B55hTop
INT 21 - VIRUS - "One Half" - INSTALLATION CHECK AX = 4B53h BX = 2121h CX = 1212h DX = 0236h Return: AX = 454Bh if installed SeeAlso: AX=4B50h,AX=4B53h,AX=4B55hTop
INT 21 - VIRUS - "Sparse" - INSTALLATION CHECK AX = 4B55h Return: AX = 1231h if resident SeeAlso: AX=4B53h,AX=4B59hTop
INT 21 - VIRUS - "Murphy-1", "Murphy-4" - INSTALLATION CHECK AX = 4B59h Return: CF clear if resident SeeAlso: AX=4B50h,AX=4B5EhTop
INT 21 - VIRUS - "Brothers" - INSTALLATION CHECK AX = 4B5Eh Return: CF clear if resident SeeAlso: AX=4B59h,AX=4B87hTop
INT 21 - VIRUS - "Plastique-2576"/"AntiCad-2576" - ??? AX = 4B60h ??? Return: ??? SeeAlso: AX=4B50hTop
INT 21 - DR DOS v3.31+ - RUN ALREADY-LOADED KERNEL FILE AX = 4B80h DS:DX -> ASCIZ name of program to EXEC ES = segment of PSP for kernel file Return: only if call failed Note: DR DOS uses this call after an AX=4B01h to load the kernel file into memory and patch the program's parent-PSP field to point at itself SeeAlso: AH=4Bh"EXEC"Top
INT 21 - VIRUS - "Shirley" - INSTALLATION CHECK AX = 4B87h Return: AX = 6663h if resident SeeAlso: AX=4B5Eh,AX=4B95hTop
INT 21 - VIRUS - "Zherkov-1882" - INSTALLATION CHECK AX = 4B95h Return: AX = 1973h if resident SeeAlso: AX=4B87h,AX=4BA7hTop
INT 21 - VIRUS - "1876"/"Dash-em" - INSTALLATION CHECK AX = 4BA7h Return: AX = B459h if resident SeeAlso: AX=4B95h,AX=4BAAhTop
INT 21 - VIRUS - "Nomenklatura" - INSTALLATION CHECK AX = 4BAAh Return: CF clear if resident SeeAlso: AX=4BA7h,AX=4BAFhTop
INT 21 - VIRUS - "948"/"Screenplus1", "Magnitogorsk" - INSTALLATION CHECK AX = 4BAFh Return: AL = AFh if "Magnitogorsk" resident AL = FAh if "948"/"Screenplus1" resident SeeAlso: AX=4BAAh,AX=4BB1h"VIRUS"Top
INT 21 - VIRUS - "UZZY" -INSTALLATION CHECK AX = 4BB1h Return: CL = 04h if resident SeeAlso: AX=4BAFh"VIRUS",AX=4BDDh"VIRUS"Top
INT 21 - VIRUS - "Lozinsky"/"Zherkov" - INSTALLATION CHECK AX = 4BDDh Return: AX = 1234h SeeAlso: AX=4BB1h"VIRUS",AX=4BFEhTop
INT 21 - F-DRIVER.SYS v1.14+ - GRAB INT 21 AX = 4BEEh Return: AX = status 1234h grab was successful 2345h failed (INT 21 grabbed previously) Program: F-DRIVER.SYS is part of the shareware F-PROT virus/trojan protection package by Fridrik Skulason Note: when called the first time, this function moves the INT 21 monitoring code from its original location in the INT 21 chain to be the first thing called by INT 21. This is the mechanism used by F-NET. SeeAlso: INT 2F/AX=4653h/CX=0002h,INT 2F/AX=4653h/CX=0007hTop
INT 21 - DIET v1.10+ (Overlay Mode) - INSTALLATION CHECK AX = 4BF0h Return: CF clear if installed AX = 899Dh Program: DIET is an executable-compression program by Teddy Matsumoto SeeAlso: AX=37D0h,AX=4BF1hTop
INT 21 - DIET v1.10+ (Overlay Mode) - EXPAND PROGRAM??? AX = 4BF1h Return: ??? SeeAlso: AX=37D0h,AX=4BF0hTop
INT 21 - VIRUS - "Jerusalem 2" - INSTALLATION CHECK AX = 4BF1h Return: AX = 1FB4h if resident SeeAlso: AH=3Fh/BX=FEB0h"VIRUS",AX=4BDDh"VIRUS",AX=4BFEh"VIRUS"Top
INT 21 - VIRUS - "Hitchcock", "Dark Avenger-1028", "1193" - INSTALLATION CHECK AX = 4BFEh Return: AX = 1234h if "Hitchcock" or "Storm" resident AX = ABCDh if "1193"/"Copyright" resident DI = 55BBh if "Dark Avenger-1028" resident SeeAlso: AX=4BDDh,AX=4BF1h"VIRUS",AX=4BFFh"Justice"Top
INT 21 - VIRUS - "USSR-707", "Justice", "Europe 92" - INSTALLATION CHECK AX = 4BFFh Return: BL = FFh if "USSR-707" resident DI = 55AAh if "Justice" resident AX = 1234h if "Hitchcock.1238" resident CF clear if "Europe 92" resident SeeAlso: AX=4BFEh,AX=4BFFh"Cascade",AX=5252hTop
INT 21 - VIRUS - "Cascade" - INSTALLATION CHECK AX = 4BFFh SI = 0000h DI = 0000h Return: DI = 55AAh if installed SeeAlso: AX=4BFFh"Justice",AX=5252hTop
INT 21 - DOS 2+ - "EXIT" - TERMINATE WITH RETURN CODE AH = 4Ch AL = return code Return: never returns Notes: unless the process is its own parent (see #01378 [offset 16h] at AH=26h), all open files are closed and all memory belonging to the process is freed all network file locks should be removed before calling this function SeeAlso: AH=00h,AH=26h,AH=4Bh,AH=4Dh,INT 15/AH=12h/BH=02h,INT 20,INT 22 SeeAlso: INT 60/DI=0601hTop
INT 21 - Headroom - ??? AX = 4C57h DS:DX -> target address Note: jumps to target address instead of terminating program SeeAlso: AX=5758hTop
INT 21 - DOS 2+ - GET RETURN CODE (ERRORLEVEL) AH = 4Dh Return: AH = termination type 00h normal (INT 20,INT 21/AH=00h, or INT 21/AH=4Ch) 01h control-C abort 02h critical error abort 03h terminate and stay resident (INT 21/AH=31h or INT 27) AL = return code CF clear Notes: the word in which DOS stores the return code is cleared after being read by this function, so the return code can only be retrieved once COMMAND.COM stores the return code of the last external command it executed as ERRORLEVEL this call should not be used if the child was started with AX=4B04h; use AH=8Ah instead the following sequence will close a Virtual DOS Machine under OS/2 2.0 through OS/2 Merlin (but may change in the future): MOV AH,4Dh INT 21h HLT DB 02h,0FDh This sequence is the only way to close a specific VDM which was booted from floppy or a disk image. SeeAlso: AH=4Bh,AH=4Ch,AH=8AhTop
INT 21 - DOS 2+ - "FINDFIRST" - FIND FIRST MATCHING FILE AH = 4Eh AL = special flag for use by APPEND (refer to note below) CX = file attribute mask (see #01420 at AX=4301h) (bits 0 and 5 ignored) 0088h (Novell DOS 7) find first deleted file DS:DX -> ASCIZ file specification (may include path and wildcards) Return: CF clear if successful Disk Transfer Area filled with FindFirst data block (see #01626) CF set on error AX = error code (02h,03h,12h) (see #01680 at AH=59h/BX=0000h) Notes: for search attributes other than 08h, all files with at MOST the specified combination of hidden, system, and directory attributes will be returned. Under DOS 2.x, searching for attribute 08h (volume label) will also return normal files, while under DOS 3.0+ only the volume label (if any) will be returned. this call also returns successfully if given the name of a character device without wildcards. DOS 2.x returns attribute 00h, size 0, and the current date and time. DOS 3.0+ returns attribute 40h and the current date and time. immediately after an INT 2F/AX=B711h (APPEND return found name), the name at DS:DX will be overwritten; if AL=00h on entry, the actual found pathname will be stored, otherwise, the actual found path will be prepended to the original filespec without a path. under LANtastic, this call may be used to obtain a list of a server's shared resources by searching for "\\SERVER\*.*"; a list of printer resources may be obtained by searching for "\\SERVER\@*.*" under the FlashTek X-32 DOS extender, the filespec pointer is in DS:EDX BUGS: under DOS 3.x and 4.x, the second and subsequent calls to this function with a character device name (no wildcards) and search attributes which include the volume-label bit (08h) will fail unless there is an intervening DOS call which implicitly or explicity performs a directory search without the volume-label bit. Such implicit searches are performed by CREATE (AH=3Ch), OPEN (AH=3Dh), UNLINK (AH=41h), and RENAME (AH=56h) DR DOS 3.41 and 5.0 return the Directory attribute for the volume label SeeAlso: AH=11h,AH=4Fh,AX=4301h,AX=714Eh,AX=71A1h,AX=F257h/SF=02h SeeAlso: INT 2F/AX=111Bh,INT 2F/AX=B711h Format of FindFirst data block: Offset Size Description (Table 01626) ---PC-DOS 3.10, PC-DOS 4.01, MS-DOS 3.2/3.3/5.0--- 00h BYTE drive letter (bits 0-6), remote if bit 7 set 01h 11 BYTEs search template 0Ch BYTE search attributes ---DOS 2.x (and some DOS 3.x???)--- 00h BYTE search attributes 01h BYTE drive letter 02h 11 BYTEs search template ---WILDUNIX.COM--- 00h 12 BYTEs 15-character wildcard search pattern and drive letter (packed) 0Ch BYTE search attributes ---DOS 2.x and most 3.x--- 0Dh WORD entry count within directory 0Fh DWORD pointer to DTA??? 13h WORD cluster number of start of parent directory ---PC-DOS 4.01, MS-DOS 3.2/3.3/5.0--- 0Dh WORD entry count within directory 0Fh WORD cluster number of start of parent directory 11h 4 BYTEs reserved ---OS/2 MVDM--- 00h WORD "OS2_BMP_handle" 02h WORD "OS2_LastEnt" 04h DWORD "OS2_Checksum" 08h BYTE "OS2_usi_flag" 09h DWORD used by DOS emulator for second pass for volume-label searches 0Dh WORD (ret) "DOS_LastEnt" entry count within directory 0Fh BYTE OS/2 Processed-FindFirst flag 00h FindFirst processed by DOS 42h FindFirst processed by OS/2 10h 5 BYTEs reserved for future use ---all versions, documented fields--- 15h BYTE attribute of file found 16h WORD file time (see #01665 at AX=5700h) 18h WORD file date (see #01666 at AX=5700h) 1Ah DWORD file size 1Eh 13 BYTEs ASCIZ filename+extensionTop
INT 21 - WILDUNIX.COM internal - INSTALLATION CHECK AH = 4Eh DS:DX = 0000h:0000h Return: AH = 99h if installed Program: WILDUNIX.COM is a resident Unix-style wildcard expander by Steve Hosgood and Terry BarnabyTop
INT 21 - DOS 2+ - "FINDNEXT" - FIND NEXT MATCHING FILE AH = 4Fh Disk Transfer Area contains data block from previous FindFirst or FindNext call Return: CF clear if successful Disk Transfer Area updated CF set on error AX = error code (12h) (see #01680 at AH=59h/BX=0000h) Notes: under Novell DOS 7, if the FindFirst call (AH=4Eh) had CX=0088h, then the next matching deleted file will be returned since the entire state of a FindFirst/FindNext sequence is contained in the data block in the DTA, other disk operations such as renaming, moving, deleting, or creating files can cause inaccurate directory searches, such as finding the same file twice BUG: DR DOS 3.41 and 5.0 return the Directory attribute for the volume label SeeAlso: AH=12h,AH=4Eh,AX=714Fh,AX=71A1hTop
INT 21 - DOS 2+ internal - SET CURRENT PROCESS ID (SET PSP ADDRESS) AH = 50h BX = segment of PSP for new process Notes: DOS uses the current PSP address to determine which processes own files and memory; it corresponds to process identifiers used by other OSs under DOS 2.x, this function cannot be invoked inside an INT 28h handler without setting the Critical Error flag under MS-DOS 3.0+ and DR DOS 3.41+, this function does not use any of the DOS-internal stacks and may thus be called at any time, even during another INT 21h call some Microsoft applications such as Quick C 2.51 use segments of 0000h and FFFFh and direct access to the SDA (see #01687 at AX=5D06h) to test whether they are running under MS-DOS rather than a compatible OS; although one should only call this function with valid PSP addresses, any program hooking it should be prepared to handle invalid addresses this function is supported by the OS/2 compatibility box this call was undocumented prior to the release of DOS 5.0 SeeAlso: AH=26h,AH=51h,AH=62hTop
INT 21 - VIRUS - "Predator 2" - INSTALLATION CHECK AX = 50FDh Return: AX = FD50h if resident SeeAlso: AX=4BFFh"VIRUS",AX=5454h"VIRUS"Top
INT 21 - DOS 2+ internal - GET CURRENT PROCESS ID (GET PSP ADDRESS) AH = 51h Return: BX = segment of PSP for current process Notes: DOS uses the current PSP address to determine which processes own files and memory; it corresponds to process identifiers used by other OSs under DOS 2.x, this function cannot be invoked inside an INT 28h handler without setting the Critical Error flag under DOS 3.0+, this function does not use any of the DOS-internal stacks and may thus be called at any time, even during another INT 21h call supported by OS/2 compatibility box identical to the documented AH=62h this call was undocumented prior to the release of DOS 5.0 SeeAlso: AH=26h,AH=50h,AH=62hTop
INT 21 U - DOS 2+ internal - "SYSVARS" - GET LIST OF LISTS AH = 52h Return: ES:BX -> DOS list of lists (see #01627) Notes: partially supported by OS/2 v1.1 compatibility box (however, most pointers are FFFFh:FFFFh, LASTDRIVE is FFh, and the NUL header "next" pointer is FFFFh:FFFFh). partially supported by the Windows NT DOS box; contains only a rudimentary Current Directory Structure (see #01645) on return, ES points at the DOS data segment (see also INT 2F/AX=1203h) Quarterdeck's suggested check for the use of its DOSDATA.SYS or DOS-UP.SYS is to test whether the list-of-lists segment is greater than the segment of the first memory block; a better check for DOS-UP.SYS is INT 21/AX=2B01h/CX=444Dh because not all DOS workalikes support all fields in the List of Lists, applications should ensure that pointers are neither 0000h:0000h nor FFFFh:FFFFh before using them Windows for Workgroups 3.11 network and Windows95 set the path to the local drive and directory even for network drives; in that case the UNC form \\SERVER\SHARE can be obtained with INT 21/AX=5F02h or INT 21/AX=5F46h. LapLink RemoteAccess does the same even for INT 21/AX=5F02h Windows95 GUI no longer returns the true path for a SUBSTed drive, but MS-DOS 7.00 does; use INT 21/AH=60h to obtain the true name SeeAlso: INT 2F/AX=1203h Format of List of Lists: Offset Size Description (Table 01627) -24 WORD (DOS 3.1+) contents of CX from INT 21/AX=5E01h -22 WORD (DOS ???+) LRU counter for FCB caching -20 WORD (DOS ???+) LRU counter for FCB opens -18 DWORD (DOS ???+) address of OEM function handler (see INT 21/AH=F8h) FFFFh:FFFFh if not installed or not available -14 WORD (DOS ???+) offset in DOS CS of code to return from INT 21 call -12 WORD (DOS 3.1+) sharing retry count (see AX=440Bh) -10 WORD (DOS 3.1+) sharing retry delay (see AX=440Bh) -8 DWORD (DOS 3.0+) pointer to current disk buffer -4 WORD (DOS 3.0+) pointer in DOS data segment of unread CON input when CON is read via a handle, DOS reads an entire line, and returns the requested portion, buffering the rest for the next read. 0000h indicates no unread input -2 WORD segment of first memory control block (see #01628) 00h DWORD pointer to first Drive Parameter Block (see #01395 at AH=32h) 04h DWORD -> first System File Table (see #01639,#01640,#01641,#01642) 08h DWORD pointer to active CLOCK$ device's header (most recently loaded driver with CLOCK bit set) 0Ch DWORD pointer to active CON device's header (most recently loaded driver with STDIN bit set) ---DOS 2.x--- 10h BYTE number of logical drives in system 11h WORD maximum bytes/block of any block device 13h DWORD pointer to first disk buffer (see #01649,#01650) 17h 18 BYTEs actual NUL device driver header (not a pointer!) NUL is always the first device on DOS's linked list of device drivers. (see #01646) ---DOS 3.0--- 10h BYTE number of block devices 11h WORD maximum bytes/block of any block device 13h DWORD pointer to first disk buffer (see #01650,#01652) 17h DWORD pointer to array of current directory structures (see #01643) 1Bh BYTE value of LASTDRIVE command in CONFIG.SYS (default 5) 1Ch DWORD pointer to STRING= workspace area 20h WORD size of STRING area (the x in STRING=x from CONFIG.SYS) 22h DWORD pointer to FCB table 26h WORD the y in FCBS=x,y from CONFIG.SYS 28h 18 BYTEs actual NUL device driver header (not a pointer!) NUL is always the first device on DOS's linked list of device drivers. (see #01646) ---DOS 3.1-3.3--- 10h WORD maximum bytes per sector of any block device 12h DWORD pointer to first disk buffer in buffer chain (see #01650) 16h DWORD pointer to array of current directory structures (see #01643) 1Ah DWORD pointer to system FCB tables (see #01640,#01641,#01642) 1Eh WORD number of protected FCBs (the y in the CONFIG.SYS FCBS=x,y) 20h BYTE number of block devices installed 21h BYTE number of available drive letters (largest of 5, installed block devices, and CONFIG.SYS LASTDRIVE=). Also size of current directory structure array. 22h 18 BYTEs actual NUL device driver header (not a pointer!) NUL is always the first device on DOS's linked list of device drivers. (see #01646) 34h BYTE number of JOIN'ed drives ---DOS 4.x--- 10h WORD maximum bytes per sector of any block device 12h DWORD pointer to disk buffer info record (see #01652,#01653) Note: although the initialization code in IO.SYS uses this pointer, MSDOS.SYS does not, instead using the hardcoded address of the info record 16h DWORD pointer to array of current directory structures (see #01643,#01644) 1Ah DWORD pointer to system FCB tables (see #01640,#01641,#01642) 1Eh WORD number of protected FCBs (the y in the CONFIG.SYS FCBS=x,y) (always 00h for DOS 5.0) 20h BYTE number of block devices installed 21h BYTE number of available drive letters; also size of current directory structure array. For DOS 4.0-6.0: largest of 5, installed block devices, and CONFIG.SYS LASTDRIVE= For DOS 7.x (Windows9X), set to 32 if no LASTDRIVE= or LASTDRIVEHIGH=, else set to larger of installed block devices and LASTDRIVE(HIGH)= 22h 18 BYTEs actual NUL device driver header (not a pointer!) NUL is always the first device on DOS's linked list of device drivers. (see #01646) 34h BYTE number of JOIN'ed drives 35h WORD pointer within IBMDOS code segment to list of special program names (see #01662) (always 0000h for DOS 5.0) 37h DWORD pointer to FAR routine for resident IFS utility functions (see #01658) may be called by any IFS driver which does not wish to service functions 20h or 24h-28h itself 3Bh DWORD pointer to chain of IFS (installable file system) drivers 3Fh WORD the x in BUFFERS x,y (rounded up to multiple of 30 if in EMS) 41h WORD number of lookahead buffers (the y in BUFFERS x,y) 43h BYTE boot drive (1=A:) 44h BYTE flag: 01h to use DWORD moves (80386+), 00h otherwise 45h WORD extended memory size in KB ---DOS 5.0-6.0--- 10h 39 BYTEs as for DOS 4.x (above) 37h DWORD pointer to SETVER program list or 0000h:0000h 3Bh WORD (DOS=HIGH) offset in DOS CS of function to fix A20 control when executing special .COM format 3Dh WORD PSP of most-recently EXECed program if DOS in HMA, 0000h if low used for maintaining count of INT 21 calls which disable A20 on return 3Fh 8 BYTEs as for DOS 4.x (above) ---Windows NT DOS Box--- 10h 6 BYTEs ??? 16h DWORD pointer to array of current directory structures (see #01645) 1Ah 6 BYTEs ??? 20h BYTE number of block devices installed 21h BYTE number of local drive letters (= installed block devices) Also size of current directory structure array. 22h 18 BYTEs actual NUL device driver header (not a pointer!) NUL is always the first device on DOS's linked list of device drivers. (see #01646) ---DOS 7.x--- 10h 55 BYTEs as for DOS 5.0-6.0 (above) 47h 25 BYTEs ??? 60h BYTE "DOS_FLAG" (see also INT 26) Format of DOS memory control block: Offset Size Description (Table 01628) 00h BYTE block type: 5Ah if last block in chain, otherwise 4Dh 01h WORD PSP segment of owner or special flag value (see #01629) 03h WORD size of memory block in paragraphs 05h 3 BYTEs unused by MS-DOS (386MAX) if locked-out block, region start/prev region end ---DOS 2.x,3.x--- 08h 8 BYTEs unused ---DOS 4.0+ --- 08h 8 BYTEs ASCII program name if PSP memory block or DR DOS UMB, else garbage null-terminated if less than 8 characters Notes: the next MCB is at segment (current + size + 1) under DOS 3.1+, the first memory block is the DOS data segment, containing installable drivers, buffers, etc. Under DOS 4.0+ it is divided into subsegments, each with its own memory control block (see #01633), the first of which is at offset 0000h. for DOS 5+, blocks owned by DOS may have either "SC" or "SD" in bytes 08h and 09h. "SC" is system code or locked-out inter-UMB memory, "SD" is system data, device drivers, etc. Some versions of DR DOS use only seven characters of the program name, placing a NUL in the eighth byte. SeeAlso: #01630,#01632,#01633 (Table 01629) Values for special flag PSP segments: 0000h free 0006h DR DOS XMS UMB 0007h DR DOS excluded upper memory ("hole") 0008h belongs to DOS FFF7h 386MAX v6.01+ ??? FFFAh 386MAX UMB control block (see #01477 at AX=4402h"386MAX") FFFDh 386MAX locked-out memory FFFEh 386MAX UMB (normally immediately follows its control block) FFFFh 386MAX v6.01+ device driver Format of MS-DOS 5+ UMB control block: Offset Size Description (Table 01630) 00h BYTE type: 5Ah if last block in chain, 4Dh otherwise 01h WORD first available paragraph in UMB if control block at start of UMB, 000Ah if control block at end of UMB 03h WORD length in paragraphs of following UMB or locked-out region 05h 3 BYTEs unused 08h 8 BYTEs block type name: "UMB" if start block, "SM" if end block in UMB SeeAlso: #01628,#01631 Format of MS-DOS 7.0 HMA memory control block: Offset Size Description (Table 01631) 00h WORD signature "MS" (4Dh 53h) 02h WORD usage flag??? 0000h free else ??? 04h WORD size of memory block in bytes (not counting MCB) 06h WORD offset of next memory block in HMA or 0000h 08h 8 BYTEs unused (0) SeeAlso: #01628,#01630,#01632 Format of STARLITE (General Software's Embedded DOS) memory control block: Offset Size Description (Table 01632) 00h BYTE block type: 5Ah if last block in chain, otherwise 4Dh 01h WORD PSP segment of owner, 0000h if free, 0008h if belongs to DOS 03h WORD size of memory block in paragraphs 05h BYTE unused 06h WORD segment address of next memory control block (0000h if last) 08h WORD segment address of previous memory control block or 0000h 0Ah 6 BYTEs reserved Format of DOS 4.0+ data segment subsegment control blocks: Offset Size Description (Table 01633) 00h BYTE subsegment type (blocks typically appear in this order) "D" device driver "E" device driver appendage "I" IFS (Installable File System) driver (MS-DOS 7) high-loaded drive data table array (see #02603) "F" FILES= control block storage area (for FILES>5) "X" FCBS= control block storage area, if present "C" BUFFERS EMS workspace area (if BUFFERS /X option used) "B" BUFFERS= storage area "L" LASTDRIVE= current directory structure array storage area "S" STACKS= code and data area, if present (see #01634,#01635) "T" INSTALL= transient code 01h WORD paragraph of subsegment start (usually the next paragraph) 03h WORD size of subsegment in paragraphs 05h 3 BYTEs unused 08h 8 BYTEs for types "D" and "I", base name of file from which the driver was loaded (unused for other types) Format of data at start of STACKS code segment (if present): Offset Size Description (Table 01634) 00h WORD ??? 02h WORD number of stacks (the x in STACKS=x,y) 04h WORD size of stack control block array (should be 8*x) 06h WORD size of each stack (the y in STACKS=x,y) 08h DWORD pointer to STACKS data segment 0Ch WORD offset in STACKS data segment of stack control block array 0Eh WORD offset in STACKS data segment of last element of that array 10h WORD offset in STACKS data segment of the entry in that array for the next stack to be allocated (initially same as value in 0Eh and works its way down in steps of 8 to the value in 0Ch as hardware interrupts pre-empt each other) Note: the STACKS code segment data may, if present, be located as follows: DOS 3.2: The code segment data is at a paragraph boundary fairly early in the IBMBIO segment (seen at 0070:0190h) DOS 3.3: The code segment is at a paragraph boundary in the DOS data segment, which may be determined by inspecting the segment pointers of the vectors for those of interrupts 02h, 08h-0Eh, 70h, 72-77h which have not been redirected by device drivers or TSRs. DOS 4.0+ Identified by sub-segment control block type "S" within the DOS data segment. SeeAlso: #01636,INT B4"STACKMAN" Format of array elements in STACKS data segment: Offset Size Description (Table 01635) 00h BYTE status: 00h=free, 01h=in use, 03h=corrupted by overflow of higher stack. 01h BYTE not used 02h WORD previous SP 04h WORD previous SS 06h WORD ptr to word at top of stack (new value for SP). The word at the top of the stack is preset to point back to this control block. Format of SHARE.EXE hooks (DOS 3.1-6.00): Offset Size Description (Table 01636) (offsets from first system file table--pointed at by ListOfLists+04h) -3Ch DWORD pointer to FAR routine for ??? Note: not called by MS-DOS 3.3, set to 0000h:0000h by SHARE 3.3+ -38h DWORD pointer to FAR routine called on opening file on call, internal DOS location points at filename (see #01687 at AX=5D06h) Return: CF clear if successful CF set on error AX = DOS error code (24h) (see #01680 at AH=59h/BX=0000h) Note: SHARE directly accesses DOS-internal data to get name of file just opened -34h DWORD pointer to FAR routine called on closing file ES:DI -> system file table Note: does something to every Record Lock Record for file -30h DWORD pointer to FAR routine to close all files for given computer (called by AX=5D03h) -2Ch DWORD pointer to FAR routine to close all files for given process (called by AX=5D04h) -28h DWORD pointer to FAR routine to close file by name (called by AX=5D02h) DS:SI -> DOS parameter list (see #01686 at AX=5D00h) DPL's DS:DX -> name of file to close Return: CF clear if successful CF set on error AX = DOS error code (03h) (see #01680 at AH=59h/BX=0000h) -24h DWORD pointer to FAR routine to lock region of file call with BX = file handle ---DOS 3.x--- CX:DX = starting offset SI:AX = size ---DOS 4.0+ --- DS:DX -> lock range DWORD start offset DWORD size in bytes Return: CF set on error AL = DOS error code (21h) (see #01680 at AH=59h) Note: not called if file is marked as remote -20h DWORD pointer to FAR routine to unlock region of file call with BX = file handle ---DOS 3.x--- CX:DX = starting offset SI:AX = size ---DOS 4.0+ --- DS:DX -> lock range DWORD start offset DWORD size in bytes Return: CF set on error AL = DOS error code (21h) (see #01680 at AH=59h) Note: not called if file is marked as remote -1Ch DWORD pointer to FAR routine to check if file region is locked call with ES:DI -> system file table entry for file CX = length of region from current position in file Return: CF set if any portion of region locked AX = 0021h -18h DWORD pointer to FAR routine to get open file list entry (called by AX=5D05h) call with DS:SI -> DOS parameter list (see #01686 at AX=5D00h) DPL's BX = index of sharing record DPL's CX = index of SFT in SFT chain of sharing rec Return: CF set on error or not loaded AX = DOS error code (12h) (see #01680 at AH=59h) CF clear if successful ES:DI -> filename CX = number of locks owned by specified SFT BX = network machine number DX destroyed -14h DWORD pointer to FAR routine for updating FCB from SFT??? call with DS:SI -> unopened FCB ES:DI -> system file table entry Return: BL = C0h??? Note: copies following fields from SFT to FCB: starting cluster of file 0Bh 1Ah sharing record offset 33h 1Ch file attribute 04h 1Eh -10h DWORD pointer to FAR routine to get first cluster of FCB file ??? call with ES:DI -> system file table entry DS:SI -> FCB Return: CF set if SFT closed or sharing record offsets mismatched CF clear if successful BX = starting cluster number from FCB -0Ch DWORD pointer to FAR routine to close file if duplicate for process DS:SI -> system file table Return: AX = number of handle in JFT which already uses SFT Note: called during open/create of a file Note: if SFT was opened with inheritance enabled and sharing mode 111, does something to all other SFTs owned by same process which have the same file open mode and sharing record -08h DWORD pointer to FAR routine for closing file Note: closes various handles referring to file most-recently opened -04h DWORD pointer to FAR routine to update directory info in related SFT entries call with ES:DI -> system file table entry for file (see #01641) AX = subfunction (apply to each related SFT) 00h: update time stamp (offset 0Dh) and date stamp (offset 0Fh) 01h: update file size (offset 11h) and starting cluster (offset 0Bh). Sets last-accessed cluster fields to start of file if file never accessed 02h: as function 01h, but last-accessed fields always changed 03h: do both functions 00h and 02h Note: follows ptr at offset 2Bh in system file table entries Note: NOP if opened with no-inherit or via FCB Notes: most of the above hooks (except -04h, -14h, -18h, and -3Ch) assume either that SS=DOS DS or SS=DS=DOS DS and directly access DOS-internal data sharing hooks are not supported by DR DOS 5-6; they appear to be supported by Novell DOS 7, with a segment of 0000h indicating the DOS data segment SeeAlso: #01637,#01638 Format of sharing record: Offset Size Description (Table 01637) 00h BYTE flag 00h free block 01h allocated block FFh end marker 01h WORD size of block 03h BYTE checksum of pathname (including NUL) if sum of ASCII values is N, checksum is (N/256 + N%256) 04h WORD offset in SHARE's DS of first Record Lock Record (see #01638) 06h DWORD pointer to start of system file table chain for file 0Ah WORD unique sequence number 0Ch var ASCIZ full pathname Note: not supported by DR DOS SHARE 1.1 and 2.0; will reportedly be supported by Novell DOS 7 SeeAlso: #01636,#01638 Format of SHARE.EXE Record Lock Record: Offset Size Description (Table 01638) 00h WORD offset in SHARE's DS of next lock table in list or 0000h 02h DWORD offset in file of start of locked region 06h DWORD offset in file of end of locked region 0Ah DWORD pointer to System File Table entry for this file 0Eh WORD PSP segment of lock's owner ---DOS 5+ --- 10h WORD lock type: (00h lock all, 01h lock writes only) SeeAlso: #01636,#01637,#01639,#01642 Format of DOS 2.x system file tables: Offset Size Description (Table 01639) 00h DWORD pointer to next file table (offset FFFFh if last) 04h WORD number of files in this table 06h 28h bytes per file Offset Size Description 00h BYTE number of file handles referring to this file 01h BYTE file open mode (see #01402 at AH=3Dh) 02h BYTE file attribute 03h BYTE drive (0 = character device, 1 = A, 2 = B, etc) 04h 11 BYTEs filename in FCB format (no path,no period,blank-padded) 0Fh WORD ??? 11h WORD ??? 13h DWORD file size??? 17h WORD file date in packed format (see #01666 at AX=5700h) 19h WORD file time in packed format (see #01665 at AX=5700h) 1Bh BYTE device attribute (see #01423 at AX=4400h) ---character device--- 1Ch DWORD pointer to device driver ---block device--- 1Ch WORD starting cluster of file 1Eh WORD relative cluster in file of last cluster accessed ------ 20h WORD absolute cluster number of current cluster 22h WORD ??? 24h DWORD current file position??? SeeAlso: #01640,#01641,#01642 Format of DOS 3.0 system file tables and FCB tables: Offset Size Description (Table 01640) 00h DWORD pointer to next file table (offset FFFFh if last) 04h WORD number of files in this table 06h 38h bytes per file Offset Size Description 00h-1Eh as for DOS 3.1+ (see #01641) 1Fh WORD byte offset of directory entry within sector 21h 11 BYTEs filename in FCB format (no path/period, blank-padded) 2Ch DWORD (SHARE.EXE) pointer to previous SFT sharing same file 30h WORD (SHARE.EXE) network machine number which opened file (Windows Enhanced mode DOSMGR uses the virtual machine ID as the machine number; see INT 2F/AX=1683h) 32h WORD PSP segment of file's owner (first three entries for AUX/CON/PRN contain segment of IO.SYS startup code) 34h WORD (SHARE.EXE) offset in SHARE code seg of share record 36h WORD ??? apparently always 0000h SeeAlso: #01639,#01641,#01642 Format of DOS 3.1-3.3x, DR DOS 5.0-6.0 system file tables and FCB tables: Offset Size Description (Table 01641) 00h DWORD pointer to next file table (offset FFFFh if last) 04h WORD number of files in this table 06h 35h bytes per file Offset Size Description 00h WORD number of file handles referring to this file 02h WORD file open mode (see AX=6C00h, #01402 at AH=3Dh) bit 15 set if this file opened via FCB 04h BYTE file attribute (see #01420 at AX=4301h) 05h WORD device info word (see #01423 at AX=4400h) bit 15 set if remote file bit 14 set means do not set file date/time on closing bit 12 set means don't inherit on EXEC bits 5-0 drive number for disk files 07h DWORD pointer to device driver header if character device else pointer to DOS Drive Parameter Block (see #01395 at AH=32h) 0Bh WORD starting cluster of file 0Dh WORD file time in packed format (see #01665 at AX=5700h) not used for character devices in DR DOS 0Fh WORD file date in packed format (see #01666 at AX=5700h) not used for character devices in DR DOS 11h DWORD file size ---system file table--- 15h DWORD current offset in file (may be larger than size of file; INT 21/AH=42h does not check new position) ---FCB table--- 15h WORD counter for last I/O to FCB 17h WORD counter for last open of FCB (these are separate to determine the times of the latest I/O and open) --- 19h WORD relative cluster within file of last cluster accessed 1Bh WORD absolute cluster number of last cluster accessed 0000h if file never read or written??? 1Dh WORD number of sector containing directory entry (see #01352) 1Fh BYTE number of dir entry within sector (byte offset/32) 20h 11 BYTEs filename in FCB format (no path/period, blank-padded) 2Bh DWORD (SHARE.EXE) pointer to previous SFT sharing same file 2Fh WORD (SHARE.EXE) network machine number which opened file (Windows Enhanced mode DOSMGR uses the virtual machine ID as the machine number; see INT 2F/AX=1683h) 31h WORD PSP segment of file's owner (see #01378 at AH=26h) (first three entries for AUX/CON/PRN contain segment of IO.SYS startup code) 33h WORD offset within SHARE.EXE code segment of sharing record (see #01637) 0000h = none SeeAlso: #01639,#01640,#01642 Format of DOS 4.0-6.0 system file tables and FCB tables: Offset Size Description (Table 01642) 00h DWORD pointer to next file table (offset FFFFh if last) 04h WORD number of files in this table 06h 3Bh bytes per file Offset Size Description 00h WORD number of file handles referring to this file FFFFh if in use but not referenced 02h WORD file open mode (see AX=6C00h,#01402 at AH=3Dh) bit 15 set if this file opened via FCB 04h BYTE file attribute (see #01420 at AX=4301h) 05h WORD device info word (see also #01423 at AX=4400h) bit 15 set if remote file bit 14 set means do not set file date/time on closing bit 13 set if named pipe bit 12 set if no inherit bit 11 set if network spooler bit 7 set if device, clear if file (only if local) bits 6-0 as for AX=4400h 07h DWORD pointer to device driver header if character device else pointer to DOS Drive Parameter Block (see #01395 at AH=32h) or REDIR data 0Bh WORD starting cluster of file (local files only) not set for FAT32-capable versions of Windows95 (since they allow 32-bit cluster numbers) 0Dh WORD file time in packed format (see #01665) 0Fh WORD file date in packed format (see #01666) 11h DWORD file size 15h DWORD current offset in file (SFT) LRU counters (FCB table, two WORDs) ---local file--- 19h WORD relative cluster within file of last cluster accessed 1Bh DWORD number of sector containing directory entry 1Fh BYTE number of dir entry within sector (byte offset/32) ---network redirector--- 19h DWORD pointer to REDIRIFS record 1Dh 3 BYTEs ??? ------ 20h 11 BYTEs filename in FCB format (no path/period, blank-padded) 2Bh DWORD (SHARE.EXE) pointer to previous SFT sharing same file 2Fh WORD (SHARE.EXE) network machine number which opened file (Windows Enhanced mode DOSMGR uses the virtual machine ID as the machine number; see INT 2F/AX=1683h) 31h WORD PSP segment of file's owner (see #01378 at AH=26h) (first three entries for AUX/CON/PRN contain segment of IO.SYS startup code) 33h WORD offset within SHARE.EXE code segment of sharing record (see #01595) 0000h = none 35h WORD (local) absolute cluster number of last clustr accessed (redirector) ??? 37h DWORD pointer to IFS driver for file, 0000000h if native DOS Note: the OS/2 2.0 DOS Boot Session does not properly fill in the filename field due to incomplete support for SFTs; the OS/2 2.0 DOS Window does not appear to support SFTs at all SeeAlso: #01639,#01640,#01641 Format of current directory structure (CDS) (array, LASTDRIVE entries): Offset Size Description (Table 01643) 00h 67 BYTEs ASCIZ path in form X:\PATH (local) or UNC form \\SERVER\PATH (network, see notes below) 43h WORD drive attributes (also see note below) (see also AX=5F07h) bit 15: uses network redirector \ invalid if 00, installable bit 14: physical drive / file system if 11 bit 13: JOIN'ed \ path above is true path that would be bit 12: SUBST'ed / needed if not under SUBST or JOIN bit 11: removable media (WinNT4.0) bit 10: hard disk??? (WinNT4.0) bit 7: remote drive hidden from redirector's assign-list and exempt from network connection make/break commands; set for CD-ROM drives by MSCDEX (not supported by CORELCDX) 45h DWORD pointer to Drive Parameter Block for drive (see #01395 at AH=32h) ---local drives--- 49h WORD starting cluster of current directory 0000h = root, FFFFh = never accessed 4Bh WORD ??? seems to be FFFFh always 4Dh WORD ??? seems to be FFFFh always ---network drives--- 49h DWORD pointer to redirector or REDIRIFS record, or FFFFh:FFFFh (DOS 4 only) available for use by IFS driver 4Dh WORD stored user data from INT 21/AX=5F03h ------ 4Fh WORD offset in current directory path of backslash corresponding to root directory for drive this value specifies how many characters to hide from the "CHDIR" and "GETDIR" calls; normally set to 2 to hide the drive letter and colon, SUBST, JOIN, and networks change it so that only the appropriate portion of the true path is visible to the user ---DOS 4.0+ --- 51h BYTE (DOS 4 only, remote drives) device type 04h network drive 52h DWORD pointer to IFS driver (DOS 4) or redirector block (DOS 5+) for this drive, 00000000h if native DOS 56h WORD available for use by IFS driver Notes: the path for invalid drives is normally set to X:\, but may be empty after JOIN x: /D in DR DOS 5.0 or NET USE x: /D in older LAN versions normally, only one of bits 13&12 may be set together with bit 14, but DR DOS 5.0 uses other combinations for bits 15-12: 0111 JOIN, 0001 SUBST, 0101 ASSIGN (see #01644) Windows for Workgroups 3.11 network sets the path to the local drive and directory even for network drives; in that case the UNC form \\SERVER\SHARE can be obtained with INT 21/AX=5F02h or INT 21/AX=5F46h. LapLink RemoteAccess does the same even for INT 21/AX=5F02h Window NT 4.0 always uses X:\PATH, even for substituted drives (i.e. the CDS will *not* contain the original path prior to SUBST) SoftWindows on the Macintosh PowerPC sets \\E for the host drive SeeAlso: #01644,INT 21/AX=71AAh/BL=00h Format of DR DOS 5.0-6.0 current directory structure entry (array): Offset Size Description (Table 01644) 00h 67 BYTEs ASCIZ pathname of actual root directory for this logical drive 43h WORD drive attributes 1000h SUBSTed drive 3000h??? JOINed drive 4000h physical drive 5000h ASSIGNed drive 7000h JOINed drive 8000h network drive 45h BYTE physical drive number (0=A:) if this logical drive is valid 46h BYTE ??? apparently flags for JOIN and ASSIGN 47h WORD cluster number of start of parent directory (0000h = root) 49h WORD entry number of current directory in parent directory 4Bh WORD cluster number of start of current directory 4Dh WORD used for media change detection (details not available) 4Fh WORD cluster number of SUBST/JOIN "root" directory 0000h if physical root directory SeeAlso: #01643 Format of Windows NT Current Directory Structure (CDS) (array): Offset Size Description (Table 01645) 00h 67 BYTEs ASCIZ path in form X:\ (does not show either current directory or network path) 43h 4 BYTEs ??? Note: the WinNT CDS contains only as many entries as there are local drives, not LASTDRIVE entries. Format of DOS device driver header: Offset Size Description (Table 01646) 00h DWORD pointer to next driver, offset=FFFFh if last driver 04h WORD device attributes (see #01647,#01648) 06h WORD device strategy entry point call with ES:BX -> request header (see #02597 at INT 2F/AX=0802h) 08h WORD device interrupt entry point ---character device--- 0Ah 8 BYTEs blank-padded character device name ---block device--- 0Ah BYTE number of subunits (drives) supported by driver 0Bh 7 BYTEs normally unused; sometimes contains signature to indicate specific drivers: "$PCMATA" PCMCIA driver PCMATA.SYS (see AX=440Dh"DOS 3.2+") "AHADDVR" Adaptec SCSI disk driver ASPIDISK.SYS "DBLSPAC" MS DoubleSpace or DriveSpace "DSKREET" NortonUtils v5+ Diskreet (see INT 2F/AX=FE00h) "GFS " LapLink III device driver DD.BIN "SIDExxx" PCMCIA driver ATADRV.EXE (see AX=440Dh"DOS 3.2+") "STAC-CD" Stacker/Stacker Anywhere (see AX=4404h"Stacker") ---DoubleSpace/DriveSpace--- 12h 2 BYTEs signature ",." (2Ch 2Eh) 14h var preloading API entry point ---CD-ROM--- 12h WORD reserved, must be 0000h appears to be another device chain 14h BYTE drive letter, 01h=A:, etc. (must initially be 00h; this byte is set by MSCDEX when it loads) 15h BYTE number of units 16h 6 BYTEs signature 'MSCDnn' where 'nn' is version (currently '00') (this field does not exist in most drivers) SeeAlso: #02550 at INT 25/AX=CDCDh,#02845 at INT 2F/AX=5600h Bitfields for device attributes (character device): Bit(s) Description (Table 01647) 15 set (indicates character device) 14 IOCTL supported (see AH=44h) 13 (DOS 3.0+) output until busy supported 12 reserved 11 (DOS 3.0+) OPEN/CLOSE/RemMedia calls supported 10-8 reserved 7 (DOS 5.0+) Generic IOCTL check call supported (driver command 19h) (see AX=4410h,AX=4411h) 6 (DOS 3.2+) Generic IOCTL call supported (driver command 13h) (see AX=440Ch,AX=440Dh"DOS 3.2+") 5 reserved 4 device is special (use INT 29 "fast console output") 3 device is CLOCK$ (all reads/writes use transfer record described below) 2 device is NUL 1 device is standard output 0 device is standard input Note: for European MS-DOS 4.0, bit 11 also indicates that bits 8-6 contain a version code (000 = DOS 3.0,3.1; 001 = DOS 3.2; 010 = European DOS 4.0) SeeAlso: #01648,#01646 Bitfields for device attributes (block device): Bit(s) Description (Table 01648) 15 clear (indicates block device) 14 IOCTL supported 13 non-IBM format 12 network device (device is remote) 11 (DOS 3.0+) OPEN/CLOSE/RemMedia calls supported 10 reserved 9 direct I/O not allowed??? (set by DOS 3.3 DRIVER.SYS for "new" drives) 8 ??? set by DOS 3.3 DRIVER.SYS for "new" drives 7 (DOS 5.0+) Generic IOCTL check call supported (driver command 19h) (see AX=4410h,AX=4411h) 6 (DOS 3.2+) Generic IOCTL call supported (driver command 13h) implies support for commands 17h and 18h (see AX=440Ch,AX=440Dh"DOS 3.2+",AX=440Eh,AX=440Fh) 5-2 reserved 1 driver supports 32-bit sector addressing (DOS 3.31+) 0 reserved Note: for European MS-DOS 4.0, bit 11 also indicates that bits 8-6 contain a version code (000 = DOS 3.0,3.1; 001 = DOS 3.2; 010 = European DOS 4.0) SeeAlso: #01647,#01646 Format of DOS 2.x disk buffer: Offset Size Description (Table 01649) 00h DWORD pointer to next disk buffer, offset = FFFFh if last least-recently used buffer is first in chain 04h BYTE drive (0=A, 1=B, etc), FFh if not in use 05h 3 BYTEs unused??? (seems always to be 00h 00h 01h) 08h WORD logical sector number 0Ah BYTE number of copies to write (1 for non-FAT sectors) 0Bh BYTE sector offset between copies if multiple copies to be written 0Ch DWORD pointer to DOS Drive Parameter Block (see #01395 at AH=32h) 10h buffered data SeeAlso: #01650,#01652,#01653,#01655 Format of DOS 3.x disk buffer: Offset Size Description (Table 01650) 00h DWORD pointer to next disk buffer, offset = FFFFh if last least-recently used buffer is first in chain 04h BYTE drive (0=A,1=B, etc), FFh if not in use 05h BYTE buffer flags (see #01651) 06h WORD logical sector number 08h BYTE number of copies to write (1 for non-FAT sectors) 09h BYTE sector offset between copies if multiple copies to be written 0Ah DWORD pointer to DOS Drive Parameter Block (see #01395 at AH=32h) 0Eh WORD unused??? (almost always 0) 10h buffered data SeeAlso: #01649,#01652,#01653,#01655 Bitfields for DOS 3.x disk buffer flags: Bit(s) Description (Table 01651) 7 ??? 6 buffer dirty 5 buffer has been referenced 4 ??? 3 sector in data area 2 sector in a directory, either root or subdirectory 1 sector in FAT 0 boot sector??? (guess) SeeAlso: #01656 Format of DOS 4.00 (pre UR 25066) disk buffer info: Offset Size Description (Table 01652) 00h DWORD pointer to array of disk buffer hash chain heads (see #01654) 04h WORD number of disk buffer hash chains (referred to as NDBCH below) 06h DWORD pointer to lookahead buffer, zero if not present 0Ah WORD number of lookahead sectors, else zero (the y in BUFFERS=x,y) 0Ch BYTE 00h if buffers in EMS (/X), FFh if not 0Dh WORD EMS handle for buffers, zero if not in EMS 0Fh WORD EMS physical page number used for buffers (usually 255) 11h WORD ??? seems always to be 0001h 13h WORD segment of EMS physical page frame 15h WORD ??? seems always to be zero 17h 4 WORDs EMS partial page mapping information??? SeeAlso: #01649,#01650,#01653,#01657 Format of DOS 4.01 (from UR 25066 Corrctive Services Disk on) disk buffer info: Offset Size Description (Table 01653) 00h DWORD pointer to array of disk buffer hash chain heads (see #01654) 04h WORD number of disk buffer hash chains (referred to as NDBCH below) 06h DWORD pointer to lookahead buffer, zero if not present 0Ah WORD number of lookahead sectors, else zero (the y in BUFFERS=x,y) 0Ch BYTE 01h, possibly to distinguish from pre-UR 25066 format 0Dh WORD ??? EMS segment for BUFFERS (only with /XD) 0Fh WORD ??? EMS physical page number of EMS seg above (only with /XD) 11h WORD ??? EMS segment for ??? (only with /XD) 13h WORD ??? EMS physical page number of above (only with /XD) 15h BYTE ??? number of EMS page frames present (only with /XD) 16h WORD segment of one-sector workspace buffer allocated in main memory if BUFFERS/XS or /XD options in effect, possibly to avoid DMA into EMS 18h WORD EMS handle for buffers, zero if not in EMS 1Ah WORD EMS physical page number used for buffers (usually 255) 1Ch WORD ??? appears always to be 0001h 1Eh WORD segment of EMS physical page frame 20h WORD ??? appears always to be zero 22h BYTE 00h if /XS, 01h if /XD, FFh if BUFFERS not in EMS SeeAlso: #01649,#01650,#01652,#01657 Format of DOS 4.x disk buffer hash chain head (array, one entry per chain): Offset Size Description (Table 01654) 00h WORD EMS logical page number in which chain is resident, -1 if not in EMS 02h DWORD pointer to least recently used buffer header. All buffers on this chain are in the same segment. 06h BYTE number of dirty buffers on this chain 07h BYTE reserved (00h) Notes: buffered disk sectors are assigned to chain N where N is the sector's address modulo NDBCH, 0 <= N <= NDBCH-1 each chain resides completely within one EMS page this structure is in main memory even if buffers are in EMS Format of DOS 4.0-6.0 disk buffer: Offset Size Description (Table 01655) 00h WORD forward ptr, offset only, to next least recently used buffer 02h WORD backward pointer, offset only 04h BYTE drive (0=A,1=B, etc) if bit 7 clear SFT index if bit 7 set FFh if not in use 05h BYTE buffer flags (see #01656) 06h DWORD logical sector number (local buffers only) 0Ah BYTE number of copies to write for FAT sectors, same as number of FATs for data and directory sectors, usually 1 0Bh WORD offset in sectors between copies to write for FAT sectors 0Dh DWORD pointer to DOS Drive Parameter Block (see #01395 at AH=32h) 11h WORD size of data in buffer if remote buffer (see also #01656) 13h BYTE reserved (padding) 14h buffered data Note: for DOS 4.x, all buffered sectors which have the same hash value (computed as the sum of high and low words of the logical sector number divided by the number of disk buffer chains) are on the same doubly-linked circular chain; for DOS 5+, only a single circular chain exists. the links consist of offset addresses only, the segment being the same for all buffers in the chain. SeeAlso: #01649,#01650,#01652 Bitfields for DOS 4.0-6.0 disk buffer flags: Bit(s) Description (Table 01656) 7 remote buffer 6 buffer dirty 5 buffer has been referenced (reserved in DOS 5+) 4 search data buffer (only valid if remote buffer) 3 sector in data area 2 sector in a directory, either root or subdirectory 1 sector in FAT 0 reserved SeeAlso: #01651 Format of DOS 5.0-6.0 disk buffer info: Offset Size Description (Table 01657) 00h DWORD pointer to least-recently-used buffer header (may be in HMA) (see #01655) 04h WORD number of dirty disk buffers 06h DWORD pointer to lookahead buffer, zero if not present 0Ah WORD number of lookahead sectors, else zero (the y in BUFFERS=x,y) 0Ch BYTE buffer location 00h base memory, no workspace buffer 01h HMA, workspace buffer in base memory 0Dh DWORD pointer to one-segment workspace buffer in base memory 11h 3 BYTEs unused 14h WORD ??? 16h BYTE flag: INT 24 fail while making an I/O status call 17h BYTE temp storage for user memory allocation strategy during EXEC 18h BYTE counter: number of INT 21 calls for which A20 is off 19h BYTE bit flags bit 0: ??? bit 1: SWITCHES=/W specified in CONFIG.SYS (don't load WINA20.SYS when MS Windows 3.0 starts) bit 2: in EXEC state (INT 21/AX=4B05h) 1Ah WORD offset of unpack code start (used only during INT 21/AX=4B05h) 1Ch BYTE bit 0 set iff UMB MCB chain linked to normal MCB chain 1Dh WORD minimum paragraphs of memory required by program being EXECed 1Fh WORD segment of first MCB in upper memory blocks or FFFFh if DOS memory chain in base 640K only (first UMB MCB usually at 9FFFh, locking out video memory with a DOS-owned memory block) the MCB this word points at contains a valid link into high memory even if it is marked with a 'Z' indicating the last memory block 21h WORD paragraph from which to start scanning during memory allocation SeeAlso: #01652,#01653 (Table 01658) Call IFS utility function entry point with: AH = 20h miscellaneous functions AL = 00h get date Return: CX = year DH = month DL = day AL = 01h get process ID and computer ID Return: BX = current PSP segment DX = active network machine number AL = 05h get file system info ES:DI -> 16-byte info buffer Return: buffer filled Offset Size Description 00h 2 BYTEs unused 02h WORD number of SFTs (actually counts only the first two file table arrays) 04h WORD number of FCB table entries 06h WORD number of proctected FCBs 08h 6 BYTEs unused 0Eh WORD largest sector size supported AL = 06h get machine name ES:DI -> 18-byte buffer for name Return: buffer filled with name starting at offset 02h AL = 08h get sharing retry count Return: BX = sharing retry count AL = other Return: CF set AH = 21h get redirection state BH = type (03h disk, 04h printer) Return: BH = state (00h off, 01h on) AH = 22h ??? some sort of time calculation AL = 00h ??? nonzero ??? AH = 23h ??? some sort of time calculation AH = 24h compare filenames DS:SI -> first ASCIZ filename ES:DI -> second ASCIZ filename Return: ZF set if files are same ignoring case and / vs \ AH = 25h normalize filename DS:SI -> ASCIZ filename ES:DI -> buffer for result Return: filename uppercased, forward slashes changed to backslashes AH = 26h get DOS stack Return: DS:SI -> top of stack CX = size of stack in bytes AH = 27h increment InDOS flag AH = 28h decrement InDOS flag Note: IFS drivers which do not wish to implement functions 20h or 24h-28h may pass them on to the default handler pointed at by [LoL+37h] SeeAlso: #01659,#01660 Format of IFS driver list: Offset Size Description (Table 01659) 00h DWORD pointer to next driver header 04h 8 BYTEs IFS driver name (blank padded), as used by FILESYS command 0Ch 4 BYTEs ??? 10h DWORD pointer to IFS utility function entry point (see #01658) call with ES:BX -> IFS request (see #01660) 14h WORD offset in header's segment of driver entry point ??? SeeAlso: #01658,#01660 Format of IFS request block: Offset Size Description (Table 01660) 00h WORD total size in bytes of request 02h BYTE class of request 02h ??? 03h redirection 04h ??? 05h file access 06h convert error code to string 07h ??? 03h WORD returned DOS error code 05h BYTE IFS driver exit status 00h success 01h ??? 02h ??? 03h ??? 04h ??? FFh internal failure 06h 16 BYTEs ??? ---request class 02h--- 16h BYTE function code 04h ??? 17h BYTE unused??? 18h DWORD pointer to ??? 1Ch DWORD pointer to ??? 20h 2 BYTEs ??? ---request class 03h--- 16h BYTE function code 17h BYTE ??? 18h DWORD pointer to ??? 1Ch DWORD pointer to ??? 22h WORD returned ??? 24h WORD returned ??? 26h WORD returned ??? 28h BYTE returned ??? 29h BYTE unused??? ---request class 04h--- 16h DWORD pointer to ??? 1Ah DWORD pointer to ??? ---request class 05h--- 16h BYTE function code 01h flush disk buffers 02h get disk space 03h MKDIR 04h RMDIR 05h CHDIR 06h delete file 07h rename file 08h search directory 09h file open/create 0Ah LSEEK 0Bh read from file 0Ch write to file 0Dh lock region of file 0Eh commit/close file 0Fh get/set file attributes 10h printer control 11h ??? 12h process termination 13h ??? ---class 05h function 01h--- 17h 7 BYTEs ??? 1Eh DWORD pointer to ??? 22h 4 BYTEs ??? 26h BYTE ??? 27h BYTE ??? ---class 05h function 02h--- 17h 7 BYTEs ??? 1Eh DWORD pointer to ??? 22h 4 BYTEs ??? 26h WORD returned total clusters 28h WORD returned sectors per cluster 2Ah WORD returned bytes per sector 2Ch WORD returned available clusters 2Eh BYTE returned ??? 2Fh BYTE ??? ---class 05h functions 03h,04h,05h--- 17h 7 BYTEs ??? 1Eh DWORD pointer to ??? 22h 4 BYTEs ??? 26h DWORD pointer to directory name ---class 05h function 06h--- 17h 7 BYTEs ??? 1Eh DWORD pointer to ??? 22h 4 BYTEs ??? 26h WORD attribute mask 28h DWORD pointer to filename ---class 05h function 07h--- 17h 7 BYTEs ??? 1Eh DWORD pointer to ??? 22h 4 BYTEs ??? 26h WORD attribute mask 28h DWORD pointer to source filespec 2Ch DWORD pointer to destination filespec ---class 05h function 08h--- 17h 7 BYTEs ??? 1Eh DWORD pointer to ??? 22h 4 BYTEs ??? 26h BYTE 00h FINDFIRST 01h FINDNEXT 28h DWORD pointer to FindFirst search data + 01h if FINDNEXT 2Ch WORD search attribute if FINDFIRST 2Eh DWORD pointer to filespec if FINDFIRST ---class 05h function 09h--- 17h 7 BYTEs ??? 1Eh DWORD pointer to ??? 22h DWORD pointer to IFS open file structure (see #01661) 26h WORD ??? \ together, specify open vs. create, whether or 28h WORD ??? / not to truncate 2Ah 4 BYTEs ??? 2Eh DWORD pointer to filename 32h 4 BYTEs ??? 36h WORD file attributes on call returned ??? 38h WORD returned ??? ---class 05h function 0Ah--- 17h 7 BYTEs ??? 1Eh DWORD pointer to ??? 22h DWORD pointer to IFS open file structure (see #01661) 26h BYTE seek type (02h = from end) 28h DWORD offset on call returned new absolute position ---class 05h functions 0Bh,0Ch--- 17h 7 BYTEs ??? 1Eh DWORD pointer to ??? 22h DWORD pointer to IFS open file structure (see #01661) 28h WORD number of bytes to transfer returned bytes actually transferred 2Ah DWORD transfer address ---class 05h function 0Dh--- 17h 7 BYTEs ??? 1Eh DWORD pointer to ??? 22h DWORD pointer to IFS open file structure (see #01661) 26h BYTE file handle??? 27h BYTE unused??? 28h WORD ??? 2Ah WORD ??? 2Ch WORD ??? 2Eh WORD ??? ---class 05h function 0Eh--- 17h 7 BYTEs ??? 1Eh DWORD pointer to ??? 22h DWORD pointer to IFS open file structure (see #01661) 26h BYTE 00h commit file 01h close file 27h BYTE unused??? ---class 05h function 0Fh--- 17h 7 BYTEs ??? 1Eh DWORD pointer to ??? 22h 4 BYTEs ??? 26h BYTE 02h GET attributes 03h PUT attributes 27h BYTE unused??? 28h 12 BYTEs ??? 34h WORD search attributes??? 36h DWORD pointer to filename 3Ah WORD (GET) returned ??? 3Ch WORD (GET) returned ??? 3Eh WORD (GET) returned ??? 40h WORD (GET) returned ??? 42h WORD (PUT) new attributes (GET) returned attributes ---class 05h function 10h--- 17h 7 BYTEs ??? 1Eh DWORD pointer to ??? 22h DWORD pointer to IFS open file structure (see #01661) 26h WORD ??? 28h DWORD pointer to ??? 2Ch WORD ??? 2Eh BYTE ??? 2Fh BYTE subfunction 01h get printer setup 03h ??? 04h ??? 05h ??? 06h ??? 07h ??? 21h set printer setup ---class 05h function 11h--- 17h 7 BYTEs ??? 1Eh DWORD pointer to ??? 22h DWORD pointer to IFS open file structure (see #01661) 26h BYTE subfunction 27h BYTE unused??? 28h WORD ??? 2Ah WORD ??? 2Ch WORD ??? 2Eh BYTE ??? 2Fh BYTE ??? ---class 05h function 12h--- 17h 15 BYTEs unused??? 26h WORD PSP segment 28h BYTE type of process termination 29h BYTE unused??? ---class 05h function 13h--- 17h 15 BYTEs unused??? 26h WORD PSP segment ---request class 06h--- 16h DWORD returned pointer to string corresponding to error code at 03h 1Ah BYTE returned ??? 1Bh BYTE unused ---request class 07h--- 16h DWORD pointer to IFS open file structure (see #01661) 1Ah BYTE ??? 1Bh BYTE unused??? SeeAlso: #01659,#01658,#01661 Format of IFS open file structure: Offset Size Description (Table 01661) 00h WORD ??? 02h WORD device info word 04h WORD file open mode 06h WORD ??? 08h WORD file attributes 0Ah WORD owner's network machine number 0Ch WORD owner's PSP segment 0Eh DWORD file size 12h DWORD current offset in file 16h WORD file time 18h WORD file date 1Ah 11 BYTEs filename in FCB format 25h WORD ??? 27h WORD hash value of SFT address (low word of linear address + segment&F000h) 29h 3 WORDs network info from SFT 2Fh WORD ??? Format of one item in DOS 4.0+ list of special program names: Offset Size Description (Table 01662) 00h BYTE length of name (00h = end of list) 01h N BYTEs name in format name.ext N 2 BYTEs DOS version to return for program (major,minor) (see AH=30h,INT 2F/AX=122Fh) ---DOS 4 only--- N+2 BYTE number of times to return fake version number (FFh = always) Note: if the name of the executable for the program making the DOS "get version" call matches one of the names in this list, DOS returns the specified version rather than the true version numberTop
INT 21 - VIRUS - "516"/"Leapfrog" - INSTALLATION CHECK AX = 5252h Return: BX = FFEEh if resident SeeAlso: AX=4BFFh"Cascade",AX=58CChTop
INT 21 - DOS 2+ internal - TRANSLATE BIOS PARAMETER BLOCK TO DRIVE PARAM BLOCK AH = 53h DS:SI -> BIOS Parameter Block (see #01663) ES:BP -> buffer for Drive Parameter Block (see #01395 at AH=32h) DBP drive byte must be set to valid drive (Windows95-OSR2) ---Windows95--- CX = signature 4558h ('EX') for FAT32 extended BPB/DPB (see #01664) DX = signature 4152h ('AR') for FAT32 extended BPB/DPB Return: ES:BP buffer filled Notes: for DOS 3.0+, the cluster at which to start searching is set to 0000h and the number of free clusters is set to FFFFh (unknown) if the number of sectors per cluster is set to zero, MS-DOS will hang at startup because it computes the internally-used shift count by shifting this value right until the carry flag is set; since this will never happen when the field is zero, MS-DOS hangs not supported by Windows NT 3.1 Format of BIOS Parameter Block: Offset Size Description (Table 01663) 00h WORD number of bytes per sector 02h BYTE number of sectors per cluster 03h WORD number of reserved sectors at start of disk 05h BYTE number of FATs 06h WORD number of entries in root directory 08h WORD total number of sectors for DOS 4.0+, set to zero if partition >32M, then set DWORD at 15h to actual number of sectors 0Ah BYTE media ID byte (see #01356) 0Bh WORD number of sectors per FAT ---DOS 2.13--- 0Dh WORD number of sectors per track 0Fh WORD number of heads 11h WORD number of hidden sectors ---DOS 3.0+ --- 0Dh WORD number of sectors per track 0Fh WORD number of heads 11h DWORD number of hidden sectors 15h 11 BYTEs reserved ---DOS 4.0+ --- 15h DWORD total number of sectors if word at 08h contains zero 19h 6 BYTEs ??? 1Fh WORD number of cylinders 21h BYTE device type 22h WORD device attributes (removable or not, etc) ---DR DOS 5+ --- 15h DWORD total number of sectors if word at 08h contains zero 19h 6 BYTEs reserved ---European MS-DOS 4.00--- 15h DWORD total number of sectors if word at 08h contains zero (however, this DOS does not actually implement >32M partitions) SeeAlso: #01395,#01664 Format of Extended BIOS Parameter Block: Offset Size Description (Table 01664) 00h 25 BYTEs same as standard DOS 4-6 BPB (see #01663) 19h DWORD sectors per FAT if WORD at 0Bh is 0000h 1Dh WORD extended flags bit 7: do not mirror active FAT to inactive FATs bits 6-4: reserved (0) bits 3-0: the 0-based FAT number of the active FAT (if mirroring disabled) 1Fh WORD file system version (high byte=major, low byte=minor) 0000h = Win95-OSR2 21h DWORD starting cluster number of root directory 25h WORD file system information sector number (see also #01788) FFFFh if none 27h WORD sector number of backup boot sector (FFFFh if none) 29h 6 WORDs reserved SeeAlso: #01560,#01787Top
INT 21 - DOS 2+ - GET VERIFY FLAG AH = 54h Return: AL = verify flag 00h off 01h on (all disk writes verified after writing) SeeAlso: AH=2EhTop
INT 21 - VIRUS - "Dual_GtM"/"Ganeu" - INSTALLATION CHECK AH = 54h BX = 4475h ("Du") CX = 616Ch ("al") Return: BX = 4774h ("Gt") and CX = 4D21h ("M!") if resident SeeAlso: AX=50FDh"VIRUS",AX=5454h"VIRUS"Top
INT 21 - VIRUS - "Dudley" - INSTALLATION CHECK AX = 5454h Return: AX = 0000h if resident SeeAlso: AX=50FDh"VIRUS",AH=54h/BX=4475h"VIRUS",AX=7BCEh"VIRUS"Top
INT 21 - DOS 2+ internal - CREATE CHILD PSP AH = 55h DX = segment at which to create new PSP SI = (DOS 3.0+) value to place in memory size field at DX:[0002h] Return: AL destroyed Notes: creates a "child" PSP rather than making an exact copy of the current PSP; the new PSP's parent pointer is set to the current PSP and the reference count for each inherited file is incremented (DOS 2.0+) sets current PSP to DX (DOS 3.0+) marks "no inherit" file handles as closed in child PSP this function is implemented using the same code as AH=26h, so unlike other DOS 2+ functions, it does not return status in CF, instead returning status in AL as DOS 1.x functions do (but it never puts an explicit return value in AL) SeeAlso: AH=26h,AH=50hTop
INT 21 - DOS 2+ - "RENAME" - RENAME FILE AH = 56h DS:DX -> ASCIZ filename of existing file (no wildcards, but see below) ES:DI -> ASCIZ new filename (no wildcards) CL = attribute mask (server call only, see below) Return: CF clear if successful CF set on error AX = error code (02h,03h,05h,11h) (see #01680) Notes: allows move between directories on same logical volume this function does not set the archive attribute (see #01420 at AX=4301h), which results in incremental backups not backing up the file under its new name open files should not be renamed (DOS 2.x only) this function renames file by creating a new directory entry with the new name, then marking the old entry deleted (DOS 3.0+) allows renaming of directories (DOS 3.1+) wildcards are allowed if invoked via AX=5D00h, in which case error 12h (no more files) is returned on success, and both source and destination specs must be canonical (as returned by AH=60h). Wildcards in the destination are replaced by the corresponding char of each source file being renamed. Under DOS 3.x, the call will fail if the destination wildcard is *.* or equivalent; under DR DOS 5.0, the call will fail with error code 03h if any wildcards are used. When invoked via AX=5D00h, only those files matching the attribute mask in CL are renamed. under the FlashTek X-32 DOS extender, the old-name pointer is in DS:EDX and the new-name pointer is in ES:EDI (DS must equal ES) BUG: (DR DOS 3.41) when invoked via AX=5D00h, this function will generate a new directory entry with the new name (including any wildcards) which can only be removed with a sector editor SeeAlso: AH=17h,AX=4301h,AX=43FFh/BP=5053h,AX=5D00h,AH=60h,AX=7156h SeeAlso: AX=F257h/SF=04hTop
INT 21 - VIRUS - "PS-MPC.Gold" - INSTALLATION CHECK AX = 5643h ('VC') Return: AX = 5053h ('PS') if resident SeeAlso: AX=33E0h"VIRUS",AX=5741h"VIRUS",AX=6303h"VIRUS"Top
INT 21 - DOS 2+ - GET FILE'S LAST-WRITTEN DATE AND TIME AX = 5700h BX = file handle Return: CF clear if successful CX = file's time (see #01665) DX = file's date (see #01666) CF set on error AX = error code (01h,06h) (see #01680) Note: under DR DOS 3.41 and 5.0, this function returns 0 (no date/time) for character devices; MS-DOS returns date and time of opening SeeAlso: AX=5701h,AX=5704h"Windows95" Bitfields for file time: Bit(s) Description (Table 01665) 15-11 hours (0-23) 10-5 minutes 4-0 seconds/2 Bitfields for file date: Bit(s) Description (Table 01666) 15-9 year - 1980 8-5 month 4-0 dayTop
INT 21 - DOS 2+ - SET FILE'S LAST-WRITTEN DATE AND TIME AX = 5701h BX = file handle CX = new time (see #01665) DX = new date (see #01666) Return: CF clear if successful CF set on error AX = error code (01h,06h) (see #01680) SeeAlso: AX=5700h,AX=5705h"Windows95",AX=5707h"Windows95"Top
INT 21 - DOS 4.x only - GET EXTENDED ATTRIBUTES FOR FILE AX = 5702h BX = file handle CX = size of result buffer or 0000h DS:SI -> EAP list (see #01667) ES:DI -> buffer for returned EAV list (see #01670) Return: CF clear if successful CX = size of returned data CF set on error AX = error code (see #01680) Desc: get the current value of one or more extended attributes Notes: if CX=0000h on entry, ES:DI is ignored and no data is actually returned, only the amount of data which is available the default DOS 4 behavior is to return a single word of 0000h (no structures) in the result buffer if CX>=0002h on entry; this functionality was apparently never released to the public SeeAlso: AX=5703h,AX=5704h,AH=6Eh,INT 2F/AX=112Dh Format of EAP (extended attribute properties) list: Offset Size Description (Table 01667) 00h WORD number of EAP structures following 02h var array of EAP structures (see #01668) SeeAlso: #01670 Format of EAP (extended attribute property) structure: Offset Size Description (Table 01668) 00h BYTE attribute type 01h boolean (either 00h or 01h) 02h number (BYTE, WORD, or DWORD) 03h string 04h date stamp 05h time stamp 01h WORD EAP flags (see #01669) 03h BYTE size of reference string (name) 04h N BYTEs reference string Bitfields for EAP flags: Bit(s) Description (Table 01669) 12 unchangeable 13 ignore 14 unchangeable 15 used by COMMAND.COM for code page, but not understood by ATTRIB Format of EAV (extended attribute value) list: Offset Size Description (Table 01670) 00h WORD number of EAV structures following 02h var array of Extended Attribute Value structures (see #01671) SeeAlso: #01667 Format of Extended Attribute Value structures: Offset Size Description (Table 01671) 00h 4 BYTEs ??? 04h BYTE size of reference string 05h WORD size of value 07h var reference string var valueTop
INT 21 - OS/2 v1.1+ Family API - DosQFileInfo AX = 5702h BX = file handle CX = size of buffer for information DX = level of information 0001h standard file information (see #01672) 0002h Query EA Size (see #01672) 0003h Query EAs from List (see #01673) 0004h Query All EAs (see #01673) ES:DI -> buffer for information (see #01672,#01673) Return: CF clear if successful CF set on error AX = error code SeeAlso: AX=5702h/BX=FFFFh,AX=5703h"OS/2",AH=6Dh"OS/2" Format of OS/2 DosQFileInfo: Offset Size Description (Table 01672) 00h WORD creation date 02h WORD creation time 04h WORD last access date 06h WORD last access time 08h WORD last write date 0Ah WORD last write time 0Ch DWORD file size in bytes 10h DWORD allocated space in bytes 14h WORD file attributes ---level 2 only--- 16h DWORD size of Extended Attributes in byte SeeAlso: #01673,#01676 Format of OS/2 DosQFileInfo, EAOP structure: Offset Size Description (Table 01673) 00h DWORD pointer to general EA list (see #01674) 04h DWORD pointer to buffer for full EA list, with length field set 08h DWORD (ret) error Note: for info level 3, the first pointer must contain the address of a list of the Extended Attributes to be retrieved; for info level 4, it should be 0000h:0000h SeeAlso: #01672,#01676 Format of OS/2 DosQFileInfo, General EA List: Offset Size Description (Table 01674) 00h DWORD (call) total size of list in bytes (including this field) (ret) number of bytes actually used (including this field) 04h var Extended Attribute entries (see #01675) [packed arrray] Format of OS/2 DosQFileInfo, General EA entry: Offset Size Description (Table 01675) 00h BYTE length of Extended Attribute name (excluding terminating NUL) 01h N BYTEs EA name BYTE 00h SeeAlso: #01674 Format of OS/2 DosQFileInfo, Full EA List: Offset Size Description (Table 01676) 00h DWORD (call) total size of list in bytes (including this field) (ret) number of bytes actually used (including this field) 04h var Extended Attribute data (see #01677) [packed array] SeeAlso: #01672,#01673 Format of OS/2 Extended Attribute data (struct FEA): Offset Size Description (Table 01677) 00h BYTE flags bit 7: critical EA 01h BYTE length of Extended Attribute name (excluding terminating NUL) 02h WORD length of Extended Attribute value 04h N BYTEs EA name BYTE 00h M BYTEs EA valueTop
INT 21 - OS/2 v1.1+ Compatibility Box Family API - DosQPathInfo AX = 5702h BX = FFFFh CX = size of buffer for information DX = level of information (0002h) DS:SI -> filename ES:DI -> buffer for FAPI path information (see #01678) Return: CF clear if successful AL = 00h CF set on error AX = error code SeeAlso: AX=5702h"OS/2",AX=5703h/BX=FFFFh Format of FAPI path information: Offset Size Description (Table 01678) 00h 22 BYTEs ??? 16h DWORD extended attribute size (none present if less than 5)Top
INT 21 - DOS 4.x only - GET EXTENDED ATTRIBUTE PROPERTIES AX = 5703h BX = file handle CX = size of result buffer or 0000h ES:DI -> result buffer Return: CF clear if successful CX = size of returned data CF set on error AX = error code (see #01680) ES:DI -> zero word (DOS 4.0) if CX >= 2 on entry Desc: get a list of the extended attributes which are defined for the specified file Notes: if CX=0000h on entry, ES:DI is ignored and no data is actually returned, only the amount of data which is available the default DOS 4 behavior is to return a trivial EAP list consisting of the single word 0000h (no EAP structures) if CX>=0002h on entry; this functionality was apparently never released to the public SeeAlso: AX=5702h,AX=5704h,AH=6Eh,INT 2F/AX=112DhTop
INT 21 - OS/2 v1.1+ Family API - DosSetFileInfo AX = 5703h BX = file handle CX = size of information buffer DX = level of information ES:DI -> information buffer Return: CF clear if successful CF set on error AX = error code SeeAlso: AX=5702h"OS/2",AX=5703h/BX=FFFFhTop
INT 21 - OS/2 v1.1+ Family API - DosSetPathInfo AX = 5703h BX = FFFFh CX = size of information buffer DX = level of information DS:SI -> filename ES:DI -> information buffer Return: CF clear if successful CF set on error AX = error code SeeAlso: AX=5702h/BX=FFFFh,AX=5703h"OS/2"Top
INT 21 - DOS 4.x only - SET EXTENDED ATTRIBUTES AX = 5704h BX = file handle ES:DI -> EAV list (see #01670) Return: CF clear if successful CF set on error AX = error code (see #01680) Note: the default DOS 4 behavior is to do nothing and return successfully; this functionality was apparently never released to the public SeeAlso: AX=5702h,AX=5703h,INT 2F/AX=112DhTop
INT 21 - MS-DOS 7/Windows95 - GET LAST ACCESS DATE AND TIME AX = 5704h BX = file handle Return: CF clear if successful DX = last access date (see #01666) CX = last access time (currently always 0000h) CF set on error AX = error code SeeAlso: AX=5701h,AX=5705h,AX=5706hTop
INT 21 - MS-DOS 7/Windows95 - SET LAST ACCESS DATE AND TIME AX = 5705h BX = file handle CX = new last-access time (currently not supported, must be 0000h) DX = new last-access date (see #01666) Return: CF clear if successful CF set on error AX = error code SeeAlso: AX=5700h,AX=5704h"Windows95",AX=5707hTop
INT 21 - MS-DOS 7/Windows95 - GET CREATION DATE AND TIME AX = 5706h BX = file handle Return: CF clear if successful CX = creation time (see #01665) DX = creation date (see #01666) SI = number of 10-millisecond units past time in CX (0-199) CF set on error AX = error code SeeAlso: AX=5701h,AX=5704h"Windows95",AX=5707hTop
INT 21 - MS-DOS 7/Windows95 - SET CREATION DATE AND TIME AX = 5707h BX = file handle CX = new creation time (see #01665) DX = new creation date (see #01666) SI = new creation time: 10-millisecond units past time in CX (0-199) Return: CF clear if successful CF set on error AX = error code SeeAlso: AX=5700h,AX=5705h,AX=5706hTop
INT 21 - VIRUS - "WARP" -INSTALLATION CHECK AX = 5741h Return: AX = 5250h if resident SeeAlso: AX=5643h"VIRUS",AX=58CCh"VIRUS"Top
INT 21 U - IBM Genie - Resident Manager - INSTALLATION CHECK AX = 5757h BX = 5757h Return: AX = 0000h if installed BX = ??? DX = ??? DS:SI -> list of 27 DWORD entry point addresses Program: IBM Genie is a set of utility TSRs by Helix Software Note: other functions possible if BX <> 5757h, but details not yet availableTop
INT 21 U - Headroom - API AX = 5758h BL = function 00h ??? 01h get Headroom location Return: CF clear if installed AX = PSP segment of Headroom TSR BX = paragraphs of memory used by Headroom CF set if not (normal DOS return) Note: this function is also used as an installation check 02h get INT 21 handler Return: CF clear ES:BX -> Headroom's INT 21 handler Note: also sets unknown flag 03h launch application??? DS:SI -> 233-byte application record Return: ??? 04h ??? ??? Return: CF clear 05h get swap directory Return: CF clear DX:AX -> ASCIZ swap directory name 06h ??? DX = ??? Return: CF clear 07h ??? 08h ??? 09h get current application Return: BX = application number 0Ah ??? DX = application number DS:SI = ??? Return: ??? 0Bh ??? 0Ch ??? DX = application number ??? Return: ??? 0Dh ??? DX = application number ??? Return: ??? 0Eh get ??? Return: CF clear AX = ??? 0Fh set ??? flag 10h clear ??? flag 11h find application by name DS:SI -> ASCIZ application name Return: CF clear AX = application number or FFFFh if not loaded 12h ??? DX = application number Return: CF clear ??? 13h ??? Return: CF clear 14h ??? same as function 13h 15h set ??? DX = ??? 16h get ??? Return: AX = ??? set by function 15h 17h get ??? Return: BX = ??? CX = ??? (may be pointer in BX:CX) 18h BUG: branches incorrectly due to fencepost error Program: Headroom is a TSR/task switcher by Helix Software SeeAlso: AX=4C57h,AX=5757h,INT 2F/AX=5758hTop
INT 21 - DOS 2.11+ - GET OR SET MEMORY ALLOCATION STRATEGY AH = 58h AL = subfunction 00h get allocation strategy Return: AX = current strategy (see #01679) 01h set allocation strategy BL = new allocation strategy (see #01679) BH = 00h (DOS 5+) Return: CF clear if successful CF set on error AX = error code (01h) (see #01680) Notes: the Set subfunction accepts any value in BL for DOS 3.x and 4.x; 2 or greater means last fit the Get subfunction returns the last value set setting an allocation strategy involving high memory does not automatically link in the UMB memory chain; this must be done explicitly with AX=5803h in order to actually allocate high memory a program which changes the allocation strategy should restore it before terminating Toshiba MS-DOS v2.11 supports subfunctions 00h and 01h, as does the TI Professional MS-DOS v2.13 DR DOS 3.41 reportedly reverses subfunctions 00h and 01h SeeAlso: AH=48h,AH=49h,AH=4Ah,INT 2F/AX=4310h"XMS",INT 67/AH=3Fh (Table 01679) Values for DOS memory allocation strategy: 00h low memory first fit 01h low memory best fit 02h low memory last fit ---DOS 5+ --- 40h high memory first fit 41h high memory best fit 42h high memory last fit 80h first fit, try high then low memory 81h best fit, try high then low memory 82h last fit, try high then low memoryTop
INT 21 - DOS 5+ - GET OR SET UMB LINK STATE AH = 58h AL = subfunction 02h get UMB link state Return: AL = current link state 00h UMBs not part of DOS memory chain 01h UMBs in DOS memory chain 03h set UMB link state BX = new link state 0000h remove UMBs from DOS memory chain 0001h add UMBs to DOS memory chain Return: CF clear if successful CF set on error AX = error code (01h) (see #01680) Notes: a program which changes the UMB link state should restore it before terminating UMBs will only be available if CONFIG.SYS contains the line DOS=UMB, the UMBs have been linked into the memory chain with AX=5803h, and the allocation strategy has been set to include high memory with AX=5801h SeeAlso: #01687,#02766 at INT 2F/AX=4310hTop
INT 21 - VIRUS - "1067"/"Headcrash" - INSTALLATION CHECK AX = 58CCh Return: CF clear if resident SeeAlso: AX=5741h"VIRUS",AX=5643h,AX=5252h,AX=58DDh,AX=6303h"VIRUS",AX=6969hTop
INT 21 - VIRUS - "1067"/"Headcrash" - GET ORIGINAL INT 21h VECTOR AX = 58DDh Return: CX = code segment of virus ES:BX = old INT 21h vector SeeAlso: AX=5252h,AX=58CCh,AX=6969hTop
INT 21 - DOS 3.0+ - GET EXTENDED ERROR INFORMATION AH = 59h BX = 0000h Return: AX = extended error code (see #01680) BH = error class (see #01682) BL = recommended action (see #01683) CH = error locus (see #01684) ES:DI may be pointer (see #01681, #01680) CL, DX, SI, BP, and DS destroyed Notes: functions available under DOS 2.x map the true DOS 3.0+ error code into one supported under DOS 2.x you should call this function to retrieve the true error code when an FCB or DOS 2.x call returns an error under DR DOS 5.0, this function does not use any of the DOS-internal stacks and may thus be called at any time SeeAlso: AH=59h/BX=0001h,AX=5D0Ah,INT 2F/AX=122Dh,INT 24 (Table 01680) Values for DOS extended error code: ---DOS 2.0+ --- 00h (0) no error 01h (1) function number invalid 02h (2) file not found 03h (3) path not found 04h (4) too many open files (no handles available) 05h (5) access denied 06h (6) invalid handle 07h (7) memory control block destroyed 08h (8) insufficient memory 09h (9) memory block address invalid 0Ah (10) environment invalid (usually >32K in length) 0Bh (11) format invalid 0Ch (12) access code invalid 0Dh (13) data invalid 0Eh (14) reserved 0Eh (14) (PTS-DOS 6.51+, S/DOS 1.0+) fixup overflow 0Fh (15) invalid drive 10h (16) attempted to remove current directory 11h (17) not same device 12h (18) no more files ---DOS 3.0+ (INT 24 errors)--- 13h (19) disk write-protected 14h (20) unknown unit 15h (21) drive not ready 16h (22) unknown command 17h (23) data error (CRC) 18h (24) bad request structure length 19h (25) seek error 1Ah (26) unknown media type (non-DOS disk) 1Bh (27) sector not found 1Ch (28) printer out of paper 1Dh (29) write fault 1Eh (30) read fault 1Fh (31) general failure 20h (32) sharing violation 21h (33) lock violation 22h (34) disk change invalid (ES:DI -> media ID structure)(see #01681) 23h (35) FCB unavailable 23h (35) (PTS-DOS 6.51+, S/DOS 1.0+) bad FAT 24h (36) sharing buffer overflow 25h (37) (DOS 4.0+) code page mismatch 26h (38) (DOS 4.0+) cannot complete file operation (EOF / out of input) 27h (39) (DOS 4.0+) insufficient disk space 28h-31h reserved ---OEM network errors (INT 24)--- 32h (50) network request not supported 33h (51) remote computer not listening 34h (52) duplicate name on network 35h (53) network name not found 36h (54) network busy 37h (55) network device no longer exists 38h (56) network BIOS command limit exceeded 39h (57) network adapter hardware error 3Ah (58) incorrect response from network 3Bh (59) unexpected network error 3Ch (60) incompatible remote adapter 3Dh (61) print queue full 3Eh (62) queue not full 3Fh (63) not enough space to print file 40h (64) network name was deleted 41h (65) network: Access denied (DOS 3.0+ [maybe 3.3+???]) codepage switching not possible (see also INT 21/AX=6602h,INT 2F/AX=AD42h) 42h (66) network device type incorrect 43h (67) network name not found 44h (68) network name limit exceeded 45h (69) network BIOS session limit exceeded 46h (70) temporarily paused 47h (71) network request not accepted 48h (72) network print/disk redirection paused 49h (73) network software not installed (LANtastic) invalid network version 4Ah (74) unexpected adapter close (LANtastic) account expired 4Bh (75) (LANtastic) password expired 4Ch (76) (LANtastic) login attempt invalid at this time 4Dh (77) (LANtastic v3+) disk limit exceeded on network node 4Eh (78) (LANtastic v3+) not logged in to network node 4Fh (79) reserved ---end of errors reportable via INT 24--- 50h (80) file exists 51h (81) (undoc) duplicated FCB 52h (82) cannot make directory 53h (83) fail on INT 24h ---network-related errors (non-INT 24)--- 54h (84) (DOS 3.3+) too many redirections / out of structures 55h (85) (DOS 3.3+) duplicate redirection / already assigned 56h (86) (DOS 3.3+) invalid password 57h (87) (DOS 3.3+) invalid parameter 58h (88) (DOS 3.3+) network write fault 59h (89) (DOS 4.0+) function not supported on network / no process slots available 5Ah (90) (DOS 4.0+) required system component not installed / not frozen 5Bh (91) (DOS 4.0+,NetWare4) timer server table overflowed 5Ch (92) (DOS 4.0+,NetWare4) duplicate in timer service table 5Dh (93) (DOS 4.0+,NetWare4) no items to work on 5Fh (95) (DOS 4.0+,NetWare4) interrupted / invalid system call 64h (100) (MSCDEX) unknown error 64h (100) (DOS 4.0+,NetWare4) open semaphore limit exceeded 65h (101) (MSCDEX) not ready 65h (101) (DOS 4.0+,NetWare4) exclusive semaphore is already owned 66h (102) (MSCDEX) EMS memory no longer valid 66h (102) (DOS 4.0+,NetWare4) semaphore was set when close attempted 67h (103) (MSCDEX) not High Sierra or ISO-9660 format 67h (103) (DOS 4.0+,NetWare4) too many exclusive semaphore requests 68h (104) (MSCDEX) door open 68h (104) (DOS 4.0+,NetWare4) operation invalid from interrupt handler 69h (105) (DOS 4.0+,NetWare4) semaphore owner died 6Ah (106) (DOS 4.0+,NetWare4) semaphore limit exceeded 6Bh (107) (DOS 4.0+,NetWare4) insert drive B: disk into A: / disk changed 6Ch (108) (DOS 4.0+,NetWare4) drive locked by another process 6Dh (109) (DOS 4.0+,NetWare4) broken pipe 6Eh (110) (DOS 5.0+,NetWare4) pipe open/create failed 6Fh (111) (DOS 5.0+,NetWare4) pipe buffer overflowed 70h (112) (DOS 5.0+,NetWare4) disk full 71h (113) (DOS 5.0+,NetWare4) no more search handles 72h (114) (DOS 5.0+,NetWare4) invalid target handle for dup2 73h (115) (DOS 5.0+,NetWare4) bad user virtual address / protection violation 74h (116) (DOS 5.0+) VIOKBD request 74h (116) (NetWare4) error on console I/O 75h (117) (DOS 5.0+,NetWare4) unknown category code for IOCTL 76h (118) (DOS 5.0+,NetWare4) invalid value for verify flag 77h (119) (DOS 5.0+,NetWare4) level four driver not found by DOS IOCTL 78h (120) (DOS 5.0+,NetWare4) invalid / unimplemented function number 79h (121) (DOS 5.0+,NetWare4) semaphore timeout 7Ah (122) (DOS 5.0+,NetWare4) buffer too small to hold return data 7Bh (123) (DOS 5.0+,NetWare4) invalid character or bad file-system name 7Ch (124) (DOS 5.0+,NetWare4) unimplemented information level 7Dh (125) (DOS 5.0+,NetWare4) no volume label found 7Eh (126) (DOS 5.0+,NetWare4) module handle not found 7Fh (127) (DOS 5.0+,NetWare4) procedure address not found 80h (128) (DOS 5.0+,NetWare4) CWait found no children 81h (129) (DOS 5.0+,NetWare4) CWait children still running 82h (130) (DOS 5.0+,NetWare4) invalid operation for direct disk-access handle 83h (131) (DOS 5.0+,NetWare4) attempted seek to negative offset 84h (132) (DOS 5.0+,NetWare4) attempted to seek on device or pipe ---JOIN/SUBST errors--- 85h (133) (DOS 5.0+,NetWare4) drive already has JOINed drives 86h (134) (DOS 5.0+,NetWare4) drive is already JOINed 87h (135) (DOS 5.0+,NetWare4) drive is already SUBSTed 88h (136) (DOS 5.0+,NetWare4) can not delete drive which is not JOINed 89h (137) (DOS 5.0+,NetWare4) can not delete drive which is not SUBSTed 8Ah (138) (DOS 5.0+,NetWare4) can not JOIN to a JOINed drive 8Bh (139) (DOS 5.0+,NetWare4) can not SUBST to a SUBSTed drive 8Ch (140) (DOS 5.0+,NetWare4) can not JOIN to a SUBSTed drive 8Dh (141) (DOS 5.0+,NetWare4) can not SUBST to a JOINed drive 8Eh (142) (DOS 5.0+,NetWare4) drive is busy 8Fh (143) (DOS 5.0+,NetWare4) can not JOIN/SUBST to same drive 90h (144) (DOS 5.0+,NetWare4) directory must not be root directory 91h (145) (DOS 5.0+,NetWare4) can only JOIN to empty directory 92h (146) (DOS 5.0+,NetWare4) path is already in use for SUBST 93h (147) (DOS 5.0+,NetWare4) path is already in use for JOIN 94h (148) (DOS 5.0+,NetWare4) path is in use by another process 95h (149) (DOS 5.0+,NetWare4) directory previously SUBSTituted 96h (150) (DOS 5.0+,NetWare4) system trace error 97h (151) (DOS 5.0+,NetWare4) invalid event count for DosMuxSemWait 98h (152) (DOS 5.0+,NetWare4) too many waiting on mutex 99h (153) (DOS 5.0+,NetWare4) invalid list format 9Ah (154) (DOS 5.0+,NetWare4) volume label too large 9Bh (155) (DOS 5.0+,NetWare4) unable to create another TCB 9Ch (156) (DOS 5.0+,NetWare4) signal refused 9Dh (157) (DOS 5.0+,NetWare4) segment discarded 9Eh (158) (DOS 5.0+,NetWare4) segment not locked 9Fh (159) (DOS 5.0+,NetWare4) invalid thread-ID address ----- A0h (160) (DOS 5.0+) bad arguments A0h (160) (NetWare4) bad environment pointer A1h (161) (DOS 5.0+,NetWare4) invalid pathname passed to EXEC A2h (162) (DOS 5.0+,NetWare4) signal already pending A3h (163) (DOS 5.0+) uncertain media A3h (163) (NetWare4) ERROR_124 mapping A4h (164) (DOS 5.0+) maximum number of threads reached A4h (164) (NetWare4) no more process slots A5h (165) (NetWare4) ERROR_124 mapping B0h (176) (MS-DOS 7.0) volume is not locked B1h (177) (MS-DOS 7.0) volume is locked in drive B2h (178) (MS-DOS 7.0) volume is not removable B4h (180) (MS-DOS 7.0) lock count has been exceeded B4h (180) (NetWare4) invalid segment number B5h (181) (MS-DOS 7.0) a valid eject request failed B5h (181) (DOS 5.0-6.0,NetWare4) invalid call gate B6h (182) (DOS 5.0+,NetWare4) invalid ordinal B7h (183) (DOS 5.0+,NetWare4) shared segment already exists B8h (184) (DOS 5.0+,NetWare4) no child process to wait for B9h (185) (DOS 5.0+,NetWare4) NoWait specified and child still running BAh (186) (DOS 5.0+,NetWare4) invalid flag number BBh (187) (DOS 5.0+,NetWare4) semaphore does not exist BCh (188) (DOS 5.0+,NetWare4) invalid starting code segment BDh (189) (DOS 5.0+,NetWare4) invalid stack segment BEh (190) (DOS 5.0+,NetWare4) invalid module type (DLL can not be used as application) BFh (191) (DOS 5.0+,NetWare4) invalid EXE signature C0h (192) (DOS 5.0+,NetWare4) EXE marked invalid C1h (193) (DOS 5.0+,NetWare4) bad EXE format (e.g. DOS-mode program) C2h (194) (DOS 5.0+,NetWare4) iterated data exceeds 64K C3h (195) (DOS 5.0+,NetWare4) invalid minimum allocation size C4h (196) (DOS 5.0+,NetWare4) dynamic link from invalid Ring C5h (197) (DOS 5.0+,NetWare4) IOPL not enabled C6h (198) (DOS 5.0+,NetWare4) invalid segment descriptor privilege level C7h (199) (DOS 5.0+,NetWare4) automatic data segment exceeds 64K C8h (200) (DOS 5.0+,NetWare4) Ring2 segment must be moveable C9h (201) (DOS 5.0+,NetWare4) relocation chain exceeds segment limit CAh (202) (DOS 5.0+,NetWare4) infinite loop in relocation chain CBh (203) (NetWare4) environment variable not found CCh (204) (NetWare4) not current country CDh (205) (NetWare4) no signal sent CEh (206) (NetWare4) file name not 8.3 CFh (207) (NetWare4) Ring2 stack in use D0h (208) (NetWare4) meta expansion is too long D1h (209) (NetWare4) invalid signal number D2h (210) (NetWare4) inactive thread D3h (211) (NetWare4) file system information not available D4h (212) (NetWare4) locked error D5h (213) (NetWare4) attempted to execute non-family API call in DOS mode D6h (214) (NetWare4) too many modules D7h (215) (NetWare4) nesting not allowed E6h (230) (NetWare4) non-existent pipe, or bad operation E7h (231) (NetWare4) pipe is busy E8h (232) (NetWare4) no data available for nonblocking read E9h (233) (NetWare4) pipe disconnected by server EAh (234) (NetWare4) more data available FFh (255) (NetWare4) invalid drive Note: there is a report that some Microsoft documentation shifts all DOS error codes in the range BCh (188) through CAh (202) up by one compared to what is listed here; that is probably a documentation error SeeAlso: #01682,#01683,#01684,#01961 Format of media ID structure: Offset Size Description (Table 01681) 00h 12 BYTEs ASCIZ volume label of required disk 0Ch DWORD serial number (DOS 4.0+) SeeAlso: #01680 (Table 01682) Values for DOS Error Class: 01h (1) out of resource (storage space or I/O channels) 02h (2) temporary situation (file or record lock) 03h (3) authorization / permission problem (denied access) 04h (4) internal system error (system software bug) 05h (5) hardware failure 06h (6) system failure (configuration file missing or incorrect) 07h (7) application program error 08h (8) not found 09h (9) bad format 0Ah (10) locked 0Bh (11) media error 0Ch (12) already exists / collision with existing item 0Dh (13) unknown / other 0Eh (14) (undoc) cannot 0Fh (15) (undoc) time SeeAlso: #01680,#01683,#01684 (Table 01683) Values for DOS Suggested Action: 01h retry 02h delayed retry (after pause) 03h prompt user to reenter input 04h abort after cleanup 05h immediate abort ("panic") 06h ignore 07h retry after user intervention SeeAlso: #01680,#01682,#01684 (Table 01684) Values for DOS Error Locus: 01h unknown or not appropriate 02h block device (disk error) 03h network related 04h serial device (timeout) 04h (PTS-DOS 6.51+ & S/DOS 1.0+) character device 05h memory related SeeAlso: #01680,#01682,#01683Top
INT 21 - European MS-DOS 4.0 - GET HARD ERROR INFORMATION AH = 59h BX = 0001h Return: ES:DI -> hard error information packet (see #01685) for most recent hard (critical) error SeeAlso: AH=59h/BX=0000h,AH=95h,INT 24 Format of European MS-DOS 4.0 hard error information packet: Offset Size Description (Table 01685) 00h WORD contents of AX at system entry 02h WORD Process ID which encountered error 04h WORD contents of AX at time of error 06h BYTE error type 00h physical I/O error 01h disk change request 02h file sharing violation 03h FCB problem 04h file locking violation 05h bad FAT 06h network detected error 07h BYTE INT 24 error code 08h WORD extended error code (see #01680) 0Ah DWORD pointer to associated deviceTop
INT 21 - DOS 3.0+ - CREATE TEMPORARY FILE AH = 5Ah CX = file attribute (see #01420 at AX=4301h) DS:DX -> ASCIZ path ending with a '\' + 13 zero bytes to receive the generated filename Return: CF clear if successful AX = file handle opened for read/write in compatibility mode DS:DX pathname extended with generated name for temporary file CF set on error AX = error code (03h,04h,05h) (see #01680) Desc: creates a file with a unique name which must be explicitly deleted Notes: under the FlashTek X-32 DOS extender, the path pointer is in DS:EDX MS-DOS 3.0-4.0 and DR DOS 3.4-5.0 generate the filename as a sequence of hex digits based on the current date and time; MS-DOS 6+, DR DOS 6, and Novell DOS 7 use letters A-P in place of hex digits MS-DOS 5.0 and DR DOS 3.41/5.0 will insert a missing trailing backslash before appending the generated filename, but due to this, an empty string results in a file in the root directory BUGS: COMPAQ DOS 3.31 hangs if the pathname is at XXXXh:0000h; it apparently wraps around to the end of the segment MS-DOS 5.00 revisions A and B and PC-DOS 5.00 revision A reportedly hang the system if the specified path is the root directory and the root directory is full (no free directory entries) Mark Incley <mincley@krisalis.demon.co.uk> reports that this function hangs in MS-DOS 6.2x if the name includes two consecutive path separators (e.g. C:\\ ) SeeAlso: AH=3Ch,AH=5BhTop
INT 21 - DOS 3.0+ - CREATE NEW FILE AH = 5Bh CX = file attribute (see #01420 at AX=4301h) DS:DX -> ASCIZ filename Return: CF clear if successful AX = file handle opened for read/write in compatibility mode CF set on error AX = error code (03h,04h,05h,50h) (see #01680) Notes: unlike AH=3Ch, this function will fail if the specified file exists rather than truncating it; this permits its use in creating semaphore files because it is an atomic "test and set" operation under the FlashTek X-32 DOS extender, the filename pointer is in DS:EDX SeeAlso: AH=3Ch,AH=5AhTop
INT 21 - DOS 3.0+ - "FLOCK" - RECORD LOCKING AH = 5Ch AL = subfunction 00h lock region of file 01h unlock region of file BX = file handle CX:DX = start offset of region within file SI:DI = length of region in bytes Return: CF clear if successful CF set on error AX = error code (01h,06h,21h,24h) (see #01680) Notes: error returned unless SHARE or network installed an unlock call must specify the same region as some prior lock call locked regions become entirely inaccessible to other processes duplicate handles created with AH=45h or AH=46h inherit locks, but handles inherited by child processes (see AH=4Bh) do not under DR DOS 3.41 and 5.0, if a process opens a file without the no- inherit flag and then starts a child, any locks set by the parent are ignored, and the child will only get an error if it tries to lock an area previously locked by the parent process. Under Novell DOS 7, this function is fully supported as in MS-DOS. SeeAlso: AX=440Bh,AH=BCh,AH=BEh,INT 2F/AX=110Ah,INT 2F/AX=110BhTop
INT 21 U - DOS 3.1+ internal - SERVER FUNCTION CALL AX = 5D00h DS:DX -> DOS parameter list (see #01686) DPL contains all register values for a call to INT 21h Return: as appropriate for function being called Notes: does not check AH. Out of range values will crash the system executes using specified computer ID and process ID sharing delay loops skipped a special sharing mode is enabled to handle FCBs opened across network wildcards are enabled for DELETE (AH=41h) and RENAME (AH=56h) under MS-DOS; under DR DOS 3.41, wildcards corrupt the filesystem; and under DR DOS 5.0-6.0, the call returns error code 03h due to improper support for the server function call (refer to BUGS: section below) an extra file attribute parameter is enabled for OPEN (AH=3Dh), DELETE (AH=41h), and RENAME (AH=56h) functions which take filenames require canonical names (as returned by AH=60h); this is apparently to prevent multi-hop file forwarding BUGS: the OS/2 2.0 DOS Boot Session incorrectly maps DOS drive letters, seemingly ignoring HPFS drives DR DOS 5.0-6.0 merely recursively call INT 21 after loading the registers from the DPL, leading to problems for peer-to-peer networks SeeAlso: AH=3Dh,AH=41h,AH=56h,AH=60h Format of DOS parameter list: Offset Size Description (Table 01686) 00h WORD AX 02h WORD BX 04h WORD CX 06h WORD DX 08h WORD SI 0Ah WORD DI 0Ch WORD DS 0Eh WORD ES 10h WORD reserved (0) 12h WORD computer ID (0 = current system) 14h WORD process ID (PSP segment on specified computer) Note: under Windows Enhanced mode, the computer ID is normally the virtual machine ID (see INT 2F/AX=1683h), though this can reportedly be changed by setting UniqueDOSPSP= in SYSTEM.INITop
INT 21 U - DOS 3.1+ internal - COMMIT ALL FILES FOR SPECIFIED COMPUTER/PROCESS AX = 5D01h DS:DX -> DOS parameter list (see #01686), only computer ID and process ID fields used Return: CF set on error AX = error code (see #01680) CF clear if successful Notes: flushes buffers and updates directory entries for each file which has been written to; if remote file, calls INT 2F/AX=1107h the computer ID and process ID are stored but ignored under DOS 3.3 not supported by DR DOS 3.41 and 5.0; returns error code 01h. Fully supported by Novell DOS 7 SeeAlso: AH=0Dh,AH=68h,INT 2F/AX=1107hTop
INT 21 U - DOS 3.1+ internal - SHARE.EXE - CLOSE FILE BY NAME AX = 5D02h DS:DX -> DOS parameter list (see #01686), only fields DX, DS, computer ID, and process ID used DPL's DS:DX -> ASCIZ name of file to close Return: CF set on error AX = error code (see #01680) CF clear if successful Notes: error unless SHARE is loaded (calls [SysFileTable-28h]) (see #01636 at AH=52h) name must be canonical fully-qualified, such as returned by AH=60h not supported by DR DOS 3.41 and 5.0; returns error code 01h not supported by Novell DOS 7, although in Update 15 it is reported to no longer return an error code SeeAlso: AX=5D03h,AX=5D04h,AH=3Eh,AH=60hTop
INT 21 U - DOS 3.1+ internal - SHARE.EXE - CLOSE ALL FILES FOR GIVEN COMPUTER AX = 5D03h DS:DX -> DOS parameter list (see #01686), only computer ID used Return: CF set on error AX = error code (see #01680) CF clear if successful Notes: error unless SHARE is loaded (calls [SysFileTable-30h]) (see #01636 at AH=52h) not supported by DR DOS 3.41 and 5.0; returns error code 01h not supported by Novell DOS 7 (at least through Update 4; may be supported in Update 15) SeeAlso: AX=5D02h,AX=5D04hTop
INT 21 U - DOS 3.1+ internal - SHARE.EXE - CLOSE ALL FILES FOR GIVEN PROCESS AX = 5D04h DS:DX -> DOS parameter list (see #01686), only computer ID and process ID fields used Return: CF set on error AX = error code (see #01680) CF clear if successful Notes: error unless SHARE is loaded (calls [SysFileTable-2Ch]) (see #01636 at AH=52h) not supported by DR DOS 3.41 and 5.0; returns error code 01h not supported by Novell DOS 7 SeeAlso: AX=5D02h,AX=5D03h,INT 2F/AX=111DhTop
INT 21 U - DOS 3.1+ internal - SHARE.EXE - GET OPEN FILE LIST ENTRY AX = 5D05h DS:DX -> DOS parameter list (see #01686) DPL's BX = index of sharing record (see #01637 at AH=52h) DPL's CX = index of SFT in sharing record's SFT list Return: CF clear if successful ES:DI -> ASCIZ filename BX = network machine number of SFT's owner CX = number of locks held by SFT's owner CF set if either index out of range AX = 0012h (no more files) Notes: error unless SHARE is loaded (calls [SysFileTable-18h]) (see #01636 at AH=52h) names are always canonical fully-qualified, such as returned by AH=60h not supported by DR DOS 3.41 and 5.0 and Novell DOS 7, but does not return an error, instead destroying AX SeeAlso: AH=5Ch,AH=60hTop
INT 21 U - DOS 3.0+ internal - GET ADDRESS OF DOS SWAPPABLE DATA AREA AX = 5D06h Return: CF set on error AX = error code (see #01680) CF clear if successful DS:SI -> nonreentrant data area (includes all three DOS stacks) (critical error flag is first byte) (see #01687) CX = size in bytes of area which must be swapped while in DOS DX = size in bytes of area which must always be swapped Notes: the Critical Error flag is used in conjunction with the InDOS flag (see AH=34h) to determine when it is safe to enter DOS from a TSR setting CritErr flag allows use of functions 50h/51h from INT 28h under DOS 2.x by forcing use of correct stack swapping the data area allows reentering DOS unless DOS is in a critical section delimited by INT 2A/AH=80h and INT 2A/AH=81h,82h under DOS 4.0, AX=5D0Bh should be used instead of this function SHARE and other DOS utilities consult the byte at offset 04h in the DOS data segment (see INT 2F/AX=1203h) to determine the SDA format in use: 00h = DOS 3.x, 01h = DOS 4.0-6.0, other = error. DR DOS 3.41+ supports this function, but the SDA format beyond the first 18h bytes is completely different from MS-DOS BUG: calling this function with certain values in DX crashes Novell DOS 7.0 prior to Update 14 SeeAlso: AX=5D0Bh,INT 2A/AH=80h,INT 2A/AH=81h,INT 2A/AH=82h Format of DOS 3.10-3.30 Swappable Data Area: Offset Size Description (Table 01687) -34 BYTE (DOS 3.10+) printer echo flag (00h off, FFh active) -31 BYTE (DOS 3.30) current switch character -30 BYTE current memory allocation strategy (see AH=58h) -28 BYTE (DOS 3.30) incremented on each INT 21/AX=5E01h call -27 16 BYTEs (DOS 3.30) machine name set by INT 21/AX=5E01h -11 5 WORDs zero-terminated list of offsets which need to be patched to enable critical-section calls (see INT 2A/AH=80h) -1 BYTE unused padding ---start of actual SDA--- 00h BYTE critical error flag ("ErrorMode") 01h BYTE InDOS flag (count of active INT 21 calls) 02h BYTE drive on which current critical error occurred, or FFh (DR DOS sets to drive number during INT 24, 00h otherwise) 03h BYTE locus of last error 04h WORD extended error code of last error 06h BYTE suggested action for last error 07h BYTE class of last error 08h DWORD ES:DI pointer for last error 0Ch DWORD current DTA (Disk Transfer Address) note: may point into SDA during the DOS EXEC function (see AH=4Bh), so programs which swap the SDA must be prepared to move the DTA to a private buffer if they might be invoked during an EXEC 10h WORD current PSP 12h WORD stores SP across an INT 23 14h WORD return code from last process termination (zerod after reading with AH=4Dh) 16h BYTE current drive 17h BYTE extended break flag ---remainder need only be swapped if in DOS--- 18h WORD value of AX on call to INT 21 1Ah WORD PSP segment for sharing/network 1Ch WORD network machine number for sharing/network (0000h = us) 1Eh WORD first usable memory block found when allocating memory 20h WORD best usable memory block found when allocating memory 22h WORD last usable memory block found when allocating memory 24h WORD memory size in paragraphs (used only during initialization) 26h WORD last entry checked during directory search 28h BYTE flag: INT 24 returned Fail 29h BYTE flags: allowable INT 24 actions (passed to INT 24 in AH) 2Ah BYTE directory flag (00h directory, 01h file) 2Bh BYTE flag: FFh if Ctrl-Break termination, 00h otherwise 2Ch BYTE flag: allow embedded blanks in FCB 2Dh BYTE padding (unused) 2Eh BYTE day of month 2Fh BYTE month 30h WORD year - 1980 32h WORD number of days since 01jan1980 34h BYTE day of week (0 = Sunday) 35h BYTE flag: console swapped during read from device 36h BYTE flag: safe to call INT 28 if nonzero 37h BYTE flag: if nonzero, INT 24 Abort turned into INT 24 Fail (set only during process termination) 38h 26 BYTEs device driver request header (see #02597 at INT 2F/AX=0802h) 52h DWORD pointer to device driver entry point (used in calling driver) 56h 22 BYTEs device driver request header for I/O calls 6Ch 14 BYTEs device driver request header for disk status check 7Ah DWORD pointer to device I/O buffer??? 7Eh WORD ??? 80h WORD ??? 82h BYTE type of PSP copy (00h=simple for INT 21/AH=26h, FFh=make child) 83h BYTE padding (unused) 84h 3 BYTEs 24-bit user number (see AH=30h) 87h BYTE OEM number (see #01394 at AH=30h) 88h WORD offset to error code conversion table for INT 25/INT 26 8Ah 6 BYTEs CLOCK$ transfer record (see #01688) 90h BYTE device I/O buffer for single-byte I/O functions 91h BYTE padding??? (unused) 92h 128 BYTEs buffer for filename 112h 128 BYTEs buffer for filename 192h 21 BYTEs findfirst/findnext search data block (see #01626 at AH=4Eh) 1A7h 32 BYTEs directory entry for found file (see #01352 at AH=11h) 1C7h 81 BYTEs copy of current directory structure for drive being accessed 218h 11 BYTEs FCB-format filename for device name comparison 223h BYTE terminating NUL for above filename 224h 11 BYTEs wildcard destination specification for rename (FCB format) 22Fh BYTE terminating NUL for above spec 230h BYTE ??? 231h WORD destination file/directory starting sector 233h 5 BYTEs ??? 238h BYTE extended FCB file attribute 239h BYTE type of FCB (00h regular, FFh extended) 23Ah BYTE directory search attributes 23Bh BYTE file open/access mode 23Ch BYTE file found/delete flag bit 0: file found bit 4: file deleted 23Dh BYTE flag: device name found on rename, or file not found 23Eh BYTE splice flag (file name and directory name together) 23Fh BYTE flag indicating how DOS function was invoked (00h = direct INT 20/INT 21, FFh = server call AX=5D00h) 240h BYTE sector position within cluster 241h BYTE flag: translate sector/cluster (00h no, 01h yes) 242h BYTE flag: 00h if read, 01h if write 243h BYTE current working drive number 244h BYTE cluster factor 245h BYTE flag: cluster split mode 246h BYTE line edit (AH=0Ah) insert mode flag (nonzero = on) 247h BYTE canonicalized filename referred to existing file/dir if FFh 248h BYTE volume ID flag 249h BYTE type of process termination (00h-03h) (see AH=4Dh) 24Ah BYTE file create flag (00h = no, search only) 24Bh BYTE value with which to replace first byte of deleted file's name (normally E5h, but 00h as described under INT 21/AH=13h) 24Ch DWORD pointer to Drive Parameter Block for critical error invocation temp: used during process termination 250h DWORD pointer to stack frame containing user registers on INT 21 254h WORD stores SP across INT 24 256h DWORD pointer to DOS Drive Parameter Block for ??? 25Ah WORD saving partial cluster number 25Ch WORD temp: sector of work current cluster 25Eh WORD high part of cluster number (only low byte referenced) 260h WORD ??? temp 262h BYTE Media ID byte returned by AH=1Bh,1Ch 263h BYTE padding (unused) 264h DWORD pointer to device header when filename is character device 268h DWORD pointer to current SFT 26Ch DWORD pointer to current directory structure for drive being accessed 270h DWORD pointer to caller's FCB 274h WORD number of SFT to which file being opened will refer 276h WORD temporary storage for file handle 278h DWORD pointer to a JFT entry in process handle table (see #01378 at AH=26h) 27Ch WORD offset in DOS DS of first filename argument 27Eh WORD offset in DOS DS of second filename argument 280h WORD offset of last component in pathname or FFFFh 282h WORD offset of transfer address to add 284h WORD last relative cluster within file being accessed 286h WORD temp: absolute cluster number being accessed 288h WORD directory sector number 28Ah WORD ??? current cluster number 28Ch WORD current relative sector number within file 28Eh WORD current sector number 290h WORD current byte offset within sector 292h DWORD current offset in file 296h DWORD temp: file byte count 29Ah WORD temp: file byte count 29Ch WORD free file cluster entry 29Eh WORD last file cluster entry 2A0h WORD next file cluster number 2A2h DWORD number of bytes appended to file 2A6h DWORD pointer to current work disk buffer 2AAh DWORD pointer to working SFT 2AEh WORD used by INT 21 dispatcher to store caller's BX 2B0h WORD used by INT 21 dispatcher to store caller's DS 2B2h WORD temporary storage while saving/restoring caller's registers 2B4h DWORD pointer to prev call frame (offset 250h) if INT 21 reentered also switched to for duration of INT 24 2B8h 21 BYTEs FindFirst search data for source file(s) of a rename operation (see #01626 at AH=4Eh) 2CDh 32 BYTEs directory entry for file being renamed (see #01352 at AH=11h) 2EDh 331 BYTEs critical error stack 403h 35 BYTEs scratch SFT 438h 384 BYTEs disk stack (functions greater than 0Ch, INT 25,INT 26) 5B8h 384 BYTEs character I/O stack (functions 01h through 0Ch) ---DOS 3.2,3.3x only--- 738h BYTE device driver lookahead flag (usually printer) (see AH=64h"DOS 3.2+") 739h BYTE volume change flag 73Ah BYTE flag: virtual open 73Bh BYTE ??? Note: the only fields which remain valid BETWEEN calls to INT 21h are those in the initial "swap-always" portion of the SDA SeeAlso: #01690 Format of CLOCK$ transfer record: Offset Size Description (Table 01688) 00h WORD number of days since 1-Jan-1980 02h BYTE minutes 03h BYTE hours 04h BYTE hundredths of second 05h BYTE secondsTop
INT 21 U - DOS 3.1+ network - GET REDIRECTED PRINTER MODE AX = 5D07h Return: DL = mode 00h redirected output is combined 01h redirected output in separate print jobs Note: MS-DOS and DR DOS 3.41/5.0 simply push AX on the stack and call INT 2F/AX=1125h SeeAlso: AX=5D08h,AX=5D09h,INT 2F/AX=1125hTop
INT 21 U - DOS 3.1+ network - SET REDIRECTED PRINTER MODE AX = 5D08h DL = mode 00h redirected output is combined 01h redirected output placed in separate jobs, start new print job now Return: nothing Note: MS-DOS and DR DOS 3.41/5.0 simply push AX on the stack and call INT 2F/AX=1125h SeeAlso: AX=5D07h,AX=5D09h,INT 2F/AX=1125hTop
INT 21 U - DOS 3.1+ network - FLUSH REDIRECTED PRINTER OUTPUT AX = 5D09h Return: nothing Desc: forces redirected printer output to be printed, and starts a new print job Notes: MS-DOS and DR DOS 3.41/5.0 simply push AX on the stack and call INT 2F/AX=1125h this function is also supported by 10Net, which calls it Terminate All Spool Jobs, and does not flush if in "combine" mode SeeAlso: AX=5D07h,AX=5D08h,INT 2F/AX=1125hTop
INT 21 - DOS 3.1+ - SET EXTENDED ERROR INFORMATION AX = 5D0Ah DS:DX -> 11-word DOS parameter list (see #01686) Return: nothing. next call to AH=59h will return values from fields AX,BX,CX, DX,DI, and ES in corresponding registers Notes: documented for DOS 5+, but undocumented in earlier versions the MS-DOS Programmer's Reference incorrectly states that this call was introduced in DOS 4, and fails to mention that the ERROR structure passed to this function is a DOS parameter list. BUGS: DR DOS 3.41 and 5.0 read the value for ES from the DS field of the DPL; fortunately, MS-DOS ignores the DS field, allowing a generic routine which sets both DS and ES fields to the same value Novell DOS 7 (through at least Update 4) does not save the pointer, which is always reported as 0000h:0000h by AH=59h; Update 15 fully supports this function SeeAlso: AH=59h/BX=0000hTop
INT 21 OU - DOS 4.x only - internal - GET DOS SWAPPABLE DATA AREAS AX = 5D0Bh Return: CF set on error AX = error code (see #01680) CF clear if successful DS:SI -> swappable data area list (see #01689) Notes: copying and restoring the swappable data areas allows DOS to be reentered unless it is in a critical section delimited by calls to INT 2A/AH=80h and INT 2A/AH=81h,82h SHARE and other DOS utilities consult the byte at offset 04h in the DOS data segment (see INT 2F/AX=1203h) to determine the SDA format in use: 00h = DOS 3.x, 01h = DOS 4.0-6.0, other = error. DOS 5+ use the SDA format listed below, but revert back to the DOS 3.x call for finding the SDA (see #01687); Novell DOS 7 does not support this function, either. SeeAlso: AX=5D06h,INT 2A/AH=80h,INT 2A/AH=81h,INT 2A/AH=82h,INT 2F/AX=1203h Format of DOS 4.x swappable data area list: Offset Size Description (Table 01689) 00h WORD count of data areas 02h N BYTEs "count" copies of data area record Offset Size Description 00h DWORD address 04h WORD length and type bit 15 set if swap always, clear if swap in DOS bits 14-0: length in bytes SeeAlso: #01690 Format of DOS 4.0-6.0 swappable data area: Offset Size Description (Table 01690) -34 BYTE printer echo flag (00h off, FFh active) -31 BYTE current switch character (ignored by DOS 5+) -30 BYTE current memory allocation strategy (see AH=58h) -28 BYTE incremented on each INT 21/AX=5E01h call -27 16 BYTEs machine name set by INT 21/AX=5E01h -11 5 WORDs zero-terminated list of offsets which need to be patched to enable critical-section calls (see INT 2A/AH=80h) (all offsets are 0D0Ch, but this list is still present for DOS 3.x compatibility) -1 BYTE unused padding Note: the above data is not actually part of the SDA, and is much more likely to change between DOS versions/OEMs than data in the SDA itself ---start of actual SDA--- 00h BYTE critical error flag ("ErrorMode") 01h BYTE InDOS flag (count of active INT 21 calls) 02h BYTE drive on which current critical error occurred or FFh (DR DOS 3.41/5.0 set this to 00h when no critical error) 03h BYTE locus of last error 04h WORD extended error code of last error 06h BYTE suggested action for last error 07h BYTE class of last error 08h DWORD ES:DI pointer for last error 0Ch DWORD current DTA (Disk Transfer Address) note: may point into SDA during the DOS EXEC function (see AH=4Bh), so programs which swap the SDA must be prepared to move the DTA to a private buffer if they might be invoked during an EXEC 10h WORD current PSP 12h WORD stores SP across an INT 23 14h WORD return code from last process termination (zerod after reading with AH=4Dh) 16h BYTE current drive 17h BYTE extended break flag 18h BYTE flag: code page switching 19h BYTE flag: copy of previous byte in case of INT 24 Abort ---remainder need only be swapped if in DOS--- 1Ah WORD value of AX on call to INT 21 Note: does not contain correct value on functions 00h-0Ch, 50h, 51h, 59h, or 62h 1Ch WORD PSP segment for sharing/network (0000h = local) 1Eh WORD network machine number for sharing/network (0000h = local) 20h WORD first usable memory block found when allocating memory 22h WORD best usable memory block found when allocating memory 24h WORD last usable memory block found when allocating memory 26h WORD memory size in paragraphs (used only during initialization) 28h WORD last entry checked during directory search 2Ah BYTE flag: nonzero if INT 24 Fail 2Bh BYTE flags: allowable INT 24 responses (passed to INT 24 in AH) 2Ch BYTE flag: do not set directory if nonzero 2Dh BYTE flag: program aborted by ^C 2Eh BYTE flag: allow embedded blanks in FCB may also allow use of "*" wildcard in FCBs 2Fh BYTE padding (unused) 30h BYTE day of month 31h BYTE month 32h WORD year - 1980 34h WORD number of days since 01jan1980 36h BYTE day of week (0 = Sunday) 37h BYTE flag: console swapped during read from device 38h BYTE flag: safe to call INT 28 if nonzero 39h BYTE flag: abort currently in progress, turn INT 24 Abort into Fail 3Ah 30 BYTEs device driver request header (see #02597 at INT 2F/AX=0802h) for device calls 58h DWORD pointer to device driver entry point (used in calling driver) 5Ch 22 BYTEs device driver request header for I/O calls 72h 14 BYTEs device driver request header for disk status check (also includes following eight bytes for some calls) 80h DWORD pointer to device I/O buffer 84h WORD part of request header at 72h 86h WORD part of request header at 72h (0) 88h BYTE type of PSP copy (00h=simple for INT 21/AH=26h, FFh=make child) 89h DWORD start offset of file region to lock/unlock 8Dh DWORD length of file region to lock/unlock 91h BYTE padding (unused) 92h 3 BYTEs 24-bit user number (see AH=30h) 95h BYTE OEM number (see #01394 at AH=30h) 96h 6 BYTEs CLOCK$ transfer record (see #01688 at AX=5D06h) 9Ch BYTE device I/O buffer for single-byte I/O functions 9Dh BYTE padding 9Eh 128 BYTEs buffer for filename 11Eh 128 BYTEs buffer for filename (rename destination name) 19Eh 21 BYTEs findfirst/findnext search data block (see #01626 at AH=4Eh) 1B3h 32 BYTEs directory entry for found file (see #01394 at AH=11h) 1D3h 88 BYTEs copy of current directory structure for drive being accessed 22Bh 11 BYTEs FCB-format filename for device name comparison 236h BYTE terminating NUL for above filename 237h 11 BYTEs wildcard destination specification for rename (FCB format) 242h BYTE terminating NUL for above filespec 243h BYTE padding??? 244h WORD destination starting sector (cluster???) 246h 5 BYTEs extra space to allow a directory entry to be stored starting at offset 22Bh 24Bh BYTE extended FCB file attributes 24Ch BYTE type of FCB (00h regular, FFh extended) 24Dh BYTE directory search attributes 24Eh BYTE file open/access mode 24Fh BYTE flag: nonzero if file was deleted 250h BYTE flag: device name found on rename, or file not found 251h BYTE flag: splice file name and directory name together 252h BYTE flag indicating how DOS function was invoked (00h = direct INT 20/INT 21, FFh = server call AX=5D00h) 253h BYTE sector position within cluster 254h BYTE flag: translating sector/cluster 255h BYTE flag: 00h if read, 01h if write 256h BYTE current working drive number 257h BYTE cluster factor 258h BYTE "sda_CLUSSPLIT" flag: cluster split between two FAT sectors 259h BYTE line edit (AH=0Ah) insert mode flag (nonzero = on) 25Ah BYTE canonicalized filename referred to existing file/dir if FFh 25Bh BYTE volume ID flag 25Ch BYTE type of process termination (00h-03h) (see AH=4Dh) 25Dh BYTE unused (padding for alignment) 25Eh BYTE file create flag (00h = no, search only) 25Fh BYTE value for deleted file's first byte: 00h to delete all, else E5 260h DWORD pointer to Drive Parameter Block for critical error invocation 264h DWORD pointer to stack frame containing user registers on INT 21 268h WORD stores SP across INT 24 26Ah DWORD pointer to DOS Drive Parameter Block for ??? 26Eh WORD segment of disk buffer 270h DWORD saving partial cluster number 274h WORD "sda_PREREAD" 00h if preread, 01h if optional 276h WORD temporary used in allocating disk space 278h BYTE Media ID byte returned by AH=1Bh,1Ch 279h BYTE unused 27Ah DWORD pointer to device header if filename is character device 27Eh DWORD pointer to current SFT 282h DWORD pointer to current directory structure for drive being accessed 286h DWORD pointer to caller's FCB 28Ah WORD SFT index to which file being opened will refer 28Ch WORD temporary storage for file handle 28Eh DWORD pointer to JFT entry (for file being opened) in process handle table (see #01378 at AH=26h) 292h WORD "sda_WFP_START" offset in DOS DS of first filename argument 294h WORD "sda_REN_WFP" offset in DOS DS of second filename argument 296h WORD offset of last component in pathname or FFFFh 298h WORD offset of transfer address to add 29Ah WORD last relative cluster within file being accessed 29Ch WORD temp: absolute cluster number being accessed 29Eh DWORD directory sector number 2A2h WORD directory cluster number 2A4h DWORD current relative sector number within file 2A8h DWORD current sector number (number of previously written sectors) 2ACh WORD current byte offset within sector 2AEh DWORD current offset in file 2B2h WORD number of bytes in first sector 2B4h WORD bytes in partial last sector 2B6h WORD number of whole sectors 2B8h WORD free file cluster entry 2BAh WORD last file cluster entry 2BCh WORD next file cluster number 2BEh DWORD number of bytes appended to file 2C2h DWORD pointer to current work disk buffer 2C6h DWORD pointer to working SFT 2CAh WORD used by INT 21 dispatcher to store caller's BX 2CCh WORD used by INT 21 dispatcher to store caller's DS 2CEh WORD temporary storage while saving/restoring caller's registers 2D0h DWORD pointer to prev call frame (offset 264h) if INT 21 reentered also switched to for duration of INT 24 2D4h WORD open mode/action for INT 21/AX=6C00h 2D6h BYTE extended open conditional flag set to 00h by INT 21h dispatcher, 02h when a read is performed, and 01h or 03h by INT 21/AX=6C00h 2D7h WORD extended open I/O mode 2D9h DWORD stored ES:DI for AX=6C00h 2DDh WORD extended file open action code (see #01770 at AX=6C00h) 2DFh WORD extended file open attributes (see #01769 at AX=6C00h) 2E1h WORD extended file open file mode (see AX=6C00h) 2E3h DWORD pointer to filename to open (see AX=6C00h) 2E7h WORD high word of 32-bit sector number, or temp data buffer size from disk buffer 2E9h WORD "sda_OffsetMagicPatch" 2EBh BYTE disk full on >32M partition when set to 01h 2ECh WORD stores DS during call to [List-of-Lists + 37h] 2EEh WORD temporary storage (various uses) 2F0h BYTE storage for drive error 2F1h WORD DOS 3.4 (European MS-DOS 4.00) bit flags 2F3h DWORD pointer to user-supplied filename 2F7h DWORD pointer to user-supplied rename destination filename 2FBh WORD stores SS during call to [List-of-Lists + 37h] and INT 25,26 2FDh WORD stores SP during call to [List-of-Lists + 37h] and INT 25,26 2FFh BYTE flag, nonzero if stack switched in calling [List-of-Lists+37h] 300h 21 BYTEs FindFirst search data for source file(s) of a rename operation (see #01626 at AH=4Eh) 315h 32 BYTEs directory entry for file being renamed (see #01352 at AH=11h) 335h 331 BYTEs critical error stack 480h 384 BYTEs disk stack (functions greater than 0Ch, INT 25,INT 26) 600h 384 BYTEs character I/O stack (functions 01h through 0Ch) 780h BYTE device driver lookahead flag (usually printer) (see AH=64h"DOS 3.2+") 781h BYTE volume change flag 782h BYTE flag: virtual file open 783h BYTE fastseek drive 784h WORD fastseek first cluster number 786h WORD fastseek logical cluster number 788h WORD fastseek returned logical cluster number 78Ah WORD temporary location of DOS@SYSINIT ---MSDOS 7.1+ (FAT32)--- 78Ch 47 BYTEs ??? 7BBh BYTE flag: absolute disk read/write type 00h = INT 25/INT 26 01h = INT 21/AX=7305h 7BCh WORD high word of directory cluster number at offset 2A2h 7BEh WORD high word of cluster number at offset 29Ch 7C0h WORD high word of next file cluster number at offset 2BCh 7C2h WORD high word of last relative cluster number at offset 29Ah 7C4h WORD high word of temp at offset 276h 7C6h WORD high word of offset 244h 7C8h WORD high word of EBX 7CAh WORD high word of EDX used by "PACK" 7CCh WORD high word of EDI used by "UNPACK" 7CEh WORD high word of EBX used by "SETDIRSRCH" 7D0h WORD high word of ECX used by "FREECLUSTER" 7D2h WORD high word of EDI used by "GETEOF" 7D4h 3 WORDs ??? Note: the only fields which remain valid BETWEEN calls to INT 21h are those in the initial "swap-always" portion of the SDA SeeAlso: #01687,#01689Top
INT 21 - DOS 3.1+ network - GET MACHINE NAME AX = 5E00h DS:DX -> 16-byte buffer for ASCII machine name Return: CF clear if successful CH = validity 00h name invalid nonzero valid CL = NetBIOS number for machine name DS:DX buffer filled with blank-paded name CF set on error AX = error code (01h) (see #01680 at AH=59h) Note: supported by OS/2 v1.3+ compatibility box, PC-NFS SeeAlso: AX=5E01hTop
INT 21 - 10NET v5.0 - GET MACHINE NAME AX = 5E00h Return: CL = redirector's NetBIOS name number ES:DI -> network node ID SeeAlso: AX=5E01h"10NET"Top
INT 21 - DOS 3.1+ network - SET MACHINE NAME AX = 5E01h CH = 00h undefine name (make it invalid) <> 0 define name CL = name number DS:DX -> 15-character blank-padded ASCIZ name SeeAlso: AX=5E00hTop
INT 21 - 10NET v5.0 - GET LOCAL 10NET CONFIGURATION TABLE AX = 5E01h CX = length of buffer DS:DX -> buffer for 10Net configuration table (see #01691) Return: DS:DX buffer filled SeeAlso: AX=5E00h"10NET",INT 6F/AH=02h,INT 6F/AH=03h Format of 10Net Configuration Table: Offset Size Description (Table 01691) 00h 8 BYTEs user name 08h 15 BYTEs node ID 17h 3 BYTEs unique portion of Ethernet address 1Ah BYTE Who group number 1Bh WORD services mask (see #01693) 1Dh DWORD serial number 21h BYTE maximum concurrent users with same serial number allowed on net 22h BYTE chat mask (see #01694) 23h BYTE internal system bits (see #01695) 24h 9 BYTEs version number in format MM.mm.xxx 2Dh BYTE flag: 01h if machine is a PS/2 2Eh BYTE flag: 03h if 80386 2Fh BYTE spool termination mode: 01h concatenate, 02h truncate (see AX=5D09h) 30h WORD autospool timeout in clock ticks 32h WORD monitor timeout in clock ticks 34h WORD unused 36h WORD chat timeout in clock ticks 38h WORD netBIOS session timeout in half-seconds 3Ah WORD datagram send timeout in seconds 3Ch WORD keyboard value for initiating chat mode 3Eh WORD Who timeout in clock ticks 40h BYTE flag: 01h if server should process rom NetBIOS Post return 41h BYTE flag: 01h if FCBs should be recycled 42h 3 BYTEs signature "DBG" 45h BYTE last interrupt (21h or 6Fh) 46h BYTE last INT 21 AH value 47h BYTE last INT 6F AH value 48h WORD last item posted 4Ah WORD last item free-posted 4Ch WORD last item handled by server 4Eh WORD last redirector send NCB 50h WORD last redirector receive NCB 52h 4 BYTEs signature "TABL" 56h WORD offset of datagram buffer table header (see #01692) 58h WORD offset of chat buffer table header (see #01692) 5Ah WORD offset of Raw buffer table header (see #01692) 5Ch WORD offset of Workstation buffer table header (see #01692) 5Eh WORD offset of server receive-any table header (see #01692) 60h WORD offset of Tiny buffer table header (see #01692) 62h WORD offset of zero-length buffer table (NCBs) (see #01692) 64h WORD offset of Rdr (Redirector Mount) table header (see #01692) 66h WORD offset of Ntab (Redirector Session) table header (see #01692) 68h WORD offset of FCB table header (see #01692) 6Ah WORD offset of user file handle table header (see #01692) 6Ch WORD offset of workstation printer RDR extension table header 6Eh WORD offset of server shared device table header (see #01692) 70h WORD offset of server connection table header (see #01692) 72h WORD offset of server login table header (see #01692) 74h WORD offset of server file table header (see #01692) 76h WORD offset of server shared file table header (see #01692) 78h WORD offset of server record lock table header (see #01692) 7Ah WORD offset of remote printer claim table header (see #01692) 7Ch WORD offset of remote printer device table header (see #01692) 7Eh WORD offset of print server mount table header (see #01692) 80h WORD offset of print server sessions table header (see #01692) 82h WORD offset of print server print job structure table header 84h WORD offset of print server pooled device table header (see #01692) 86h WORD size of workstation buffer 88h WORD size of server receive-any buffer 8Ah WORD size of server raw I/O buffer 8Ch 6 BYTEs reserved 92h DWORD pointer to profile pathname 96h BYTE datagram retry count 97h BYTE NetBIOS LAN adapter number 98h 6 BYTEs physical Ethernet address 9Eh BYTE NetBIOS server name number 9Fh BYTE NetBIOS redirector name number A0h BYTE 10Net interrupt number A1h BYTE flag: chat is loaded A2h BYTE flag: INT 6F APIs permanently loaded A3h BYTE flag: file security present A4h WORD reserved A6h BYTE fixed mount bitmask for drives A:-H: A7h BYTE reserved A8h WORD 10Net system flags (see #01696) AAh BYTE monitor flags (see #01697) ABh 5 BYTEs reserved B0h WORD offset of monitor timer block B2h WORD offset of server timer block B4h WORD offset of chat timer block B6h WORD timer chain B8h 4 BYTEs signature "TALS" BCh WORD number of 10Net sends BEh WORD number of 10Net receives C0h WORD number of no-buffer conditions C2h WORD number of dropped posted messages C4h WORD number of server NCB errors C6h WORD number of redirector NCB errors C8h WORD number of datagram send/receive errors CAh WORD number of dropped Whos CCh WORD number of dropped submits CEh WORD number of session aborts D0h BYTE number of NetBIOS interface-busy errors D1h BYTE last NetBIOS bad post command D2h BYTE last NetBIOS bad redirector command D3h BYTE do send datagram send/receive error command D4h DWORD -> DOS system parameter table D8h WORD number of DOS physical drives DAh WORD offset of DOS PSP field in DOS data segment DCh WORD offset of in-DOS flag in DOS data segment DEh WORD DOS data segment E0h WORD offset of DOS SFT in DOS data segment E2h WORD offset of number-of-physical-units field in DOS data segment E4h WORD 10Net code segment E6h WORD 10Net data segment E8h WORD 10Net common server segment EAh WORD 10Net file server segment ECh WORD 10Net print server segment EEh WORD 10Net remote printer segment Note: documentation lists field at offset D0h as a WORD, but all following offsets are as though it were a BYTE; if it is indeed a WORD, all offsets after D0h must be increased by one byte Format of 10Net Table Header: Offset Size Description (Table 01692) -16 4 BYTEs table identifier -12 WORD peak number of tables allocated -10 WORD number of tables currently in use -8 WORD total number of tables -6 WORD size of each table -4 WORD offset of first allocated table -2 WORD offset of first free table Bitfields for 10NET services mask: Bit(s) Description (Table 01693) 0 workstation 1 file server 2 print queue server 3 de-spool server Bitfields for 10NET chat mask: Bit(s) Description (Table 01694) 0 chat permitted 1 bell enabled 2 chat keyboard initiated 3 in INT 16 handler 4 in Get Input 5 display has timed out 6 chat is idle Bitfields for 10NET internal system bits: Bit(s) Description (Table 01695) 0 submit permitted 1 submit initiated 2 submit executing 3 internal client call/chat/spool/autospool 4 in spool termination 5 print permitted 6 waiting for keyboard input Bitfields for 10NET System Flags: Bit(s) Description (Table 01696) 0 in NetBIOS 1 processing INT 28 2 is server 3 in net user-DOS function 4 in DOS user-DOS function 5 in net for user non-DOS function 6 in server DOS function 7 in server non-DOS function 8 in terminate 10 in user on server request 13 in DOS for user on server 14 disable critical error handler Bitfields for Monitor Flags: Bit(s) Description (Table 01697) 0 waiting for monitor response 4 in monitor get-input routine 5 monitor display timeout 6 sensing for escape keyTop
INT 21 - DOS 3.1+ network - SET NETWORK PRINTER SETUP STRING AX = 5E02h BX = redirection list index (see AX=5F02h) CX = length of setup string DS:SI -> setup string Return: CF clear if successful CF set on error AX = error code (01h) (see #01680 at AH=59h/BX=0000h) Note: also supported by 10NET v5.0 SeeAlso: AX=5E03h,INT 2F/AX=111FhTop
INT 21 - DOS 3.1+ network - GET NETWORK PRINTER SETUP STRING AX = 5E03h BX = redirection list index (see AX=5F02h) ES:DI -> 64-byte buffer for setup string Return: CF clear if successful CX = length of setup string ES:DI buffer filled CF set on error AX = error code (01h) (see #01680 at AH=59h/BX=0000h) Note: also supported by 10NET v5.0, but 10NET is documented as using DS:SI instead of ES:DI SeeAlso: AX=5E02h,INT 2F/AX=111FhTop
INT 21 - DOS 3.1+ network - SET PRINTER MODE AX = 5E04h BX = redirection list index (see AX=5F02h) DX = mode bit 0: set if binary, clear if text (tabs expanded to blanks) Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful Notes: calls INT 2F/AX=111Fh with 5E04h on stack supported by DR DOS 3.41+ SeeAlso: AX=5E05h"DOS",INT 2F/AX=111FhTop
INT 21 - 10NET v5.0 - INITIATE PRINT JOB AX = 5E04h BX = zero-based redirection list index (see AX=5F02h) DS:DX -> extended workstation printer setup structure (see #01698) Return: CF clear if successful CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=5E05h"10NET",AX=5E06h"10NET" Format of 10NET extended workstation printer setup structure: Offset Size Description (Table 01698) 00h BYTE notification flags (see #01699) 01h BYTE job control mask (see #01700) 02h WORD days to retain file 04h WORD test print length 06h BYTE number of copies to print 07h BYTE compression algorithm 08h BYTE tab width (00h = don't expand) 09h BYTE initiation type (00h normal, 01h non-spooled) 0Ah 38 BYTEs job start operation notification instructions 30h 32 BYTEs comment for job 50h 64 BYTEs output filename or non-spooled file Bitfields for 10NET notification flags: Bit(s) Description (Table 01699) 0 user at print start 1 operator at start, with reply 2 user at print completion 3 operator at completion, with reply 4 user on queue switch 5 operator on queue switch, with reply 6 user on print error Bitfields for 10NET job control mask: Bit(s) Description (Table 01700) 0 print banner page 1 eject page at end of job 2 mark as "held" (queue but don't print) 3 rush job (queue at top) 4 overwrite file with zeros before deletion 5 hyperspool if possibleTop
INT 21 - DOS 3.1+ network - GET PRINTER MODE AX = 5E05h BX = redirection list index (see AX=5F02h) Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful DX = printer mode (see AX=5E04h) Notes: calls INT 2F/AX=111Fh with 5E05h on stack supported by DR DOS 3.41+ SeeAlso: AX=5E04h"DOS",INT 2F/AX=111FhTop
INT 21 - 10NET v5.0 - TERMINATE PRINT JOB AX = 5E05h BX = zero-based redirection list index (see AX=5F02h) Return: CF clear if successful CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) Note: this call resets the spool termination mode to "truncate" (see AX=5D08h) SeeAlso: AX=5E04h"10NET",AX=5E06hTop
INT 21 - 10NET v5.0 - GET/SET 10NET WORKSTATION PRINTER SETUP STRUCTURE AX = 5E06h BX = zero-based redirection list index (see AX=5F02h) CX = operation (06h set, 07h get) DS:DX -> buffer for setup structure (same as first nine bytes of workstation printer setup) (see #01698) Return: CF clear if successful DS:DX buffer updated on get CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=5E04h"10NET",AX=5E05h"10NET"Top
INT 21 - DOS 3.1+ network - GET REDIRECTION MODE AX = 5F00h BL = redirection type 03h printer 04h disk drive Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful BH = redirection state 00h off 01h on Note: calls INT 2F/AX=111Eh with AX on top of the stack SeeAlso: AX=5F01h,INT 2F/AX=111EhTop
INT 21 - DOS 3.1+ network - SET REDIRECTION MODE AX = 5F01h BL = redirection type 03h printer 04h disk drive BH = redirection state 00h off 01h on Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful Notes: when redirection is off, the local device (if any) rather than the remote device is used calls INT 2F/AX=111Eh with AX on top of the stack SeeAlso: AX=5F00h,INT 2F/AX=111Eh,INT 60/AX=0002hTop
INT 21 - DOS 3.1+ network - GET REDIRECTION LIST ENTRY AX = 5F02h BX = zero-based redirection list index CX = driver signature 0000h LANtastic 4E57h ('NW') NetWare DS:SI -> 16-byte buffer for ASCIZ local device name or drive letter followed by colon ES:DI -> 128-byte buffer for ASCIZ network name Return: CF clear if successful BH = device status 00h valid 01h invalid 02h valid (connected from inside Windows for Workgroups v3.11) BL = device type 03h printer 04h disk drive CX = user data previously set with AX=5F03h DS:SI and ES:DI buffers filled DX,BP destroyed CF set on error AX = error code (01h,12h) (see #01680 at AH=59h/BX=0000h) Notes: this function is passed through to INT 2F/AX=111Eh by the DOS kernel error code 12h is returned if BX is greater than the size of the list also supported by Banyan VINES, PC-NFS, LANtastic, and 10NET supported by LapLink RemoteAccess but returns the local drive letter; the remote drive letter can be obtained with INT 2F/AX=Cxxxh (see INT 2F/AX=C000h"LapLink") the returned device name may or may not include a colon, depending on the network software SeeAlso: AX=5F03h,AX=5F46h,INT 2F/AX=111Eh,INT 2F/AX=C000h"LapLink"Top
INT 21 - DOS 3.1+ network - REDIRECT DEVICE AX = 5F03h BL = device type 03h printer 04h disk drive CX = user data to save 0000h for LANtastic 4E57h ("NW") for NetWare 4.0 requester DS:SI -> ASCIZ local device name (16 bytes max) ES:DI -> ASCIZ network name + ASCIZ password (128 bytes max total) Return: CF clear if successful CF set on error AX = error code (01h,03h,05h,08h,0Fh,12h) (see #01680 at AH=59h) Notes: if device type is disk drive, DS:SI must point at either a null string or a string consisting the drive letter followed by a colon; if a null string, the network attempts to access the destination without redirecting a local drive the DOS kernel calls INT 2F/AX=111Eh with AX on top of the stack also supported by Banyan VINES, LANtastic, and 10NET SeeAlso: AX=5F02h,AX=5F04h,INT 2F/AX=111Eh,INT 60/AX=0002hTop
INT 21 - DOS 3.1+ network - CANCEL REDIRECTION AX = 5F04h DS:SI -> ASCIZ local device name or path CX = 4E57h ("NW") for NetWare 4.0 requester Return: CF clear if successful CF set on error AX = error code (01h,03h,05h,08h,0Fh,12h) (see #01680 at AH=59h) Notes: the DS:SI string must be either a local device name, a drive letter followed by a colon, or a network directory beginning with two backslashes the DOS kernel calls INT 2F/AX=111Eh with AX on top of the stack also supported by Banyan VINES, LANtastic, and 10NET for NetWare, if only a server name is specified (i.e. "\\SERVER"), the connection to that server will be closed SeeAlso: AX=5F03h,INT 2F/AX=111Eh,INT 60/AX=0003hTop
INT 21 - DOS 4.0+ network - GET EXTENDED REDIRECTION LIST ENTRY AX = 5F05h BX = redirection list index DS:SI -> buffer for ASCIZ source device name ES:DI -> buffer for destination ASCIZ network path Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful AX = server's network process ID handle (10NET) BH = device status flag (bit 0 clear if valid) BL = device type (03h if printer, 04h if drive) CX = stored parameter value (user data) from AX=5F03h BP = NETBIOS local session number DS:SI buffer filled ES:DI buffer filled Notes: the local session number allows sharing the redirector's session number if an error is caused on the NETBIOS LSN, the redirector may be unable to correctly recover from errors the DOS kernel calls INT 2F/AX=111Eh with AX on top of the stack supported by DR DOS 5.0 also supported by 10NET v5.0 SeeAlso: AX=5F06h"Network",INT 2F/AX=111EhTop
INT 21 - STARLITE architecture - MAP LOCAL DRIVE LETTER TO REMOTE FILE SYSTEM AX = 5F05h DL = drive number (0=A:) DS:SI -> ASCIZ name of the object to map the drive to Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful SeeAlso: AX=5F06h"STARLITE",INT 60/AX=0002hTop
INT 21 U - Network - GET FULL REDIRECTION LIST AX = 5F06h ??? Return: ??? Notes: similar to AX=5F02h and AX=5F05h, but also returns redirections excluded from those calls for various reasons calls INT 2F/AX=111Eh with AX on top of the stack SeeAlso: AX=5F05h"DOS",INT 2F/AX=111EhTop
INT 21 - STARLITE architecture - UNMAP DRIVE LETTER AX = 5F06h DL = drive to be unmapped (0=A:) Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful SeeAlso: AX=5F05h"STARLITE",INT 60/AX=0003hTop
INT 21 - DOS 5+ - ENABLE DRIVE AX = 5F07h DL = drive number (0=A:) Return: CF clear if successful CF set on error AX = error code (0Fh) (see #01680 at AH=59h/BX=0000h) Notes: simply sets the "valid" bit in the drive's CDS this function is not supported by Novell DOS 7 through at least Update 4, but support was added by Update 13 SeeAlso: AH=52h,AX=5F08h"DOS"Top
INT 21 - STARLITE architecture - MAKE NAMED OBJECT AVAILABLE ON NETWORK AX = 5F07h DS:SI -> ASCIZ name of object to offer to network ES:DI -> ASCIZ name under which object will be known on the network MUST begin with three slashes Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful SeeAlso: AX=5F08h"STARLITE"Top
INT 21 - DOS 5+ - DISABLE DRIVE AX = 5F08h DL = drive number (0=A:) Return: CF clear if successful CF set on error AX = error code (0Fh) (see #01680 at AH=59h/BX=0000h) Notes: simply clears the "valid" bit in the drive's CDS this function is not supported by Novell DOS 7 through at least Update 4, but support was added by Update 13 SeeAlso: AH=52h,AX=5F07h"DOS"Top
INT 21 - STARLITE architecture - REMOVE GLOBAL NETWORK NAME OF OBJECT AX = 5F08h DS:SI -> ASCIZ network name (not local name) of object to unshare Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful SeeAlso: AX=5F07h"STARLITE"Top
INT 21 - STARLITE architecture - BIND TO NETWORK DEVICE AX = 5F09h DS:DX -> ASCIZ name of the device driver to attach to Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful Note: the STARLITE distributed file system can attach to multiple networks simultaneously SeeAlso: AX=5F0AhTop
INT 21 - STARLITE architecture - DETACH FROM NETWORK DEVICE AX = 5F0Ah DS:DX -> ASCIZ name of device driver to detach from Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful SeeAlso: AX=5F09hTop
INT 21 U - LAN Manager Enhanced DOS - GET REDIRECTOR VERSION AX = 5F30h Return: AX = version (AH=major,AL=minor)Top
INT 21 u - Named Pipes - LOCAL DosQNmPipeInfo AX = 5F32h BX = handle CX = size of _PIPEINFO structure DX = level (must be 0001h) DS:SI -> _PIPEINFO structure (see #01701) Return: CF clear if successful _PIPEINFO structure filled in CF set on error AX = error code Note: this function was introduced by LAN Manager but is also supported by the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS Machines, and others SeeAlso: AX=5F33h,AX=5F34h Format of Named Pipes _PIPEINFO structure: Offset Size Description (Table 01701) 00h WORD size of outgoing buffer 02h WORD size of incoming buffer 04h BYTE maximum number of instances allowed 05h BYTE current number of instances 06h BYTE length of the name (including terminating NUL) 07h N BYTEs nameTop
INT 21 u - Named Pipes - LOCAL DosQNmPHandState AX = 5F33h BX = handle Return: CF clear if successful AH = pipe mode bit mask (see #01702) AL = maximum number of instances CF set on error AX = error code Note: this function was introduced by LAN Manager but is also supported by the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS Machines, and others SeeAlso: AX=5F32h,AX=5F34h Bitfields for Named Pipes pipe mode: Bit(s) Description (Table 01702) 7 set if nonblocking, clear if blocking 6 set if server end, clear if client end 2 set if write in message mode, clear if write in byte mode 0 set if read in message mode, clear if read in byte modeTop
INT 21 u - Named Pipes - LOCAL DosSetNmPHandState AX = 5F34h BX = handle CX = pipe mode bit mask bit 15: set if nonblocking, clear if blocking bit 8: set if read in message mode, clear if read in byte mode Return: CF clear if successful CF set if error AX = error code Note: this function was introduced by LAN Manager but is also supported by the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS Machines, and others SeeAlso: AX=5F32h,AX=5F33h,AX=5F36hTop
INT 21 u - Named Pipes - LOCAL DosPeekNmPipe AX = 5F35h BX = handle CX = buffer length DS:SI -> buffer Return: CF set on error AX = error code CF clear if successful (LAN Manager v1-v2) AX = 0000h if successful (LAN Manager 3.x) ---if successful--- CX = bytes read SI = bytes left in the pipe DX = bytes left in the current message AX = pipe status (v1-v2) (see #01703) DI = pipe status (v3.x) Note: this function was introduced by LAN Manager but is also supported by the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS Machines, and others SeeAlso: AX=5F38h,AX=5F39h,AX=5F51h (Table 01703) Values for pipe status: 0001h disconnected 0002h listening 0003h connected 0004h closingTop
INT 21 u - Named Pipes - LOCAL DosTransactNmPipe AX = 5F36h BX = handle CX = in buffer length DS:SI -> in buffer DX = out buffer length ES:DI -> out buffer Return: CF clear if successful CX = bytes read CF set on error AX = error code Note: this function was introduced by LAN Manager but is also supported by the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS Machines, and others SeeAlso: AX=5F34h,AX=5F37hTop
INT 21 u - Named Pipes - DosCallNmPipe AX = 5F37h DS:SI -> DosCallNmPipe stack frame (see #01704) Return: CF clear if successful CX = bytes read CF set on error AX = error code Note: this function was introduced by LAN Manager but is also supported by the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS Machines, and others SeeAlso: AX=5F36h,AX=5F38h Format of Named Pipes DosCallNmPipe stack frame: Offset Size Description (Table 01704) 00h DWORD timeout 04h DWORD -> bytes read WORD (not used!) 08h WORD out buffer length 0Ah DWORD address of out buffer 0Eh WORD in buffer length 10h DWORD address of in buffer 14h DWORD address of pipe nameTop
INT 21 u - Named Pipes - LOCAL DosWaitNmPipe - AWAIT AVAIL. OF PIPE INSTANCE AX = 5F38h DS:DX -> pipe name BX:CX = timeout value Return: CF clear if successful CF set if error AX = error code Notes: when a client gets a return code of ERROR_PIPE_BUSY on attempting to open a pipe, it should issue this call to wait until the pipe instance becomes available again; on return from this call, the client must attempt to open the pipe once again this function was introduced by LAN Manager but is also supported by the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS Machines, and others SeeAlso: AX=5F37h,AX=5F39hTop
INT 21 U - Named Pipes - LOCAL DosRawReadNmPipe AX = 5F39h BX = handle CX = buffer length DS:DX -> buffer Return: CF clear if successful CX = bytes read CF set if error AX = error code Notes: this function was introduced by LAN Manager but is also supported by the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS Machines, and others not documented in the LAN Manager Toolkit SeeAlso: AX=5F35h,AX=5F3Ah,INT 2F/AX=1186hTop
INT 21 U - Named Pipes - LOCAL DosRawWriteNmPipe AX = 5F3Ah BX = handle CX = buffer length DS:DX -> buffer Return: CF clear if successful CX = bytes written CF set if error AX = error code Notes: this function was introduced by LAN Manager but is also supported by the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS Machines, and others not documented in the LAN Manager Toolkit SeeAlso: AX=5F39h,AX=5F3Bh,INT 2F/AX=118FhTop
INT 21 u - LAN Manager Enhanced DOS - NetHandleSetInfo AX = 5F3Bh BX = handle CX = handle_info_1 structure length or sizeof DWORD DI = parameter number to set 0000h all 0001h number of milliseconds 0002h number of characters DS:DX -> handle_info_1 structure (DI=0000h) (see #01705) or DWORD (DI=0001h or 0002h) SI = level of information (0001h) Return: CF clear if successful CX = total bytes available CF set if error AX = error code SeeAlso: AX=5F3Ch Format of LAN Manager handle_info_1 structure: Offset Size Description (Table 01705) 00h DWORD number of milliseconds which workstation collects data before it sends the data to the named pipe 04h DWORD number of characters which workstation collects before it sends the data to the named pipeTop
INT 21 u - LAN Manager Enhanced DOS - NetHandleGetInfo AX = 5F3Ch BX = handle CX = length of handle_info_1 structure DS:DX -> handle_info_1 structure (see #01705) SI = level of information (must be 0001h) Return: CF clear if successful CX = total bytes available CF set if error AX = error code SeeAlso: AX=5F3BhTop
INT 21 U - LAN Manager Enhanced DOS - WRITE MAILSLOT??? AX = 5F3Dh ??? Return: ???Top
INT 21 u - LAN Manager Enhanced DOS - LOCAL NetSpecialSMB AX = 5F3Eh ??? Return: ??? Note: This function is not documented anywhere in the LAN Manager 2.x Toolkit but was documented in LAN Manager 1.x manuals.Top
INT 21 U - LAN Manager Enhanced DOS - REMOTE API CALL AX = 5F3Fh CX = api number ES:DI -> data descriptor ES:SI -> parameter descriptor ES:DX -> auxiliary descriptor (if DX <> 0) ??? Return: ???Top
INT 21 u - LAN Manager Enhanced DOS - LOCAL NetMessageBufferSend AX = 5F40h DS:DX -> NetMessageBufferSend parameter structure (see #01706) Return: AX = error code Format of LAN Manager NetMessageBufferSend parameter structure: Offset Size Description (Table 01706) 00h DWORD -> recipient name (name for specific user, name* for domain wide name, * for broadcast) 04h DWORD -> buffer 08h WORD length of bufferTop
INT 21 u - LAN Manager Enhanced DOS - LOCAL NetServiceEnum AX = 5F41h BL = level of detail (0000h, 0001h or 0002h) CX = buffer length ES:DI -> buffer of service_info_0, service_info_1, or service_info_2 (see #01707,#01708,#01709) Return: CF clear if successful CX = entries read DX = total available CF set on error AX = error code Format of LAN Manager service_info_0 structure: Offset Size Description (Table 01707) 00h 16 BYTEs name SeeAlso: #01708,#01709 Format of service_info_1 structure: Offset Size Description (Table 01708) 00h 16 BYTEs name 10h WORD status bitmask (see #01710) 12h DWORD status code (see #01711) (also see Microsoft LAN Manager Programmer's Reference) 16h WORD process id SeeAlso: #01707,#01709 Format of service_info_2 structure: Offset Size Description (Table 01709) 00h 16 BYTEs name 10h WORD status bitmask (see #01710) 12h DWORD status code (see #01711) 16h WORD process id 18h 64 BYTEs text SeeAlso: #01707,#01708 Bitfields for LAN Manager status bitmask: Bit(s) Description (Table 01710) 0,1 00 uninstall 01 install pending 10 uninstall pending 11 installed 2,3 00 active 01 Continue pending 10 Pause pending 11 paused 4 uninstallable 5 pausable 8 disk redirector paused 9 spooled device redirector paused (printing) 10 communication device redirector paused (Table 01711) Values for LAN Manager status code: high word 3051 Bad parameter value 3052 A parameter is missing 3053 An unknown parameter was specified 3054 The resource is insufficient 3055 Configuration is faulty 3056 An MS-DOS or MS OS/2 error occured 3057 An internal error occured 3058 An ambiguous parameter name was given 3059 A duplicate parameter exists 3060 The service was terminated by NetSeviceControl when it did not respond 3061 The service program file could not be executed 3062 The subservice failed to start 3063 There is a conflict in the value or use of these parameters 3064 There is a problem with the file low word 3070 There is insufficient memory 3071 There is insufficeient disk space 3072 Unable to create thread 3073 Unable to create process 3074 A security failure occured 3075 There is bad or missing default path 3076 Network software is not installed 3077 Server software is not installed 3078 The server could not access the UAS database 3079 The action requires user-level security 3080 The log directory is invalid 3081 The LAN group specificed could not be used 3082 The computername is being used as a message alias on another computer 3083 The workstation failed to announce the servername 3084 The user accounts system is not configured properlyTop
INT 21 u - LAN Manager Enhanced DOS - LOCAL NetServiceControl AX = 5F42h DH = opcode 00h interrogate status 01h pause 02h continue 03h uninstall DL = argument 01h disk resource 02h print resource 04h communications resource (not implemented for DOS) ES:BX -> NetServiceControl parameter structure (see #01712) Return: CF clear if successful CF set on error AX = error code Format of LAN Manager NetServiceControl parameter structure: Offset Size Description (Table 01712) 00h DWORD -> service name 04h WORD result buffer size 06h DWORD -> result buffer as service_info_2 structureTop
INT 21 u - LAN Manager Enhanced DOS - LOCAL DosPrintJobGetId AX = 5F43h BX = handle of remote print job CX = size of PRIDINFO struture ES:DI -> PRIDINFO structure (see #01713) Return: CF clear if successful PRIDINFO filled in CF set on error AX = error code Format of LAN Manager PRIDINFO structure: Offset Size Description (Table 01713) 00h WORD job id 02h 16 BYTEs server name 12h 13 BYTEs queue name 1Fh 1 BYTE padTop
INT 21 - LAN Manager Enhanced DOS - LOCAL NetWkstaGetInfo AX = 5F44h BX = information level (00h, 01h, or 0Ah) CX = buffer size DX = 0000h ES:DI -> buffer in which to store info (see #01714,#01715,#01716), including any returned strings Return: AX = error code DX = amount of buffer required, unchanged if supplied buffer large enough to hold data SeeAlso: AX=5F45h,AX=5F49h Format of LAN Manager wksta_info_0 structure: Offset Size Description (Table 01714) 00h WORD reserved (0) 02h DWORD reserved (0) 06h DWORD -> path to computer's LANMAN directory 0Ah DWORD -> computername of the workstation 0Eh DWORD -> username of user logged onto workstation 12h DWORD -> domain to which workstation belongs 16h WORD LAN Manager version number (2 bytes, Major, Minor) 18h DWORD reserved (0) 1Ch WORD number of seconds workstation waits for resource availability 1Eh DWORD delay (in millsecs) before sending data to resource 22h WORD reserved (0) 24h WORD reserved (0) 26h WORD ??? 28h WORD number of seconds to maintain an inactive connection 2Ah WORD number of seconds an inactive search continues 2Ch WORD threads to dedicate to network (not supported in MSDOS) 2Eh WORD number of simultaneous commands sent to network 30h WORD reserved6 (must be 0) 32h WORD number of internal buffers 34h WORD size (in bytes) of each internal buffer 36h WORD max size (in bytes) of an internal cache buffer (not MSDOS) 38h WORD seconds before disconnecting inactive session (not MSDOS) 3Ah WORD size (in bytes) of an internal error buffer (not MSDOS) 3Ch WORD number of clients that can receive alert messages (not MSDOS) 3Eh WORD number of services that can be started on workstation 40h WORD max size (in kilobytes) of error log (not MSDOS) 42h WORD number of secs before closing inactive print jobs (not MSDOS) 44h WORD number of character buffers for workstation 46h WORD max size (in bytes) of character buffer 48h DWORD -> name of server that validated logon 4Ch DWORD -> workstation heuristics 50h WORD number of mailslots allowed Note: pointers to strings are set to 0000h:0000h if there is insufficient space in the buffer to hold them SeeAlso: #01715,#01716 Format of LAN Manager wksta_info_1 structure: Offset Size Description (Table 01715) 00h 82 BYTEs wksta_info_0 structure (see #01714) 52h DWORD -> name of domain which user is logged on to 56h DWORD -> all domains in which computer is enlisted 5Ah WORD number of buffers to allocate for receiving datagrams SeeAlso: #01716 Format of LAN Manager wksta_info_10 structure: Offset Size Description (Table 01716) 00h DWORD -> computername of the workstation 04h DWORD -> username of user logged onto workstation 08h DWORD -> domain to which workstation belongs 0Ch WORD LAN Manager version number (2 bytes, Major, Minor) 0Eh DWORD -> name of domain which user is loggod on to 12h DWORD -> all domains in which computer is enlisted Note: pointers to strings are set to 0000h:0000h if there is insufficient space in the buffer to hold them SeeAlso: #01714,#01715Top
INT 21 u - LAN Manager Enhanced DOS - LOCAL NetWkstaSetInfo AX = 5F45h BX = level (0000h or 0001h) CX = buffer size DX = parameter to set ES:DI -> buffer Return: CF clear if successful CF set if error AX = error code SeeAlso: AX=5F44hTop
INT 21 u - LAN Manager Enhanced DOS - LOCAL NetUseEnum AX = 5F46h BX = level (0000h or 0001h) CX = size of buffer ES:DI -> buffer of use_info_0 or use_info_1 structures (see #01717,#01718) Return: CF clear if successful CX = entries read DX = total available entries CF set if error AX = error code SeeAlso: AX=5F47h,AX=5F48h,AX=5F4Ch Format of LAN Manager use_info_0 structure: Offset Size Description (Table 01717) 00h 9 BYTEs local device name 09h BYTE padding 0Ah DWORD -> remote device name in UNC form \\server\share SeeAlso: #01718 Format of LAN Manager use_info_1 structure: Offset Size Description (Table 01718) 00h 9 BYTEs Local device name 09h BYTE padding 0Ah DWORD -> remote device name in UNC form \\server\share 0Eh DWORD -> password 12h WORD network link status (00h OK, 02h disconnected, else unsure) 14h WORD use type (-1 wildcard, 0 disk, 1 print, 2 com, 3 ipc) 16h WORD ignored 18h WORD ignored SeeAlso: #01717Top
INT 21 u - LAN Manager Enhanced DOS - LOCAL NetUseAdd AX = 5F47h BX = level (0001h) CX = size of use_info_1 structure ES:DI -> use_info_1 structure (see #01718) Return: CF clear on success CF set on error AX = error code SeeAlso: AX=5F46h,AX=5F48hTop
INT 21 u - LAN Manager Enhanced DOS - LOCAL NetUseDel AX = 5F48h BX = force level 0000h no force 0001h force 0002h lots of force ES:DI -> buffer as either the local device name or UNC remote name Return: CF clear on success CF set on error AX = error code SeeAlso: AX=5F46h,AX=5F48h,AX=5F49hTop
INT 21 u - LAN Manager Enhanced DOS - NetUseGetInfo AX = 5F49h DS:DX -> NetUseGetInfo parameter structure (see #01719) Return: CF clear on success DX = total available CF set on error AX = error code SeeAlso: AX=5F44h,AX=5F47h Format of LAN Manager NetUseGetInfo parameter structure: Offset Size Description (Table 01719) 00h DWORD pointer to either the local device name or UNC remote name 04h WORD level of information (0000h or 0001h) 06h DWORD pointer to buffer of use_info_0 or use_info_1 structures 0Ah WORD length of bufferTop
INT 21 u - LAN Manager Enhanced DOS - LOCAL NetRemoteCopy AX = 5F4Ah DS:DX -> NetRemoteCopy parameter structure (see #01720) Return: CF clear if successful CF set on error AX = error code SeeAlso: AX=5F4Bh Format of LAN Manager NetRemoteCopy parameter structure: Offset Size Description (Table 01720) 00h DWORD -> source name as UNC 04h DWORD -> destination name as UNC 08h DWORD -> source password 0Ch DWORD -> destination password 10h WORD destination open bitmap if destination path exists 0000h open fails 0001h file is appended 0002h file is overwritten if destination path doesn't exist 0000h open fails 0010h file is created 12h WORD copy control bitmap (see #01721) 14h DWORD -> copy_info buffer 18h WORD length of copy_info buffer Bitfields for LAN Manager copy control: Bit(s) Description (Table 01721) 0 destination must be a file 1 destination must be a directory 2 destination is opened in ascii mode instead of binary 3 source is opened in ascii mode instead of binary 4 verify all write operationsTop
INT 21 u - LAN Manager Enhanced DOS - LOCAL NetRemoteMove AX = 5F4Bh DS:DX -> NetRemoteMove parameter structure (see #01722) Return: CF clear if successful CF set on error AX = error code SeeAlso: AX=5F4Ah Format of LAN Manager NetRemoteMove parameter structure: Offset Size Description (Table 01722) 00h DWORD -> source name as UNC 04h DWORD -> destination name as UNC 08h DWORD -> source password 0Ch DWORD -> destination password 10h WORD destination open bitmap if destination path exists 0000h open fails 0001h file is appended 0002h file is overwritten if destination path doesn't exist 0000h open fails 0010h file is created 12h WORD move control bitmap 0001h destination must be a file 0002h destination must be a directory 14h DWORD -> move_info buffer 18h WORD length of move_info bufferTop
INT 21 u - LAN Manager Enhanced DOS - LOCAL NetServerEnum AX = 5F4Ch BX = level (0000h or 0001h) CX = buffer length ES:DI -> buffer in which to store information Return: CF clear if successful ES:DI -> server_info_X structures (depending on level) (see #01723,#01724) BX = entries read CX = total entries available CF set on error AX = error code Notes: this function is also supported by the Novell DOS Named Pipe Extender this function has been obseleted by NetServerEnum2 SeeAlso: AX=5F53h Format of LAN Manager server_info_0 structure: Offset Size Description (Table 01723) 00h 16 BYTEs name SeeAlso: #01724 Format of LAN Manager server_info_1 structure: Offset Size Description (Table 01724) 00h 16 BYTEs name 10h BYTE major version in lower nibble 11h BYTE minor version 12h DWORD server type bitmask (see #01725) 16h DWORD -> comment string SeeAlso: #01723 Bitfields for LAN Manager server type: Bit(s) Description (Table 01725) 0 workstation 1 server 2 SQL server 3 primary domain controller 4 backup domain controller 5 time server 6 Apple File Protocol (AFP) server 7 Novell server 8 Domain Member (v2.1+) 9 Print Queue server (v2.1+) 10 Dialin server (v2.1+) 11 Unix server (v2.1+) Note: set all (FFFFFFFFh) for All TypesTop
INT 21 u - LAN Manager Enhanced DOS - DosMakeMailslot AX = 5F4Dh BX = message size CX = mailslot size (must be bigger than message size by at least 1) (minimum 1000h, maximum FFF6h) (buffer must be 9 bytes bigger than this) DS:SI -> name ES:DI -> memory buffer Return: CF clear if successful AX = handle CF set on error AX = error code SeeAlso: AX=5F4Eh,AX=5F4Fh,AX=5F50h,AX=5F51hTop
INT 21 u - LAN Manager Enhanced DOS - DosDeleteMailslot AX = 5F4Eh BX = handle Return: CF clear if successful ES:DI -> memory to be freed (allocated during DosMakeMailslot) CF set on error AX = error code SeeAlso: AX=5F4Dh,AX=5F4FhTop
INT 21 u - LAN Manager Enhanced DOS - DosMailslotInfo AX = 5F4Fh BX = handle Return: CF clear if successful AX = max message size BX = mailslot size CX = next message size DX = next message priority SI = number of messages waiting CF set on error AX = error code SeeAlso: AX=5F4Dh,AX=5F4Eh,AX=5F50hTop
INT 21 u - LAN Manager Enhanced DOS - DosReadMailslot AX = 5F50h BX = handle DX:CX = timeout ES:DI -> buffer Return: CF clear if successful AX = bytes read CX = next item's size DX = next item's priority CF set on error AX = error code SeeAlso: AX=5F4Dh,AX=5F4Fh,AX=5F51h,AX=5F52hTop
INT 21 u - LAN Manager Enhanced DOS - DosPeekMailslot AX = 5F51h BX = handle ES:DI -> buffer Return: CF clear if successful AX = bytes read CX = next item's size DX = next item's priority CF set on error AX = error code SeeAlso: AX=5F35h,AX=5F4Fh,AX=5F50h,AX=5F52hTop
INT 21 u - LAN Manager Enhanced DOS - DosWriteMailslot AX = 5F52h BX = class CX = length of buffer DX = priority ES:DI -> DosWriteMailslot parameter structure (see #01726) DS:SI -> mailslot name Return: CF clear if successful CF set on error AX = error code SeeAlso: AX=5F4Fh,AX=5F50h,AX=5F51h Format of LAN Manager DosWriteMailslot parameter structure: Offset Size Description (Table 01726) 00h DWORD timeout 04h DWORD -> bufferTop
INT 21 u - LAN Manager Enhanced DOS - NetServerEnum2 AX = 5F53h DS:SI -> NetServerEnum2 parameter structure (see #01727) Return: CF clear if successful BX = entries read CX = total entries available CF set on error AX = error code SeeAlso: AX=5F4Ch Format of LAN Manager NetServerEnum2 parameter structure: Offset Size Description (Table 01727) 00h WORD level (0000h or 0001h) 02h DWORD -> buffer as array of server_info_??? structures (see #01723) 06h WORD length of buffer 08h DWORD server type bitmask (see #01725) 0Ch DWORD -> Domain name (may be 0000h:0000h for all local domains)Top
INT 21 U - LAN Manager Enhanced DOS - KILL ALL CONNECTIONS??? AX = 5F55h BX = ??? Return: CF clear if successful CF set on error AX = error codeTop
INT 21 - LANtastic - GET LOGIN ENTRY AX = 5F80h BX = login entry index (0-based) ES:DI -> 16-byte buffer for machine name Return: CF clear if successful buffer filled with machine name ("\\" prefix removed) DL = adapter number (v3+) CF set on error AX = error code Note: the login entry index corresponds to the value BX used in AX=5F83h SeeAlso: AX=5F83hTop
INT 21 - LANtastic - LOGIN TO SERVER AX = 5F81h ES:DI -> ASCIZ login path followed immediately by ASCIZ password BL = adapter number FFh try all valid adapters 00h-07h try only specified adapter Return: CF clear if successful CF set on error AX = error code Notes: login path is of form "\\machine\username" if no password is used, the string at ES:DI must be terminated with three NULs for compatibility with LANtastic v3.0. SeeAlso: AX=5F82h,AX=5F84hTop
INT 21 - LANtastic - LOGOUT FROM SERVER AX = 5F82h ES:DI -> ASCIZ server name (in form "\\machine") Return: CF clear if successful CF set on error AX = error code SeeAlso: AX=5F81h,AX=5F88h,AX=5FCBhTop
INT 21 - LANtastic - GET USERNAME ENTRY AX = 5F83h BX = login entry index (0-based) ES:DI -> 16-byte buffer for username currently logged into Return: CF clear if successful DL = adapter number (v3+) CF set on error AX = error code Note: the login entry index corresponds to the value BX used in AX=5F80h SeeAlso: AX=5F80hTop
INT 21 - LANtastic - GET INACTIVE SERVER ENTRY AX = 5F84h BX = server index not currently logged into ES:DI -> 16-byte buffer for server name which is available for logging in to ("\\" prefix omitted) Return: CF clear if successful DL = adapter number to non-logged in server is on CF set on error AX = error code SeeAlso: AX=5F81hTop
INT 21 - LANtastic - CHANGE PASSWORD AX = 5F85h ES:DI -> buffer containing "\\machine\oldpassword" 00h "newpassword"00h Return: CF clear if successful CF set on error AX = error code Notes: must be logged into the named machine this function is illegal for group accountsTop
INT 21 - LANtastic - DISABLE ACCOUNT AX = 5F86h ES:DI -> ASCIZ machine name and password in form "\\machine\password" Return: CF clear if successful CF set on error AX = error code Note: must be logged into the named machine and concurrent logins set to 1 by NET_MGR. Requires system manager to re-enable account.Top
INT 21 - LANtastic v3+ - GET ACCOUNT AX = 5F87h DS:SI -> 128-byte buffer for account information (see #01728) ES:DI -> ASCIZ machine name in form "\\machine" Return: CF clear if successful CF set on error AX = error code BX destroyed Note: must be logged into the specified machine Format of LANtastic user account structure: Offset Size Description (Table 01728) 00h 16 BYTEs blank-padded username (zero-padded for v4.x) 10h 16 BYTEs reserved (00h) 20h 32 BYTEs user description 40h BYTE privilege bits (see #01729) 41h BYTE maximum concurrent users 42h 42 BYTEs bit map for disallowed half hours, beginning on Sunday (bit set if half-hour not an allowed time) 6Ch WORD internal (0002h) 6Eh 2 WORDs last login time 72h 2 WORDs account expiration date (MS-DOS-format year/month:day) 76h 2 WORDs password expiration date (0 = none) 7Ah BYTE number of days to extend password after change (1-31) 00h if no extension required ---v3.x--- 7Bh 5 BYTEs reserved ---v4.x--- 7Bh BYTE storage for first letter of user name when deleted (first character is changed to 00h when deleting account) 7Ch BYTE extended privileges 7Dh 3 BYTEs reserved Bitfields for LANtastic privilege bits: Bit(s) Description (Table 01729) 7 bypass access control lists 6 bypass queue protection 5 treat as local process 4 bypass mail protection 3 allow audit entry creation 2 system manager 0 user cannot change passwordTop
INT 21 - LANtastic v4.0+ - LOGOUT FROM ALL SERVERS AX = 5F88h Return: CF clear if successful CF set on error AX = error code SeeAlso: AX=5F82hTop
INT 21 - LANtastic - COPY FILE AX = 5F97h CX:DX = number of bytes to copy (FFFFFFFFh = entire file) SI = source file handle DI = destination file handle Return: CF clear if successful DX:AX = number of bytes copied CF set on error AX = error code Note: copy is performed by serverTop
INT 21 - LANtastic - SEND UNSOLICITED MESSAGE AX = 5F98h DS:SI -> message buffer (see #01730) Return: CF clear if successful CF set on error AX = error code Note: v4.1- return no errors SeeAlso: AX=5F99h Format of LANtastic message buffer: Offset Size Description (Table 01730) 00h BYTE reserved 01h BYTE message type 00h general 01h server warning 02h-7Fh reserved 80h-FFh user-defined 02h 16 BYTEs ASCIZ destination machine name 12h 16 BYTEs ASCIZ server name which user must be logged into 22h 16 BYTEs ASCIZ user name 32h 16 BYTEs ASCIZ originating machine name (filled in when received) 42h 80 BYTEs message textTop
INT 21 - LANtastic - GET LAST RECEIVED UNSOLICITED MESSAGE AX = 5F99h ES:DI -> messsage buffer (see #01730) Return: CF clear if successful CF set on error AX = error code SeeAlso: AX=5F98hTop
INT 21 - LANtastic - GET MESSAGE PROCESSING FLAGS AX = 5F9Ah Return: CF clear if successful DL = bits describing processing of received messages (see #01731) CF set on error AX = error code SeeAlso: AX=5F9Bh,AX=5F9Ch,AX=5F9Dh Bitfields for unsolicited message processing flags: Bit(s) Description (Table 01731) 0 beep before message is delivered 1 deliver message to message service 2 pop up message automatically (v3+)Top
INT 21 - LANtastic - SET MESSAGE PROCESSING FLAGS AX = 5F9Bh DL = bits describing processing for received unsolicited messages (see #01731) Return: CF clear if successful CF set on error AX = error code SeeAlso: AX=5F9Ah,AX=5F9EhTop
INT 21 - LANtastic v3+ - POP UP LAST RECEIVED MESSAGE AX = 5F9Ch CX = time to leave on screen in clock ticks DH = 0-based screen line on which to place message Return: CF clear if successful CF set on error AX = error code (0Bh) Notes: the original screen contents are restored when the message is removed the message will not appear, and an error will be returned, if the screen is in a graphics mode SeeAlso: AX=5F9AhTop
INT 21 - LANtastic v4.1+ - GET REDIRECTOR CONTROL BITS AX = 5F9Dh Return: DL = redirector control bits bit 7: set to notify on print job completion SeeAlso: AX=5F9Ah,AX=5F9EhTop
INT 21 - LANtastic v4.1+ - SET REDIRECTOR CONTROL BITS AX = 5F9Eh DL = redirector control bits (see AX=5F9Dh) Return: nothing SeeAlso: AX=5F9Bh,AX=5F9DhTop
INT 21 - LANtastic - GET QUEUE ENTRY AX = 5FA0h BX = queue entry index (0000h is first entry) DS:SI -> buffer for queue entry (see #01732) ES:DI -> ASCIZ server name in form "\\name" Return: CF clear if successful CF set on error AX = error code BX = entry index for next queue entry (BX-1 is current index) SeeAlso: AX=5FA1h,AX=5FA2h Format of LANtastic queue entry: Offset Size Description (Table 01732) 00h BYTE status of entry (see #01733) 01h DWORD size of spooled file 05h BYTE type of entry (see #01734) 06h BYTE output control (see #01735) 07h WORD number of copies 09h DWORD sequence number of queue entry 0Dh 48 BYTEs pathname of spooled file 3Dh 16 BYTEs user who spooled file 4Dh 16 BYTEs name of machine from which file was spooled 5Dh WORD date file was spooled (see #01666 at AX=5700h) 5Fh WORD time file was spooled (see #01665 at AX=5700h) 61h 17 BYTEs ASCIZ destination device or user name 72h 48 BYTEs comment field (Table 01733) Values for status of LANtastic queue entry: 00h empty 01h being updated 02h being held 03h waiting for despool 04h being despooled 05h canceled 06h spooled file could not be accessed 07h destination could not be accessed 08h rush job (Table 01734) Values for type of LANtastic queue entry: 00h printer queue file 01h message 02h local file 03h remote file 04h to remote modem 05h batch processor file Bitfields for output control: Bit(s) Description (Table 01735) 6 don't delete (for mail) 5 mail file contains voice mail (v3+) 4 mail message has been read 3 response has been requested for this mailTop
INT 21 - LANtastic - SET QUEUE ENTRY AX = 5FA1h BX = handle of opened queue entry DS:SI -> queue entry (see #01732) Return: CF clear if successful CF set on error AX = error code Notes: the only queue entry fields which may be changed are output control, number of copies, destination device, and comment the handle in BX is that from a create or open (INT 21/AH=3Ch,3Dh) call on the file "\\server\\@MAIL" or "\\server\@name" (for printer queue entries) SeeAlso: AX=5FA0h,AX=5FA2h,AX=5FA9hTop
INT 21 - LANtastic - CONTROL QUEUE AX = 5FA2h BL = control command 00h start despooling (privileged) 01h halt despooling (privileged) 02h halt despooling at end of job (privileged) 03h pause despooler at end of job (privileged) 04h print single job (privileged) 05h restart current job (privileged) 06h cancel the current job 07h hold queue entry 08h release a held queue entry 09h make queue entry a rushed job (privileged) CX:DX = sequence number to control (commands 06h-09h) DX = physical printer number (commands 00h-05h) 00h-02h LPT1-LPT3 03h,04h COM1,COM2 other all printers ES:DI -> ASCIZ server name in form "\\machine" Return: CF clear if successful CF set on error AX = error codeTop
INT 21 - LANtastic v3+ - GET PRINTER STATUS AX = 5FA3h BX = physical printer number (00h-02h = LPT1-LPT3, 03h-04h = COM1-COM2) DS:SI -> buffer for printer status (see #01736) ES:DI -> ASCIZ server name in form "\\machine" Return: CF clear if successful CF set on error AX = error code BX = next physical printer number Note: you must be logged in to the specified server Format of LANtastic printer status: Offset Size Description (Table 01736) 00h BYTE printer state (see #01737) 01h WORD queue index of print job being despooled FFFFh if not despooling--ignore all following fields 03h WORD actual characters per second being output 05h DWORD number of characters actually output so far 09h DWORD number of bytes read from spooled file so far 0Dh WORD copies remaining to print Bitfields for LANtastic printer state: Bit(s) Description (Table 01737) 7 printer paused 0-6 0 printer disabled 1 will stop at end of job 2 print multiple jobsTop
INT 21 - LANtastic v3+ - GET STREAM INFO AX = 5FA4h BX = 0-based stream index number DS:SI -> buffer for stream information (see #01738) ES:DI -> ASCIZ machine name in form "\\machine" Return: CF clear if successful CF set on error AX = error code BX = next stream number SeeAlso: AX=5FA5h Format of LANtastic stream information: Offset Size Description (Table 01738) 00h BYTE queueing of jobs for logical printer (0=disabled,other=enabled) 01h 11 BYTEs logical printer resource template (may contain ? wildcards)Top
INT 21 - LANtastic v3+ - SET STREAM INFO AX = 5FA5h BX = 0-based stream index number DS:SI -> buffer containing stream information (see #01738) ES:DI -> ASCIZ machine name in form "\\machine" Return: CF clear if successful CF set on error AX = error code SeeAlso: AX=5FA4hTop
INT 21 - LANtastic - CREATE USER AUDIT ENTRY AX = 5FA7h DS:DX -> ASCIZ reason code (max 8 bytes) DS:SI -> ASCIZ variable reason string (max 128 bytes) ES:DI -> ASCIZ machine name in form "\\machine" Return: CF clear if successful CF set on error AX = error code Note: you must be logged in to the specified server and have the "U" privilege to execute this callTop
INT 21 - LANtastic v4.1+ - SET EXTENDED QUEUE ENTRY AX = 5FA9h BX = handle of opened queue entry DS:SI -> queue entry (see #01732) Return: CF clear if successful CF set on error AX = error code Note: functions exactly the same as AX=5FA1h except the spooled filename is also set. This call supports direct despooling. SeeAlso: AX=5FA1hTop
INT 21 - LANtastic - GET ACTIVE USER INFORMATION AX = 5FB0h BX = server login entry index DS:SI -> buffer for active user entry (see #01739) ES:DI -> ASCIZ machine name in form "\\server" Return: CF clear if successful CF set on error AX = error code BX = next login index SeeAlso: AX=5FB2h Format of LANtastic active user entry: Offset Size Description (Table 01739) 00h WORD virtual circuit number 02h BYTE login state (see #01740) 03h BYTE last command issued (see #01741) 04h 5 BYTEs number of I/O bytes (40-bit unsigned number) 09h 3 BYTEs number of server requests (24-bit unsigned) 0Ch 16 BYTEs name of user who is logged in 1Ch 16 BYTEs name of remote logged in machine 2Ch BYTE extended privileges (v4+???) bit 0: user cannot change his password 2Dh WORD time left in minutes (0000h = unlimited) (v4+???) Bitfields for login state: Bit(s) Description (Table 01740) 0 fully logged in 1 remote program load login 2 user has system manager privileges 3 user can create audit entries 4 bypass mail protection 5 treat as local process 6 bypass queue protection 7 bypass access control lists (Table 01741) Values for last LANtastic command: 00h login 01h process termination 02h open file 03h close file 04h create file 05h create new file 06h create unique file 07h commit data to disk 08h read file 09h write file 0Ah delete file 0Bh set file attributes 0Ch lock byte range 0Dh unlock byte range 0Eh create subdirectory 0Fh remove subdirectory 10h rename file 11h find first matching file 12h find next matching file 13h get disk free space 14h get a queue entry 15h set a queue entry 16h control the queue 17h return login information 18h return link description 19h seek on file 1Ah get server's time 1Bh create audit entry 1Ch open file in multitude of modes 1Dh change password 1Eh disable account 1Fh local server file copy ---v3+--- 20h get username from account file 21h translate server's logical path 22h make indirect file 23h get indirect file contents 24h get physical printer status 25h get logical print stream info 26h set logical print stream info 27h get user's account record ---v4+--- 28h request server shutdown 29h cancel server shutdown 2Ah stuff server's keyboard 2Bh write then commit data to disk 2Ch set extended queue entry 2Dh terminate user from server 2Eh enable/disable logins 2Fh flush server caches 30h change username 31h get extended queue entry (same as get queue, but can return named fields blanked)Top
INT 21 - LANtastic - GET SHARED DIRECTORY INFORMATION AX = 5FB1h DS:SI -> 64-byte buffer for link description ES:DI -> ASCIZ machine and shared directory name in form "\\machine\shared-resource" Return: CF clear if successful CX = access control list privileges for requesting user (see #01742) CF set on error AX = error code Bitfields for LANtastic access control list: Bit(s) Description (Table 01742) 4 (I) allow expansion of indirect files 5 (A) allow attribute changing 6 (P) allow physical access to device 7 (E) allow program execution 8 (N) allow file renaming 9 (K) allow directory deletion 10 (D) allow file deletion 11 (L) allow file/directory lookups 12 (M) allow directory creation 13 (C) allow file creation 14 (W) allow open for write and writing 15 (R) allow open for read and readingTop
INT 21 - LANtastic v3+ - GET USERNAME FROM ACCOUNT FILE AX = 5FB2h BX = username entry index (0 for first) DS:SI -> 16-byte buffer for username ES:DI -> ASCIZ server name in form "\\machine" Return: CF clear if successful CF set on error AX = error code BX = next queue entry index SeeAlso: AX=5FB0hTop
INT 21 - LANtastic v3+ - TRANSLATE PATH AX = 5FB3h DS:SI -> 128-byte buffer for ASCIZ result ES:DI -> full ASCIZ path, including server name DX = types of translation to be performed bit 0: expand last component as indirect file bit 1: return actual path relative to server's physical disk Return: CF clear if successful CF set on error AX = error code Note: always expands any indirect files along the path SeeALso: AX=5FB4h,INT 21/AH=60hTop
INT 21 - LANtastic v3+ - CREATE INDIRECT FILE AX = 5FB4h DS:SI -> 128-byte buffer containing ASCIZ contents of indirect file ES:DI -> full ASCIZ path of indirect file to create, incl machine name Return: CF clear if successful CF set on error AX = error code Note: the contents of the indirect file may be any valid server-relative path SeeAlso: AX=5FB3h,AX=5FB5hTop
INT 21 - LANtastic v3+ - GET INDIRECT FILE CONTENTS AX = 5FB5h DS:SI -> 128-byte buffer for ASCIZ indirect file contents ES:DI -> full ASCIZ path of indirect file Return: CF clear if successful CF set on error AX = error code SeeAlso: AX=5FB4hTop
INT 21 - LANtastic v4.1+ - SET AUTO-LOGIN DEFAULTS AX = 5FB6h ES:DI -> pointer to ASCIZ default user name, immediately followed by ASCIZ password BL = adapter number to use for default login attempt FFh try all valid adapters 00h-05h try adapter 0-5 explicitly Return: CF clear if successful CF set on error AX = error code Notes: call with ES:DI -> two nulls to disable auto-login SeeAlso: AX=5FB7hTop
INT 21 - LANtastic v4.1+ - GET AUTO-LOGIN DEFAULTS AX = 5FB7h ES:DI -> pointer to 16-byte buffer to store ASCIZ auto-login user name Return: CF clear if successful DL = adapter number used for default login attempt FFh all valid adapters will be tried 00h-05h specified adapter will be tried explicitly CF set on error AX = error code SeeAlso: AX=5F81h,AX=5FB6hTop
INT 21 - LANtastic - GET TIME FROM SERVER AX = 5FC0h DS:SI -> time block (see #01743) ES:DI -> ASCIZ server name to get time from Return: CF clear if successful CF set on error AX = error code SeeAlso: AH=E7h"Novell" Format of LANtastic time block: Offset Size Description (Table 01743) 00h WORD year 02h BYTE day 03h BYTE month 04h BYTE minutes 05h BYTE hour 06h BYTE hundredths of second 07h BYTE secondTop
INT 21 - LANtastic v4.0+ - SCHEDULE SERVER SHUTDOWN AX = 5FC8h ES:DI -> ASCIZ server name in form "\\machine" DS:SI -> ASCIZ reason string (80 characters) CX = number of minutes until shutdown (0 = immediate) DX = option flags (see #01744) Return: CF clear if successful CF set on error AX = error code SeeAlso: AX=5FC9h Bitfields for LANtastic option flags: Bit(s) Description (Table 01744) 0 auto reboot 1 do not notify users 2 halt after shutdown 3 shutdown due to power fail (used by UPS) 4-7 reserved 8-14 user definable 15 reservedTop
INT 21 - LANtastic v4.0+ - CANCEL SERVER SHUTDOWN AX = 5FC9h ES:DI -> ASCIZ server name in form "\\machine" Return: CF clear if successful CF set on error AX = error code Note: you must have the "S" privilege to use this call SeeAlso: AX=5FC8hTop
INT 21 - LANtastic v4.0+ - STUFF SERVER KEYBOARD BUFFER AX = 5FCAh ES:DI -> ASCIZ server name in form "\\machine" DS:SI -> ASCIZ string to stuff (128 bytes) Return: CF clear if successful CF set on error AX = error code Note: you must have the "S" privilege to use this call maximum number of characters that can be stuffed is determined by the server's RUN BUFFER SIZE. SeeAlso: INT 16/AH=05hTop
INT 21 - LANtastic v4.1+ - TERMINATE USER AX = 5FCBh ES:DI -> ASCIZ server name in form "\\machine" DS:SI -> blank-padded username. A null char = wildcard. DS:DX -> blank-padded machine name. A null char = wildcard. CX = minutes until termination (0 = immediate) Return: CF clear if successful CF set on error AX = error code Note: you must have the "S" privilege to use this call you cannot log yourself out using this call SeeAlso: AX=5F82hTop
INT 21 - LANtastic v4.1+ - GET/SET SERVER CONTROL BITS AX = 5FCCh ES:DI -> ASCIZ server name in form "\\machine" CX = bit values (value of bits you want to set) (see #01745) DX = bit mask (bits you are interested in, 0 = get only) (see #01745) Return: CF clear if successful CX = control bits after call (see #01745) CF set on error AX = error code Note: you must have the "S" privilege to SET, anyone can GET. Bitfields for control bits: Bit(s) Description (Table 01745) 0 disable loginsTop
INT 21 - LANtastic v4.1+ - FLUSH SERVER CACHES AX = 5FCDh ES:DI -> ASCIZ server name in form "\\machine" Return: CF clear if successful CF set on error AX = error code Note: you must have the "S" privilege to use this call.Top
INT 21 - LANtastic - GET REDIRECTED PRINTER TIMEOUT AX = 5FD0h Return: CF clear if successful CX = redirected printer timeout in clock ticks of 55ms 0000h if timeout disabled CF set on error AX = error code SeeAlso: AX=5FD1hTop
INT 21 - LANtastic - SET REDIRECTED PRINTER TIMEOUT AX = 5FD1h CX = printer timeout in clock ticks of 55ms, 0000h to disable timeouts Return: CF clear if successful CF set on error AX = error code SeeAlso: AX=5FD0hTop
INT 21 C - LANtastic - GET DOS SERVICE VECTOR AX = 5FE0h Return: CF clear if successful ES:BX -> current FAR service routine CF set on error AX = error code Note: the service routine is called by the LANtastic redirector whenever DOS may safely be called, permitting external TSRs and drivers to hook into LANtastic's DOS busy flag checking SeeAlso: AX=5FE1h,INT 28,INT 2A/AH=84hTop
INT 21 - LANtastic - SET DOS SERVICE VECTOR AX = 5FE1h ES:BX -> FAR routine to call when DOS services are available Return: CF clear if successful CF set on error AX = error code Note: new handler must chain to previous handler as its first action SeeAlso: AX=5FE0hTop
INT 21 - LANtastic - GET MESSAGE SERVICE VECTOR AX = 5FE2h Return: CF clear if successful ES:BX -> current FAR message service routine CF set on error AX = error code SeeAlso: AX=5FE0h,AX=5FE3hTop
INT 21 - LANtastic - SET MESSAGE SERVICE VECTOR AX = 5FE3h ES:BX -> FAR routine for processing network messages Return: CF clear if successful CF set on error AX = error code Notes: handler must chain to previous handler as its first action on invocation, ES:BX -> just-received message SeeAlso: AX=5FE2hTop
INT 21 - DOS 3.0+ - "TRUENAME" - CANONICALIZE FILENAME OR PATH AH = 60h DS:SI -> ASCIZ filename or path ES:DI -> 128-byte buffer for canonicalized name Return: CF set on error AX = error code 02h invalid component in directory path or drive letter only 03h malformed path or invalid drive letter ES:DI buffer unchanged CF clear if successful AH = 00h or 3Ah (DOS 6.1/6.2 for character device) AL = destroyed (00h or 2Fh or 5Ch or last character of current directory on drive) buffer filled with qualified name of form D:\PATH\FILE.EXT or \\MACHINE\PATH\FILE.EXT Desc: determine the canonical name of the specified filename or path, corresponding to the undocumented TRUENAME command in COMMAND.COM Notes: the input path need not actually exist letters are uppercased, forward slashes converted to backslashes, asterisks converted to appropriate number of question marks, and file and directory names are truncated to 8.3 if necessary. (DR DOS 3.41 and 5.0 do not expand asterisks) '.' and '..' in the path are resolved filespecs on local drives always start with "d:", those on network drives always start with "\\" if path string is on a JOINed drive, the returned name is the one that would be needed if the drive were not JOINed; similarly for a SUBSTed, ASSIGNed, or network drive letter. Because of this, it is possible to get a qualified name that is not legal under the current combination of SUBSTs, ASSIGNs, JOINs, and network redirections under DOS 3.3 through 6.00, a device name is translated differently if the device name does not have an explicit directory or the directory is \DEV (relative directory DEV from the root directory works correctly). In these cases, the returned string consists of the unchanged device name and extension appended to the string X:/ (forward slash instead of backward slash as in all other cases) where X is the default or explicit drive letter. under MS-DOS 7.0, this call returns the short name for any long-filename portions of the provided pathname or filename functions which take pathnames require canonical paths if invoked via INT 21/AX=5D00h supported by OS/2 v1.1 compatibility box NetWare 2.1x does not support characters with the high bit set; early versions of NetWare 386 support such characters except in this call. In addition, NetWare returns error code 3 for the path "X:\"; one should use "X:\." instead. Novell DOS 7 reportedly has difficulty with non-MS-DOS filenames on network drives, and can return "D:" instead of "SERVER/VOLUME" for DOS 3.3-6.0, the input and output buffers may be the same, as the canonicalized name is built in an internal buffer and copied to the specified output buffer as the very last step for DR DOS 6.0, this function is not automatically called when on a network. Device drivers reportedly cannot make this call from their INIT function. Using the same pointer for both input and output buffers is not supported in the April 1992 and earlier versions of DR DOS Windows for Workgroups 3.11, Windows95 and even MS-DOS 7.00 only return the local drive path; to obtain network paths use INT 21/AX=5F02h or INT 21/AX=5F46h instead Corel's CORELCDX and MSCDEX without the /S switch return canonical names of the form "\\D.\A.\path", where "D" is the CD-ROM drive letter and "A" appears to indicate the first physical CD-ROM drive; MSCDEX with the /S switch returns a canonical name with embedded blanks. Novell DOS 7 NWCDEX as of the 11/16/94 update returns the same canonical path as MSCDEX; earlier revisions returned "Cdex. D:\path", where "D" is the CD-ROM drive letter the Windows95 MSCDEX-replacement VxD returns "D:\path", even though the MS-DOS 7.00 MSCDEX behaves identically to older versions (above) BUG: Windows95 incorrectly treats filenames where the first two characters after the drive letter and colon are both slashes (either forward or backward) as a UNC (network name) and requires several seconds to attempt to resolve the name before returning an unchanged string SeeAlso: AX=5F02h,AX=5FB3h,AX=7160h/CL=00h,INT 2F/AX=1123h,INT 2F/AX=1221hTop
INT 21 - DOS 3.0+ - UNUSED (RESERVED FOR NETWORK USE) AH = 61h Return: AL = 00h Note: this function does nothing and returns immediatelyTop
INT 21 U - OS/2 v1.x FAPI - OS/2 FILE SYSTEM JOIN/SUBST AH = 61h BP = 6467h ("dg") AL = function 00h list (i.e. get) 01h add 02h delete BX = drive number CX = size of buffer SI = type (0002h JOIN, 0003h SUBST) ES:DI -> buffer Return: CF clear if successful AX = 0000h ES:DI buffer filled, if appropriate CF set on error AX = error code Notes: used by JOIN and SUBST to communicate with the OS/2 file system for function 00h (list), the ES:DI buffer is filled with the ASCIZ JOIN/SUBST path or an empty string if the drive is not JOINed/SUBSTed also supported by OS/2 v2.0+ Virtual DOS MachinesTop
INT 21 - DOS 3.0+ - GET CURRENT PSP ADDRESS AH = 62h Return: BX = segment of PSP for current process Notes: this function does not use any of the DOS-internal stacks and may thus be called at any time, even during another INT 21h call the current PSP is not necessarily the caller's PSP identical to the undocumented AH=51h SeeAlso: AH=50h,AH=51hTop
INT 21 - ENVLOCK - INSTALLATION CHECK AX = 6262h SI = 1994h Return: AX = 1994h if installed ES = ENVLOCK's resident segment Notes: to deactivate ENVLOCK, zero out the byte at ES:[0102h] Program: ENVLOCK is a TSR by Alexander Yanovsky that forces other TSRs to deallocate their environment when they stay residentTop
INT 21 - DOS 2.25 only - GET LEAD BYTE TABLE ADDRESS AX = 6300h Return: CF clear if successful DS:SI -> lead byte table (see #01746) CF set on error AX = error code (01h) (see #01680 at AH=59h/BX=0000h) Notes: does not preserve any registers other than SS:SP the US version of MS-DOS 3.30 treats this as an unused function, setting AL=00h and returning immediately SeeAlso: AX=6301h,AH=07h,AH=08h,AH=0Bh Format of double-byte character set lead byte table entry: Offset Size Description (Table 01746) 00h 2 BYTEs low/high ends of a range of leading byte of double-byte chars 02h 2 BYTEs low/high ends of a range of leading byte of double-byte chars ... N 2 BYTEs 00h,00h end flagTop
INT 21 - DOS 3.2+ - GET DOUBLE BYTE CHARACTER SET LEAD-BYTE TABLE AX = 6300h Return: AL = error code 00h successful DS:SI -> DBCS table (see #01746) all other registers except CS:IP and SS:SP destroyed FFh not supported Notes: probably identical to AH=63h/AL=00h for DOS 2.25 the US version of MS-DOS 3.30 treats this as an unused function, setting AL=00h and returning immediately, WITHOUT setting DS:SI; only the Far East versions of MS-DOS 3.2 and 3.3 supported this call the US version of DOS 4.0+ accepts this function, but returns an empty list IBM DOS 6.1 SYS.COM assumes that CF is set on error SeeAlso: AX=6300h"DOS 2.25"Top
INT 21 - DOS 2.25, DOS 3.2+ - SET KOREAN (HANGEUL) INPUT MODE AX = 6301h DL = new mode 00h return only full characters on DOS keyboard input functions 01h return partially-formed (interim) characters also Return: AL = status 00h successful FFh invalid mode Notes: Novell DOS 7 simply stores DL in the caller's PSP (see #01378 at AH=26h) the US version of MS-DOS 3.30 treats this as an unused function, setting AL=00h and returning immediately; only the Far East versions of MS-DOS 3.2 and 3.3 supported this call SeeAlso: AH=07h,AH=08h,AH=0Bh,AX=6300h,AX=6302hTop
INT 21 - DOS 2.25, DOS 3.2+ - GET KOREAN (HANGEUL) INPUT MODE AX = 6302h Return: AL = status 00h successful DL = current input mode 00h return only full characters (clears interim flag) 01h return partial characters (sets interim flag) FFh not supported Notes: Novell DOS 7 simply reads the value out of the caller's PSP, so it can return values other than 00h or 01h if the last call to AX=6301h used another value the US version of MS-DOS 3.30 treats this as an unused function, setting AL=00h and returning immediately, WITHOUT setting DL; only the Far East versions of MS-DOS 3.2 and 3.3 supported this call SeeAlso: AH=07h,AH=08h,AH=0Bh,AX=6300h,AX=6301hTop
INT 21 - VIRUS - "DOS IDLE" - INSTALLATION CHECK AX = 6303h Return: BX = 6303h if resident SeeAlso: AX=5643h"VIRUS",AX=6304h"VIRUS",AX=9AD5h"VIRUS"Top
INT 21 - VIRUS - "Replicator" - INSTALLATION CHECK AX = 6304h Return: BX = 6304h if resident SeeAlso: AX=6303h"VIRUS",AX=6969h"VIRUS"Top
INT 21 - DOS 3.2+ internal - SET DEVICE DRIVER LOOKAHEAD FLAG AH = 64h AL = flag 00h (default) call device driver function 5 (non-dest read) before INT 21/AH=01h,08h,0Ah nonzero don't call driver function 5 Return: nothing (MS-DOS) CF set, AX=error code??? (DR DOS 5.0, which does not support this call) Notes: this function is called by the DOS 3.3+ PRINT.COM under MS-DOS, this function does not use any of the DOS-internal stacks and may thus be called at any time, even during another DOS call SeeAlso: AH=01h,AH=08h,AH=0Ah,AX=5D06hTop
INT 21 U - OS/2 v2.0+ Virtual DOS Machine - ENABLE AUTOMATIC TITLE SWITCH AH = 64h DX = 0000h (function number) CX = 636Ch (magic value, "cl") BX = 0000h (indicates special request) Note: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch SeeAlso: AH=64h/DX=0001h,INT 21/AH=4BhTop
INT 21 U - OS/2 v2.0+ Virtual DOS Machine - SET SESSION TITLE AH = 64h DX = 0001h (function number) CX = 636Ch (magic value, "cl") BX = 0000h (indicates special request) ES:DI -> new ASCIZ title (max 12 char) or "" to restore default title Note: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch SeeAlso: AH=64h/DX=0000h,AH=64h/DX=0002h,INT 15/AH=12h/BH=05hTop
INT 21 U - OS/2 v2.0+ Virtual DOS Machine - GET SESSION TITLE AH = 64h DX = 0002h (function number) CX = 636Ch (magic value, "cl") BX = 0000h (indicates special request) ES:DI -> 13-byte buffer for current title Return: buffer filled (single 00h if title never changed) Note: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch SeeAlso: AH=64h/DX=0000h,AH=64h/DX=0001h,INT 15/AH=12h/BH=05hTop
INT 21 U - OS/2 v2.1 Virtual DOS Machine - GET LASTDRIVE AH = 64h DX = 0003h (function number) CX = 636Ch (magic value, "cl") BX = 0000h (indicates special request) Return: AL = highest drive supported Notes: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch used by WinOS2 not supported by OS/2 Warp 3.0, check list of lists instead (see #01627) SeeAlso: AH=52hTop
INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET SIZE OF PTDA JFT AH = 64h DX = 0004h (function number) CX = 636Ch (magic value, "cl") BX = 0000h (indicates special request) Return: AX = number of entries in OS/2 JFT for VDM Notes: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch in an OS/2 VDM, the DOS Job File Table in the PSP contains an index into the OS/2 JFT in the Per-Task Data Area rather than an SFT index because the OS/2 SFT can contain more than 255 entriesTop
INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET SECOND SFT FLAGS WORD AH = 64h DX = 0005h (function number) CX = 636Ch (magic value, "cl") BX = 0000h (indicates special request) DI = DOS file handle Return: AX = value of second flags word from OS/2 SFT entry for file Notes: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch the OS/2 SFT has two flags words rather than DOS's one word, and this function provides access to the word which is not present in DOSTop
INT 21 U - OS/2 v2.1+ Virtual DOS Machine - UNLOAD DOSKRNL SYMBOLS & LOAD PROGR AH = 64h DX = 0006h (function number) CX = 636Ch (magic value, "cl") BX = 0000h (indicates special request) ES:DI -> ASCIZ filespec DS = base address for loading Notes: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch this function is only supported by the kernel debugging version of OS2KRNLTop
INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET WinOS2 CALL GATE ADDRESS AH = 64h DX = 0007h (function number) CX = 636Ch (magic value, "cl") BX = 0000h (indicates special request) Return: AX = call gate address Notes: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch used by WinOS2 to make direct calls to OS2KRNL, bypassing the overhead of DOSKRNLTop
INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET LOADING MESSAGE AH = 64h DX = 0008h (function number) CX = 636Ch (magic value, "cl") BX = 0000h (indicates special request) Return: DS:DX -> '$'-terminated message "Loading. Please wait." Notes: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch this function permits National Language Support for the initial message displayed while WinOS2 starts a full-screen sessionTop
INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API support AH = 64h CX = 636Ch ("cl") BX = API ordinal (see #01747) other registers as appropriate for API call Return: as appropriate for API call SeeAlso: AH=64h/BX=0025h,AH=64h/BX=00B6h,AH=64h/BX=00CBh (Table 01747) Values for OS/2 API ordinal: 0025h DOS32StartSession 0082h DosGetCP 00B6h DosQFSAttach 00BFh DosEditName 00CBh DosForceDelete 0144h Dos32CreateEventSem 0145h Dos32OpenEvenSem 0146h Dos32CloseEventSem 0147h Dos32ResetEventSem 0148h Dos32PostEventSem 0149h Dos32WaitEventSem 014Ah Dos32QueryEventSem 014Bh Dos32CreateMutexSem 014Ch Dos32OpenMutexSem 014Dh Dos32CloseMutexSem 014Eh Dos32RequestMutexSem 014Fh Dos32ReleaseMutexSem 0150h Dos32QueryMutexSem 0151h Dos32CreateMuxWaitSem 0152h Dos32OpenMuxWaitSem 0153h Dos32CloseMuxWaitSem 0154h Dos32WaitMuxWaitSem 0155h Dos32AddMuxWaitSem 0156h Dos32DeleteMuxWaitSem 0157h Dos32QueryMuxWaitSemTop
INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API DOS32StartSession AH = 64h BX = 0025h (API ordinal) CX = 636Ch ("cl") DS:SI -> STARTDATA structure (see #01748) Return: AX = return code SeeAlso: AH=64h/CX=636Ch,AH=64h/BX=00B6h Format of OS/2 Virtual DOS Machine STARTDATA structure: Offset Size Description (Table 01748) 00h WORD length of structure (must be 0018h,001Eh,0020h,0032h,or 003Ch) 02h WORD relation of new process to caller (00h independent, 01h child) 04h WORD fore/background (00h foreground, 01h background) 06h WORD trace options (00h-02h, 00h = no trace) 08h DWORD pointer to ASCIZ program title (max 62 chars) or 0000h:0000h 0Ch DWORD pointer to ASCIZ program name (max 128 chars) or 0000h:0000h 10h DWORD pointer to ASCIZ program args (max 144 chars) or 0000h:0000h 14h DWORD "TermQ" (currently reserved, must be 00000000h) 18h DWORD pointer to environment (max 486 bytes) or 0000h:0000h 1Ch WORD inheritance (00h or 01h) 1Eh WORD session type 00h OS/2 session manager determines type (default) 01h OS/2 full-screen 02h OS/2 window 03h PM 04h VDM full-screen 07h VDM window 20h DWORD pointer to ASCIZ icon filename (max 128 chars) or 0000h:0000h 24h DWORD "PgmHandle" (currently reserved, must be 00000000h) 28h WORD "PgmControl" 2Ah WORD initial column 2Ch WORD initial row 2Eh WORD initial width 30h WORD initial height 32h WORD reserved (0) 34h DWORD "ObjectBuffer" (currently reserved, must be 00000000h) 38h DWORD "ObjectBufferLen" (currently reserved, must be 00000000h)Top
INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API DosQFSAttach AH = 64h BX = 00B6h (API ordinal) CX = 636Ch (magic value "cl") DS = user's data segment ES:DI -> FSQAttachStruc (see #01749) Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful AX = 0000h data buffer filled SeeAlso: AH=64h/CX=636Ch Format of OS/2 Virtual DOS Machine FSQAttachStruc: Offset Size Description (Table 01749) 00h DWORD reserved 04h DWORD pointer to the offset of the data buffer length 08h DWORD pointer to the offset of the data buffer 0Ch WORD FSA Info level 0Eh WORD ordinal index into table 10h DWORD pointer to the offset of the device name Notes: The segment value of the buffer, buffer length, and device name MUST all be the same. It is defined on entry in the DS register. The details of each info level are defined in the OS/2 CP Reference.Top
INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API DosForceDelete AH = 64h BX = 00CBh (API ordinal) CX = 636Ch (magic value "cl") DS:DX -> ASCIZ filename Return: CF clear if successful AX destroyed CF set on error AX = error code (02h,03h,05h) (see #01680 at AH=59h/BX=0000h) Desc: delete a file without saving it to the undelete directory SeeAlso: AH=41h,AH=64h/CX=636ChTop
INT 21 - Windows95 (OSR2) - SET GENERAL INTERNATIONALIZATION INFO AX = 6500h ES:DI -> buffer containing internationalization info (see #01750) CX = size of buffer (>= 7) Return: CF clear if successful AX = system code page CX = number of bytes copied from supplied buffer CF set on error AX = error code Note: this function will not overwrite the country or code-page numbers, but can be used to modify all other data about the country and code page SeeAlso: AH=65h"GET EXTENDED",AH=70hTop
INT 21 - DOS 3.3+ - GET EXTENDED COUNTRY INFORMATION AH = 65h AL = info ID 01h get general internationalization info (see also AX=6500h) 02h get pointer to uppercase table 03h (DOS 6.2+ COUNTRY.SYS) get pointer to lowercase table 04h get pointer to filename uppercase table 05h get pointer to filename terminator table 06h get pointer to collating sequence table 07h (DOS 4.0+) get pointer to Double-Byte Character Set table BX = code page (FFFFh=global code page) (see #01757) DX = country ID (FFFFh=current country) ES:DI -> country information buffer (see #01750) CX = size of buffer (>= 5) Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful CX = size of country information returned ES:DI -> country information (see #01750) Notes: AL=05h appears to return same info for all countries and codepages; it has been documented for DOS 5+, but was undocumented in earlier versions NLSFUNC must be installed to get info for countries other than the default subfunctions 02h and 04h are identical under OS/2 subfunction 03h apparently supports only codepage 866 in DOS 6.2x SeeAlso: AH=38h,AH=70h"MS-DOS 7",INT 2F/AX=1401h,INT 2F/AX=1402h SeeAlso: INT 2F/AX=14FEh Format of country information: Offset Size Description (Table 01750) 00h BYTE info ID ---if info ID = 01h--- 01h WORD size of following info in bytes 03h WORD country ID (see #01400 at AH=38h) 05h WORD code page (see #01757) 07h 34 BYTEs country-dependent info (see #01399 at AH=38h) ---if info ID = 02h--- 01h DWORD pointer to uppercase table (see #01751) ---if info ID = 03h--- 01h DWORD pointer to lowercase table (see #01752) ---if info ID = 04h--- 01h DWORD pointer to filename uppercase table (see #01753) ---if info ID = 05h--- 01h DWORD pointer to filename character table (see #01754) ---if info ID = 06h--- 01h DWORD pointer to collating table (see #01755) ---if info ID = 07h (DOS 4.0+)--- 01h DWORD pointer to DBCS lead byte table (see #01756) SeeAlso: #01775 Format of uppercase table: Offset Size Description (Table 01751) 00h WORD table size (0080h) 02h 128 BYTEs uppercase equivalents (if any) of chars 80h to FFh SeeAlso: #01750,#01753 Format of lowercase table: Offset Size Description (Table 01752) 00h WORD table size (0100h) 02h 256 BYTEs lowercase equivalents (if any) of chars 00h to FFh SeeAlso: #01750,#01753 Format of filename uppercase table: Offset Size Description (Table 01753) 00h WORD table size (0080h) 02h 128 BYTEs uppercase equivalents (if any) of chars 80h to FFh SeeAlso: #01750,#01751 Format of filename terminator table: Offset Size Description (Table 01754) 00h WORD table size (not counting this word) 02h BYTE ??? (01h for MS-DOS 3.30-6.00) 03h BYTE lowest permissible character value for filename 04h BYTE highest permissible character value for filename 05h BYTE ??? (00h for MS-DOS 3.30-6.00) 06h BYTE first excluded character in range \ all characters in this 07h BYTE last excluded character in range / range are illegal 08h BYTE ??? (02h for MS-DOS 3.30-6.00) 09h BYTE number of illegal (terminator) characters 0Ah N BYTEs characters which terminate a filename: ."/\[]:|<>+=;, Note: partially documented for DOS 5+, but undocumented for earlier versions SeeAlso: #01750 Format of collating table: Offset Size Description (Table 01755) 00h WORD table size (0100h) 02h 256 BYTEs values used to sort characters 00h to FFh SeeAlso: #01750 Format of DBCS lead byte table: Offset Size Description (Table 01756) 00h WORD length of table in ranges 02h 2N BYTEs start/end for N lead byte ranges WORD 0000h (end of table) SeeAlso: #01750Top
INT 21 - DOS 4.0+ - COUNTRY-DEPENDENT CHARACTER CAPITALIZATION AH = 65h AL = function 20h capitalize character DL = character to capitalize Return: DL = capitalized character 21h capitalize string DS:DX -> string to capitalize CX = length of string 22h capitalize ASCIZ string DS:DX -> ASCIZ string to capitalize Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful Note: these calls have been documented for DOS 5+, but were undocumented in DOS 4.x. BUG: Novell DOS 7 Update 15 crashes on AX=6521h when CX=0000hTop
INT 21 U - DOS 4.0+ - DETERMINE IF CHARACTER REPRESENTS YES/NO RESPONSE AX = 6523h DL = character DH = second character of double-byte character (if applicable) Return: CF set on error CF clear if successful AX = type 00h no 01h yes 02h neither yes nor no Note: supported by Novell DOS 7, though prior to Update 14, the results depended on the kernel variant rather than the YESCHAR= or COUNTRY= setting in CONFIG.SYS BUG: Novell DOS commands and tools all use internal settings rather than this function, so the Yes/No responses are dependent on the specific country's variant being run rather than on the COUNTRY= settingTop
INT 21 U - DOS 4.0+ internal - COUNTRY-DEPENDENT FILENAME CAPITALIZATION AH = 65h AL = function A0h capitalize filename character DL = character to capitalize Return: DL = capitalized character A1h capitalize counted filename string DS:DX -> filename string to capitalize CX = length of string A2h capitalize ASCIZ filename DS:DX -> ASCIZ filename to capitalize Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful Note: nonfunctional in MS-DOS 4.00 through 7.10 (Win98) due to a bug (the code sets a pointer depending on the high bit of AL, but doesn't clear the bit before branching by function number). Supported and functional(!) in Novell DOS 7 (Update 15), as well as PC-DOS 7 and OS/2 MVDMTop
INT 21 - DOS 3.3+ - GET GLOBAL CODE PAGE TABLE AX = 6601h Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful BX = active code page (see #01757) DX = system code page (see #01757) SeeAlso: AX=6602hTop
INT 21 - DOS 3.3+ - SET GLOBAL CODE PAGE TABLE AX = 6602h BX = active code page (see #01757) DX = system code page (active page at boot time) Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful AX = EB41h (Novell NWDOS v7.0 when NLSFUNC not installed and request was for previously-active code page) SeeAlso: AX=6601h,INT 2F/AX=14FFh (Table 01757) Values for code page: 0 Reduced 7-bit ASCII [NetWare] 37 EBCDIC: US/Canada English (CECP) [Windows NT 3.51+] 38 EBCDIC: International (old) 111 Greek 112 Turkish 113 Yugoslavian 161 Arabic [Linux] 162 Arabic [Linux] 163 Arabic [Linux] 164 Arabic [Linux] 165 Arabic [Linux] 237 EBCDIC: Germany (CECP) 273 EBCDIC: ??? (CECP) 274 EBCDIC: Belgium 275 EBCDIC: Brazilian 277 EBCDIC: Danish/Norwegian (CECP) 278 EBCDIC: Finnish/Swedish (CECP) 280 EBCDIC: Italian (CECP) 281 EBCDIC: Japanese-E 284 EBCDIC: Latin-American/Spanish (CECP) 285 EBCDIC: UK English (CECP) 290 EBCDIC: Japanese Kana 297 EBCDIC: French (CECP) 367 US-ASCII (ISO 646-US, 7-bit) 420 EBCDIC: Arabic 1 423 EBCDIC: Greek 424 EBCDIC: Hebrew 437 US / English / PC-8 / IBM-2 500 EBCDIC: Belgium/Switzerland (CECP) 500 EBCDIC: International 646 (??? reserved for ISO 646 7-bit codepages) 667 Eastern Europe (Polish) 668 Eastern Europe (Slavic) 708 Arabic/Middle East 737 Greek (2) 775 Baltic / Baltic Rim 819 Latin-1 (ISO 8859-1) 850 Multilingual (Latin-1) 851 Greek 852 Slavic/Easter Europe (Latin-2) [DOS 5+] 853 Turkish (Latin-2) 854 Spanish 855 Cyrilic (1) 857 Turkish 860 Portugese 861 Icelandic 862 Hebrew 863 French Canadian 864 Arabic/Middle East 865 Nordic (Norwegian/Danish) 866 Russian (Cyrillic 2) 867 Czech 868 Arabic 869 Greek (1) 870 EBCDIC: Yugoslavia (Roece) 871 EBCDIC: Icelandic 874 Thailand 875 EBCDIC: Greek 880 Russian (Cyrillic GOST) 880 EBCDIC: Cyrillic 881 Latin 1 (ISO 8859-1) 882 Latin 2 (ISO 8859-2) 883 Latin 3 (ISO 8859-3) 884 Latin 4 (ISO 8859-4) 885 Latin 5 (ISO 8859-5) 891 unknown 897 Japanese (Shift-JIS) 903 unknown 904 unknown 905 EBCDIC: Turkish 912 Latin 2 (ISO 8859-2: Eastern Europe) 913 (??? reserved for Latin 3) 914 (??? reserved for Latin 4) 915 Cyrillic (ISO 8859-5: Latin/Cyrillic) 916 (??? reserved for ISO 8859-6: Latin/Arabic) 917 (??? reserved for ISO 8859-7: Latin/Greek) 918 EBCDIC: Arabic 2 919 (??? reserved for ISO 8859-9: Latin 5) 920 (??? reserved for ISO 8859-10: Latin 6/Sami) 932 DBCS: Japanese (Shift-JIS) 934 DBCS: Korean 936 DBCS: Chinese (PRC/ROC, Simplified/xGB) 938 DBCS: Taiwan 938 DBCS: Chinese (PRC/ROC) 942 DBCS: Japanese SAA 944 DBCS: Korean SAA 948 DBCS: Chinese SAA (PRC/ROC) 949 Korean (Unified Hangul; Extended Wansung) 950 Chinese Traditional, Big5 (Taiwan, Hong Kong) 966 Saudi Arabian 972 Hebrew (Israeli VT100) 999 reserved for user-definable codepages 1004 Desktop Publishing 1026 EBCDIC: Turkish (Latin 5) 1047 EBCDIC: International (CECP, de-facto EBCDIC-US) 1250 MSWIN: Eastern Europe (Latin 2) 1251 MSWIN: Cyrillic 1252 MSWIN: English/W. Europe/Standard (Latin 1) 1253 MSWIN: Greek (GRC) 1254 MSWIN: Turkish 1255 MSWIN: Hebrew 1256 MSWIN: Arabic 1257 MSWIN: Baltic (Estonian, Latvian, Lithuanian) 1258 MSWIN: Vietnamese 1361 ANSI???: Korean (Johab) 10000 MAC: International/Standard (Roman) 10006 MAC: Greek 10007 MAC: Cyrillic 10029 MAC: Latin 2 10079 MAC: Icelandic 10081 MAC: Turkish 10646 (should be reserved for the future ISO 10646 32-bit codepage???) 65400 OS/2: reserved for Glyphs Notes: not all code pages are available in all versions of DOS or DOS-compatibles, and many (particularly EBCDIC) have not been implemented for *any* DOS to date CECP = 'Country Extended CodePage' by IBM. Unicode (UCS-2) is a 16-bit character codeset, covering all commonly used characters from almost any language. Not all definitions are fixed at the time of this writing. Unicode will be the future of character coding for the foreseeable future, but is only the "basic multilingual plane" (BMP) subset of 32-bit ISO 10646 codes (UCS-4), a single character set standard covering requirements for all countries and languages, which is still under construction. The MS Windows 'ANSI' codepage 1252 (based on the MS Windows 3.0+ implementation) appears to be 100% compatible with the code sets used by Amiga OS and Acorn Archimedes RISC-OS and is also a linear subset of the 16bit UniCode code set (UCS-2); the actual ANSI codepage is defined by ISO 8859-1 (Latin 1). At least applications for OS/2 Warp 3 Presentation Manager can use EBCDIC codepages, but the codepage ID assignments for EBCDIC codepages are not known for OS/2. OS/2 SAA codepages are not supported in CONFIG.SYS. Codepage 65400 "Glyphs" is not actually a codepage, but a way to directly access the first 256 of the 383 glyphs from the current font set. Novell DOS 7/DR DOS 6/Caldera OpenDOS undocumented codepage 853 does not necessarily match with MS-DOS' undocumented codepage 853. Undocumented codepages 667 and 668 can be found in Russian's PTS/DOS 6.51 and S/DOS 1.x DISPLAY.CPI and contain some Eastern European characters. Novell NetWare 3.xx clients support UniCode and codepages 437, 850, 860, 863, 865, 897, 932, and 1252 (possibly more). NetWare 4.xx clients also support 1250, 1251, 1256. Personal NetWare 1.0 (PNW), as it was distributed in Europe, supports UniCode and codepages 437, 850 and 1252. Novell's Client32 for DOS/Windows supports 874, 932, 936, 949, 950, 1250 - 1257. For codesets not yet available, Novell offers a reduced ASCII 7-bit support through a codepage 0 used as a translation table to UniCode, that supports characters 32-127 except 92 ('\'). Format of DOS .CPI (Code Page Information) file header: Offset Size Description (Table 01758) 00h BYTE ID tag FFh FONT file (Standard for generic display or printer font files used by MS-DOS, PC-DOS, DR DOS and Novell DOS) 7Fh DRFONT file (Used by DR DOS 6.0 / Novell DOS 7 for enhanced & compressed display font files. DR DOS 6.0 and Novell DOS 7 still support the standard FONT files, thus allowing leaning of .CPI files from MS-DOS to DR DOS / Novell DOS!) 01h 7 BYTEs ID string "FONT " = FONT file (Standard for display or printer) "DRFONT " = DRFONT file (Enhanced compressed format used by DR DOS 6.0 / Novell DOS 7 for display fonts) 08h 8 BYTEs reserved (0) 10h WORD number of pointers (1) 12h BYTE type of pointers (1) 13h DWORD pointer to file offset of FontInfoHeader (Generally pointing to the byte just after FontFileHeader, that is 0000h:0017h. Due to extra data at offset 17h, this value has changed with DR DOS 6.0 / Novell DOS 7 DRFONTs! "MS-DOS 4.0 programmers reference" claimed word offset +15h as an endmarker (0000h), but actually it is the High-Word of the pointer.) --- Extended FontFileHeader with DR DOS 6.0 / Novell DOS 7 DRFONTs: --- 17h BYTE number of fonts per codepage supported by this file (N=4 with both DR DOS 6.0 / Novell DOS 7 DRFONT files) 18h N BYTEs cellsize (Height) of fonts 1..N the cellsize corresponds with the character boxes height, but is also the count of bytes used for each of the characters inside the font data (as currently all fonts are organized heightx8 and 8 pixel width is just one byte). var N DWORDs file offsets of DisplayFontData. Format of DOS .CPI file Font Information Header: Offset Size Description (Table 01759) 00h WORD number of codepage entries var N codepage entry headers (see #01760) SeeAlso: #01758 Format of DOS .CPI file CodePage Entry Header: Offset Size Description (Table 01760) 00h WORD size of this header (normally 1Ch) 02h DWORD offset of next entry, or 0000h:0000h or FFFFh:FFFFh if last (if a valid "next" pointer but all of the fonts indicated in the .CPI header have been processed, this field normally points at an optional text area at the end of the .CPI file containing copyright information) 06h WORD device type 01h display (FONT or DRFONT) 02h printer (FONT) 08h 8 BYTEs blank-padded device name string 10h WORD code page (see #01757) 12h 3 WORDs reserved (0) 18h DWORD pointer to Font Data Header (see #00222) normally immediately follows this header SeeAlso: #01758 Format of DOS .CPI file Font Data Header: Offset Size Description (Table 01761) 00h WORD record type 0001h FONT 0002h DRFONT (DR DOS 6.0/Novell DOS 7 display font) 02h WORD number of fonts 04h WORD length of font data (display fonts) ??? (printer fonts) 06h var font data (#fonts * fontlength) bytes SeeAlso: #01758 Format of DOS .CPI file ScreenFONT Header: Offset Size Description (Table 01762) 00h 6 BYTEs display-font header (see #01764) 06h var display font data SeeAlso: #01758 Format of .CPI file DRFONT Header: Offset Size Description (Table 01763) 00h 6N BYTEs DisplayFONT headers for N fonts (see #01764) M WORDs character index table for cell offsets in font data currently 256 words in length SeeAlso: #01758 Format of .CPI file DisplayFONT header: Offset Size Description (Table 01764) 00h BYTE height of character cell 01h BYTE width of character cell (currently always 08h) 02h BYTE aspect ratio (height) (currently 00h, unused) 03h BYTE aspect ratio (width) (currently 00h, unused) 04h WORD number of characters per font (256) SeeAlso: #01758 Format of .CPI file PrinterFONT header: Offset Size Description (Table 01765) 00h WORD type of printer 0001h (4201.CPI, 1050.CPI, EPS.CPI) 0002h (4208.CPI, 5202.CPI, PPDS.CPI) 02h WORD bytes per hardware/download codepage-select escape sequence (max 31, typically 12) 04h N BYTEs escape sequence to select hardware codepage N BYTEs escape sequence to select download codepage var download data for printer font (including escape sequence to transfer data) SeeAlso: #01758Top
INT 21 - DOS 3.3+ - SET HANDLE COUNT AH = 67h BX = size of new file handle table for process Return: CF clear if successful CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) Desc: adjust the size of the per-process open file table, thus raising or lowering the limit on the number of files the caller can open simultaneously Notes: if BX <= 20, no action is taken if the handle limit has not yet been increased, and the table is copied back into the PSP if the limit is currently > 20 handles for file handle tables of > 20 handles, DOS 3.30 never reuses the same memory block, even if the limit is being reduced; this can lead to memory fragmentation as a new block is allocated and the existing one freed only the first 20 handles are copied to child processes in DOS 3.3-6.0 increasing the file handles here will not, in general, increase the number of files that can be opened using the runtime library of a high-level language such as C Novell DOS 7 reportedly terminates the calling program if the JFT is being reduced in size and there are any open file handles beyond the portion of the JFT being retained BUGS: the original release of DOS 3.30 allocates a full 64K for the handle table on requests for an even number of handles DR DOS 3.41 and 5.0 will lose track of any open file handles beyond the portion of the JFT retained after the call; MS-DOS will indicate error 04h if any of the JFT entries to be removed are open SeeAlso: AH=26h,AH=86hTop
INT 21 - DOS 3.3+ - "FFLUSH" - COMMIT FILE AH = 68h BX = file handle Return: CF clear if successful all data still in DOS disk buffers is written to disk immediately, and the file's directory entry is updated CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=5D01h,AH=6Ah,INT 2F/AX=1107hTop
INT 21 U - DOS 4.0+ internal - GET/SET DISK SERIAL NUMBER AH = 69h AL = subfunction 00h get serial number 01h set serial number BL = drive (0=default, 1=A, 2=B, etc) BH = info level (00h only for DOS; OS/2 allows other levels) DS:DX -> disk info (see #01766) Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful AX destroyed (AL = 00h) buffer filled with appropriate values from extended BPB (AL = 01h) extended BPB on disk set to values from buffer Notes: does not generate a critical error; all errors are returned in AX error 0005h given if no extended BPB on disk does not work on network drives (error 0001h) buffer after first two bytes is exact copy of bytes 27h thru 3Dh of extended BPB on disk this function is supported under Novell NetWare versions 2.0A through 3.11; the returned serial number is the one a DIR would display, the volume label is the NetWare volume label, and the file system is set to "FAT16". this function is not supported by Novell DOS 7 through Update 13, but Personal NetWare 1.0 and Update 15 do support this function the serial number is computed from the current date and time when the disk is created; the first part is the sum of the seconds/hundredths and month/day, the second part is the sum of the hours/minutes and year the volume label which is read or set is the one stored in the extended BPB on disks formatted with DOS 4.0+, rather than the special root directory entry used by the DIR command in COMMAND.COM (use AH=11h to find that volume label) SeeAlso: AX=440Dh"DOS 3.2+" Format of disk info: Offset Size Description (Table 01766) 00h WORD 0000h (info level) 02h DWORD disk serial number (binary) 06h 11 BYTEs volume label or "NO NAME " if none present 11h 8 BYTEs (AL=00h only) filesystem type (see #01767) Note: under MS-DOS 7.0 or a Windows95 DOS box, the volume label field can be all blanks even when a volume label has been set (the Win95 installation seems to blank the volume label field in the partition boot sector; once LABEL has been run, the volume label is reported correctly) SeeAlso: AH=4Eh (Table 01767) Values for filesystem type: "FAT12 " 12-bit FAT "FAT16 " 16-bit FAT "CDROM " High-Sierra CD-ROM filesystem "CD001 " ISO 9660 CD-ROM filesystem "CDAUDIO " audio CD SeeAlso: #01766Top
INT 21 - DR DOS 5.0 - NULL FUNCTION AH = 69h Return: AL = 00h SeeAlso: AH=18hTop
INT 21 - VIRUS - "Rape-747" - INSTALLATION CHECK AX = 6969h Return: AX = 0666h if resident SeeAlso: AX=58CCh,AX=6304h"VIRUS",AH=71h"VIRUS"Top
INT 21 U - CUBIT v4.00 - GET CUBIT INT 21 HANDLER AX = 69FFh DX = 0000h BX = CB00h (magic value) Return: ES:BX -> CUBITR.EXE handler for INT 21 InstallCheck: test that the first eight bytes at the returned interrupt handler are EBh 07h "CUBITR" (a short jump around the signature followed by the signature) Note: the byte following the signature (i.e. ES:[BX+8]) indicates whether CUBITR is active (01h) or disabled (00h) SeeAlso: AX=69FFh/DX=CFBFh Index: installation check;CUBITTop
INT 21 U - CUBIT v4.00 - UNINSTALL AX = 69FFh DX = CFBFh CX = EFCFh BX = CB00h (magic value) Return: ES:BX -> CUBITR.EXE handler for INT 21 CX = status 2020h successful 2222h failed Note: if DX is neither 0000h nor CFBFh on entry, some other code is executed SeeAlso: AX=69FFh/DX=0000hTop
INT 21 U - DOS 4.0+ - COMMIT FILE AH = 6Ah BX = file handle Return: CF clear if successful AH = 68h CF set on error AX = error code (06h) (see #01680 at AH=59h/BX=0000h) Note: identical to AH=68h in DOS 5.0-6.0; not known whether this is the case in DOS 4.x SeeAlso: AH=68hTop
INT 21 U - DOS 4.0 internal - IFS IOCTL AH = 6Bh AL = subfunction 00h ??? DS:SI -> Current Directory Structure??? CL = drive (1=A:) 01h ??? DS:SI -> ??? CL = file handle??? 02h ??? DS:SI -> Current Directory Structure??? DI = ??? CX = drive (1=A:) Return: CF set on error AX = error code (see #01680 at INT 21/AH=59h/BX=0000h) CF clear if successful Notes: passed through to INT 2F/AX=112Fh with AX on top of stack Novell DOS 7 Update 15 returns CF set/AX=0001h (invalid function) SeeAlso: AH=6Bh"DOS 5",INT 2F/AX=112FhTop
INT 21 U - DOS 5+ - NULL FUNCTION AH = 6Bh Return: AL = 00h Note: this function does nothing and returns immediately SeeAlso: AH=6Bh"DOS 4"Top
INT 21 - DOS 4.0+ - EXTENDED OPEN/CREATE AX = 6C00h BL = open mode as in AL for normal open (see also AH=3Dh) bit 7: inheritance bits 4-6: sharing mode bit 3 reserved bits 0-2: access mode 100 read-only, do not modify file's last-access time (DOS 7.0) BH = flags bit 6 = auto commit on every write (see also AH=68h) bit 5 = return error rather than doing INT 24h bit 4 = (FAT32) extended size (allow 4GB files instead of 2GB) CX = create attribute (see #01769) DL = action if file exists/does not exist (see #01770) DH = 00h (reserved) DS:SI -> ASCIZ file name Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful AX = file handle CX = status (see #01768) Notes: the PC LAN Program only supports existence actions (in DL) of 01h, 10h with sharing=compatibility, and 12h DR DOS reportedly does not support this function and does not return an "invalid function call" error when this function is used. the documented bits of BX are stored in the SFT when the file is opened (see #01641,#01642) BUG: this function has bugs (at least in DOS 5.0 and 6.2) when used with drives handled via the network redirector (INT 2F/AX=112Eh): - CX (attribute) is not passed to the redirector if DL=11h, - CX does not return the status, it is returned unchanged because DOS does a PUSH CX/POP CX when calling the redirector. SeeAlso: AH=3Ch,AH=3Dh,AX=6C01h,AX=7160h/CL=00h,INT 2F/AX=112Eh (Table 01768) Values for extended open function status: 01h file opened 02h file created 03h file replaced Bitfields for file create attribute: Bit(s) Description (Table 01769) 6-15 reserved 5 archive 4 reserved 3 volume label 2 system 1 hidden 0 readonly Bitfields for action: Bit(s) Description (Table 01770) 7-4 action if file does not exist 0000 fail 0001 create 3-0 action if file exists 0000 fail 0001 open 0010 replace/openTop
INT 21 U - OS/2 v2.0 - "DosOpen2" AX = 6C01h BL = open mode as in AL for normal open (see also AH=3Dh) bit 7: inheritance bits 4-6: sharing mode bit 3 reserved bits 0-2: access mode BH = flags bit 6 = auto commit on every write (see also AH=68h) bit 5 = return error rather than doing INT 24h CX = create attribute (see #01769) DL = action if file exists/does not exist (see #01770) DH = 00h (reserved) DS:SI -> ASCIZ file name ES:DI -> EAOP structure Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful AX = file handle CX = status (see #01768) Note: this function is virtually identical to AX=6C00h, but supports OS/2's extended attributes SeeAlso: AX=5704h,AX=6C00h,AH=6Fh"OS/2"Top
INT 21 U - DOS 5+ ROM - FIND FIRST ROM PROGRAM AH = 6Dh DS:DX -> ASCIZ program name (may contain wildcrds) Return: CF clear if found Disk Transfer Area filled with ROM search structure (see #01771) CF set if not found AX = error code 0002h name not found in ROM 0003h name contains colon or backslash ---if not supported (DOS <5, MS-DOS 5+ non-ROM versions)--- AL = 00h Notes: the '*' wildcard matches all remaining characters in a ROM program's name; any following characters in the search mask are ignored up to another asterisk, which must be matched by an asterisk in the found program's name. the search mask and program names may contain multiple periods SeeAlso: AH=1Ah,AH=4Eh,AH=6Eh,AX=6F00h,AX=6F02h,INT 2F/AX=160Ch Format of ROM search structure: Offset Size Description (Table 01771) 00h 13 BYTEs ASCIZ name of found ROM program 0Dh DWORD address at which to resume search (do not modify) 11h var ASCIZ search mask passed in (do not modify)Top
INT 21 U - OS/2 v1.x FAPI - "DosMkDir2" AH = 6Dh ??? Return: ??? Desc: create a new directory, with extended attribute information Note: also supported by OS/2 v2.0+ Virtual DOS Machines BUG: does not work under OS/2 v2.0 because MVDM does not translate the real-mode segment pointer in the Extended Attribute structure (see #01673) into a protected-mode selector; use AH=39h followed by AX=5703h instead SeeAlso: AH=39h,AX=5702h"OS/2",AX=5703h"OS/2"Top
INT 21 U - Novell DOS 7 - NOP AH = 6Dh Return: AX = 0000h Note: this function invokes the same code as other NOP functions such as AH=18h and AH=61hTop
INT 21 U - DOS 5+ ROM - FIND NEXT ROM PROGRAM AH = 6Eh Disk Transfer Area contains result of previous FindFirst ROM (see AH=6Dh) Return: CF clear if found Disk Transfer Area filled with updated ROM search structure (see #01771) CF set if not found AX = 0012h (no more matches) ---if not supported (DOS <5, MS-DOS 5+ non-ROM versions)--- AL = 00h SeeAlso: AH=4Fh,AH=6DhTop
INT 21 U - OS/2 v1.x FAPI - "DosEnumAttrib" AH = 6Eh DS:SI -> parameter packet (see #01772) Return: CF clear if successful AX = 0000h DS:SI buffer updated CF set on error AX = error code Note: also supported by OS/2 v2.0+ Virtual DOS Machines SeeAlso: AX=5703h,AH=6Fh"OS/2",INT 2F/AX=112Dh Format of OS/2 DosEnumAttrib parameter packet: Offset Size Description (Table 01772) 00h DWORD reserved (0) 04h DWORD info level (always 00000001h) 08h DWORD (call) number of entries requested (ret) actual number of entries returned 0Ch DWORD length of buffer 10h DWORD pointer to buffer for results 14h DWORD number of first entry to return 18h DWORD -> file handle or ASCIZ pathname 1Ch WORD flag: 00h = previous field is file handle, 01h = pathnameTop
INT 21 U - DOS 5+ ROM - GET ROM SCAN START ADDRESS AX = 6F00h Return: CF clear AL = 00h BX = current ROM scan starting segment if function supported SeeAlso: AH=6Dh,AX=6F01h,AX=6F02hTop
INT 21 U - OS/2 v1.x FAPI - "DosQMaxEASize" - GET MAXIMUM SIZE OF EXTENDED ATTR AX = 6F00h DS:SI -> DWORD buffer for maximum size of an extended attribute Return: CF clear if successful AX = 0000h buffer filled CF set on error AX = error code Note: also supported by OS/2 v2.0+ Virtual DOS Machines SeeAlso: AX=5703h,AX=6C01h,AH=6Eh"OS/2"Top
INT 21 U - DOS 5+ ROM - SET ROM SCAN START ADDRESS AX = 6F01h BX = new ROM scan starting address Return: CF clear AL = 00h SeeAlso: AX=6F00h,AX=6F03hTop
INT 21 U - DOS 5+ ROM - GET EXCLUSION REGION LIST AX = 6F02h ES:BX -> buffer for exclusion region list (see #01773) Return: CF clear AL = 00h ES:BX = 0000h:0000h on error, unchanged if buffer filled Note: for DOS versions which do not support this function, the return value is AL=00h, CF unchanged, ES:BX unchanged, and the ES:BX buffer unchanged SeeAlso: AX=6F00h,AX=6F03h Format of ROM exclusion region list: Offset Size Description (Table 01773) 00h WORD number of entries 02h 2N WORDs start/end segments of N excluded regionsTop
INT 21 U - DOS 5+ ROM - SET EXCLUSION REGION LIST AX = 6F03h DS:DX -> new exclusion region list (see #01773) Return: CF clear AL = 00h Notes: DOS saves only the pointer and assumes that the contents of the list are never changed, and that regions do not overlap if AL > 03h on entry, DOS returns CF set/AL=01h SeeAlso: AX=6F01h,AX=6F02hTop
INT 21 - MS-DOS 7 (Windows95) - GET/SET INTERNATIONALIZATION INFORMATION AH = 70h AL = subfunction 00h get ??? info CX = buffer size (3Ah bytes needed) ES:DI -> buffer 01h set above info CX = number of bytes to set DS:SI -> buffer containing ??? info (see #01774) 02h set general internationalization info (see also AX=6500h) DS:SI -> buffer containing info (see #01775) CX = buffer size in bytes (up to 26h bytes used) first three bytes are skipped, the rest is copied to somewhere in the DOS data segment Return: CF clear if successful ES:DI buffer filled (func 00h) (see #01774) CX = number of bytes actually set or returned (max 003Ah for functions 00h and 01h under v7.00, 0026h for function 02h) CF set on error AX = error code 7000h if function not supported SeeAlso: AH=38h,AH=65h Format of MS-DOS v7.0 ??? table: Offset Size Description (Table 01774) 00h 58 BYTEs ??? country-specific information returned was (among others) "ENU USA GR"..."AM PM M/d/yy"... "dddd,MMMMdd,yyyy" in the German Preview version, and "US" instead of "GR" in the US build 450 version (with German country setting) and the US build 950a version with US country settings SeeAlso: #01775 Format of MS-DOS v7.0 internationalization table: Offset Size Description (Table 01775) 00h 3 BYTEs unused (and ignored by DOS) 03h WORD country ID (see #01400 at AH=38h) 05h WORD code page (see #01757) 07h WORD date format 09h 5 BYTEs ASCIZ currency symbol string 07h 2 BYTEs ASCIZ thousands separator 09h 2 BYTEs ASCIZ decimal separator 0Bh 2 BYTEs ASCIZ date separator 0Dh 2 BYTEs ASCIZ time separator 0Fh BYTE currency format bit 2 = set if currency symbol replaces decimal point bit 1 = number of spaces between value and currency symbol bit 0 = 0 if currency symbol precedes value 1 if currency symbol follows value 10h BYTE number of digits after decimal in currency 11h BYTE time format bit 0 = 0 if 12-hour clock 1 if 24-hour clock 12h DWORD address of case map routine (FAR CALL, AL = character to map to upper case [>= 80h]) 16h 2 BYTEs ASCIZ data-list separator 18h 10 BYTEs reserved Note: this table has the identical format to the extended country information retrieved via AH=65h with info ID = 01h SeeAlso: #01399,#01750Top
INT 21 - PCW Weather Card interface - GET DATA SEGMENT AX = 7070h BX = 6060h CX = 7070h DX = 7070h SI = 7070h DI = 7070h Return: AX = segment of data structure (see #01776) Notes: the data structure is at offset 516 from this segment the update byte is at offset 514 from this segment. Updates are once per second while this byte is nonzero and it is decremented once per second. While this byte is 0 updates are once per minute. SeeAlso: AX=7070h/BX=7070h Format of PCW Weather Card data structure: Offset Type Description (Table 01776) 00h WORD hour 02h WORD minute 04h WORD second 06h WORD day 08h WORD month 0Ah WORD year 0Ch WORD ??? 0Eh WORD relative barometric pressure (in 1/100 inches) 10h WORD ??? 12h WORD ??? 14h WORD temperature 1 (in 1/10 degrees F) 16h WORD temperature 1 lowest (in 1/10 degrees F) 18h WORD temperature 1 highest (in 1/10 degrees F) 1Ah WORD temperature 2 (in 1/10 degrees F) 1Ch WORD temperature 2 lowest (in 1/10 degrees F) 1Eh WORD temperature 2 highest (in 1/10 degrees F) 20h WORD wind speed (in MPH) 22h WORD average of 60 wind speed samples (in MPH) 24h WORD highest wind speed (in MPH) 26h WORD wind chill factor (in 1/10 degrees F) 28h WORD lowest wind chill factor (in 1/10 degrees F) 2Ah WORD ??? 2Ch WORD wind direction (in degrees) 2Eh WORD accumulated daily rainfall (in 1/10 inches) 30h WORD accumulated annual rainfall (in 1/10 inches)Top
INT 21 - PCW Weather Card interface - INSTALLATION CHECK AX = 7070h BX = 7070h CX = 7070h DX = 7070h SI = 7070h DI = 7070h Return: AX = 0070h BX = 0070h CX = 0070h DX = 0070h SI = 0070h DI = 0070h SeeAlso: AX=7070h/BX=6060h,AX=8080hTop
INT 21 - Windows95 - LONG FILENAME FUNCTIONS AH = 71h AL = function 0Dh reset drive (see AX=710Dh) 39h create directory (see AX=7139h) 3Ah remove directory (see AX=713Ah) 3Bh set current directory (see AX=713Bh) 41h delete file (see AX=7141h) 43h get/set file attributes (see AX=7143h) 47h get current directory (see AX=7147h) 4Eh find first file (see AX=714Eh) 4Fh find next file (see AX=714Fh) 56h move (rename) file (see AX=7156h) 60h truename (see AX=7160h/CL=00h,AX=7160h/CL=02h) 6Ch create/open file (see AX=716Ch) A0h get volume information (see AX=71A0h) A1h terminate FindFirst/FindNext (see AX=71A1h) A6h get file information (see AX=71A6h) A7h time conversion (see AX=71A7h/BL=00h,AX=71A7h/BL=01h) A8h generate short filename (see AX=71A8h) A9h server create/open file (see AX=71A9h) AAh create/terminate SUBST (see AX=71AAh/BH=00h,AX=71AAh/BH=02h) Return: CF set on error AX = error code (see #01680) 7100h if function not supported CF clear if successful other registers as for corresponding "old" DOS function Notes: if error 7100h is returned, the old-style function should be called AX=714Eh returns a "search handle" which must be passed to AX=714Fh; when the search is complete, AX=71A1h must be called to terminate the search for compatibility with DOS versions prior to v7.00, the carry flag should be set on call to ensure that it is set on exit Caldera's DPMS-enabled LONGNAME.EXE BETA 1 extension for DR-DOS 7 supports the following sub-set of LFN functions: 39h, 3Ah, 3Bh, 41h, 43h (BL = 0, 1 only), 47h, 4Eh, 4Fh, 56h, 60h (CL = 0, 1, 2), 6Ch, A0h, A1h, A8h. BETA 2 fixes LFN directory entry checksums, which were causing wrong LFNs to be attached to a file. The 8.3 short names for filenames with exactly 8 chars are no longer abbreviated (e.g. LONGNAME.TXT -> LONGNAME.TXT, not LONGNA~1.TXT). BETA 3 has A7h (BL=0, 1) functions added, and 4Eh/4Fh can return file times in both DOS and 64 bit formats, BETA 4 has support added for Caldera's DRFAT32 redirector extension (see INT 2F/AX=15xxh). Caldera's DR-OpenDOS 7.02+ COMMAND.COM utilizes the LFN API as soon as it detects it (mind, that LONGNAME.EXE can be dynamically loaded and unloaded at runtime). This COMMAND.COM shell also works under MS-DOS/PC DOS and in DOS boxes of Windows9x, NT, 2000, and OS/2. For 4DOS 6.02+ to work with 3rd party LFN providers, the Win95LFN=Yes directive should be inserted into the 4DOS.INI file. Mike Podanoffsky's RxDOS 7.2 provides most of this API natively, including functions 39h, 3Ah, 3Bh, 41h, 43h (BL = ???), 47h, 4Bh, 4Eh, 4Fh, 56h, 60h (CL = 0, 1, 2, no CH), 6Ch, A0h, A1h and A7h. However, not all sub-functions seem to be supported yet. SeeAlso: AH=39h,AH=3Ah,AH=3Bh,AH=41h,AX=4300h,AX=4301h,AX=4304h,AX=4306h SeeAlso: AX=4307h,AH=47h,AH=4Eh,AH=4Fh,AH=56h,AH=6Ch,AX=714Eh,AX=714FhTop
INT 21 - VIRUS - "1205" - INSTALLATION CHECK AH = 71h Return: AH = 17h if "1205" is resident SeeAlso: AX=6969h"VIRUS",AH=76h"VIRUS"Top
INT 21 - Windows95 - RESET DRIVE AX = 710Dh CX = action (see #01777) DX = drive number Return: CF clear Note: for compatibility with DOS versions prior to v7.00, the carry flag should be set on call to ensure that it is set on exit SeeAlso: AH=0Dh (Table 01777) Values for drive reset action: 0000h flush filesystem buffers for drive, and reset drive 0001h flush filesystem buffers and cache for drive, and reset drive 0002h remount DriveSpace volumeTop
INT 21 - Windows95 - LONG FILENAME - MAKE DIRECTORY AX = 7139h DS:DX -> ASCIZ long directory name (including path) Return: CF clear if successful CF set on error AX = error code (see #01680) 7100h if function not supported Note: for compatibility with DOS versions prior to v7.00, the carry flag should be set on call to ensure that it is set on exit SeeAlso: AH=39h,AX=713Ah,AX=713Bh,AX=43FFh/BP=5053hTop
INT 21 - Windows95 - LONG FILENAME - REMOVE DIRECTORY AX = 713Ah DS:DX -> ASCIZ long name of directory to remove Return: CF clear if successful CF set on error AX = error code (see #01680) 7100h if function not supported Note: for compatibility with DOS versions prior to v7.00, the carry flag should be set on call to ensure that it is set on exit SeeAlso: AH=3Ah,AX=7139hTop
INT 21 - Windows95 - LONG FILENAME - CHANGE DIRECTORY AX = 713Bh DS:DX -> ASCIZ long name of directory to make current Return: CF clear if successful CF set on error AX = error code (see #01680) 7100h if function not supported Note: for compatibility with DOS versions prior to v7.00, the carry flag should be set on call to ensure that it is set on exit SeeAlso: AH=0Eh,AH=3Bh,AX=7139hTop
INT 21 - Windows95 - LONG FILENAME - DELETE FILE AX = 7141h DS:DX -> ASCIZ long name of file to delete SI = wildcard and attributes flag 0000h wildcards are not allowed, and search attributes are ignored 0001h wildcards are allowed, and only files with matching names and attributes are deleted CL = search attributes CH = must-match attributes Return: CF clear if successful CF set on error AX = error code (see #01680) 7100h if function not supported Note: for compatibility with DOS versions prior to v7.00, the carry flag should be set on call to ensure that it is set on exit SeeAlso: AH=41hTop
INT 21 - Windows95 - LONG FILENAME - EXTENDED GET/SET FILE ATTRIBUTES AX = 7143h DS:DX -> ASCIZ filename BL = action 00h retrieve attributes Return: CX = file attributes (see #01420) 01h set attributes CX = attributes 02h get physical size of compressed file Return: DX:AX = actual disk usage of file, in bytes 03h set last write date/time DI = new last-write date (see #01666) CX = new last-write time (see #01665) 04h get last write date/time Return: CX = last write time (see #01665) DI = last write date (see #01666) 05h set last access date DI = new last-access date (see #01666) 06h get last access date Return: DI = last access date (see #01666) 07h set creation date/time DI = new creation date (see #01666) CX = new creation time (see #01665) SI = hundredths (10-millisecond units past time in CX, 0-199) 08h get creation date/time Return: CX = creation time (see #01665) DI = creation date (see #01666) SI = hundredths (10-millisecond units past time in CX) Return: CF clear if successful CF set on error AX = error code (see #01680) 7100h if function not supported Note: for compatibility with DOS versions prior to v7.00, the carry flag should be set on call to ensure that it is set on exit SeeAlso: AX=4300h,AX=4301hTop
INT 21 - Windows95 - LONG FILENAME - GET CURRENT DIRECTORY AX = 7147h DL = drive number (00h = current, 01h = A:, etc.) DS:SI -> buffer for ASCIZ directory name Return: CF clear if successful CF set on error AX = error code (see #01680) 7100h if function not supported Notes: the returned pathname does not include the drive letter, colon, or leading backslash, and is not necessarily a long filename -- this function returns whatever path was used when changing to the current directory, and may include a mixture of long and short components the provided buffer must be at least as large as the value indicated by AX=71A0h for compatibility with DOS versions prior to v7.00, the carry flag should be set on call to ensure that it is set on exit SeeAlso: AH=47h,AX=713Bh,AX=7160h,AX=71A0hTop
INT 21 - Windows95 - LONG FILENAME - FIND FIRST MATCHING FILE AX = 714Eh CL = allowable-attributes mask (see #01420 at AX=4301h) (bits 0 and 5 ignored) CH = required-attributes mask (see #01420) SI = date/time format (see #01778) DS:DX -> ASCIZ filespec (both "*" and "*.*" match any filename) ES:DI -> FindData record (see #01779) Return: CF clear if successful AX = filefind handle (needed to continue search) CX = Unicode conversion flags (see #01780) CF set on error AX = error code 7100h if function not supported Notes: this function is only available when IFSMgr is running, not under bare MS-DOS 7 the application should close the filefind handle with AX=71A1h as soon as it has completed its search for compatibility with DOS versions prior to v7.00, the carry flag should be set on call to ensure that it is set on exit SeeAlso: AH=4Eh,AX=714Fh,AX=71A1h (Table 01778) Values for Windows95 date/time format: 0000h use 64-bit file time format 0001h use MS-DOS date/time values (see #01665,#01666) in low double-word of file time QWORD (date is high word, time is low word of double-word) SeeAlso: #01779 Format of Windows95 long filename FindData record: Offset Size Description (Table 01779) 00h DWORD file attributes bits 0-6 standard DOS attributes (see #01420 at INT 21/AX=4301h) bit 8: temporary file 04h QWORD file creation time (number of 100ns intervals since 1/1/1601) 0Ch QWORD last access time 14h QWORD last modification time 1Ch DWORD file size (high 32 bits) 20h DWORD file size (low 32 bits) 24h 8 BYTEs reserved (apparently unused) 2Ch 260 BYTEs ASCIZ full filename 130h 14 BYTEs ASCIZ short filename (for backward compatibility) Note: under Windows95B, the ASCIZ short filename will be the empty string if the directory does not contain a long filename entry for the file; in that case, the application should use the full filename SeeAlso: #01780 Bitfields for Windows95 Unicode conversion flags: Bit(s) Description (Table 01780) 0 the returned full filename contains underscores for un-convertable Unicode characters 1 the returned short filename contains underscores for un-convertable Unicode characters SeeAlso: #01779Top
INT 21 - Windows95 - LONG FILENAME - FIND NEXT MATCHING FILE AX = 714Fh BX = filefind handle (from AX=714Eh) SI = date/time format (see #01778) ES:DI -> buffer for FindData record (see #01779) Return: CF clear if successful AH = 4Fh (undocumented) AL destroyed (becomes low byte of filefind handle in Win95B) CX = Unicode conversion flags (see #01780) CF set on error AX = error code 7100h if function not supported Notes: this function is only available when IFSMgr is running, not under bare MS-DOS 7 for compatibility with DOS versions prior to v7.00, the carry flag should be set on call to ensure that it is set on exit SeeAlso: AH=4Eh,AX=714Eh,AX=71A1h,AX=71A2hTop
INT 21 - Windows95 - LONG FILENAME - RENAME FILE AX = 7156h DS:DX -> ASCIZ old file or directory name (long names allowed) ES:DI -> ASCIZ new name (long names allowed) Return: CF clear if successful CF set on error AX = error code 7100h if function not supported Note: the file may be renamed into a different directory, but not across disks SeeAlso: AH=56h,AX=7141h,AX=43FFh/BP=5053hTop
INT 21 - Windows95 - LONG FILENAME - "TRUENAME" - CANONICALIZE PATH AX = 7160h CL = 00h CH = SUBST expansion flag 00h return a path containing true path for a SUBSTed drive letter 80h return a path containing the SUBSTed drive letter DS:SI -> ASCIZ filename or path (either long name or short name) ES:DI -> 261-byte buffer for canonicalized name Return: CF set on error AX = error code 02h invalid component in directory path or drive letter only 03h malformed path or invalid drive letter ES:DI buffer unchanged CF clear if successful ES:DI buffer filled with fully qualified name AX destroyed Desc: determine the canonical name of the specified filename or path, corresponding to the undocumented TRUENAME command in COMMAND.COM Notes: if a complete path is given, the result will be a short-form complete path; otherwise, the given relative path is appended to the short-form current directory name, '.'/'..'/'...'/etc. are resolved, and the final result uppercased without converting any remaining long-form names to short-form for compatibility with DOS versions prior to v7.00, the carry flag should be set on call to ensure that it is set on exit BUG: Windows95 incorrectly treats filenames where the first two characters after the drive letter and colon are both slashes (either forward or backward) as a UNC (network name) and requires several seconds to attempt to resolve the name before returning an unchanged string SeeAlso: AH=60h,AX=7160h/CL=01hTop
INT 21 - Windows95 - LONG FILENAME - GET SHORT (8.3) FILENAME FOR FILE AX = 7160h CL = 01h CH = SUBST expansion flag 00h return a path containing true path for a SUBSTed drive letter 80h return a path containing the SUBSTed drive letter DS:SI -> ASCIZ long filename or path ES:DI -> 67-byte (possibly 128-byte) buffer for short filename Return: CF set on error AX = error code 02h invalid component in directory path or drive letter only 03h malformed path or invalid drive letter ES:DI buffer unchanged CF clear if successful ES:DI buffer filled with equivalent short filename (full path, even if relative path given, and all uppercase) Note: this call returns the short name for any long-filename portions of the provided pathname or filename SeeAlso: AH=60h,AX=7160h/CL=00h,AX=7160h/CL=02hTop
INT 21 - Windows95 - LONG FILENAME - GET CANONICAL LONG FILENAME OR PATH AX = 7160h CL = 02h CH = SUBST expansion flag 00h return a path containing true path for a SUBSTed drive letter 80h return a path containing the SUBSTed drive letter DS:SI -> ASCIZ short filename or path ES:DI -> 261-byte buffer for canonicalized long name Return: CF set on error AX = error code 02h invalid component in directory path or drive letter only 03h malformed path or invalid drive letter ES:DI buffer unchanged CF clear if successful ES:DI buffer filled with qualified long name (can contain lowercase letters) Desc: determine the canonical name of the specified filename or path, corresponding to the undocumented TRUENAME command in COMMAND.COM BUGS: even though the maximum length of a complete long pathname is 260 characters, Windows95 returns CF set/AX=0003h even if the file exists whenever the full pathname is more than 255 characters Windows95 incorrectly treats filenames where the first two characters after the drive letter and colon are both slashes (either forward or backward) as a UNC (network name) and requires several seconds to attempt to resolve the name before returning an unchanged string SeeAlso: AH=60h,AX=7160h/CL=00h,AX=7160h/CL=01hTop
INT 21 - Windows95 - LONG FILENAME - CREATE OR OPEN FILE AX = 716Ch BX = access mode and sharing flags (see #01782,also AX=6C00h) CX = attributes DX = action (see #01781) DS:SI -> ASCIZ filename DI = alias hint (number to append to short filename for disambiguation) Return: CF clear if successful AX = file handle CX = action taken 0001h file opened 0002h file created 0003h file replaced CF set on error AX = error code (see #01680) 7100h if function not supported SeeAlso: AX=6C00h,AX=7141h,AX=7156h,AX=71A9h Bitfields for Windows95 long-name open action: Bit(s) Description (Table 01781) 0 open file (fail if file does not exist) 1 truncate file if it already exists (fail if file does not exist) 4 create new file if file does not already exist (fail if exists) Note: the only valid combinations of multiple flags are bits 4&0 and 4&1 Bitfields for Windows95 file access/sharing modes: Bit(s) Description (Table 01782) 2-0 file access mode 000 read-only 001 write-only 010 read-write 100 read-only, do not modify file's last-access time 6-4 file sharing modes 7 no-inherit flag 8 do not buffer data (requires that all reads/writes be exact physical sectors) 9 do not compress file even if volume normally compresses files 10 use alias hint in DI as numeric tail for short-name alias 12-11 unused??? (0) 13 return error code instead of generating INT 24h if critical error while opening file 14 commit file after every write operation SeeAlso: #01402Top
INT 21 - Windows95 - LONG FILENAME - GET VOLUME INFORMATION AX = 71A0h DS:DX -> ASCIZ root name (e.g. "C:\") ES:DI -> buffer for file system name CX = size of ES:DI buffer Return: CF clear if successful AX destroyed (0000h and 0200h seen) BX = file system flags (see #01783) CX = maximum length of file name [usually 255] DX = maximum length of path [usually 260] ES:DI buffer filled (ASCIZ, e.g. "FAT","NTFS","CDFS") CF set on error AX = error code 7100h if function not supported Notes: for the file system name buffer, 32 bytes should be sufficient; that's what is used in some sample code by Walter Oney from Microsoft. this function accesses the disk the first time it is called BUG: this function returns DX=0000h for CD-ROM drives under Win95 SP1 SeeAlso: AX=714Eh,AX=7160h/CL=00h Bitfields for long filename volume information flags: Bit(s) Description (Table 01783) 0 searches are case sensitive 1 preserves case in directory entries 2 uses Unicode characters in file and directory names 3-13 reserved (0) 14 supports DOS long filename functions 15 volume is compressedTop
INT 21 - Windows95 - LONG FILENAME - "FindClose" - TERMINATE DIRECTORY SEARCH AX = 71A1h BX = filefind handle (from AX=714Eh) Return: CF clear if successful CF set on error AX = error code 7100h if function not supported Notes: this function must be called after starting a search with AX=714Eh, to indicate that the search handle returned by that function will no longer be used this function is only available when IFSMgr is running, not under bare MS-DOS 7 SeeAlso: AH=4Eh,AX=714Eh,AX=714FhTop
INT 21 U - Windows95 - internal - LONG FILENAME - FIND NEXT MATCHING FILE AX = 71A2h BX = filefind handle (from AX=714Eh) SI = date/time format (see #01778) ES:DI -> buffer for FindData record (see #01779) Return: CF clear if successful AX = 71A2h CX = Unicode conversion flags (see #01780) CF set on error AX = error code 7100h if function not supported Notes: this function is only available when IFSMgr is running, not under bare MS-DOS 7; it is functionally identical to AX=714Fh documented as "for internal use by Windows 95 only"Top
INT 21 U - Windows95 - internal AX = 71A3h ??? Return: ??? Note: documented as "for internal use by Windows 95 only"Top
INT 21 U - Windows95 - internal AX = 71A4h ??? Return: ??? Note: documented as "for internal use by Windows 95 only"Top
INT 21 U - Windows95 - internal AX = 71A5h ??? Return: ??? Note: documented as "for internal use by Windows 95 only"Top
INT 21 - Windows95 - LONG FILENAME - GET FILE INFO BY HANDLE AX = 71A6h BX = file handle DS:DX -> buffer for file information (see #01784) CF set Return: CF clear if successful file information record filled CF set on error AX = error code 7100h if function not supported SeeAlso: AX=71A7h/BL=00h Format of Windows95 file information: Offset Size Description (Table 01784) 00h DWORD file attributes 04h QWORD creation time (0 = unsupported) 0Ch QWORD last access time (0 = unsupported) 14h QWORD last write time 1Ch DWORD volume serial number 20h DWORD high 32 bits of file size 24h DWORD low 32 bits of file size 28h DWORD number of links to file 2Ch DWORD unique file identifier (high 32 bits) 30h DWORD unique file identifier (low 32 bits) Note: the file identifer and volume serial number together uniquely identify a file while it is open; the identifier may change when the system is restarted or the file is first openedTop
INT 21 - Windows95 - LONG FILENAME - FILE TIME TO DOS TIME AX = 71A7h BL = 00h DS:SI -> QWORD file time Return: CF clear if successful CX = DOS time (see #01665) DX = DOS date (see #01666) BH = hundredths (10-millisecond units past time in CX) CF set on error AX = error code 7100h if function not supported Desc: convert Win95 64-bit file time (UTC) into DOS-style date and time (local timezone) Note: the conversion fails if the file time's value is outside the range 01jan1980 and 31dec2107 SeeAlso: AX=71A6h,AX=71A7h/BL=01hTop
INT 21 - Windows95 - LONG FILENAME - DOS TIME TO FILE TIME AX = 71A7h BL = 01h CX = DOS time (see #01665) DX = DOS date (see #01666) BH = hundredths (10-millisecond units past time in CX) ES:DI -> buffer for QWORD file time Return: CF clear if successful ES:DI buffer filled CF set on error AX = error code 7100h if function not supported Desc: convert DOS-style date and time (local timezone) into Win95 64-bit file time (UTC) SeeAlso: AX=71A6h,AX=71A7h/BL=00hTop
INT 21 - Windows95 - LONG FILENAME - GENERATE SHORT FILENAME AX = 71A8h DS:SI -> ASCIZ long filename (no path allowed!) ES:DI -> buffer for ASCIZ short filename DH = short name's format 00h 11-char directory entry/FCB filename format 01h DOS 8.3 DL = character sets bits 7-4: short name's character set (see #01785) bits 3-0: long name's character set (see #01785) Return: CF clear if successful ES:DI buffer filled CF set on error AX = error code 7100h if function not supported Note: this function uses the same algorithm as the filesystem except that the returned name never has a numeric tail for disambiguation SeeAlso: AX=7160h/CL=00h,AX=7160h/CL=02h,AX=71A7h/BL=00h (Table 01785) Values for Windows95 filename character set: 00h Windows ANSI 01h current OEM character set 02h UnicodeTop
INT 21 - Windows95 - LONG FILENAME - SERVER CREATE OR OPEN FILE AX = 71A9h BX = access mode and sharing flags (see #01782,also AX=6C00h) CX = attributes DX = action (see #01781) DS:SI -> ASCIZ filename DI = alias hint (number to append to short filename for disambiguation) Return: CF clear if successful AX = global file handle CX = action taken 0001h file opened 0002h file created 0003h file replaced CF set on error AX = error code (see #01680) 7100h if function not supported Note: for use by real-mode servers only SeeAlso: AX=6C00h,AX=716ChTop
INT 21 - Windows95 - LONG FILENAME - CREATE SUBST AX = 71AAh BH = 00h BL = drive number (00h = default, 01h = A:, etc.) DS:DX -> ASCIZ pathname to associate with drive letter Return: CF clear if successful CF set on error AX = error code (see #01680) 7100h if function not supported SeeAlso: AX=71AAh/BH=01h,AX=71AAh/BH=02h,INT 2F/AX=1000h,#01643Top
INT 21 - Windows95 - LONG FILENAME - TERMINATE SUBST AX = 71AAh BH = 01h BL = drive number (01h = A:, etc.) Return: CF clear if successful CF set on error AX = error code (see #01680) 7100h if function not supported Note: the specified drive number may not be 00h (default), and presumably not the current drive either SeeAlso: AX=71AAh/BH=00h,AX=71AAh/BH=02h,INT 2F/AX=1000h,#01643Top
INT 21 - Windows95 - LONG FILENAME - QUERY SUBST AX = 71AAh BH = 02h BL = drive number (01h = A:, etc.) DS:DX -> buffer for ASCIZ pathname associated with drive letter Return: CF clear if successful DS:DX buffer filled CF set on error AX = error code (see #01680) 7100h if function not supported Note: the specified drive number may not be 00h (default drive) SeeAlso: AX=71AAh/BH=00h,AX=71AAh/BH=01h,INT 2F/AX=1000h,#01643Top
INT 21 - Windows95 beta - LFN-FindClose AH = 72h details not available Return: CF clear if successful CF set on error AX = error code (see #01680) 7200h if function not supported (e.g. under bare MS-DOS 7) Note: this function was present in beta versions of Windows95, but is probably not present in the release version SeeAlso: AX=71A1hTop
INT 21 - MS-DOS 7 - DRIVE LOCKING AND FLUSHING AH = 73h DL = drive (0=current, 1=A:, etc.) CL = which flag to get or set 00h drive flag??? 01h drive's dirty-buffers flag AL = subfunction 00h get indicated flag 01h set ??? CH = new value for indicated flag bit 1: ??? (CL=00h only) bit 3: dirty buffers exist for selected drive (CL=01h only) Return: CF clear if successful for AL=00h: AL = value of CL on entry for CL=00h: AH = new flag and 06h (i.e. bits 1 and 2 used) for CL=01h: AH = new flag and 08h (i.e. bit 3 used) (flag being taken from a table of bytes) CF set on error AX = error code (01h,0Fh,etc.) (see #01680) 7300h if function not supported Note: these two subfunctions are available even when only the MS-DOS kernel is runningTop
INT 21 - Windows95 - FAT32 - "Get_ExtDPB" - GET EXTENDED DPB AX = 7302h DL = drive number (00h=default, 01h=A:, etc.) ES:DI -> buffer for returned data (see #01786) CX = length of buffer (003Fh for Windows95) SI = signature (undocumented, must be F1A6h to get device driver address and next-DBP pointer) (see #01787) Return: CF clear if successful ES:DI buffer filled CF set on error AX = error code 0018h bad buffer length SeeAlso: AX=7303h,AX=7304h,AH=1Fh,AH=32h Format of Get_ExtDPB data buffer: Offset Size Description (Table 01786) 00h WORD (call) length of following data (003Dh) 02h 61 BYTEs (ret) drive parameter block (DPB) (see #01787) Format of Extended Drive Parameter Block: Offset Size Description (Table 01787) 00h 24 BYTEs standard DOS 4+ DPB 18h BYTE "dpb_flags" (undocumented) FFh force media check 19h DWORD pointer to next DPB (see note) 1Dh WORD cluster at which to start search for free space when writing, usually the last cluster allocated 1Fh WORD number of free clusters on drive, FFFFh = unknown 21h WORD high word of free cluster count 23h WORD active FAT/mirroring bit 7: do not mirror active FAT to inactive FATs bits 6-4: reserved (0) bits 3-0: the 0-based FAT number of the active FAT (only meaningful if mirroring disabled) 25h WORD sector number of file system information sector, or FFFFh for none (see also #01788) 27h WORD sector number of backup boot sector, or FFFFh for none 29h DWORD first sector number of the first cluster 2Dh DWORD maximum cluster number 31h DWORD number of sectors occupied by FAT 35h DWORD cluster number of start of root directory 39h DWORD cluster number at which to start searching for free space Notes: except for offset 18h, all of the first 33 bytes are identical to the standard DOS 4-6 DPB unless the proper value is given in SI on entry to "Get_ExtDBP", the next-DPB pointer and device driver address are set to 0000h:0000h SeeAlso: #01786,#01395 at AH=32h,#01664 Format of File System Information structure: Offset Size Description (Table 01788) 00h DWORD signature 61417272h 04h DWORD number of free clusters (FFFFFFFFh if unknown) 08h DWORD most recently allocated cluster 0Ch 12 BYTEs reserved SeeAlso: #01787Top
INT 21 - Windows95 - FAT32 - GET EXTENDED FREE SPACE ON DRIVE AX = 7303h DS:DX -> ASCIZ string for drive ("C:\" or "\\SERVER\Share") ES:DI -> buffer for extended free space structure (see #01789) CX = length of buffer for extended free space Return: CF clear if successful ES:DI buffer filled CF set on error AX = error code Notes: on DOS versions which do not support the FAT32 calls, this function returns CF clear/AL=00h (which is the DOS v1+ method for reporting unimplemented functions) under DOS 7.x (i.e. "MSDOS Mode" under Windows95), the ASCIZ string pointed at by DS:DX *must* include the drive letter, or this function will return CF set/AX=0015h (invalid drive). In a DOS box, omitting the drive letter (DS:DX -> "\") results in the free space for the current default drive, as expected BUG: this function returns a maximum of 2GB free space even on an FAT32 partition larger than 2GB under some versions of Win95 and Win98, apparently by limiting the number of reported free clusters to no more than 64K -- but only in a DOS window if a TSR has hooked INT 21h SeeAlso: AX=7302h,AX=7304h,AX=7305h,AH=36h Format of extended free space structure: Offset Size Description (Table 01789) 00h WORD (ret) size of returned structure 02h WORD (call) structure version (0000h) (ret) actual structure version (0000h) 04h DWORD number of sectors per cluster (with adjustment for compression) 08h DWORD number of bytes per sector 0Ch DWORD number of available clusters 10h DWORD total number of clusters on the drive 14h DWORD number of physical sectors available on the drive, without adjustment for compression 18h DWORD total number of physical sectors on the drive, without adjustment for compression 1Ch DWORD number of available allocation units, without adjustment for compression 20h DWORD total allocation units, without adjustment for compression 24h 8 BYTEs reservedTop
INT 21 - Windows95 - FAT32 - Set DPB TO USE FOR FORMATTING AX = 7304h DL = drive number (00h=default, 01h=A:, etc.) CX = size of buffer (must be at least 18h) ES:DI -> buffer for Set_DPBforFormat structure (see #01790) Return: CF clear if successful ES:DI buffer updated CF set on error AX = error code (18h = bad length in CX) SeeAlso: AX=7302h,AX=7303h,AX=7305h Format of Set_DPBforFormat structure: Offset Size Description (Table 01790) 00h WORD (call) size 02h WORD (call) structure version??? (0000h) (ret) ??? 04h DWORD (call) function number 00h invalidate DPB counts 01h rebuild DPB from BPB 02h force media change (next access to drive rebuild DPB) 03h get/set active FAT number and mirroring 04h get/set root directory cluster number ---function 00h--- 08h DWORD new DPB free count (00000000h=no change, FFFFFFFFh=unknown) 0Ch DWORD new DPB next-free (00000000h=no change, FFFFFFFFh=unknown) 10h DWORD unused 14h DWORD unused ---function 01h--- 08h DWORD unused??? 0Ch DWORD (call) -> BIOS Parameter Block from which to rebuild DPB 10h DWORD unused 14h DWORD unused ---function 02h--- 08h DWORD unused 0Ch DWORD unused 10h DWORD unused 14h DWORD unused ---function 03h--- 08h DWORD (call) new active FAT/mirroring state, or FFFFFFFFh to get bits 3-0: the 0-based FAT number of the active FAT bits 6-4: reserved (0) bit 7: do not mirror active FAT to inactive FATs 0Ch DWORD (ret) previous active FAT/mirroring state (as above) 10h DWORD unused 14h DWORD unused ---function 04h--- 08h DWORD (call) new root directory cluster number FFFFFFFFh to get current 0Ch DWORD (ret) previous root directory cluster number 10h DWORD unused 14h DWORD unusedTop
INT 21 - Windows95 - FAT32 - EXTENDED ABSOLUTE DISK READ/WRITE AX = 7305h CX = FFFFh DL = drive number (01h=A:, etc.) SI = read/write mode flags (see #01791) DS:BX -> disk I/O packet (see #02548 at INT 25) Return: CF clear if successful CF set on error AX = error code Note: one can not specify the default drive (DL=00h) for this function. SeeAlso: AX=7302h,AX=7304h,INT 25,INT 26 Bitfields for Extended Absolute Disk Read/Write mode flags: Bit(s) Description (Table 01791) 0 direction (0=read, 1=write) 12-1 reserved (0) 14-13 write type (should be 00 on reads) 00 unknown data 01 FAT data 10 directory data 11 file data 15 reserved (0)Top
INT 21 - VIRUS - "LEGO" -INSTALLATION CHECK AX = 7575h Return: AX = 4321h if resident SeeAlso: AX=6969h,AH=76h"VIRUS"Top
INT 21 - VIRUS - "Klaeren"/"Hate" - INSTALLATION CHECK AH = 76h Return: AL = 48h if resident SeeAlso: AX=7575h,AX=7700h"VIRUS"Top
INT 21 - VIRUS - "Growing Block" - INSTALLATION CHECK AX = 7700h Return: AX = 0920h if resident SeeAlso: AH=76h,AX=7BCEh,AH=7FhTop
INT 21 U - SCROLLit v1.7 - INSTALLATION CHECK AX = 7734h Return: DX = 3477h if installed AX = segment of resident code Program: ScrollIt is a shareware backscroll utility by Bromfield Software ProductsTop
INT 21 - WATCH.COM v3.2+ - INSTALLATION CHECK AX = 7761h ('wa') Return: AX = 6177h Note: WATCH.COM is part of the "TSR" package by TurboPower Software SeeAlso: INT 16/AX=7761hTop
INT 21 - VIRUS - "Whisper"/"Taipan" - INSTALLATION CHECK AX = 7BCEh Return: AX = 7BCEh if resident (???) SeeAlso: AX=5454h"VIRUS",AX=7700h,AX=7BCFh,AH=7Fh"VIRUS"Top
INT 21 - VIRUS - "Tai-Pan.666"/"Doom II Death" - INSTALLATION CHECK AX = 7BCFh Return: AX = 7BCFh if resident SeeAlso: AX=7BCEh"VIRUS",AH=7Dh"VIRUS"Top
INT 21 - VIRUS - "OffSpring" - INSTALLATION CHECK AH = 7Dh Return: AH = FAh if installed SeeAlso: AX=7BCFh"VIRUS",AH=7Fh"VIRUS"Top
INT 21 - VIRUS - "Squeaker","ASeXual" - INSTALLATION CHECK AH = 7Fh Return: AH = 80h if resident SeeAlso: AX=7BCEh,AH=83h"VIRUS"Top
INT 21 - European MS-DOS 4.0 - "AEXEC" - EXECUTE PROGRAM IN BACKGROUND AH = 80h CX = mode 0000h place child in zombie mode on exit to preserve exit code 0001h discard child process and exit code on termination DS:DX -> ASCIZ full program name ES:BX -> parameter block (as for AX=4B00h) Return: CF clear if successful AX = Command Subgroup ID (CSID) CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) Program: European MS-DOS 4.0 was written for Siemens in Germany and then used by several other European OEMs; its release falls between mainstream versions 3.2 and 3.3 Desc: asynchronously execute a program, creating a new process for it Notes: this function is called by the DETACH command there is a system-wide limit of 32 processes the CSID is used to identify all processes that have been spawned by a given process, whether directly or indirectly programs to be run in the background must use the new executable format (see #01596 at AH=4Bh) background processes may only perform asynchronous (background) EXECs, either this function or AX=4B04h background processes may execute INT 11, INT 12, INT 21, INT 2A, and INT 2F at any time; they may execute INT 10 and INT 16 only while they have opened a popup screen via INT 2F/AX=1401h; no other interrupts may be executed from the background background processes may not use drive B: or overlay their code segments see AX=8700h for an installation check the "NE" new executable format made its first appearance in European MS-DOS 4.0 SeeAlso: AH=4Bh,AH=87h,INT 2F/AX=1400h"POPUP"Top
INT 21 - PCW Weather Card interface - UNINSTALL PCW.COM AND FREE MEMORY AX = 8080h Return: ??? SeeAlso: AX=7070h/BX=7070hTop
INT 21 - European MS-DOS 4.0 - "FREEZE" - STOP A PROCESS AH = 81h BX = flag (00h freeze command subtree, 01h only specified process) CX = Process ID of head of command subtree Return: CF clear if successful CF set on error AX = error code (no such process) Desc: temporarily suspend a process or a process and all of its children Note: if BX=0001h, this call will not return until the process is actually frozen, which may not be until after it unblocks from an I/O operation SeeAlso: AH=82h,AH=89h,AX=8E00h,INT 15/AX=101DhTop
INT 21 - European MS-DOS 4.0 - "RESUME" - RESTART A PROCESS AH = 82h BX = flag (00h resume command subtree, 01h only specified process) CX = Process ID of head of command subtree Return: CF clear if successful CF set on error AX = error code (no such process) Desc: restart a previously-suspended process or a process and all of its children SeeAlso: AH=81h,INT 15/AX=101EhTop
INT 21 - European MS-DOS 4.0 - "PARTITION" - GET/SET FOREGROUND PARTITION SIZE AH = 83h AL = function 00h get size 01h set new size BX = new size in paragraphs Return: CF clear if successful BX = current size (function 00h) or old size (function 01h) CF set on error AX = error code (01h,07h,0Dh)(see #01680 at AH=59h/BX=0000h) Desc: specify or determine how much memory may be allocated by the foreground process Note: if the partition size is set to 0000h, no partition management is done and all memory allocation is compatible with DOS 3.2. the partition size can be changed regardless of what use is being made of the changed memory; subsequent allocations will follow the partition rules (foreground processes may allocate only foreground memory; background processes allocate background memory first, then foreground memory) SeeAlso: AH=48h,AH=4AhTop
INT 21 - VIRUS - "SVC" - INSTALLATION CHECK AH = 83h Return: DX = 1990h if resident SeeAlso: AH=76h,AH=84h"VIRUS"Top
INT 21 - VIRUS - "SVC 5.0" or "SVC 6.0" - INSTALLATION CHECK AH = 84h Return: DX = 1990h if resident BH = version number (major in high nybble, minor in low) SeeAlso: AH=83h"VIRUS",AH=89h"VIRUS"Top
INT 21 - European MS-DOS 4.0 - "CREATMEM" - CREATE A SHARED MEMORY AREA AX = 8400h BX = size in bytes (0000h = 65536) CX = flags bit 6: zero-initialize segment DS:DX -> ASCIZ name (must begin with "\SHAREMEM\") Return: CF clear if successful AX = segment address of shared memory global object CF set on error AX = error code (06h,08h) (see #01680 at AH=59h/BX=0000h) Desc: create an area of memory which may be accessed by multiple processes Notes: shared memory objects are created as special files (thus the restriction on the name) on successful creation, the reference count is set to 1 SeeAlso: AX=8401h,AX=8402h,INT 15/AX=DE19hTop
INT 21 - European MS-DOS 4.0 - "GETMEM" - OBTAIN ACCESS TO SHARED MEMORY AREA AX = 8401h CX = flags bit 7: writable segment (ignored by MS-DOS 4.0) DS:DX -> ASCIZ name (must begin with "\SHAREMEM\") Return: CF clear if successful AX = segment address of shared memory global object CX = size in bytes CF set on error AX = error code (invalid name) Desc: get address of a previously-created area of memory which may be accessed by multiple processes Note: this call increments the reference count for the shared memory area SeeAlso: AX=8400h,AX=8402hTop
INT 21 - European MS-DOS 4.0 - "RELEASEMEM" - FREE SHARED MEMORY AREA AX = 8402h BX = handle (segment address of shared memory object) Return: CF clear if successful CF set on error AX = error code (no such name) Desc: indicate that the specified area of shared memory will no longer be used by the caller Note: the reference count is decremented and the shared memory area is deallocated if the new reference count is zero SeeAlso: AX=8400h,AX=8401h,INT 15/AX=DE19hTop
INT 21 U - European MS-DOS 4.0 - ??? AH = 85h ??? Return: ???Top
INT 21 - European MS-DOS 4.0 - "SETFILETABLE" - INSTALL NEW FILE HANDLE TABLE AH = 86h BX = total number of file handles in new table Return: CF clear if successful CF set on error AX = error code (06h,08h) (see #01680 at AH=59h/BX=0000h) Desc: adjust the size of the per-process open file table, thus raising or lowering the limit on the number of files the caller can open simultaneously Notes: any currently-open files are copied to the new table if the table is increased beyond the default 20 handles, only the first 20 will be inherited by child processes error 06h is returned if the requested number of handles exceeds system limits or would require closing currently-open files SeeAlso: AH=26h,AH=67hTop
INT 21 - European MS-DOS 4.0 - "GETPID" - GET PROCESS IDENTIFIER AH = 87h Return: AX = PID BX = parent process's PID CX = Command Subgroup ID (CSID) Program: European MS-DOS 4.0 was written for Siemens in Germany and then used by several other European OEMs; its release falls between mainstream versions 3.2 and 3.3 Desc: determine an identifier by which to access the calling process Notes: called by MS C v5.1 getpid() function this function apparently must return AX=0001h for INT 21/AH=80h to succeed one possible check for European MS-DOS 4.0 is to issue this call with AL=00h and check whether AL is nonzero on return SeeAlso: AH=30h,AH=62h,AH=80h Index: installation check;European MS-DOS 4.0Top
INT 21 U - European MS-DOS 4.0 - ??? AH = 88h ??? Return: ??? SeeAlso: AH=87hTop
INT 21 - European MS-DOS 4.0 - SLEEP AH = 89h CX = time in milliseconds or 0000h to give up time slice Return: CF clear if successful CX = 0000h CF set on error AX = error code (interrupted system call) CX = sleep time remaining Desc: suspend the calling process for the specified duration Notes: the sleep interval is rounded up to the next higher increment of the scheduler clock, and may be extended further if other processes are running this call may be interrupted by signals (see AH=8Dh) reportedly called by Microsoft C 4.0 startup code background processes have higher priority than the foreground process, and should thus periodically yield the CPU SeeAlso: AH=81h,INT 15/AX=1000h,INT 2F/AX=1680h,INT 7A/BX=000AhTop
INT 21 - VIRUS - "Vriest" - INSTALLATION CHECK AH = 89h Return: AX = 0123h if resident SeeAlso: AH=84h"VIRUS",AH=90h"VIRUS"Top
INT 21 - European MS-DOS 4.0 - "CWAIT" - WAIT FOR CHILD TO TERMINATE AH = 8Ah BL = range (00h command subtree, 01h any child) BH = suspend flag 00h suspend if children exist but none are dead 01h return if no dead children CX = Process ID of head of command subtree Return: CF clear if successful AH = termination type (see #01792) AL = return code from child or aborting signal BX = PID of child (0000h if no dead children) CF set on error AX = error code (no child,interrupted system call) Desc: get return code from an asynchronously-executed child program, optionally waiting if no return code is available SeeAlso: AH=4Bh,AH=4Dh,AH=80h,AH=8Dh (Table 01792) Values for termination type: 00h normal termination 01h aborted by Control-C 02h aborted by I/O error 03h terminate and stay resident 04h aborted by signal 05h aborted by program errorTop
INT 21 U - European MS-DOS 4.0 - ??? AH = 8Bh ??? Return: ??? SeeAlso: AH=87hTop
INT 21 - European MS-DOS 4.0 - SET SIGNAL HANDLER AH = 8Ch AL = signal number (see #01793) BL = action (see #01794) DS:DX -> signal handler (see #01795) Return: CF clear if successful AL = previous action ES:BX -> previous signal handler CF set on error AX = error code (01h,invalid SigNumber or Action) (see #01680 at AH=59h/BX=0000h) Desc: set the routine which will be invoked on a number of exceptional conditions Note: all signals will be sent to the most recently installed handler SeeAlso: AH=8Dh (Table 01793) Values for European MS-DOS 4.0 signal number: 01h SIGINTR Control-C or user defined interrupt key 08h SIGTERM program termination 09h SIGPIPE broken pipe 0Dh SIGUSER1 reserved for user definition 0Eh SIGUSER2 reserved for user definition (Table 01794) Values for signal action: 00h SIG_DFL terminate process on receipt 01h SIG_IGN ignore signal 02h SIG_GET signal is accepted 03h SIG_ERR sender gets error 04h SIG_ACK acknowledge received signal and clear it, but don't change current setting (Table 01795) Values signal handler is called with: AL = signal number (see #01793) AH = signal argument Return: RETF, CF set: terminate process RETF, CF clear, ZF set: abort any interrupted system call with an error RETF, CF clear, ZF clear: restart any interrupted system call IRET: restart any interrupted system call Note: the signal handler may also perform a nonlocal GOTO by resetting the stack pointer and jumping; before doing so, it should dismiss the signal by calling this function with BL=04hTop
INT 21 - European MS-DOS 4.0 - SEND SIGNAL AH = 8Dh AL = signal number (see #01793) BH = signal argument BL = action 00h send to entire command subtree 01h send only to specified process DX = Process ID Return: CF clear if successful CF set on error AX = error code (01h,06h)(see #01680 at AH=59h/BX=0000h) Desc: invoke the exceptional-condition handler for the specified process Note: error 06h may be returned if one or more of the affected processes have an error handler for the signal SeeAlso: AH=8ChTop
INT 21 - European MS-DOS 4.0 - "SETPRI" - GET/SET PROCESS PRIORITY AX = 8E00h BH = 00h BL = action 00h set priority for command subtree 01h set priority for specified process only CX = Process ID DH = 00h DL = change in priority (00h to get priority) Return: CF clear if successful DL = process priority DH destroyed CF set on error AX = error code (01h,no such process)(see #01680 at AH=59h) Desc: specify or determine the execution priority of the specified process or the process and all of its children SeeAlso: AH=81hTop
INT 21 U - European MS-DOS 4.0 - ??? AH = 8Fh ??? Return: ??? SeeAlso: AH=87hTop
INT 21 U - European MS-DOS 4.0 - ??? AH = 90h ??? Return: ??? SeeAlso: AH=87hTop
INT 21 U - PTS-DOS 6.51 & S/DOS 1.0 - DIRECT DISK READ AH = 90h CX = FFFFh (for partitions > 32 Mb) DS:BX -> request block (see #04094) CX = sector count (for partitions < 32 Mb) DX = starting sector number DS:BX -> buffer Return: CF set on error AX error code CF clear on success Notes: This function is supported by Paragon Technology Systems S/DOS 1.0 (and most probably by PTS-DOS 6.51, maybe even earlier). To access big partitions (> 32 Mb), the CX != FFFFh is not allowed and the buffer must always be used. Otherwise, the system will return error code 0207h. It is currently unknown if this function is also supported by PhysTechSoft PTS-DOS 6.60, 6.70, or 2000. SeeAlso: INT 21/AH=91h"PTS",INT 25h,INT 26h Format of PTS-DOS & S/DOS disk read/write request block: Offset Size Description (Table 04094) 00h DWORD sector number 04h WORD counter 06h DWORD pointer to bufferTop
INT 21 - VIRUS - "Carioca" - INSTALLATION CHECK AH = 90h Return: AH = 01h if resident SeeAlso: AH=89h"VIRUS",AX=9753h"VIRUS"Top
INT 21 U - European MS-DOS 4.0 - ??? AH = 91h ??? Return: ??? SeeAlso: AH=87hTop
INT 21 U - PTS-DOS 6.51 & S/DOS 1.0 - DIRECT DISK WRITE AH = 91h CX = FFFFh (for partitions > 32 Mb) DS:BX -> request block (see #04094) CX = sector count (for partitions < 32 Mb) DX = starting sector number DS:BX -> buffer Return: CF set on error AX error code CF clear on success Note: This function is supported by Paragon Technology Systems S/DOS 1.0 (and most probably by PTS-DOS 6.51, maybe even earlier). To access big partitions (> 32 Mb), CX != FFFFh is not allowed and the buffer must always be used. Otherwise, the system will return error code 0207h. It is currently unknown if this function is also supported by PhysTechSoft PTS-DOS 6.60, 6.70, or 2000. SeeAlso: INT 21/Ah=90h"PTS",INT 25h,INT 26hTop
INT 21 U - European MS-DOS 4.0 - ??? AH = 92h ??? Return: ??? SeeAlso: AH=87hTop
INT 21 U - PTS-DOS 6.51 & S/DOS 1.0 - ABORT CURRENT PROCESS VIA INT 23 AH = 92h Desc: This function is provided by Paragon Technology Systems S/DOS 1.0+ (and most probably also by PTS-DOS 6.51+, maybe even earlier). It allows terminating programs via the CTRL+BREAK method. Note: It is currently unknown if this function is also supported by PhysTechSoft PTS-DOS 6.60, 6.70, or 2000. SeeAlso: INT 23,INT 24Top
INT 21 - European MS-DOS 4.0 - "PIPE" - CREATE A NEW PIPE AH = 93h CX = size in bytes Return: CF clear if successful AX = read handle BX = write handle CF set on error AX = error code (08h) (see #01680 at AH=59h/BX=0000h) Desc: create a communications channel which may be used for interprocess data and command exchanges SeeAlso: AH=3Ch,AH=3Fh"DOS",AH=40h"DOS",AH=84hTop
INT 21 U - European MS-DOS 4.0 - ??? AH = 94h ??? Return: ??? SeeAlso: AH=87hTop
INT 21 - European MS-DOS 4.0 - HARD ERROR PROCESSING AH = 95h AL = new state 00h enabled 01h disabled, automatically fail hard errors Return: AX = previous setting Desc: specify whether hard (critical) errors should automatically fail the system call or invoke an INT 24 SeeAlso: INT 24,INT 21/AH=59h/BX=0001hTop
INT 21 U - European MS-DOS 4.0 - ??? AH = 96h ??? Return: ???Top
INT 21 U - European MS-DOS 4.0 - ??? AH = 97h ??? Return: ???Top
INT 21 - VIRUS - "Nina" - INSTALLATION CHECK AX = 9753h Return: never (executes original program) if virus resident SeeAlso: AH=90h"VIRUS",AX=A1D5h"VIRUS",AX=9AD5h"VIRUS"Top
INT 21 U - European MS-DOS 4.0 - ??? AH = 98h ??? Return: ???Top
INT 21 u - European MS-DOS 4.0 - "PBLOCK" - BLOCK A PROCESS AH = 99h DS:BX -> memory location to block on CX = timeout in milliseconds DH = nonzero if interruptable Return: CF clear if awakened by event AX = 0000h CF set if unusual wakeup ZF set if timeout, clear if interrupted by signal AX = nonzero Desc: suspend calling process until another process sends a "restart" signal or a timeout occurs SeeAlso: AH=9Ah,INT 2F/AX=0802hTop
INT 21 u - European MS-DOS 4.0 - "PRUN" - UNBLOCK A PROCESS AH = 9Ah DS:BX -> memory location processes may have blocked on Return: AX = number of processes awakened ZF set if no processes awakened Program: European MS-DOS 4.0 was written for Siemens in Germany and then used by several other European OEMs; its release falls between mainstream versions 3.2 and 3.3 Desc: restart all processes waiting for the specified "restart" signal SeeAlso: AH=99h,INT 2F/AX=0802hTop
INT 21 - VIRUS - "Massacre/Beavis" - INSTALLATION CHECK AX = 9AD5h Return: AX = 9AD4h if resident SeeAlso: AX=6969h"VIRUS",AX=A1D5h"VIRUS"Top
INT 21 - Attachmate Extra! - GET 3270 DISPLAY STATE AH = A0h Return: AL = display status (see #01796) BX = host window status (see #01797) Program: Attachmate Extra! is a 3270 emulator by Attachmate Corporation SeeAlso: AH=A1h Bitfields for Attachmate Extra! display status: Bit(s) Description (Table 01796) 7 0=windowed, 1=enlarged 6-3 current screen profile number 0-9 2-0 active window number (0=PC, 1-4=host B-E, 5-6=notepad F-G) Bitfields for host window status: Bit(s) Description (Table 01797) 15 reserved 14 0=host E window installed, 1=not 13 0=host E terminal on, 1=off 12 0=host E window displayed, 1=not 11 reserved 10 0=host D window installed, 1=not 9 0=host D terminal on, 1=off 8 0=host D window displayed, 1=not 7 reserved 6 0=host C window installed, 1=not 5 0=host C terminal on, 1=off 4 0=host C window displayed, 1=not 3 reserved 2 0=host B window installed, 1=not 1 0=host B terminal on, 1=off 0 0=host B window displayed, 1=notTop
INT 21 - Attachmate Extra! - SET 3270 DISPLAY STATE AH = A1h AL = new display status byte (see #01796) SeeAlso: AH=A0h,AH=A2hTop
INT 21 - VIRUS - "789"/"Filehider" - INSTALLATION CHECK AX = A1D5h Return: AX = 900Dh if resident SeeAlso: AX=9753h,AX=9AD5h,AX=A55AhTop
INT 21 - Attachmate Extra! - SET HOST WINDOW STATE AH = A2h AL = new host window status byte (see #01798) SeeAlso: AH=A1h Bitfields for Attachmate Extra! host window status: Bit(s) Description (Table 01798) 7 0=power off, 1=power on 6 0=not installed, 1=installed 5-3 reserved 2-0 window number 1-4=host B-ETop
INT 21 - Attachmate Extra! - SEND KEYSTROKES TO HOST WINDOW AH = A3h AL = window number (1-4=host B-E) CX = 0001h DS:BX -> keystroke buffer DL = zero if keystroke buffer contains host function code (see #01799), non-zero if keystroke buffer contains ASCII character Return: CX = zero if character sent, non-zero if not BX incremented if CX=0 (Table 01799) Values for Attachmate Extra! host function code: 00h=reserved 10h=PF16 20h=Clear 30h=SysReq 01h=PF1 11h=PF17 21h=Print 31h=ErInp 02h=PF2 12h=PF18 22h=Left 32h=ErEof 03h=PF3 13h=PF19 23h=Right 33h=Ident 04h=PF4 14h=PF20 24h=Up 34h=Test 05h=PF5 15h=PF21 25h=Down 35h=Reset 06h=PF6 16h=PF22 26h=Home 36h=DevCncl 07h=PF7 17h=PF23 27h=Fast Left 37h=Dup 08h=PF8 18h=PF24 28h=Fast Right 38h=FldMark 09h=PF9 19h=Alt on 29h=Bksp 39h=Enter 0Ah=PF10 1Ah=Alt off 2Ah=Insert 3Ah=CrSel 0Bh=PF11 1Bh=Shift on 2Bh=Delete 0Ch=PF12 1Ch=Shift off 2Ch=Backtab 0Dh=PF13 1Dh=PA1 2Dh=Tab 0Eh=PF14 1Eh=PA2 2Eh=Newline 0Fh=PF15 1Fh=PA3 2Fh=AttnTop
INT 21 - Attachmate Extra! - GET HOST WINDOW BUFFER ADDRESS AH = A4h AL = window number (1-4=host B-E) Return: DS:BX -> 3270 display buffer SeeAlso: AH=A5h,AH=B8hTop
INT 21 - Attachmate Extra! - GET HOST WINDOW CURSOR POSITION AH = A5h AL = window number (1-4=host B-E) Return: BX = cursor position (80 * row + column, where 0:0 is upper left) Note: if the host window is configured with the Extended Attribute (EAB) feature, multiply the cursor position by 2 to obtain the byte offset into the display buffer SeeAlso: AH=A4hTop
INT 21 - VIRUS - "Eddie-2" - INSTALLATION CHECK AX = A55Ah Return: AX = 5AA5h if resident SeeAlso: AX=A1D5h,AX=AA00hTop
INT 21 - VIRUS - "Blinker" - INSTALLATION CHECK AX = AA00h Return: AX = 00AAh if resident SeeAlso: AX=A55Ah,AX=AA03hTop
INT 21 - VIRUS - "Backtime" - INSTALLATION CHECK AX = AA03h Return: AX = 03AAh if resident SeeAlso: AX=AA00h,AH=ABhTop
INT 21 - VIRUS - "600" or "Voronezh"-family - INSTALLATION CHECK AH = ABh Return: AX = 5555h if resident SeeAlso: AX=AA03h,AX=ABCDh,AX=BBBBh"VIRUS"Top
INT 21 - VIRUS - Major BBS - INSTALLATION CHECK AX = ABCDh Return: AX = 1234h if installed SeeAlso: AH=ABh"VIRUS",AX=ABCDh"SuperVirus"Top
INT 21 - VIRUS - "SuperVirus 2" - INSTALLATION CHECK AX = ABCDh Return: AX = DCBAh if resident SeeAlso: AX=ABCDh"VIRUS",AX=BBBBh"VIRUS"Top
INT 21 - Attachmate Extra! - GET TRANSLATE TABLE ADDRESS AH = AFh Return: DS:BX -> translate tables (see #01800) Format of Attachmate Extra! translate tables: Offset Size Description (Table 01800) 00h 256 BYTEs ASCII to 3270 buffer code translate table 100h 256 BYTEs 3270 buffer code to ASCII translate table 200h 256 BYTEs 3270 buffer code to EBCDIC translate table 300h 256 BYTEs EBCDIC to 3270 buffer code translate tableTop
INT 21 - VIRUS - "Requires" - INSTALLATION CHECK AH = B3h Return: AX = 9051h if resident SeeAlso: AH=7Fh"VIRUS",AX=B974h"VIRUS"Top
INT 21 U - Novell NetWare - CHECK LIP/PACKET SIGNING/IPX CHECKSUM SUPPORT??? AX = B300h Return: AX = 0000h if supported??? Note: this function appeared with the packet signing/Large Internet Packets/ IPX Checksum-aware NetWare shells SeeAlso: AX=B301h,AX=B302hTop
INT 21 U - Novell NetWare - CHECK SIGNATURE LEVEL??? AX = B301h Return: AX = 0000h if supported??? BX:CX indicate signature level (see #01801) Note: this function appeared with the packet signing/Large Internet Packets/ IPX Checksum-aware NetWare shells SeeAlso: AX=B300h,AX=B304h,#02875 at INT 2F/AX=7A20h/BX=0000h (Table 01801) Values for signature level indicator: 0000h:0000h = signature level 0 0002h:0000h = signature level 1 0202h:0000h = signature level 2 0202h:0202h = signature level 3Top
INT 21 U - Novell NetWare - START PACKET SIGNING AX = B302h CX = server connection (1-8) DS:SI -> 24-byte buffer containing ??? Return: ??? Notes: this function appeared with the packet signing/Large Internet Packets/ IPX Checksum-aware NetWare shells if packet signing is active, this call is required if and only if the last call successfully authenticated the workstation to the server SeeAlso: AX=B300h,#02875Top
INT 21 U - Novell NetWare - SET SIGNATURE LEVEL AX = B304h BX:CX = new signature level (see AX=B301h) Return: ??? Note: this function appeared with the packet signing/Large Internet Packets/ IPX Checksum-aware NetWare shells SeeAlso: AX=B300h,AX=B301h,AX=B306h,#02875Top
INT 21 - Novell NetWare - RENEGOTIATE SECURITY LEVEL AX = B306h CX = server connection number (01h-08h) Return: ??? Note: this function appeared with the packet signing/Large Internet Packets/ IPX Checksum-aware NetWare shells SeeAlso: AX=B300h,AX=B304h,#02875Top
INT 21 U - Novell NetWare - "AttachHandle" AH = B4h DS:SI -> input buffer (see #01802) Return: AX = DOS file handle or return code Note: this is an interface provided by NetWare to give DOS file access to NetWare files on non-DOS systems such as Macintosh, OS/2, and Unix SeeAlso: AX=E909h Format of Novell NetWare input buffer: Offset Size Description (Table 01802) 00h BYTE "WorkFileServer" 01h BYTE access code 02h DWORD "OpenHandle" 06h WORD "OpenHandleCount" 08h DWORD "OpenFileSize" Note: the six bytes at 02h-07h appear to be the six-byte NetWare handle returned by AX=E909hTop
INT 21 U - Novell NetWare - VNETWARE.386 API - GET INSTANCE DATA AX = B500h Return: ES:BX -> data CX = length SeeAlso: AX=B501h,AX=B502hTop
INT 21 U - Novell NetWare - VNETWARE.386 API - END VIRTUAL MACHINE AX = B501h SeeAlso: AX=B500h,AX=B502hTop
INT 21 U - Novell NetWare - VNETWARE.386 API - START VIRTUAL MACHINE AX = B502h SeeAlso: AX=B500h,AX=B501hTop
INT 21 - Novell NetWare shell 3.01 - TASK MODE CONTROL AH = B5h AL = subfunction 03h get task mode Return: AH = 00h AL = current task mode byte (see #01803) 04h get task mode pointer Return: ES:BX -> task mode byte Notes: the task mode byte specifies how task cleanup should be performed, but is declared to be version-dependent allows a program to disable the automatic cleanup for programs managing task swapping, etc. (Table 01803) Values for NetWare task mode byte in version 3.01: 00h-03h reserved 04h no task cleanupTop
INT 21 U - Novell NetWare - VNETWARE.386 API - SET VIRTUAL MACHINE ID AX = B505h ??? Return: ??? SeeAlso: AX=B502h,AX=B506hTop
INT 21 U - Novell NetWare - VNETWARE.386 API - GET VIRTUAL MACH SUPPORT LEVEL AX = B506h Return: AX = ??? (0002h) SeeAlso: AX=B505hTop
INT 21 - Novell NetWare - NetWare Shell - GET NUMBER OF PACKET BURST BUFFERS AX = B507h Return: AL = number of packet burst buffers (configured at shell load time)Top
INT 21 - Novell NetWare - FILE SERVICES - EXTENDED FILE ATTRIBUTES AH = B6h AL = subfunction 00h get extended file attributes 01h set extended file attributes CL = extended file attributes (see #01804) DS:DX -> ASCIZ pathname (max 255 bytes) Return: CF set on error AL = error code 8Ch caller lacks privileges FEh not permitted to search directory FFh file not found CF clear if successful AL = 00h (success) CL = current extended file attributes (see #01804) Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: AX=4300h,AH=E3h/SF=0Fh Bitfields for NetWare extended file attributes: Bit(s) Description (Table 01804) 2-0 search mode (executables only) 000 none (use shell's default search) 001 search on all opens without path 010 do not search 011 search on read-only opens without path 100 reserved 101 search on all opens 110 reserved 111 search on all read-only opens 3 reserved 4 transactions on file tracked 5 file's FAT indexed 6 read audit (to be implemented) 7 write audit (to be implemented)Top
INT 21 U - Novell NetWare - "HoldFileModeSet" (obsolete) AH = B7h AL = new value for HoldFileFlag Return: AL = previous value of HoldFileFlag Note: this function provided backward compatibility with a bug in early DOS versions and CP/M, but is no longer used or supportedTop
INT 21 - Attachmate Extra! - DISABLE HOST BUFFER UPDATES AH = B8h AL = window number (1-4=host B-E) DL = 01h Notes: only valid in CUT mode next AID keystroke (eg Enter) enables host buffer updates SeeAlso: AH=A4hTop
INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT CAPTURE FLAGS AX = B800h CX = size of reply buffer (01h-3Fh) ES:BX -> reply buffer for capture flags table (see #01805) Return: AL = status 00h successful Note: this function is supported by Advanced NetWare 2.0+ SeeAlso: AX=B801h,AX=B802h,AH=DFh/DL=00h,AH=DFh/DL=04h Format of NetWare capture flags table: Offset Size Description (Table 01805) 00h BYTE status (used internally, should be set to 00h) 01h BYTE print flags (see #01806) 02h BYTE tab size (01h-12h, default 08h) 03h BYTE printer number on server (00h-04h, default 00h) 04h BYTE number of copies to print (00h-FFh, default 01h) 05h BYTE form type required in printer (default 00h) 06h BYTE reserved 07h 13 BYTEs text to be placed on banner page 14h BYTE reserved 15h BYTE default local printer (00h = LPT1) 16h WORD (big-endian) timeout in clock ticks for flushing capture file on inactivity, or 0000h to disable timeout 18h BYTE flush capture file on LPT close if nonzero 19h WORD (big-endian) maximum lines per page 1Bh WORD (big-endian) maximum characters per line 1Dh 13 BYTEs name of form required in printer 2Ah BYTE LPT capture flag 00h inactive, FFh LPT device is being captured 2Bh BYTE file capture flag 00h if no file specified, FFh if capturing to file 2Ch BYTE timing out (00h if no timeout in effect, FFh if timeout counter running) 2Dh DWORD (big-endian) address of printer setup string 31h DWORD (big-endian) address of printer reset string 35h BYTE target connection ID 36h BYTE capture in progress if FFh 37h BYTE job queued for printing if FFh 38h BYTE print job valid if FFh 39h DWORD bindery object ID of print queue if previous byte FFh 3Dh WORD (big-endian) print job number (1-999) Bitfields for NetWare print flags: Bit(s) Description (Table 01806) 2 print capture file if interrupted by loss of connection 3 no automatic form feed after print job 6 printing control sequences interpreted by print service 7 print banner page before capture fileTop
INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT CAPTURE FLAGS AX = B801h CX = size of buffer (01h-3Fh) ES:BX -> buffer containing capture flags table (see #01805) Return: AL = status 00h successful Note: this function is supported by Advanced NetWare 2.0+ SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04hTop
INT 21 - Novell NetWare - PRINT SERVICES - GET SPECIFIC CAPTURE FLAGS AX = B802h CX = size of reply buffer (01h-3Fh) DH = LPT port (00h-02h) ES:BX -> reply buffer for capture flags table (see #01805) Return: AL = status 00h successful Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04hTop
INT 21 - Novell NetWare - PRINT SERVICES - SET SPECIFIC CAPTURE FLAGS AX = B803h CX = size of buffer (01h-3Fh) DH = LPT port (00h-02h) ES:BX -> buffer containing capture flags table (see #01805) Return: AL = status 00h successful Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04hTop
INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT LOCAL PRINTER AX = B804h Return: DH = default LPT port (00h-02h) Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: AX=B800h,AX=B805h,AH=DFh/DL=00hTop
INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT LOCAL PRINTER AX = B805h DH = new default LPT port (00h-02h) Return: AL = status 00h successful Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=00hTop
INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT QUEUE AX = B806h DH = LPT port (00h-02h) BX:CX = print queue's object ID Return: AL = status 00h successful FFh job already set Desc: specify the print queue on which a print job is to be placed the next time a capture is started on the given printer port Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: AX=B801h,AX=B807h,AH=E0h/SF=09hTop
INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT JOB AX = B807h DH = LPT port (00h-02h) BX = job number (see AH=E3h/SF=68h) SI:DI:CX = NetWare file handle (see AH=E3h/SF=68h) Return: AL = status 00h successful FFh job already queued Desc: specify the capture file and print job to be used for subsequent output to the given printer port Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: AX=B801h,AX=B806h,AH=E0h/SF=09h,AH=E3h/SF=68hTop
INT 21 - Novell NetWare - PRINT SERVICES - GET BANNER USER NAME AX = B808h ES:BX -> 12-byte buffer for user name Return: AL = status 00h successful Desc: get the user name which is printed on the banner page Notes: this function is supported by Advanced NetWare 2.1+ the default name is the login name of the user SeeAlso: AX=B809hTop
INT 21 - Novell NetWare - PRINT SERVICES - SET BANNER USER NAME AX = B809h ES:BX -> 12-byte buffer containing user name Return: AL = status 00h successful Desc: specify the user name which is printed on the banner page Notes: this function is supported by Advanced NetWare 2.1+ the default name is the login name of the user SeeAlso: AX=B808hTop
INT 21 U - Novell NetWare - "SpecialAttachableFunction" AH = B9h AL = FFh to hook this function ES:BX -> function to invoke on AH=B9h when AL<>FFh Note: this function is no longer used or supported by current versions of NetWareTop
INT 21 - VIRUS - "Tracker" - INSTALLATION CHECK AX = B974h Return: AX = 2888h if resident SeeAlso: AH=B3h"VIRUS",AH=D0h"VIRUS"Top
INT 21 U - Novell NetWare - "ReturnCommandComPointers" AH = BAh Return: DX = environment segment ES:DI -> COMMAND.COM drive Desc: used to edit the COMSPEC and PATH variables in the master environment when mapping network drives Note: this function was documented in older Novell documents which are no longer availableTop
INT 21 - Novell NetWare - WORKSTATION - SET END OF JOB STATUS AH = BBh AL = new EOJ flag 00h disable EOJs 01h enable EOJs Return: AL = old EOJ flag Desc: specify whether the network shell should automatically generate an End of Job call when the root command processor regains control Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=19h,AH=D6hTop
INT 21 - VIRUS - "Hey You" - INSTALLATION CHECK AX = BBBBh Return: AX = 6969h SeeAlso: AH=ABh"VIRUS",AH=BEh"VIRUS"Top
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG PHYSICAL RECORD AH = BCh AL = flags (see #01808) BX = file handle CX:DX = starting offset in file SI:DI = length of region to lock BP = timeout in timer ticks (1/18 sec) 0000h = don't wait if already locked Return: AL = status (see #01807) Desc: add the specified physical record to the log table, optionally locking it Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=5Ch,AH=BDh,AH=BEh,AH=BFh,AH=C2h,AH=D0h (Table 01807) Values for NetWare status: 00h successful 96h no dynamic memory for file FEh timed out FFh failed Bitfields for NetWare flags: Bit(s) Description (Table 01808) 0 lock as well as log record 1 non-exclusive lockTop
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYSICAL RECORD AH = BDh BX = file handle CX:DX = starting offset in file SI:DI = length of record Return: AL = status 00h successful FFh record not locked Desc: unlock the specified physical record but do not remove it from log table Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=BCh,AH=BEh"NetWare",AH=C0h,AH=C3h,AH=D2hTop
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD AH = BEh BX = file handle CX:DX = starting offset within file SI:DI = record length in bytes Return: AL = status 00h successful FFh specified record not locked Desc: unlock the physical record and remove it from the log table Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=5Ch,AH=BCh,AH=BDh,AH=C1h,AH=C4h,AH=D4hTop
INT 21 - VIRUS - "Datalock" - INSTALLATION CHECK AH = BEh Return: AX = 1234h if resident SeeAlso: AX=BBBBh,AX=BE00hTop
INT 21 - VIRUS - "USSR-1049" - INSTALLATION CHECK AX = BE00h CF set Return: CF clear if resident SeeAlso: AH=BEh"VIRUS",AH=C0h"VIRUS"Top
INT 21 O - Novell NetWare, Alloy NTNX - LOG/LOCK RECORD (FCB) AH = BFh AL = flags (see #01808) DS:DX -> opened FCB (see #01345 at AH=0Fh) BX:CX = offset BP = lock timeout in timer ticks (1/18 sec) if AL nonzero SI:DI = length Return: AL = error code (see #01807) Note: this function was added in NetWare 4.6, but was removed some time prior to Advanced NetWare 2.15, and is no longer listed in current Novell documentation SeeAlso: AH=BCh,AH=C0h"NetWare",AH=C2h"NetWare"Top
INT 21 O - Novell NetWare, Alloy NTNX - RELEASE RECORD (FCB) AH = C0h DS:DX -> non-extended FCB (see #01345 at AH=0Fh) BX:CX = offset Return: AL = error code (see #01807) Notes: unlocks record but does not remove it from log table this function was added in NetWare 4.6, but was removed some time prior to Advanced NetWare 2.15, and is no longer listed in current Novell documentation SeeAlso: AH=BDh,AH=BFh,AH=C1h"NetWare",AH=C3hTop
INT 21 - VIRUS - "Slow"/"Zerotime", "Solano" - INSTALLATION CHECK AH = C0h Return: AX = 0300h if "Slow"/"Zerotime" resident AX = 1234h if "Solano" resident SeeAlso: AX=BE00h,AX=C000h"VIRUS",AX=C301h"VIRUS"Top
INT 21 - VIRUS - "QUICKY" - INSTALLATION CHECK AX = C000h BX = most files infected by any other infected file Return: AX = 76F3h if resident SeeAlso: AH=C0h"VIRUS",AX=C001h,AX=C002h,AH=C1h"VIRUS"Top
INT 21 - VIRUS - "QUICKY" - TURN INFECTION OFF AX = C001h Return: nothing Note: if the virus is already memory resident this call disables any further infections SeeAlso: AX=C000h,AX=C002hTop
INT 21 - VIRUS - "QUICKY" - TURN INFECTION ON AX = C002h Return: nothing Note: if the virus is already memory resident and infection is disabled, this call re-enables it SeeAlso: AX=C000h,AX=C001hTop
INT 21 O - Novell NetWare, Alloy NTNX - CLEAR RECORD (FCB) AH = C1h DS:DX -> opened FCB (see #01345 at AH=0Fh) BX:CX = offset Return: AL = error code (see #01807) Note: unlocks record and removes it from log table this function was added in NetWare 4.6, but was removed some time prior to Advanced NetWare, and is no longer listed in current Novell documentation SeeAlso: AH=BEh,AH=C0h"NetWare",AH=C4hTop
INT 21 - VIRUS - "Solano" - ??? AH = C1h ??? Return: ??? SeeAlso: AH=C0h"VIRUS"Top
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK PHYSICAL RECORD SET AH = C2h AL = flags bit 1: non-exclusive lock BP = lock timeout in timer ticks (1/18 sec) 0000h = no wait Return: AL = status 00h successful FEh timed out FFh failed Desc: attempt to lock all physical records listed in the log table Notes: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and Alloy NTNX status FFh will be returned if one or more physical records have been exclusively locked by another process SeeAlso: AH=BFh,AH=C3h,AH=D1hTop
INT 21 - VIRUS - "Scott's Valley" - ??? AH = C2h ??? Return: ??? SeeAlso: AH=C0h"VIRUS"Top
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYS RECORD SET AH = C3h Desc: unlock all currently-locked physical records in the log table, but do not remove them from the table Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=BDh,AH=C0h,AH=C2h"NetWare",AH=C4h,AH=D3hTop
INT 21 - VIRUS - "905"/"Backfont" - INSTALLATION CHECK AX = C301h DX = F1F1h Return: DX = 0E0Eh if resident SeeAlso: AH=C0h"VIRUS",AX=C500h"VIRUS"Top
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD SET AH = C4h Desc: unlock all physical records in the log table and remove them from the log table Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=BEh,AH=C1h,AH=D5hTop
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - OPEN SEMAPHORE AX = C500h DS:DX -> semaphore name (counted string, max 127 bytes) CL = initial value for semaphore Return: AL = status 00h successful BL = number of processes having semaphore open CX:DX = semaphore handle 03h name length greater than 127 (refer to Novell document FYI.A.4611) FEh invalid name length FFh invalid semaphore value Notes: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and Alloy NTNX the semaphore's value is incremented by AX=C503h and decremented by AX=C502h SeeAlso: AX=C501h,AX=C502h,AX=C503h,AX=C504h,AX=F220h/SF=00hTop
INT 21 - VIRUS - "Sverdlov" - INSTALLATION CHECK AX = C500h Return: AX = 6731h if resident SeeAlso: AX=C301h"VIRUS",AH=C6h"VIRUS"Top
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - EXAMINE SEMAPHORE AX = C501h CX:DX = semaphore handle Return: AL = status 00h successful CX = semaphore value (-127 to 127) DL = count of processes which have the semaphore open FFh invalid handle Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AX=C500h"NetWare",AX=C502h,AX=C504h,AX=F220h/SF=01hTop
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - WAIT ON SEMAPHORE AX = C502h CX:DX = semaphore handle BP = timeout limit in timer ticks (1/18 sec) 0000h return immediately if semaphore already zero or negative Return: AL = status 00h successful FEh timeout FFh invalid handle Desc: decrement the semaphore's value, optionally waiting until its value becomes positive before decrementing Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AX=C500h"NetWare",AX=C501h,AX=C503h,AX=F220h/SF=02hTop
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - SIGNAL SEMAPHORE AX = C503h CX:DX = semaphore handle Return: AL = status 00h successful 01h semaphore value overflowed FFh invalid handle Desc: increment the semaphore's value and signal the first process (if any) in the queue waiting on the semaphore Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AX=C500h"NetWare",AX=C502h,AX=F220h/SF=03hTop
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLOSE SEMAPHORE AX = C504h CX:DX = semaphore handle Return: AL = status 00h successful FFh invalid handle Desc: decrement the semaphore's open count, and delete the semaphore if the count reaches zero Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AX=C500h"NetWare",AX=C501h,AX=F220h/SF=04hTop
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - GET OR SET LOCK MODE AH = C6h AL = subfunction 00h set old "compatibility" mode (default) 01h set new extended locks mode 02h get lock mode Return: AL = current lock mode Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and Alloy NTNX the locking mode should be 01h for NetWare 4.61+ and Advanced NetWare 1.0+ locking calls, and 00h for all older calls SeeAlso: AH=BCh,AH=C4h,AH=D0hTop
INT 21 - VIRUS - "Socha" - INSTALLATION CHECK AH = C6h Return: AL = 55h if resident SeeAlso: AX=C500h"VIRUS",AX=C603hTop
INT 21 - VIRUS - "Yankee Doodle" or "MLTI" - INSTALLATION CHECK AX = C603h BX = version number (002Ch or 002Dh) CF set Return: CF clear if resident ZF set if resident and input BX matches version SeeAlso: AX=C500h"VIRUS",AX=C700h"VIRUS"Top
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - BEGIN TRANSACTION AX = C700h Return: CF clear if successful AL = 00h CF set on error AL = error code 96h out of memory FEh implicit transaction already active, converted to explicit FFh explicit transaction already active Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+ SeeAlso: AX=C701h,AX=C702h,AX=C703h,AX=F222h/SF=01hTop
INT 21 - VIRUS - "MH-757" - INSTALLATION CHECK AX = C700h Return: AL = 07h if resident SeeAlso: AX=C603h"VIRUS",AH=CBh"VIRUS"Top
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - END TRANSACTION AX = C701h Return: AL = status (00h,FDh-FFh) (see #01809) 00h successful CX:DX = transaction number CF clear except when AL=FFh Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+ SeeAlso: AX=C700h"NetWare",AX=C703h,AX=F222h/SF=02h (Table 01809) Values for NetWare TTS status: 00h successful FDh transaction tracking disabled FEh transaction ended records locked FFh no explicit transaction activeTop
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - INSTALLATION CHECK AX = C702h Return: AL = status 00h not available 01h available FDh available but disabled Desc: determine whether the default file server supports TTS Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+ SeeAlso: AX=C700h,AX=C701h,AX=C703h,AX=F222h/SF=00hTop
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - ABORT TRANSACTION AX = C703h Return: CF clear if successful AL = 00h CF set on error AL = error code (FDh-FFh) (see #01809) Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+ SeeAlso: AX=C700h"NetWare",AX=C701h,AX=C704h,AX=F222h/SF=03hTop
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - TRANSACTION STATUS AX = C704h CX:DX = transaction number (see AX=C701h) Return: AL = status 00h successful FFh not yet written to disk Desc: verify that a transaction has actually been written to disk Notes: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+ transactions are written to disk in the order in which they are ended, but it may take as much as five seconds for the data to be written SeeAlso: AX=C700h"NetWare",AX=C701h,AX=C703h,AX=F222h/SF=04hTop
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET APPLICTN THRESHOLDS AX = C705h Return: AL = status 00h successful CL = maximum logical record locks (default 0) CH = maximum physical record locks (default 0) Desc: get the per-application limits on record locks allowed before an implicit transaction is begun Notes: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+ if either limit is FFh, implicit transactions are disabled for the corresponding lock type SeeAlso: AX=C706h,AX=C707h,AX=F222h/SF=05hTop
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET APPLICTN THRESHOLDS AX = C706h CL = maximum logical record locks (default 0) CH = maximum physical record locks (default 0) Return: AL = status 00h successful Desc: specify the per-application limits on record locks allowed before an implicit transaction is begun Notes: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+ if either limit is set to FFh, implicit transactions are disabled for the corresponding lock type SeeAlso: AX=C705h,AX=C708h,AX=F222h/SF=06hTop
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET WORKSTN THRESHOLDS AX = C707h Return: AL = status 00h successful CL = maximum logical record locks (default 0) CH = maximum physical record locks (default 0) Desc: get the per-workstation limits on record locks allowed before an implicit transaction is begun Notes: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+ if either limit is FFh, implicit transactions are disabled for the corresponding lock type SeeAlso: AX=C705h,AX=C708h,AX=F222h/SF=07hTop
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET WORKSTN THRESHOLDS AX = C708h CL = maximum logical record locks (default 0) CH = maximum physical record locks (default 0) Return: AL = status 00h successful Desc: specify the per-workstation limits on record locks allowed before an implicit transaction is begun Notes: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+ if either limit is set to FFh, implicit transactions are disabled for the corresponding lock type SeeAlso: AX=C706h,AX=C707h,AX=F222h/SF=08hTop
INT 21 O - Novell NetWare - BEGIN LOGICAL FILE LOCKING AH = C8h if function C6h lock mode 00h: DL = mode 00h no wait 01h wait if function C6h lock mode 01h: BP = timeout in timer ticks (1/18 sec) Return: AL = error code Desc: used to provide TTS support for applications which are not aware of Novell's Transaction Tracking System Note: this function was added in NetWare 4.0, but was removed some time prior to Advanced NetWare 2.15, and is no longer listed in current Novell documentation SeeAlso: AH=C9hTop
INT 21 O - Novell NetWare - END LOGICAL FILE LOCKING AH = C9h Return: AL = error code Desc: used to provide TTS support for applications which are not aware of Novell's Transaction Tracking System Note: this function was added in NetWare 4.0, but was removed some time prior to Advanced NetWare 2.15, and is no longer listed in current Novell documentation SeeAlso: AH=C8hTop
INT 21 O - Novell NetWare, Alloy NTNX - LOG/LOCK PERSONAL FILE (FCB) AH = CAh DS:DX -> FCB (see #01345 at AH=0Fh) if function C6h lock mode 01h: AL = log and lock flag 00h log file only 01h lock as well as log file BP = lock timeout in timer ticks (1/18 sec) Return: AL = error code 00h successful 96h no dynamic memory for file FEh timeout FFh failed Desc: provides file locking support for FCBs Note: this function was added in NetWare 4.0, but was removed some time prior to Advanced NetWare 2.15, and is no longer listed in current Novell documentation SeeAlso: AH=CBhTop
INT 21 - VIRUS - "Piter" - ??? AX = CA15h ??? Return: ??? SeeAlso: AH=CCh"VIRUS"Top
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK FILE SET AH = CBh if function C6h lock mode 00h: DL = mode (00h no wait, 01h wait) if function C6h lock mode 01h: BP = lock timeout in timer ticks (1/18 sec), 0000h = no wait Return: AL = status (00h,FEh,FFh) (see #01810) Desc: attempt to lock all files listed in the log table Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX status FFh will be returned if one or more of the files have already been exclusively locked by another process SeeAlso: AH=CAh,AH=CDh,AH=D1h,AH=EBh (Table 01810) Values for NetWare status: 00h successful FEh timed out FFh failedTop
INT 21 - VIRUS - "Milous" - INSTALLATION CHECK AH = CBh Return: AL = 07h if resident SeeAlso: AX=C700h"VIRUS",AX=CB02hTop
INT 21 - VIRUS - "Witcode" - INSTALLATION CHECK AX = CB02h Return: AX = 02CBh if resident SeeAlso: AH=CBh"VIRUS",AH=CCh"VIRUS"Top
INT 21 O - Novell NetWare, Alloy NTNX - RELEASE FILE (FCB) AH = CCh DS:DX -> FCB (see #01345 at AH=0Fh) Return: none Desc: unlocks file, but does not remove it from the log table or close it Note: this function was added in NetWare 4.0, but was removed some time prior to Advanced NetWare 2.15, and is no longer listed in current Novell documentation SeeAlso: AH=CAh,AH=CDhTop
INT 21 - VIRUS - "Westwood" - INSTALLATION CHECK AH = CCh Return: AX = 0700h if resident SeeAlso: AX=CB02h,AH=CDh"VIRUS",AX=D000h"VIRUS"Top
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE SET AH = CDh Return: none Desc: unlock all files listed in the log table, but don't remove them from the table Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=CBh,AH=CCh,AH=CFh,AH=D3hTop
INT 21 - VIRUS - "Westwood" - ??? AH = CDh ??? Return: ??? SeeAlso: AH=CCh"VIRUS"Top
INT 21 O - Novell NetWare, Alloy NTNX - CLEAR FILE (FCB) AH = CEh DS:DX -> FCB (see #01345 at AH=0Fh) Return: AL = error code Desc: unlocks file and removes it from log table, then closes all opened and logged occurrences Note: this function was added in NetWare 4.0, but was removed some time prior to Advanced NetWare 2.15, and is no longer listed in current Novell documentation SeeAlso: AH=CAh,AH=CFh,AH=EDh"NetWare"Top
INT 21 - LANstep - ??? AH = CFh ??? Return: ??? Program: LANstep is a redesign of the Waterloo Microsystems PORT networkTop
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE SET AH = CFh Return: AL = 00h Desc: unlock and remove all files from log table Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=CAh,AH=CEh,AH=EBh"NetWare"Top
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG LOGICAL RECORD AH = D0h DS:DX -> record string (counted string, max 99 data bytes) if function C6h lock mode 01h: (Novell, NTNX only) AL = flags bit 0: lock as well as log the record bit 1: non-exclusive lock BP = lock timeout in timer ticks (1/18 sec) Return: AL = status 00h successful 96h no dynamic memory for file FEh timed out FFh unsuccessful Desc: add the specified logical record name to the log table, and optionally lock the record Notes: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, Banyan VINES, and Alloy NTNX locks on logical record names are advisory and may be ignored by other applications SeeAlso: AH=BCh,AH=D1h,AH=D2h,AH=D4h,AH=EBhTop
INT 21 - VIRUS - "MALAGA" - INSTALLATION CHECK AH = D0h Return: AX = 00D0h if resident SeeAlso: AH=B3h"VIRUS",AH=D0h"ANTIARJ",AX=D000h"VIRUS"Top
INT 21 - VIRUS - "ANTIARJ" -INSTALLATION CHECK AH = D0h Return: AH = D1h if resident SeeAlso: AH=D0h"MALAGA"Top
INT 21 - VIRUS - "Fellowship" - INSTALLATION CHECK AX = D000h Return: BX = 1234h if resident SeeAlso: AH=CCh"VIRUS",AH=D0h"ANTIARJ",AX=D000h"Warlock",AH=D5h"VIRUS",AX=D5AAhTop
INT 21 - VIRUS - "Warlock" - INSTALLATION CHECK AX = D000h CF clear Return: CF set if resident (normal DOS return would be CF clear) SeeAlso: AX=D000h"VIRUS",AH=D5h"VIRUS"Top
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK LOGICAL RECORD SET AH = D1h AL = lock type (00h exclusive, 01h shareable) if function C6h lock mode 00h: DL = mode (00h no wait, 01h wait) if function C6h lock mode 01h: (Novell only) BP = lock timeout in timer ticks (1/18 sec), 0000h no wait Return: AL = status (see #01810) Desc: attempt to lock all logical record names listed in the log table Notes: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, Banyan VINES, and Alloy NTNX status FFh will be returned if one or more logical records have been exclusively locked by another process locks on logical record names are advisory and may be ignored by other applications SeeAlso: AH=C2h,AH=CBh,AH=D0h,AH=D3h,AH=D5hTop
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD AH = D2h DS:DX -> semaphore identifier (counted string up to 99 chars long) Return: AL = status 00h successful FFh no such record Desc: unlock the logical record name but do not remove it from the log table Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, Banyan VINES, and Alloy NTNX locks on logical record names are advisory and may be ignored by other applications SeeAlso: AH=BDh,AH=D0h,AH=D3h,AH=D4hTop
INT 21 - VIRUS??? AH = D2h ??? Return: ??? Note: this call is intercepted by the Search&Destroy SDRes v27.03 bundled with Novell DOS 7, and is presumably some virus's installation check SeeAlso: AH=4Ah/BX=00B6hTop
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD SET AH = D3h Desc: unlock all currently-locked logical record names in the log table, but do not remove them from the table Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, Banyan VINES, and Alloy NTNX locks on logical record names are advisory and may be ignored by other applications SeeAlso: AH=C3h,AH=CDh,AH=D1h,AH=D2h,AH=D5hTop
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD AH = D4h DS:DX -> logical record name (counted string up to 99 chars long) Return: AL = status (00h,FFh) (see #01811) Desc: unlock and remove the logical record name from the log table Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, Banyan VINES, and Alloy NTNX locks on logical record names are advisory and may be ignored by other applications SeeAlso: AH=BEh,AH=D0h,AH=D2h,AH=D5h (Table 01811) Values for NetWare status: 00h successful FFh no such record nameTop
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD SET AH = D5h Return: AL = error code (00h,FFh) (see #01811) Desc: unlock and remove all logical record name from the log table Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, Banyan VINES, and Alloy NTNX locks on logical record names are advisory and may be ignored by other applications SeeAlso: AH=D1h,AH=D3h,AH=D4hTop
INT 21 - VIRUS - "Carfield" - ??? AH = D5h ??? Return: ??? SeeAlso: AX=D5AAh,AH=F3h"Carfield"Top
INT 21 - VIRUS - "Diamond-A", "Diamond-B" - INSTALLATION CHECK AX = D5AAh Return: AX = 2A55h if "Diamond-A" resident AX = 2A03h if "Diamond-B"-family virus resident SeeAlso: AX=D000h,AH=D5h"VIRUS",AX=D5AAh/BP=DEAAhTop
INT 21 - VIRUS - "Dir" - INSTALLATION CHECK AX = D5AAh BP = DEAAh Return: SI = 4321h if resident SeeAlso: AX=D5AAh,AX=DADAh"VIRUS"Top
INT 21 - Novell NetWare - WORKSTATION - END OF JOB AH = D6h BX = job flag (0000h current job, FFFFh all processes on workstation) Return: AL = error code Desc: unlocks and clears all locked or logged files and records held by the process(es), closes all files, resets error and lock modes, and releases all network resources Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=BBh"NetWare",AH=D7hTop
INT 21 - Novell NetWare - CONNECTION SERVICES - SYSTEM LOGOUT AH = D7h Return: AL = error code Desc: this function closes the caller's open files, logs it out from all file servers, detaches the workstation from all non-default file servers, and maps a drive to the default server's SYS:LOGIN directory Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=D6h,AH=E3h/SF=14h,AH=F1h"NetWare"Top
INT 21 - Novell NetWare, Banyan VINES - ALLOCATE RESOURCE AH = D8h DL = resource number Return: AL = status (00h successful, FFh unsucessful) Note: this function is no longer used or supported by NetWare, and is not documented in Novell documents SeeAlso: AH=D9hTop
INT 21 - Novell NetWare, Banyan VINES - DEALLOCATE RESOURCE AH = D9h DL = resource number Return: AL = status (00h successful, FFh unsucessful) Note: this function is no longer used or supported by NetWare, and is not documented in Novell documents SeeAlso: AH=D8hTop
INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH NUMBER AH = DAh DL = volume number ES:DI -> reply buffer (see #01812) Return: AL = 00h Notes: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+ operator console rights are not required to make this call reported total blocks and total unused blocks include the Hot Fix Table; the NetWare shell's implementation of INT 21/AH=36h will report values larger than 268MB as 268MB. SeeAlso: AH=36h,AH=E2h/SF=15h,AH=E3h/SF=E9h Format of NetWare reply buffer: Offset Size Description (Table 01812) 00h WORD sectors/block 02h WORD total blocks on volume 04h WORD unused blocks 06h WORD total directory entries 08h WORD unused directory entries 0Ah 16 BYTEs volume name, null padded 1Ah WORD removable flag, 0000h = not removable Note: all words are big-endianTop
INT 21 - VIRUS - "Gotcha" - INSTALLATION CHECK AX = DADAh Return: AH = A5h SeeAlso: AX=D5AAh,AX=DAFEh"VIRUS"Top
INT 21 - VIRUS - "Plovdiv 1.3" - INSTALLATION CHECK AX = DAFEh Return: AX = 1234h if resident SeeAlso: AX=DADAh,AH=DDh"VIRUS",AH=DEh"VIRUS"Top
INT 21 - Novell NetWare - WORKSTATION - GET NUMBER OF LOCAL DRIVES AH = DBh Return: AL = number of local disks as set by LASTDRIVE in CONFIG.SYS Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=0EhTop
INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION NUMBER AH = DCh Return: AL = logical connection number 00h if NetWare not loaded or this machine is a non-dedicated server CX = station number in ASCII (CL = first digit) Notes: this function is supported by NetWare 4.0+, Banyan VINES, and Alloy NTNX station number only unique for those PCs connected to same semaphore service this function is called with AX=DC00h on entry by the DR DOS (up to including 7.03) command processor to retrieve the connection number. Old releases used this call only when INT 21/AX=EF03h failed. Current versions (probably since one of the Novell DOS 7 updates) attempt to retrieve the connection number from VLM (INT 2F/AX=7A20h via GENERAL: 0043h/0006h/0001h and CONN: 0010h/0007h/000Dh) first. The connection number is only trusted, however, when CF is clear on return. SeeAlso: AH=F2h"NetWare",INT 21/AX=EF03hTop
INT 21 - PCMag PCMANAGE/DCOMPRES - TURN ON/OFF AH = DCh DX = state 0000h turn on 0001h turn off SeeAlso: AX=FEDChTop
INT 21 - VIRUS - "Monika" - INSTALLATION CHECK AX = DC28h Return: AX = 1973h if resident SeeAlso: AX=D000h"VIRUS",AX=DCBAh"VIRUS"Top
INT 21 - VIRUS - "Red Spider" - INSTALLATION CHECK AX = DCBAh Return: AX = ABCDh if resident SeeAlso: AX=DC28h"VIRUS",AX=DEFEh"VIRUS"Top
INT 21 - Novell NetWare - WORKSTATION - SET NetWare ERROR MODE AH = DDh DL = error mode 00h invoke INT 24 on critical I/O errors (default) 01h return NetWare extended error code in AL 02h return error code in AL, mapped to standard DOS error codes Return: AL = previous error mode Note: this function is supported by Advanced NetWare 2.0+ SeeAlso: INT 24Top
INT 21 - VIRUS - "Jerusalem"-family - RELOCATE VIRUS??? AH = DDh CX = number of bytes to copy DS:SI -> source of copy ES:DI -> destination of copy Return: does not return normally; return address is caller's CS:0100h with AX = ??? SeeAlso: AX=DDEFh,AH=E0h"VIRUS",AH=EEh"VIRUS"Top
INT 21 - VIRUS- "GOLGI" - INSTALLATION CHECK AX = DDEFh Return: AX = EFDDh if resident SeeAlso: AH=DDh"VIRUS",AH=DEh"VIRUS"Top
INT 21 - VIRUS - "Durban" - INSTALLATION CHECK AH = DEh Return: AH = DFh if resident SeeAlso: AX=DAFEh,AX=DDEFh,AH=DEh"April 1st",AX=DEADh"90210"Top
INT 21 - VIRUS - "April 1st EXE" - ??? AH = DEh ??? Return: ??? SeeAlso: AH=DEh"Durban",AX=DEADh"90210"Top
INT 21 - Novell NetWare - MESSAGE SERVICES - SET BROADCAST MODE AH = DEh DL = broadcast mode 00h receive server and workstation broadcasts (default) 01h receive server broadcasts, discard user messages 02h store server broadcasts for retrieval 03h store all broadcasts for retrieval Return: AL = new broadcast mode Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+Top
INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MODE AH = DEh DL = 04h Return: AL = current broadcast mode 00h receive server and workstation broadcasts (default) 01h receive server broadcasts, discard user message 02h store server broadcasts for retrieval 03h store all broadcasts for retrieval Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+Top
INT 21 - Novell NetWare - SHELL TIMER INTERRUPT CHECKS AH = DEh DL = function 05h disable shell timer interrupt checks 06h enable shell timer interrupt checks Return: ??? Note: this function was added in NetWare 4.0, but is not listed in current Novell documentation and is probably no longer supportedTop
INT 21 - VIRUS - "90210" - INSTALLATION CHECK AX = DEADh Return: AX = AAAAh if resident SeeAlso: AH=DEh"April 1st",AX=DEADh"Shifting",AX=DEDEh"VIRUS"Top
INT 21 - VIRUS - "Shifting Objective" - RELOCATE CODE ??? AX = DEADh SeeAlso: AX=FEADh SeeAlso: AX=DEADh"90210",AX=DEDEh"VIRUS"Top
INT 21 - VIRUS - "Brothers" - INSTALLATION CHECK AX = DEDEh Return: AH = 41h if resident SeeAlso: AX=DEADh"Shifting",AX=DEFEh"VIRUS"Top
INT 21 - VIRUS - "Maze" - INSTALLATION CHECK AX = DEFEh Return: AX = ABCDh if resident SeeAlso: AX=DCBAh"VIRUS",AX=DEDEh"VIRUS",AH=E0h"VIRUS"Top
INT 21 - Novell NetWare - PRINT SERVICES - START LPT CAPTURE AH = DFh DL = 00h Return: AL = status 00h successful Desc: this function redirects the default LPT to a capture file on the file server Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h) a print job is queued when the first character of output is captured SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=01h,AH=DFh/DL=02h,AH=DFh/DL=03h SeeAlso: AH=DFh/DL=04h,AX=F003hTop
INT 21 - Novell NetWare - PRINT SERVICES - END LPT CAPTURE AH = DFh DL = 01h Return: AL = status 00h successful Desc: stop redirecting the default LPT, close the capture file, and release the job in the print queue for printing Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h) after this call, the default LPT defaults to local printing SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=02h,AH=DFh/DL=03h,AH=DFh/DL=05hTop
INT 21 - Novell NetWare - PRINT SERVICES - CANCEL LPT CAPTURE AH = DFh DL = 02h Return: AL = status 00h successful Desc: this function ends the capture of the default LPT, removes the job from the print queue, and deletes the capture file unless it is a permanent capture file Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h) after this call, the default LPT defaults to local printing SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=06hTop
INT 21 - Novell NetWare - PRINT SERVICES - FLUSH LPT CAPTURE AH = DFh DL = 03h Return: AL = status 00h successful Desc: this function closes the current capture file for the default LPT and starts printing it if it is not a permanent capture file Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h) if more data is sent to the LPT port after this call, a new capture file will be opeend SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=01h,AH=DFh/DL=02h,AH=DFh/DL=07hTop
INT 21 - Novell NetWare - PRINT SERVICES - START SPECIFIC LPT CAPTURE AH = DFh DL = 04h DH = LPT port (00h-02h) Return: AL = status 00h successful Desc: this function redirects the specified LPT to a capture file on the file server Notes: this function is supported by Advanced NetWare 2.1+ a print job is queued when the first character of output is captured SeeAlso: AX=B800h,AH=DFh/DL=00h,AH=DFh/DL=05h,AH=DFh/DL=06h,AH=DFh/DL=07h SeeAlso: AX=F003hTop
INT 21 - Novell NetWare - PRINT SERVICES - END SPECIFIC LPT CAPTURE AH = DFh DL = 05h DH = LPT port (00h-02h) Return: AL = status 00h successful Desc: stop redirecting the specified LPT, close the capture file, and release the job in the print queue for printing Notes: this function is supported by Advanced NetWare 2.1+ after this call, the specified LPT defaults to local printing SeeAlso: AH=DFh/DL=01h,AH=DFh/DL=04h,AH=DFh/DL=06h,AH=DFh/DL=07hTop
INT 21 - Novell NetWare - PRINT SERVICES - CANCEL SPECIFIC LPT CAPTURE AH = DFh DL = 06h DH = LPT port (00h-02h) Return: AL = status 00h successful Desc: this function ends the capture of the specified LPT, removes the job from the print queue, and deletes the capture file unless it is a permanent capture file Notes: this function is supported by Advanced NetWare 2.1+ after this call, the specified LPT defaults to local printing SeeAlso: AH=DFh/DL=02h,AH=DFh/DL=04h,AH=DFh/DL=05h,AH=DFh/DL=07hTop
INT 21 - Novell NetWare - PRINT SERVICES - FLUSH SPECIFIC LPT CAPTURE AH = DFh DL = 07h DH = LPT port (00h-02h) Return: AL = status 00h successful Desc: this function closes the current capture file for the specified LPT and starts printing it if it is not a permanent capture file Notes: this function is supported by Advanced NetWare 2.1+ if more data is sent to the LPT port after this call, a new capture file will be opeend SeeAlso: AH=DFh/DL=03h,AH=DFh/DL=04h,AH=DFh/DL=05h,AH=DFh/DL=06hTop
INT 21 U - Software Carousel - INSTALLATION CHECK AX = DF00h DX = 534Ch ("SL") DI = 534Ch ("SL") Return: AX = 00FFh if installed ??? Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc.Top
INT 21 - Software Carousel - SWITCH TO ANOTHER TASK AX = DF01h BL = task number (00h = next task) Return: AL = status 00h Carousel not running 01h successful FFh unsucessful AH = error code (01h,02h) (see #01813) (Table 01813) Values for Software Carousel error code: 00h invalid subfunction in AL 01h invalid task number 02h tried to switch to task with no memory size 03h tried to kill program in partition with no program running 04h tried to change size of an active memory partition 05h invalid memory size 06h tried to send command to task with a pending previous commandTop
INT 21 - Software Carousel - KILL PROGRAM IN MEMORY PARTITION AX = DF02h BL = task number Return: AL = status 00h Carousel not running 01h successful FFh unsucessful AH = error code (01h,03h) (see #01813)Top
INT 21 - Software Carousel - GET PARTITION SIZE AND PROGRAM STATUS AX = DF03h BL = task number Return: AL = status 00h Carousel not running 01h successful BL = partition state (00h no program running, 01h prog running) DX = partition size in KB FFh unsucessful AH = error code (01h) (see #01813) SeeAlso: AX=DF05hTop
INT 21 - Software Carousel - GET PARTITION NAME AX = DF04h BL = task number Return: AL = status 00h Carousel not running 01h successful CX = length of name (00h if default partition name) ES:BX -> partition name (if CX nonzero) FFh unsucessful AH = error code (01h) (see #01813) SeeAlso: AX=DF06hTop
INT 21 - Software Carousel - CHANGE PARTITION SIZE AX = DF05h BL = task number DX = new size in KB Return: AL = status 00h Carousel not running 01h successful FFh unsucessful AH = error code (01h,04h,05h) (see #01813) BX = minimum size allowed CX = maximum size available SeeAlso: AX=DF03hTop
INT 21 - Software Carousel - CHANGE PARTITION NAME AX = DF06h BL = task number CX = length of new name (00h to use default, max 18h) DS:SI -> new name Return: AL = status 00h Carousel not running 01h successful FFh unsucessful AH = error code (01h) (see #01813) SeeAlso: AX=DF04hTop
INT 21 - Software Carousel - SEND COMMAND TO MEMORY SECTION AX = DF07h BL = task number CX = length of command (max 8 chars) DS:SI -> command line Return: AL = status 00h Carousel not running 01h successful FFh unsucessful AH = error code (01h,06h) (see #01813) Note: the maximum length seems too small and may be a typo for 80 charactersTop
INT 21 - Software Carousel - SELECTIVELY ENABLE/DISABLE MENU AND SWITCHING AX = DF08h BL = new state of keyboard (00h disabled, 01h enabled) Return: AL = status 00h Carousel not running 01h successful Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc. Note: when the keyboard is is disabled, the user may neither access the Carousel menu nor switch to another memory sectionTop
INT 21 - Software Carousel - BOOT THE SYSTEM AX = DF09h Return: AL = status 00h Carousel not running FFh unsucessful AH = error code (01h,03h) (see #01813) Note: this function never returns if successfulTop
INT 21 - Software Carousel - GET MEMORY SIZE/PARTITION NUMBER OF CURRENT TASK AX = DF0Ah Return: AL = status 00h Carousel not running 01h successful BL = task number DX = memory size in KB FFh unsucessful AH = error code (01h,03h) (see #01813)Top
INT 21 - Software Carousel - SET TASK SWITCH CALLBACK AX = DF0Bh BH = interrupt number or 00h BL = function number to invoke on partition switch CL = function number to call when it is safe for resident programs to perform DOS calls DS:DX -> FAR function to call if BH=00h Return: AL = status 00h Carousel not running 01h successful FFh unsucessful AH = error code (01h,03h) (see #01813) Notes: the specified interrupt or FAR function is called with AH set to the appropriate one of the values specified in BL and CL, and BL set to the new task number the function specified by CL will not be called until the notification is enabled with AX=DF0Ch SeeAlso: AX=DF0ChTop
INT 21 - Software Carousel - ENABLE DOS-CALL SAFETY NOTIFICATION AX = DF0Ch Return: AL = status 00h Carousel not running 01h successful Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc. SeeAlso: AX=DF0BhTop
INT 21 - Digital Research DOS Plus - CALL BDOS AH = E0h CL = BDOS function number (see #04019 at INT E0"CP/M-86") other registers as appropriate for function Return: as appropriate for function SeeAlso: AX=4459h,INT E0"CP/M-86"Top
INT 21 - OS/286, OS/386 - INITIALIZE REAL PROCEDURE AH = E0h ??? Return: ??? SeeAlso: AH=E1h"OS/286"Top
INT 21 - DoubleDOS - MENU CONTROL AH = E0h AL = subfunction 01h exchange tasks 73h resume invisible job if suspended 74h kill other job 75h suspend invisible job Note: identical to AH=F0h SeeAlso: AH=F0h"DoubleDOS"Top
INT 21 - VIRUS - "Jerusalem", "Armagedon" - INSTALLATION CHECK AH = E0h Return: AX = 0300h if "Jerusalem" resident AX = DADAh if "Armagedon" resident SeeAlso: AH=DEh"VIRUS",AX=DEDEh"VIRUS",AX=E00FhTop
INT 21 - Novell NetWare, Alloy NTNX - PRINT SPOOLING AH = E0h DS:SI -> request buffer (see #01814) ES:DI -> reply buffer Return: AL = status Note: this function was added in NetWare 4.0, but is no longer listed in current Novell documentation and may no longer be supported SeeAlso: AH=E3h/SF=68h,AX=F211h/SF=06h,AX=F211h/SF=0Ah Format of NetWare print spooling request buffer: Offset Size Description (Table 01814) 00h WORD length of following data 02h BYTE subfunction 00h spool data to a capture file 01h close and queue capture file 02h set spool flags 03h spool existing file 04h get spool queue entry 05h remove entry from spool queue 03h ??? SeeAlso: #02101Top
INT 21 - Novell NetWare - PRINT SERVICES - GET PRINTER STATUS AH = E0h subfn 06h DS:SI -> request buffer (see #01815) ES:DI -> reply buffer (see #01816) Return: AL = status 00h successful FFh no such printer Desc: get current state of specified printer attached to the server Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX Format of NetWare "Get Printer Status" request buffer: Offset Size Description (Table 01815) 00h WORD 0002h (length of following data) 02h BYTE 06h (subfunction "Get Printer Status") 03h BYTE printer number (00h-04h) SeeAlso: #01816 Format of NetWare "Get Printer Status" reply buffer: Offset Size Description (Table 01816) 00h WORD (call) 0004h (size of following results buffer) 02h BYTE flag: 00h printer active, FFh printer halted 03h BYTE flag: 00h printer online, 01h printer offline 04h BYTE current form type 05h BYTE target printer number (00h-04h) same as number in request buffer unless rerouted by server console SeeAlso: #01815Top
INT 21 - Novell NetWare - PRINT SERVICES - SPECIFY CAPTURE FILE AH = E0h subfn 09h DS:SI -> request buffer (see #01817) ES:DI -> reply buffer (see #01818) Return: AL = status 00h successful 9Ch invalid path Desc: create a permanent capture file for the next print capture to be started Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX the caller must have read, write, and create rights for the directory containing the capture file Format of NetWare "Specify Capture File" request buffer: Offset Size Description (Table 01817) 00h WORD length of following data (max 102h) 02h BYTE 09h (subfunction "Specify Capture File") 03h BYTE directory handle or 00h 04h BYTE length of filename 05h N BYTEs name of capture file SeeAlso: #01818 Format of NetWare reply buffer: Offset Size Description (Table 01818) 00h WORD (call) 0000h (no results returned) SeeAlso: #01817Top
INT 21 - VIRUS - "8-tunes" - INSTALLATION CHECK AX = E00Fh Return: AX = 4C31h if resident SeeAlso: AH=E0h"VIRUS",AH=E1h"VIRUS"Top
INT 21 - OS/286, OS/386 - ISSUE REAL PROCEDURE CALL AH = E1h ??? Return: ??? Note: protected mode only??? SeeAlso: AH=E0h"OS/286",AH=E2h"OS/286",AH=E3h"OS/286",AX=250Eh,INT 31/AX=0301hTop
INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB AH = E1h SeeAlso: AH=E2h"DoubleDOS",AH=E3h"DoubleDOS",AH=E8h"DoubleDOS" SeeAlso: AH=F1h"DoubleDOS"Top
INT 21 - VIRUS - "Mendoza", "Fu Manchu" - INSTALLATION CHECK AH = E1h Return: AX = 0300h if "Mendoza" resident AX = 0400h if "Fu Manchu" resident SeeAlso: AX=E00Fh,AH=E4h"VIRUS"Top
INT 21 - Novell NetWare - MESSAGE SERVICES - SEND BROADCAST MESSAGE AH = E1h subfn 00h DS:SI -> request buffer (see #01819) ES:DI -> reply buffer (see #01820) Return: AL = status 00h successful FEh I/O error or out of dynamic workspace Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+ SeeAlso: AH=DEh"NetWare",AH=DEh/DL=04h,AH=E1h/SF=01h,AH=E1h/SF=04h SeeAlso: AH=E1h/SF=09h Format of NetWare "Send Broadcast Message" request buffer: Offset Size Description (Table 01819) 00h WORD length of following data (max 9Eh) 02h BYTE 00h (subfunction "Send Broadcast Message") 03h BYTE number of connections (01h-64h) 04h N BYTEs list of connections to receive broadcast message BYTE length of message (01h-37h) N BYTEs broadcast message (no control characters or characters > 7Eh) SeeAlso: #01820 Format of NetWare "Send Broadcast Message" reply buffer: Offset Size Description (Table 01820) 00h WORD (call) size of following results buffer (max 65h) 02h BYTE number of connections 03h N BYTEs list of per-connection results 00h successful FCh message rejected due to lack of buffer space FDh invalid connection number FFh blocked (see also AH=E1h/SF=02h) SeeAlso: #01819Top
INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MESSAGE (OLD) AH = E1h subfn 01h DS:SI -> request buffer (see #01821) ES:DI -> reply buffer (see #01822) Return: AL = status 00h successful FCh full message queue FEh out of dynamic workspace Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+ SeeAlso: AH=DEh/DL=04h,AH=E1h/SF=00h,AH=E1h/SF=05h,AH=E1h/SF=09h SeeAlso: AX=F215h/SF=01h,AX=F215h/SF=0Bh Format of NetWare "Get Broadcast Message" request buffer: Offset Size Description (Table 01821) 00h WORD 0001h (length of following data) 02h BYTE 01h (subfunction "Get Broadcast Message") SeeAlso: #01822,#02109 Format of NetWare "Get Broadcast Message" reply buffer: Offset Size Description (Table 01822) 00h WORD (call) size of following results buffer (max 38h) 02h BYTE length of message (00h-37h) 00h if no broadcast messages pending 03h N BYTEs message (no control characters or characters > 7Eh) SeeAlso: #01821,#02107,#02110Top
INT 21 - Novell NetWare - MESSAGE SERVICES - DISABLE BROADCAST MESSAGES AH = E1h subfn 02h DS:SI -> request buffer (see #01824) ES:DI -> reply buffer (see #01825) Return: AL = error code Note: these functions are supported by NetWare 4.0+ but are not listed in _NetWare_System_Calls--DOS_; they may be obsolete SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=03h,AH=E1h/SF=04h,AH=E1h/SF=09h SeeAlso: AX=F215h/SF=02h Format of NetWare "Disable Broadcasts" request packet: Offset Size Description (Table 01823) 00h WORD 0001h (length of following data) 02h BYTE 02h (subfunction "Enable Broadcast Messages") SeeAlso: #01824,#01825Top
INT 21 - Novell NetWare - MESSAGE SERVICES - ENABLE BROADCAST MESSAGES AH = E1h subfn 03h DS:SI -> request buffer (see #01824) ES:DI -> reply buffer (see #01825) Return: AL = error code Note: these functions are supported by NetWare 4.0+ but are not listed in _NetWare_System_Calls--DOS_; they may be obsolete SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=02h,AH=E1h/SF=04h,AH=E1h/SF=09h SeeAlso: AX=F215h/SF=03h Format of NetWare "Enable Broadcast Messages" request buffer: Offset Size Description (Table 01824) 00h WORD 0001h (length of following data) 02h BYTE 03h (subfunction "Enable Broadcast Messages") SeeAlso: #01825,#01823 Format of NetWare "Enable/Disable Broadcast Messages" reply buffer: Offset Size Description (Table 01825) 00h WORD (call) 0000h (no data returned) SeeAlso: #01824,#01823Top
INT 21 O - Novell NetWare - MESSAGE SERVICES - SEND PERSONAL MESSAGE AH = E1h subfn 04h DS:SI -> request buffer (see #01826) ES:DI -> reply buffer (see #01827) Return: AL = status 00h successful FEh I/O error or out of dynamic workspace Notes: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x message pipes use CPU time on the file server; IPX, SPX, or NetBIOS connections should be used for peer-to-peer communications as these protocols do not use file server time SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=08h Format of NetWare "Send Personal Message" request buffer: Offset Size Description (Table 01826) 00h WORD length of following data (max E5h) 02h BYTE 04h (subfunction "Send Personal Message") 03h BYTE number of connections (01h-64h) 04h N BYTEs list of connections to receive broadcast message BYTE length of message (01h-7Eh) N BYTEs message (no control characters or characters > 7Eh) SeeAlso: #01827 Format of NetWare "Send Personal Message" reply buffer: Offset Size Description (Table 01827) 00h WORD (call) size of following results buffer (max 65h) 02h BYTE number of connections 03h N BYTEs list of per-connection results 00h successful FCh message rejected because queue is full (contains 6 msgs) FDh incomplete pipe FFh failed SeeAlso: #01826Top
INT 21 O - Novell NetWare - MESSAGE SERVICES - GET PERSONAL MESSAGE AH = E1h subfn 05h DS:SI -> request buffer (see #01828) ES:DI -> reply buffer (see #01829) Return: AL = status 00h successful FEh out of dynamic workspace Desc: return the oldest message in the default file server's message queue for the calling workstation Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x SeeAlso: AH=E1h/SF=01h,AH=E1h/SF=04h,AH=E1h/SF=06h,AH=E1h/SF=08h Format of NetWare "Get Personal Message" request buffer: Offset Size Description (Table 01828) 00h WORD 0001h (length of following data) 02h BYTE 05h (subfunction "Get Personal Message") SeeAlso: #01829 Format of NetWare "Get Personal Message" reply buffer: Offset Size Description (Table 01829) 00h WORD (call) size of following results buffer (max 80h) 02h BYTE connection number of sending station 03h BYTE length of message (00h-7Eh) 00h if no personal messages pending 04h N BYTEs message (no control characters or characters > 7Eh) SeeAlso: #01828Top
INT 21 O - Novell NetWare - MESSAGE SERVICES - OPEN MESSAGE PIPE AH = E1h subfn 06h DS:SI -> request buffer (see #01830) ES:DI -> reply buffer (see #01831) Return: AL = status 00h successful FEh out of dynamic workspace Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x SeeAlso: AH=E1h/SF=04h,AH=E1h/SF=07h,AH=E1h/SF=08h Format of NetWare "Open Message Pipe" request buffer: Offset Size Description (Table 01830) 00h WORD length of following data (max 66h) 02h BYTE 06h (subfunction "Open Message Pipe") 03h BYTE number of pipes to open (01h-64h) 04h N BYTEs list of connection numbers SeeAlso: #01831,#01832,#01835 Format of NetWare "Open Message Pipe" reply buffer: Offset Size Description (Table 01831) 00h WORD (call) size of following results buffer (max 65h) 02h BYTE number of connections 03h N BYTEs list of results 00h successful FEh incomplete (target half not yet created) FFh failed SeeAlso: #01830,#01833,#01836Top
INT 21 O - Novell NetWare - MESSAGE SERVICES - CLOSE MESSAGE PIPE AH = E1h subfn 07h DS:SI -> request buffer (see #01832) ES:DI -> reply buffer (see #01833) Return: AL = status 00h successful FCh full message queue FEh out of dynamic workspace Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x SeeAlso: AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=08h Format of NetWare "Close Mesage Pipe" request buffer: Offset Size Description (Table 01832) 00h WORD length of following data (max 66h) 02h BYTE 07h (subfunction "Close Message Pipe") 03h BYTE number of pipes to close (01h-64h) 04h N BYTEs list of connection numbers SeeAlso: #01830,#01833 Format of NetWare "Close Message Pipe" reply buffer: Offset Size Description (Table 01833) 00h WORD (call) size of following results buffer (max 65h) 02h BYTE number of connections 03h N BYTEs list of results 00h successful FDh failed FFh no such pipe SeeAlso: #01831,#01832Top
INT 21 O - Novell NetWare - MESSAGE SERVICES - CHECK PIPE STATUS AH = E1h subfn 08h DS:SI -> request buffer (see #01835) ES:DI -> reply buffer (see #01836) Return: AL = status (see #01834) Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x SeeAlso: AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=07h,AX=F215h/SF=08h (Table 01834) Values for NetWare function status: 00h successful FCh full message queue FEh out of dynamic workspace SeeAlso: #01839 Format of NetWare "Check Pipe Status" request buffer: Offset Size Description (Table 01835) 00h WORD length of following data (max 66h) 02h BYTE 08h (subfunction "Check Pipe Status") 03h BYTE number of pipes to monitor (01h-64h) 04h N BYTEs list of connection numbers SeeAlso: #01830,#01836 Format of NetWare "Check Pipe Status" reply buffer: Offset Size Description (Table 01836) 00h WORD (call) size of following results buffer (max 65h) 02h BYTE number of connections 03h N BYTEs list of pipe statuses 00h open FEh incomplete FFh closed SeeAlso: #01831,#01835,#02108Top
INT 21 - Novell NetWare - MESSAGE SERVICES - BROADCAST TO CONSOLE AH = E1h subfn 09h DS:SI -> request buffer (see #01837) ES:DI -> reply buffer (see #01838) Return: AL = status (see #01834) Desc: send a one-line message to the system console on the default file server Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+ SeeAlso: AH=DEh/DL=04h,AH=E1h/SF=00h,AH=E1h/SF=01h,AH=E3h/SF=D1h SeeAlso: AX=F215h/SF=09h Format of NetWare "Broadcast to Console" request buffer: Offset Size Description (Table 01837) 00h WORD length of following data (max 3Eh) 02h BYTE 09h (subfunction "Broadcast to Console") 03h BYTE length of message (01h-3Ch) 04h N BYTEs message (no control characters or characters > 7Eh) SeeAlso: #01838 Format of NetWare reply buffer: Offset Size Description (Table 01838) 00h WORD (call) 0000h (no results returned) SeeAlso: #01837Top
INT 21 - OS/286, OS/386 - SET REAL PROCEDURE SIGNAL HANDLER AH = E2h ??? Return: ??? SeeAlso: AH=E0h"OS/286",AH=E1h"OS/286",AH=E6h"OS/286"Top
INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB AH = E2h AL = character Return: AL = 00h successful 01h buffer full (128 characters) SeeAlso: AH=E1h"DoubleDOS",AH=E3h"DoubleDOS",AH=E8h"DoubleDOS" SeeAlso: AH=F2h"DoubleDOS"Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY HANDLE AH = E2h subfn 00h DS:SI -> request buffer (see #01840) ES:DI -> reply buffer (see #01841) Return: AL = status (00h,98h,9Bh,9Ch) (see #01839) Desc: set the target handle to reference the directory specified by the source handle and the source path; both handles must refer to the same file server Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX the target handle is not changed if this function fails SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=12h,AH=E2h/SF=13h,AX=F216h/SF=00h (Table 01839) Values for NetWare function status: 00h successful 84h not permitted to create 8Ah not permitted to delete 8Bh not permitted to rename 8Ch not permitted to modify 98h nonexistent volume 9Bh invalid directory handle 9Ch invalid path 9Eh invalid filename 9Fh directory currently in use A0h directory not empty C6h no console rights FCh no such bindery object SeeAlso: #01834,#01866 Format of NetWare "Set Directory Handle" request buffer: Offset Size Description (Table 01840) 00h WORD length of following data (max 103h) 02h BYTE 00h (subfunction "Set Directory Handle") 03h BYTE directory handle of target 04h BYTE directory handle of source 05h BYTE length of source directory path (01h-FFh) 06h N BYTEs source directory path SeeAlso: #01841 Format of NetWare reply buffer: Offset Size Description (Table 01841) 00h WORD (call) 0000h (no results returned) SeeAlso: #01840Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY PATH AH = E2h subfn 01h DS:SI -> request buffer (see #01842) ES:DI -> reply buffer (see #01843) Return: AL = status (00h,9Bh) (see #01839) Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=E2h/SF=02h,AH=E2h/SF=03h,AH=E2h/SF=1Ah,AH=E9h,AX=F216h/SF=01h Format of NetWare "Get Directory Path" request buffer: Offset Size Description (Table 01842) 00h WORD 0002h (length of following data) 02h BYTE 01h (subfunction "Get Directory Path") 03h BYTE directory handle SeeAlso: #01843,#01844 Format of NetWare "Get Directory Path" reply buffer: Offset Size Description (Table 01843) 00h WORD (call) length of following data buffer 02h BYTE length of directory path (01h-FFh) 03h N BYTEs full directory path including volume SeeAlso: #01842,#01845Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY INFORMATION AH = E2h subfn 02h DS:SI -> request buffer (see #01844) ES:DI -> reply buffer (see #01845) Return: AL = status (00h,98h,9Bh,9Ch) (see #01839) Desc: get information about the first or next subdirectory of the specified directory Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=03h,AH=E2h/SF=19h,AX=F216h/SF=02h Format of NetWare "Scan Directory Information" request buffer: Offset Size Description (Table 01844) 00h WORD length of following data (max 104h) 02h BYTE 02h (subfunction "Scan Directory Information") 03h BYTE directory handle 04h WORD (big-endian) subdirectory number 0000h for first call, returned subdir number + 1 on next call 06h BYTE length of directory path 07h N BYTEs directory path SeeAlso: #01842,#01845 Format of NetWare "Scan Directory Information" reply buffer: Offset Size Description (Table 01845) 00h WORD (call) 001Ch (length of following data buffer) 02h 16 BYTEs subdirectory name 12h DWORD (big-endian) date and time of creation (see #01846) 16h DWORD (big-endian) object ID of owner 1Ah BYTE maximum directory rights (see #01849) 1Bh BYTE unused 1Ch WORD (big-endian) subdirectory number SeeAlso: #01843,#01844,#02111 at AX=F216h/SF=02h Bitfields for NetWare date and time: Bit(s) Description (Table 01846) 31-25 year-1980 24-21 month 20-16 day 15-11 hour 10-5 minute 4-0 secondTop
INT 21 - Novell NetWare - DIRECTORY SERVICES - GET EFFECTIVE DIRECTORY RIGHTS AH = E2h subfn 03h DS:SI -> request buffer (see #01847) ES:DI -> reply buffer (see #01848) Return: AL = status (00h,98h,9Bh) (see #01839) Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=02h,AX=F216h/SF=03h Format of NetWare "Get Effective Directory Rights (old)" request buffer: Offset Size Description (Table 01847) 00h WORD length of following data (max 102h) 02h BYTE 03h (subfunction "Get Effective Directory Rights (old)") 03h BYTE directory handle 04h BYTE length of directory path (00h-FFh) 05h N BYTEs directory path SeeAlso: #01848,#01850 Format of NetWare "Get Effective Directory Rights" reply buffer: Offset Size Description (Table 01848) 00h WORD (call) 0001h (length of following data buffer) 02h BYTE effective directory rights (see #01849) SeeAlso: #01847 Bitfields for NetWare directory rights: Bit(s) Description (Table 01849) 0 reading allowed 1 writing allowed 2 opens allowed 3 file creation allowed 4 deletion allowed 5 "parental" may create/delete subdirectories and grant/revoke trustee rights 6 directory search allowed 7 file attributes may be changed SeeAlso: #01848,#01850Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - MODIFY MAXIMUM RIGHTS MASK AH = E2h subfn 04h DS:SI -> request buffer (see #01850) ES:DI -> reply buffer (see #01851) Return: AL = status (00h,8Ch,98h,9Ch) (see #01839) Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=E2h/SF=03h,AH=E2h/SF=0Ah,AH=E2h/SF=0Dh,AX=F216h/SF=04h Format of NetWare "Modify Maximum Rights Mask" request buffer: Offset Size Description (Table 01850) 00h WORD length of following data (max 104h) 02h BYTE 04h (subfunction "Modify Maximum Rights Mask") 03h BYTE directory handle 04h BYTE rights to grant (see #01849) 05h BYTE rights to revoke (see #01849) 06h BYTE length of directory path (00h-FFh) 07h N BYTEs directory path Note: the rights specified at offset 05h are revoked first, and then the rights specified at offset 04h are added to the resulting rights mask SeeAlso: #01847,#01851 Format of NetWare reply buffer: Offset Size Description (Table 01851) 00h WORD (call) 0000h (no results returned) SeeAlso: #01850Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NUMBER AH = E2h subfn 05h DS:SI -> request buffer (see #01852) ES:DI -> reply buffer (see #01853) Return: AL = status (00h,98h) (see #01839) Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=05h,AH=E2h/SF=15h,AH=E3h/SF=E9h SeeAlso: AX=F216h/SF=05h Format of NetWare "Get Volume Number" request buffer: Offset Size Description (Table 01852) 00h WORD length of following data (max 12h) 02h BYTE 05h (subfunction "Get Volume Number") 03h BYTE length of volume name (01h-10h) 04h N BYTEs volume name SeeAlso: #01853,#02113 at AX=F216h/SF=05h Format of NetWare "Get Volume Number" reply buffer: Offset Size Description (Table 01853) 00h WORD (call) 0001h (length of following results buffer) 02h BYTE volume number SeeAlso: #01852,#02113 at AX=F216h/SF=05hTop
INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NAME AH = E2h subfn 06h DS:SI -> request buffer (see #01854) ES:DI -> reply buffer (see #01855) Return: AL = status (00h,98h) (see #01839) Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=05h,AH=E2h/SF=15h,AH=E2h/SF=1Ah SeeAlso: AH=E3h/SF=E9h,AX=F216h/SF=06h Format of NetWare "Get Volume Name" request buffer: Offset Size Description (Table 01854) 00h WORD 0002h (length of following data) 02h BYTE 06h (subfunction "Get Volume Name") 03h BYTE volume number SeeAlso: #01855,#02114 at AX=F216h/SF=06h Format of NetWare "Get Volume Name" reply buffer: Offset Size Description (Table 01855) 00h WORD (call) 0011h (length of following results buffer) 02h BYTE length of volume name 03h 16 BYTEs NUL-padded volume name SeeAlso: #01854,#02114 at AX=F216h/SF=06hTop
INT 21 - Novell NetWare - DIRECTORY SERVICES - CREATE DIRECTORY AH = E2h subfn 0Ah DS:SI -> request buffer (see #01856) ES:DI -> reply buffer (see #01857) Return: AL = status (00h,84h,98h,FCh) (see #01839) Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=39h,AH=E2h/SF=0Bh,AH=E2h/SF=0Fh,AX=F216h/SF=0Ah Format of NetWare "Create Directory" request buffer: Offset Size Description (Table 01856) 00h WORD length of following data (max 103h) 02h BYTE 0Ah (subfunction "Create Directory") 03h BYTE directory handle 04h BYTE maximum directory rights (see #01849) 05h BYTE length of directory path (00h-FFh) 06h N BYTEs directory path SeeAlso: #01857,#01858 Format of NetWare reply buffer: Offset Size Description (Table 01857) 00h WORD (call) 0000h (no data returned) SeeAlso: #01856,#01858Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE DIRECTORY AH = E2h subfn 0Bh DS:SI -> request buffer (see #01858) ES:DI -> reply buffer (see #01857) Return: AL = status (00h,8Ah,98h,9Bh,9Ch,9Fh,A0h) (see #01839) Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=3Ah,AH=E2h/SF=0Ah,AH=E2h/SF=0Fh,AX=F216h/SF=0Bh Format of NetWare "Delete Directory" request buffer: Offset Size Description (Table 01858) 00h WORD length of following data (max 103h) 02h BYTE 0Bh (subfunction "Delete Directory") 03h BYTE directory handle 04h BYTE unused 05h BYTE length of directory path (00h-FFh) 06h N BYTEs directory path SeeAlso: #01856,#01857Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY FOR TRUSTEES AH = E2h subfn 0Ch DS:SI -> request buffer (see #01859) ES:DI -> reply buffer (see #01860) Return: AL = status (00h,9Ch) (see also #01839) 9Ch no more trustees Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E2h/SF=0Dh,AH=E2h/SF=0Eh,AH=E3h/SF=47h,AX=F216h/SF=0Ch Format of NetWare "Scan Directory For Trustees" request buffer: Offset Size Description (Table 01859) 00h WORD length of following data (max 103h) 02h BYTE 0Ch (subfunction "Scan Directory For Trustees") 03h BYTE directory handle 04h BYTE sequence number 00h on first call, increment for each subsequent call 05h BYTE length of directory path (00h-FFh) 06h N BYTEs directory path SeeAlso: #01860,#01861,#02115 at AX=F216h/SF=0Ch Format of NetWare "Scan Directory For Trustees" reply buffer: Offset Size Description (Table 01860) 00h WORD (call) 0031h (length of following results buffer) 02h 16 BYTEs directory name 12h 4 BYTEs date and time of creation 16h DWORD (big-endian) object ID of owner 1Ah 5 DWORDs (big-endian) object IDs of Trustees 0 through 4 00000000h = end of group 2Eh 5 BYTEs directory rights for Trustees 0 through 4 (see #01849) SeeAlso: #01859,#01863,#02115 at AX=F216h/SF=0ChTop
INT 21 - Novell NetWare - DIRECTORY SERVICES - ADD TRUSTEE TO DIRECTORY AH = E2h subfn 0Dh DS:SI -> request buffer (see #01861) ES:DI -> reply buffer (see #01863) Return: AL = status (00h,8Ch,FCh) (see #01839) Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Eh,AH=E3h/SF=47h,AX=F216h/SF=0Dh Format of NetWare "Add Trustee To Directory" request buffer: Offset Size Description (Table 01861) 00h WORD length of following data (max 107h) 02h BYTE 0Dh (subfunction "Add Trustee To Directory") 03h BYTE directory handle 04h DWORD (big-endian) object ID of trustee 08h BYTE trustee directory rights (see #01849) 09h BYTE length of directory path (00h-FFh) 0Ah N BYTEs directory path SeeAlso: #01863Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE TRUSTEE FROM DIRECTORY AH = E2h subfn 0Eh DS:SI -> request buffer (see #01862) ES:DI -> reply buffer (see #01863) Return: AL = status (00h,98h,9Bh,9Ch) (see #01839) Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Dh,AX=F216h/SF=0Eh Format of NetWare "Delete Trustee From Directory" request buffer: Offset Size Description (Table 01862) 00h WORD length of following data (max 107h) 02h BYTE 0Eh (subfunction "Delete Trustee From Directory") 03h BYTE directory handle 04h DWORD (big-endian) object ID of trustee 08h BYTE unused 09h BYTE length of directory path (00h-FFh) 0Ah N BYTEs directory path SeeAlso: #01863 Format of NetWare reply buffer: Offset Size Description (Table 01863) 00h WORD (call) 0000h (no data returned) SeeAlso: #01862,#01864,#01865Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - RENAME DIRECTORY AH = E2h subfn 0Fh DS:SI -> request buffer (see #01864) ES:DI -> reply buffer (see #01863) Return: AL = status (00h,8Bh,9Bh,9Ch,9Eh) (see #01839) Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX directories SYS:LOGIN, SYS:MAIL, and SYS:PUBLIC must not be renamed SeeAlso: AH=56h,AH=E2h/SF=0Ah,AH=E2h/SF=0Bh,AX=F216h/SF=0Fh Format of NetWare "Rename Directory" request buffer: Offset Size Description (Table 01864) 00h WORD length of following data (max 111h) 02h BYTE 0Fh (subfunction "Rename Directory") 03h BYTE directory handle 04h BYTE length of directory path (00h-FFh) 05h N BYTEs directory path BYTE length of new directory name (01h-0Eh) N BYTEs new directory name SeeAlso: #01863Top
INT 21 - Novell NetWare - FILE SERVICES - PURGE ERASED FILES (OLD) AH = E2h subfn 10h DS:SI -> request buffer (see #01865) ES:DI -> reply buffer (see #01863) Return: AL = status (00h,C6h) (see #01866) Desc: purges files marked for deletion on the file server by the calling workstation Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=13h,AH=41h,AH=E2h/SF=11h,AH=E3h/SF=CEh,AX=F244h,AX=F216h/SF=10h Format of NetWare "Purge Erased Files" request buffer: Offset Size Description (Table 01865) 00h WORD 0001h (length of following data) 02h BYTE 10h (subfunction "Purge Erased Files") SeeAlso: #01863Top
INT 21 - Novell NetWare - FILE SERVICES - RESTORE ERASED FILE (OLD) AH = E2h subfn 11h DS:SI -> request buffer (see #01867) ES:DI -> reply buffer (see #01868) Return: AL = status (00h,98h,FFh) (see #01866) Desc: restores one file marked for deletion which has not yet been purged Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=13h,AH=41h,AH=E2h/SF=10h,AH=E3h/SF=CEh,AX=F244h (Table 01866) Values for NetWare function status: 00h successful 98h nonexistent volume 9Ch invalid path C6h no console rights FFh no more erased files SeeAlso: #01839,#01899 Format of NetWare "Restore Erased File" request buffer: Offset Size Description (Table 01867) 00h WORD length of following data (max 13h) 02h BYTE 11h (subfunction "Restore Erased File") 03h BYTE directory handle or 00h 04h BYTE length of volume name 05h N BYTEs volume name (including colon) Note: if both a directory handle and a volume name are specified, the volume name overrides the handle SeeAlso: #01868,#02116 Format of NetWare "Restore Erased File" reply buffer: Offset Size Description (Table 01868) 00h WORD (call) 001Eh (size of following results buffer) 02h 15 BYTEs ASCIZ name of erased file 11h 15 BYTEs ASCIZ name under which file was restored SeeAlso: #01867,#02116Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC PERMANENT DIRECTORY HANDLE AH = E2h subfn 12h DS:SI -> request buffer (see #01869) ES:DI -> reply buffer (see #01870) Return: AL = status (00h,98h,9Ch) (see #01866) Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=E2h/SF=00h,AH=E2h/SF=13h,AH=E2h/SF=14h,AX=F216h/SF=12h Format of NetWare "Allocate Permanent Directory Handle" request buffer: Offset Size Description (Table 01869) 00h WORD length of following data (max 103h) 02h BYTE 12h (subfunction "Allocate Permanent Directory Handle") 03h BYTE directory handle 04h BYTE drive ('A'-'Z') 05h BYTE length of directory path 06h N BYTEs directory path SeeAlso: #01870,#01871,#02118 Format of NetWare reply buffer: Offset Size Description (Table 01870) 00h WORD (call) 0002h (size of following results buffer) 02h BYTE new directory handle 03h BYTE effective directory rights (see #01849) SeeAlso: #01869,#02118Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC TEMPORARY DIRECTORY HANDLE AH = E2h subfn 13h DS:SI -> request buffer (see #01871) ES:DI -> reply buffer (see #01870) Return: AL = status (00h,98h,9Ch) (see #01866) Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX this call is the same as AH=E2h/SF=12h except that the directory handle will be automatically deallocated when the calling application executes an End of Job call (AH=D6h) or terminates SeeAlso: AH=D6h,AH=E2h/SF=00h,AH=E2h/SF=12h,AH=E2h/SF=14h,AH=E2h/SF=16h SeeAlso: AX=F216h/SF=13h Format of NetWare "Allocate Temporary Directory Handle" request buffer: Offset Size Description (Table 01871) 00h WORD length of following data (max 103h) 02h BYTE 13h (subfunction "Allocate Temporary Directory Handle") 03h BYTE directory handle 04h BYTE drive ('A'-'Z') 05h BYTE length of directory path 06h N BYTEs directory path SeeAlso: #01869,#01872Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - DEALLOCATE DIRECTORY HANDLE AH = E2h subfn 14h DS:SI -> request buffer (see #01872) ES:DI -> reply buffer (see #01873) Return: AL = status (00h,9Bh) (see #01839) Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=13h,AX=F216h/SF=14h Format of NetWare "Deallocate Directory Handle" request buffer: Offset Size Description (Table 01872) 00h WORD 0002h (length of following data) 02h BYTE 14h (subfunction "Deallocate Directory Handle") 03h BYTE directory handle SeeAlso: #01873 Format of NetWare reply buffer: Offset Size Description (Table 01873) 00h WORD (call) 0000h (no returned data) SeeAlso: #01872Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH HANDLE AH = E2h subfn 15h DS:SI -> request buffer (see #01874) ES:DI -> reply buffer (see #01875) Return: AL = status 00h successful Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=06h,AH=E2h/SF=19h,AH=E3h/SF=E9h SeeAlso: AX=F216h/SF=15h Format of NetWare "Get Volume Info with Handle" request buffer: Offset Size Description (Table 01874) 00h WORD 0002h (length of following data) 02h BYTE 15h (subfunction "Get Volume Info With Handle") 03h BYTE directory handle SeeAlso: #01875,#02119 Format of NetWare "Get Volume Info with Handle" reply buffer: Offset Size Description (Table 01875) 00h WORD (call) 001Ch (length of following results buffer) 02h WORD (big-endian) sectors per block 04h WORD (big-endian) total blocks on volume 06h WORD (big-endian) blocks available on volume 08h WORD (big-endian) total directory slots 0Ah WORD (big-endian) directory slots available 0Ch 16 BYTEs NUL-padded volume name 1Ch WORD (big-endian) flag: volume removable if nonzero SeeAlso: #01874,#02119Top
INT 21 u - Novell NetWare - DIRECTORY SERVICES - ALLOC SPECIAL TEMP DIR HANDLE AH = E2h subfn 16h DS:SI -> request buffer (see #01876) ES:DI -> reply buffer (see #01873) Return: AL = status Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX, but is not described in _NetWare_System_Calls--DOS_ SeeAlso: AH=E2h/SF=13h,AH=E2h/SF=14h,AX=F216h/SF=16h Format of NetWare "Alloc Special Temporary Directory Handle" request buffer: Offset Size Description (Table 01876) 00h WORD length of following data 02h BYTE 16h (subfunction "Allocate Special Temporary Directory Handle") 03h BYTE source directory handle 04h BYTE drive name ('A'-'Z') 05h BYTE path length 06h N BYTEs directory path SeeAlso: #01873Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - SAVE DIRECTORY HANDLE AH = E2h subfn 17h DS:SI -> request buffer (see #01877) ES:DI -> reply buffer (see #01878) Return: AL = status 00h successful else network error code Note: this function is supported by Advanced NetWare 2.0+ and Alloy NTNX SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=17h,AX=F216h/SF=17h Format of NetWare "Save Directory Handle" request buffer: Offset Size Description (Table 01877) 00h WORD 0002h (length of following data) 02h BYTE 17h (subfunction "Save Directory Handle") 03h BYTE directory handle SeeAlso: #01878,#01879 Format of NetWare "Save Directory Handle" reply buffer: Offset Size Description (Table 01878) 00h WORD (call) 0010h (length of following results buffer) 02h 16 BYTEs save buffer SeeAlso: #01877,#01880Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - RESTORE DIRECTORY HANDLE AH = E2h subfn 18h DS:SI -> request buffer (see #01879) ES:DI -> reply buffer (see #01880) Return: AL = status 00h successful else network error code Desc: restore a previously saved directory handle to reproduce an executing environment, possibly on a different execution site Note: this function is supported by Advanced NetWare 2.0+ and Alloy NTNX SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=17h,AX=F216h/SF=18h Format of NetWare "Restore Directory Handle" request buffer: Offset Size Description (Table 01879) 00h WORD 0011h (length of following data) 02h BYTE 18h (subfunction "Restore Directory Handle") 03h 16 BYTEs save buffer SeeAlso: #01877,#01880 Format of NetWare "Restore Directory Handle" reply buffer: Offset Size Description (Table 01880) 00h WORD (call) 0002h (length of following results buffer) 02h BYTE new directory handle 03h BYTE effective rights (see #01849) SeeAlso: #01879Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY INFORMATION AH = E2h subfn 19h DS:SI -> request buffer (see #01881) ES:DI -> reply buffer (see #01882) Return: AL = status (00h,9Bh,9Ch) (see #01839) Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E2h/SF=02h,AH=E2h/SF=0Fh,AX=F216h/SF=19h Format of NetWare "Set Directory Information" request buffer: Offset Size Description (Table 01881) 00h WORD length of following data (max 10Bh) 02h BYTE 19h (subfunction "Set Directory Information") 03h BYTE directory handle 04h DWORD (big-endian) date and time of creation 08h DWORD (big-endian) object ID of owner 0Ch BYTE maximum directory rights (see #01849) 0Dh BYTE length of directory path 0Eh N BYTEs directory path SeeAlso: #01882 Format of NetWare reply buffer: Offset Size Description (Table 01882) 00h WORD (call) 0000h (no results returned) SeeAlso: #01881Top
INT 21 - Novell NetWare - FILE SERVER - GET PATH FROM DIRECTORY ENTRY AH = E2h subfn 1Ah DS:SI -> request buffer (see #01883) ES:DI -> reply buffer (see #01884) Return: AL = status 00h successful Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=06h,AH=E3h/SF=D7h,AX=F216h/SF=1Ah Format of NetWare "Get Path from Directory Entry" request buffer: Offset Size Description (Table 01883) 00h WORD 0004h (length of following data) 02h BYTE 1Ah (subfunction "Get Path From Directory Entry") 03h BYTE volume number (00h-1Fh) 04h WORD (big-endian) directory entry number SeeAlso: #01884,#02122 Format of NetWare "Get Path from Directory Entry" reply buffer: Offset Size Description (Table 01884) 00h WORD (call) size of following results record (max 200h) 02h 256 BYTEs path SeeAlso: #01883,#02122Top
INT 21 - OS/286, OS/386 - ISSUE REAL INTERRUPT AH = E3h AL = interrupt number ??? Return: ??? Note: protected mode only??? SeeAlso: AH=E1h"OS/286",INT 31/AX=0300hTop
INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB AH = E3h AL = character Return: AL = status 00h successful 01h buffer full (128 characters) SeeAlso: AH=E1h"DoubleDOS",AH=E2h"DoubleDOS",AH=E8h"DoubleDOS" SeeAlso: AH=F3h"DoubleDOS"Top
INT 21 - Novell NetWare - CONNECTION CONTROL AH = E3h DS:SI -> request buffer (see #01885) ES:DI -> reply buffer (see #01886) Return: AL = status 00h successful else error code Note: supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=E3h/SF=0Ah,AH=E3h/SF=32h,AH=E3h/SF=64h,AH=E3h/SF=C8h Format of NetWare request buffer: Offset Size Description (Table 01885) 00h WORD length of following data 02h BYTE subfunction number (see also AH=E3h/SF=01h,AH=E3h/SF=02h) 00h login 03h map object to number 04h map number to object 05h get station's logged information 06h get station's root mask (obsolete) 07h map group name to number 08h map number to group name 09h get memberset M of group G var depends on subfunction Notes: the above subfunctions are not described in _NetWare_System_Calls--DOS_ see separate entries below for other subfunctions SeeAlso: #01886,#01887,#01890 Format of NetWare reply buffer: Offset Size Description (Table 01886) 00h WORD (call) length of following buffer space for results var depends on subfunction SeeAlso: #01885 Format of NetWare object property: Offset Size Description (Table 01887) 00h 1-16 BYTEs property name (see also #01888) N BYTE flags bit 0: property is dynamic bit 1: property is a set rather than an item N+1 BYTE security levels (see #01889) ??? (Table 01888) Values for names of well-known NetWare properties: ACCOUNT_BALANCE ACCOUNT_SERVERS GROUP_MEMBERS GROUPS_I'M_IN IDENTIFICATION user's name LOGIN_CONTROL NET_ADDRESS OPERATORS PASSWORD SECURITY_EQUALS (Table 01889) Values for NetWare security levels: 00h "anyone" everyone may access 01h "logged" only logged-in clients may access 02h "object" only clients logged-in with object's name, type, and password 03h "supervisor" only clients logged-in with supervisor privileges 04h "NetWare" only NetWare may access Note: the above values are stored in a nybble; the high half-byte is write access and the low half-byte is read access (Table 01890) Values for NetWare object type: 0000h unknown 0001h user 0002h user group 0003h print queue / print server 0004h file server 0005h job server 0006h gateway 0007h print server 0008h archive queue 0009h archive server 000Ah job queue 000Bh administration 0021h NAS SNA gateway 0024h remote bridge server??? 0026h remote bridge server 0027h TCPIP gateway 002Dh time synchronization server 002Eh archive server dynamic SAP 0047h advertising print server 0053h print queue uwer 0048h-8000h reserved FFFFh wild (used only for finding objects)Top
INT 21 - Novell NetWare - CONNECTION SERVICES - CHANGE USER PASSWORD (OLD) AH = E3h subfn 01h DS:SI -> request buffer (see #01891) ES:DI -> reply buffer (see #01895) Return: AL = status 00h successful else error code Note: supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=E3h/SF=0Ah,AH=E3h/SF=32h,AH=E3h/SF=64h,AH=E3h/SF=C8h Format of NetWare "Change User Password (old)" request packet: Offset Size Description (Table 01891) 00h WORD length of following data 02h BYTE 01h (subfunction "Change User Password (old)") 03h BYTE length of user name 04h N BYTEs user name BYTE length of old password N BYTEs old password BYTE length of new password N BYTEs new password SeeAlso: #01895Top
INT 21 - Novell NetWare - CONNECTION SERVICES - CHANGE USER PASSWORD (OLD) AH = E3h subfn 02h DS:SI -> request buffer (see #01892) ES:DI -> reply buffer (see #01893) Return: AL = status 00h successful else error code Note: supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=E3h/SF=01h,AH=E3h/SF=03h,AH=E3h/SF=0Ah Format of NetWare "Get User Connection List (old)" request packet: Offset Size Description (Table 01892) 00h WORD length of following data 02h BYTE 02h (subfunction "Get User Connection List (old)") 03h BYTE length of user name 04h N BYTEs user name SeeAlso: #01893,#02162 Format of NetWare "Get User Connection List (old)" reply packet: Offset Size Description (Table 01893) 00h WORD (call) length of following buffer 02h BYTE length of connection list 03h BYTE number of bytes in connection list 04h N BYTEs list of connection numbers in use by user SeeAlso: #01892,#02162Top
INT 21 - Novell NetWare - CONNECTION SERVICES - MAP OBJECT TO NUMBER (OLD) AH = E3h subfn 03h DS:SI -> request buffer ES:DI -> reply buffer Return: AL = status 00h successful else error code Note: supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=E3h/SF=01h,AH=E3h/SF=02h,AH=E3h/SF=0AhTop
INT 21 - Novell NetWare - CONNECTION SERVICES - ENTER LOGIN AREA AH = E3h subfn 0Ah DS:SI -> request buffer (see #01894) ES:DI -> reply buffer (see #01895) Return: AL = status 00h successful Desc: change the login directory for the calling workstation Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=D7h,AH=E3h/SF=14h Format of NetWare "Enter Login Area" request buffer: Offset Size Description (Table 01894) 00h WORD length of following data (max 102h) 02h BYTE 0Ah (subfunction "Enter Login Area") 03h BYTE number of local drives 04h BYTE length of subdirectory name (00h-FFh) 05h N BYTEs name of subdirectory under SYS:LOGIN where to find the login utility SeeAlso: #01895 Format of NetWare reply buffer: Offset Size Description (Table 01895) 00h WORD (call) 0000h (no data returned) SeeAlso: #01891,#01894,#01898Top
INT 21 U - Novell NetWare - VERIFY NETWORK SERIAL NUMBER AH = E3h subfn 0Ch DS:SI -> request buffer (see #01896) ES:DI -> reply buffer (see #01897) Return: AL = status 00h successful Note: if the network serial number to be verified is correct, the reply buffer will contain the corresponding application number SeeAlso: AH=E3h/SF=12h,AX=F217h/SF=0Ch Format of NetWare "Verify Network Serial Number" request buffer: Offset Size Description (Table 01896) 00h WORD 0005h (length of following data) 02h BYTE 0Ch (subfunction "Verify Network Serial Number") 03h DWORD (big-endian) network serial number to verify SeeAlso: #01897,#02163 Format of NetWare "Verify Network Serial Number" reply buffer: Offset Size Description (Table 01897) 00h WORD (call) 0002h (size of following results buffer) 02h WORD (big-endian) application number SeeAlso: #01896,#02163Top
INT 21 - Novell NetWare - MESSAGE SERVICES - LOG NETWORK MESSAGE AH = E3h subfn 0Dh DS:SI -> request buffer (see #01898) ES:DI -> reply buffer (see #01895) Return: AL = status 00h successful Desc: append a line to the default file server's NET$LOG.MSG file Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=E1h/SF=09h Format of NetWare "Log Network Message" request buffer: Offset Size Description (Table 01898) 00h WORD length of following data (max 52h) 02h BYTE 0Dh (subfunction "Log Network Message") 03h BYTE length of message (01h-50h) 04h N BYTEs message (no control characters or characters > 7Eh) SeeAlso: #01895Top
INT 21 - Novell NetWare - FILE SERVER - GET DISK UTILIZATION AH = E3h subfn 0Eh DS:SI -> request buffer (see #01900) ES:DI -> reply buffer (see #01901) Return: AL = status (00h,98h,F2h) (see #01899) Notes: this function is supported by Advanced NetWare 2.1+ the caller must have bindery object read privileges SeeAlso: AH=E3h/SF=11h,AH=E3h/SF=D6h,AH=E3h/SF=D9h,AH=E3h/SF=E6h,AH=E3h/SF=E9h SeeAlso: AX=F217h/SF=0Eh (Table 01899) Values for NetWare function status: 00h successful 98h nonexistent volume F2h not permitted to read object SeeAlso: #01866,#01902 Format of NetWare "Get Disk Utilization" request buffer: Offset Size Description (Table 01900) 00h WORD 0005h (length of following data) 02h BYTE 0Eh (subfunction "Get Disk Utilization") 03h BYTE volume number (00h-1Fh) 04h DWORD (big-endian) object ID SeeAlso: #01901,#02164 Format of NetWare "Get Disk Utilization" reply buffer: Offset Size Description (Table 01901) 00h WORD (call) 000Bh (size of following results buffer) 02h BYTE volume number (00h-1Fh) 03h DWORD (big-endian) object ID 07h WORD (big-endian) directories used by object 09h WORD (big-endian) files created by object 0Bh WORD (big-endian) disk blocks used by object-created files SeeAlso: #01900,#02164Top
INT 21 - Novell NetWare - FILE SERVICES - SCAN FILE INFORMATION AH = E3h subfn 0Fh DS:SI -> request buffer (see #01903) ES:DI -> reply buffer (see #01904) Return: AL = status (see #01902) Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=B6h,AH=E3h/SF=10h,AX=F217h/SF=0Fh (Table 01902) Values for NetWare function status: 00h successful 89h not permitted to search directory FFh no more matching files SeeAlso: #01899,#01920 Format of NetWare "Scan File Information" request buffer: Offset Size Description (Table 01903) 00h WORD length of following data (max 105h) 02h BYTE 0Fh (subfunction "Scan File Information") 03h WORD (big-endian) sequence number FFFFh on first call 05h BYTE directory handle or 00h 06h BYTE search attributes (see #01420 at AX=4301h) 07h BYTE length of filespec 08h N BYTEs ASCIZ uppercase filespec SeeAlso: #01904,#02165 Format of NetWare "Scan File Information" reply buffer: Offset Size Description (Table 01904) 00h WORD (call) 005Eh (size of following results buffer) 02h WORD next sequence number (place in request buffer for next call) 04h 14 BYTEs ASCIZ filename 12h BYTE file attributes (see #01420 at AX=4301h) 13h BYTE extended file attributes (see #01804 at AH=B6h) 14h DWORD (big-endian) file size in bytes 18h WORD (big-endian) file's creation date (see #01666 at AX=5700h) 1Ah WORD (big-endian) date of last access (see #01665 at AX=5700h) 1Ch DWORD (big-endian) date and time of last update (see #01846) 20h DWORD (big-endian) object ID of owner 24h DWORD (big-endian) date and time last archived (see #01846) 28h 55 BYTEs reserved Note: the official documentation erroneously lists the field at offset 04h as 15 bytes and thus shifts the remaining fields by one byte SeeAlso: #01903,#02165Top
INT 21 - Novell NetWare - FILE SERVICES - SET FILE INFORMATION AH = E3h subfn 10h DS:SI -> request buffer (see #01905) ES:DI -> reply buffer (see #01906) Return: AL = status 00h successful Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX the caller must have modify privileges on the directory containing the file SeeAlso: AH=B6h,AH=E3h/SF=0Fh,AX=F217h/SF=10h Format of NetWare "Set File Information" request buffer: Offset Size Description (Table 01905) 00h WORD length of following data (max 151h) 02h BYTE 10h (subfunction "Set File Information") 03h BYTE file attributes (see #01420 at AX=4301h) 04h BYTE extended file attributes (see #01804 at AH=B6h) 05h 4 BYTEs reserved 09h WORD (big-endian) file's creation date (see #01666 at AX=5700h) 0Bh WORD (big-endian) date of last access (see #01665 at AX=5700h) 0Dh DWORD (big-endian) date and time of last update (see #01846) 11h DWORD (big-endian) object ID of owner 15h DWORD (big-endian) date and time last archived (see #01846) 19h 56 BYTEs reserved 51h BYTE directory handle or 00h 52h BYTE search attributes (see #01420 at AX=4301h) 53h BYTE length of filename 54h N BYTEs filename SeeAlso: #01906 Format of NetWare reply buffer: Offset Size Description (Table 01906) 00h WORD (call) 0000h (no results returned) SeeAlso: #01905Top
INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER INFORMATION AH = E3h subfn 11h DS:SI -> request buffer (see #01907) ES:DI -> reply buffer (see #01908) Return: AL = status 00h successful Desc: determine the version of software installed on the file server and how it is configured Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=12h,AH=E3h/SF=CDh,AH=E3h/SF=D3h,AH=E3h/SF=E7h SeeAlso: AH=E7h"Novell",AX=F217h/SF=11h Format of NetWare "Get File Server Information" request buffer: Offset Size Description (Table 01907) 00h WORD 0001h (length of following data) 02h BYTE 11h (subfunction "Get File Server Information") SeeAlso: #01908,#02166 at AX=F217h/SF=11h Format of NetWare "Get File Server Information" reply buffer: Offset Size Description (Table 01908) 00h WORD (call) 0080h (size of following results buffer) 02h 48 BYTEs server's name 32h BYTE NetWare version 33h BYTE NetWare subversion (0-99) 34h WORD (big-endian) number of connections supported NetWare 4.01 reportedly returns maximum simulataneously-used connections 36h WORD (big-endian) number of connections in use 38h WORD (big-endian) maximum connected volumes ---Advanced NetWare 2.1+ --- 3Ah BYTE operating system revision number 3Bh BYTE fault tolerance (SFT) level 3Ch BYTE TTS level 3Dh WORD (big-endian) maximum simultaneously-used connections NetWare 4.01 reportedly returns number of connections in use 3Fh BYTE accounting version 40h BYTE VAP version 41h BYTE queueing version 42h BYTE print server version 43h BYTE virtual console version 44h BYTE security restrictions level 45h BYTE internetwork bridge version 46h 60 BYTEs reserved SeeAlso: #01907,#02166Top
INT 21 - Novell NetWare - GET NETWORK SERIAL NUMBER AH = E3h subfn 12h AL = 00h BX = CX = DX = 0000h DS:SI -> request buffer (see #01909) ES:DI -> reply buffer (see #01910) Return: AL = status 00h successful Desc: return the serial number and application number for the software installed on the file server Notes: this function is supported by Advanced NetWare 2.1+ reportedly, the workstation crashes if AL,BX,CX, and DX are not all zero SeeAlso: AH=E3h/SF=0Ch,AH=E3h/SF=11h,AX=F217h/SF=12h Format of NetWare "Get Serial Number" request buffer: offset size description (Table 01909) 00h WORD 0001h (length of following data) 02h BYTE 12h (subfunction "Get Serial Number") SeeAlso: #01910,#02167 Format of NetWare "Get Serial Number" reply buffer: offset size description (Table 01910) 00h WORD (call) 0006h (size of following results buffer) 02h 4 BYTEs (big-endian) NetWare server serial number 06h 2 BYTEs (big-endian) NetWare application serial number SeeAlso: #01909,#02167Top
INT 21 - Novell NetWare - CONNECTION SERVICES - GET INTERNET ADDRESS (OLD) AH = E3h subfn 13h DS:SI -> request buffer (see #01911) ES:DI -> reply buffer (see #01912) Return: AL = status 00h successful Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=DCh"NetWare",AH=E3h/SF=16h,AH=EEh"NetWare",AX=F217h/SF=13h Format of NetWare "Get Internet Address (old)" request buffer: Offset Size Description (Table 01911) 00h WORD 0002h (length of following data) 02h BYTE 13h (subfunction "Get Internet Address") 03h BYTE logical connection number (01h-64h) SeeAlso: #01912,#02168 Format of NetWare "Get Internet Address (old)" reply buffer: Offset Size Description (Table 01912) 00h WORD (call) 000Ch (length of following results buffer) 02h 4 BYTEs network number 06h 6 BYTEs physical node address 0Ch 2 BYTEs socket number SeeAlso: #01911,#02168 at AX=F217h/SF=13hTop
INT 21 - Novell NetWare - CONNECTION SERVICES - LOGIN TO FILE SERVER AH = E3h subfn 14h DS:SI -> request buffer (see #01913) ES:DI -> reply buffer (see #01914) Return: AL = status 00h successful Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=D7h"NetWare",AH=F1h"NetWare",AX=F217h/SF=14h Format of NetWare "Login to File Server" request buffer: Offset Size Description (Table 01913) 00h WORD length of following data (max B3h) 02h BYTE 14h (subfunction "Login To File Server") 03h WORD (big-endian) type of object 05h BYTE length of object's name (01h-2Fh) 06h N BYTEs object's name BYTE length of password N BYTEs password SeeAlso: #01914 Format of NetWare reply buffer: Offset Size Description (Table 01914) 00h WORD (call) 0000h (no data returned) SeeAlso: #01913Top
INT 21 - Novell NetWare - CONNECTION SERVICES - GET OBJECT CONNECTION LIST(OLD) AH = E3h subfn 15h DS:SI -> request buffer (see #01915) ES:DI -> reply buffer (see #01916) Return: AL = status 00h successful Desc: this function retrieves a list indicating the connection numbers under which a bindery object is logged into the default file server Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=DCh"NetWare",AH=E3h/SF=16h,AX=F217h/SF=15h Format of NetWare "Get Object Connection Numbers" request buffer: Offset Size Description (Table 01915) 00h WORD length of following data (max 33h) 02h BYTE 15h (subfunction "Get Object Connection Numbers") 03h WORD (big-endian) type of object 05h BYTE length of object's name (01h-2Fh) 06h N BYTEs object's name SeeAlso: #01916,#02169 Format of NetWare "Get Object Connection Numbers" reply buffer: Offset Size Description (Table 01916) 00h WORD (call) length of following results buffer (max 65h) 02h BYTE number of connections 03h N BYTEs connection list SeeAlso: #01915,#02169Top
INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION INFORMATION AH = E3h subfn 16h DS:SI -> request buffer (see #01917) ES:DI -> reply buffer (see #01918) Return: AL = status 00h successful Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=D7h,AH=DCh"NetWare",AH=E3h/SF=14h Format of NetWare "Get Connection Information" request buffer: Offset Size Description (Table 01917) 00h WORD 0002h (length of following data) 02h BYTE 16h (subfunction "Get Connection Information") 03h BYTE logical connection number (01h-64h) Format of NetWare "Get Connection Information" reply buffer: Offset Size Description (Table 01918) 00h WORD (call) 003Eh (length of following results buffer) 02h DWORD (big-endian) object ID for object logged in on the connection 00000000h if no object logged in 06h WORD (big-endian) type of object 08h 48 BYTEs name of object 38h 7 BYTEs login time (see #01919) Note: much of the Novell documentation incorrectly states the reply buffer length as 3Fh instead of 40h, which corresponds to a results length of 3Dh (61) bytes instead of the correct 3Eh (62) bytes Format of NetWare login time: Offset Size Description (Table 01919) 00h BYTE year (80-99 = 1980-1999, 00-79 = 2000-2079) 01h BYTE month (1-12) 02h BYTE day (1-31) 03h BYTE hour (0-23) 04h BYTE minute (0-59) 05h BYTE second (0-59) 06h BYTE day of week (0 = Sunday)Top
INT 21 - Novell NetWare - BINDERY SERVICES - CREATE BINDERY OBJECT AH = E3h subfn 32h DS:SI -> request buffer (see #01921) ES:DI -> reply buffer (see #01922) Return: AL = status (see #01920) Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E3h/SF=33h,AH=E3h/SF=34h,AH=E3h/SF=38h,AH=E3h/SF=39h SeeAlso: AX=F217h/SF=32h (Table 01920) Values for NetWare function status: 00h successful 96h server out of memory EEh object already exists EFh invalid name F0h wildcard not allowed F1h invalid bindery security level F3h not permitted to rename object F4h not permitted to delete objects F5h not permitted to create objects FCh no such object FEh server bindery locked FFh bindery failure SeeAlso: #01902,#01927 Format of NetWare "Create Bindery Object" request buffer: Offset Size Description (Table 01921) 00h WORD length of following data (max 35h) 02h BYTE 32h (subfunction "Create Bindery Object") 03h BYTE object flag (00h static, 01h dynamic) 04h BYTE object security levels 05h WORD (big-endian) type of object 07h BYTE length of object's name 08h N BYTEs object's name SeeAlso: #01922 Format of NetWare reply buffer: Offset Size Description (Table 01922) 00h WORD 0000h (no data returned) SeeAlso: #01921,#01923,#01924Top
INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT AH = E3h subfn 33h DS:SI -> request buffer (see #01923) ES:DI -> reply buffer (see #01922) Return: AL = status (see #01920) Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=34h,AX=F217h/SF=33h Format of NetWare "Delete Bindery Object" request buffer: Offset Size Description (Table 01923) 00h WORD length of following data (max 33h) 02h BYTE 33h (subfunction "Delete Bindery Object") 03h WORD (big-endian) type of object 05h BYTE length of object's name (01h-2Fh) 06h N BYTEs object's name SeeAlso: #01922Top
INT 21 - Novell NetWare - BINDERY SERVICES - RENAME BINDERY OBJECT AH = E3h subfn 34h DS:SI -> request buffer (see #01924) ES:DI -> reply buffer (see #01922) Return: AL = status (see #01920) Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=33h,AX=F217h/SF=34h Format of NetWare "Rename Bindery Object" request buffer: Offset Size Description (Table 01924) 00h WORD length of following data (max 63h) 02h BYTE 34h (subfunction "Rename Bindery Object") 03h WORD (big-endian) type of object 05h BYTE length of object's name (01h-2Fh) 06h N BYTEs object's name BYTE length of new name (01h-2Fh) N BYTEs new name SeeAlso: #01922Top
INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT ID AH = E3h subfn 35h DS:SI -> request buffer (see #01925) ES:DI -> reply buffer (see #01926) Return: AL = status (00h,96h,FCh,FEh,FFh) (see #01927) Notes: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX the requesting workstation must be logged into the file server with read access to the bindery object SeeAlso: AH=E3h/SF=36h,AH=E3h/SF=44h,AX=F217h/SF=35h Format of NetWare "Get Bindery Object ID" request buffer: Offset Size Description (Table 01925) 00h WORD length of following data (max 33h) 02h BYTE 35h (subfunction "Get Bindery Object ID") 03h WORD (big-endian) type of object 05h BYTE length of object's name 06h N BYTEs object's name SeeAlso: #01926,#02184 Format of NetWare "Get Bindery Object ID" reply buffer: Offset Size Description (Table 01926) 00h WORD (call) 0036h (length of following buffer space) 02h DWORD (big-endian) object ID 06h WORD (big-endian) type of object 08h 48 BYTEs object name SeeAlso: #01925,#02184 at AX=F217h/SF=35hTop
INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT NAME AH = E3h subfn 36h DS:SI -> request buffer (see #01928) ES:DI -> reply buffer (see #01929) Return: AL = status (see #01927) Notes: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX the requesting workstation must be logged into the file server with read access to the bindery object SeeAlso: AH=E3h/SF=35h,AH=E3h/SF=44h,AX=F217h/SF=36h (Table 01927) Values for NetWare function status: 00h successful 96h server out of memory EFh invalid name F0h wildcard not allowed FCh no such object FEh server bindery locked FFh bindery failure SeeAlso: #01920,#01933 Format of NetWare "Get Bindery Object Name" request buffer: Offset Size Description (Table 01928) 00h WORD 0005h (length of following data) 02h BYTE 36h (subfunction "Get Bindery Object Name") 03h DWORD (big-endian) object ID SeeAlso: #01929,#02185 at AX=F217h/SF=36h Format of NetWare "Get Bindery Object Name" reply buffer: Offset Size Description (Table 01929) 00h WORD (call) 0036h (length of following buffer space) 02h DWORD (big-endian) object ID 06h WORD (big-endian) type of object 08h 48 BYTEs object name SeeAlso: #01928,#02185Top
INT 21 - Novell NetWare - BINDERY SERVICES - SCAN BINDERY OBJECT AH = E3h subfn 37h DS:SI -> request buffer (see #01930) ES:DI -> reply buffer (see #01931) Return: AL = status (see #01927) Notes: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX the requesting workstation must be logged into the file server with read access to the bindery object SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=33h,AH=E3h/SF=38h,AH=E3h/SF=3Ch SeeAlso: AX=F217h/SF=37h Format of NetWare "Scan Bindery Object" request buffer: Offset Size Description (Table 01930) 00h WORD length of following data (max 37h) 02h BYTE 37h (subfunction "Scan Bindery Object") 03h DWORD (big-endian) last object ID 07h WORD (big-endian) type of object 09h BYTE length of object's name 0Ah N BYTEs object's name SeeAlso: #01931,#02186 Format of NetWare "Scan Bindery Object" reply buffer: Offset Size Description (Table 01931) 00h WORD (call) 0039h (length of following buffer space) 02h DWORD (big-endian) object ID FFFFFFFFh for first call 06h WORD (big-endian) type of object 08h 48 BYTEs object name (counted string) 38h BYTE object flag (00h static, 01h dynamic) 39h BYTE object's security levels 3Ah BYTE object properties flag (00h no, FFh yes) SeeAlso: #01930,#02186Top
INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT SECURITY AH = E3h subfn 38h DS:SI -> request buffer (see #01932) ES:DI -> reply buffer (see #01935) Return: AL = status (00h,96h,F0h,F1h,FBh,FCh,FEh,FFh) (see #01933) Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=3Bh,AX=F217h/SF=38h Format of NetWare "Change Bindery Object Security" request buffer: Offset Size Description (Table 01932) 00h WORD length of following data (max 34h) 02h BYTE 38h (subfunction "Change Bindery Object Security") 03h BYTE new security levels 04h WORD (big-endian) type of object 06h BYTE length of object's name (01h-2Fh) 07h N BYTEs object name Note: the object type may not be WILD (FFFFh) SeeAlso: #01935Top
INT 21 - Novell NetWare - BINDERY SERVICES - CREATE PROPERTY AH = E3h subfn 39h DS:SI -> request buffer (see #01934) ES:DI -> reply buffer (see #01935) Return: AL = status (see #01933) Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=3Bh,AX=F217h/SF=39h (Table 01933) Values for NetWare function status: 00h successful 96h server out of memory EDh property already exists EFh invalid name F0h wildcard not allowed F1h invalid bindery security level F6h not permitted to delete properties F7h not permitted to create properties FBh no such property FCh no such object FEh server bindery locked FFh bindery failure SeeAlso: #01927,#01937 Format of NetWare "Create Property" request buffer: Offset Size Description (Table 01934) 00h WORD length of following data (max 45h) 02h BYTE 39h (subfunction "Create Property") 03h WORD (big-endian) type of object 05h BYTE length of object's name (01h-2Fh) 06h N BYTEs object's name BYTE property flags BYTE property security levels BYTE length of property's name (01h-0Fh) N BYTEs property's name SeeAlso: #01935 Format of NetWare reply buffer: Offset Size Description (Table 01935) 00h WORD (call) 0000h (no data returned) SeeAlso: #01932,#01935,#01936Top
INT 21 - Novell NetWare - BINDERY SERVICES - DELETE PROPERTY AH = E3h subfn 3Ah DS:SI -> request buffer (see #01936) ES:DI -> reply buffer (see #01935) Return: AL = status (see #01933) Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=39h,AX=F217h/SF=3Ah Format of NetWare "Delete Property" request buffer: Offset Size Description (Table 01936) 00h WORD length of following data (max 43h) 02h BYTE 3Ah (subfunction "Delete Property") 03h WORD (big-endian) type of object 05h BYTE length of object's name (01h-2Fh) 06h N BYTEs object's name BYTE length of property's name (01h-0Fh) N BYTEs property's name SeeAlso: #01935Top
INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE PROPERTY SECURITY AH = E3h subfn 3Bh DS:SI -> request buffer (see #01938) ES:DI -> reply buffer (see #01935) Return: AL = status (see #01937) Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E3h/SF=38h,AX=F217h/SF=3Bh (Table 01937) Values for NetWare function status: 00h successful 96h server out of memory F0h wildcard not allowed F1h invalid bindery security level FBh no such property FCh no such object FEh server bindery locked FFh bindery failure SeeAlso: #01933,#01941 Format of NetWare "Change Property Security" request buffer: Offset Size Description (Table 01938) 00h WORD length of following data (max 44h) 02h BYTE 3Bh (subfunction "Change Property Security") 03h WORD (big-endian) type of object 05h BYTE length of object's name (01h-2Fh) 06h N BYTEs object name BYTE new property security levels BYTE length of property's name N BYTEs property name Note: the object type may not be WILD (FFFFh)Top
INT 21 - Novell NetWare - BINDERY SERVICES - SCAN PROPERTY AH = E3h subfn 3Ch DS:SI -> request buffer (see #01939) ES:DI -> reply buffer (see #01940) Return: AL = status (00h,96h,F1h,FBh,FCh,FEh,FFh) (see #01937) Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E3h/SF=37h,AH=E3h/SF=3Bh,AX=F217h/SF=3Ch Format of NetWare "Scan Property" request buffer: Offset Size Description (Table 01939) 00h WORD length of following data (max 47h) 02h BYTE 3Ch (subfunction "Scan Property") 03h WORD (big-endian) type of object 05h BYTE length of object's name (01h-2Fh) 06h N BYTEs object name DWORD (big-endian) sequence number FFFFFFFFh for first call BYTE length of property's name (01h-0Fh) N BYTEs property's name SeeAlso: #01940,#02187 Format of NetWare "Scan Property" reply buffer: Offset Size Description (Table 01940) 00h WORD (call) 0018h (length of following results buffer) 02h 16 BYTEs property name 12h BYTE property flags 13h BYTE property security levels 14h DWORD (big-endian) sequence number 18h BYTE property value flag (00h no, FFh yes) 19h BYTE more properties (00h no, FFh yes) SeeAlso: #01939,#02187Top
INT 21 - Novell NetWare - BINDERY SERVICES - READ PROPERTY VALUE AH = E3h subfn 3Dh DS:SI -> request buffer (see #01942) ES:DI -> reply buffer (see #01943) Return: AL = status (see #01941) Desc: retrieve one 128-byte segment of the specified property's value Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E3h/SF=39h,AH=E3h/SF=3Ch,AH=E3h/SF=3Eh,AX=F217h/SF=3Dh (Table 01941) Values for NetWare function status: 00h successful 96h server out of memory E8h not item property ECh no such segment F0h wildcard not allowed F1h invalid bindery security level F8h not permitted to write property F9h not permitted to read property FBh no such property FCh no such object FEh server bindery locked FFh bindery failure SeeAlso: #01937,#01946 Format of NetWare "Read Property Value" request buffer: Offset Size Description (Table 01942) 00h WORD length of following data (max 44h) 02h BYTE 3Dh (subfunction "Read Property Value") 03h WORD (big-endian) type of object 05h BYTE length of object's name (01h-2Fh) 06h N BYTEs object name BYTE segment number (01h on first call, increment until done) BYTE length of property's name (01h-0Fh) N BYTEs property name SeeAlso: #01943,#02188 Format of NetWare "Read Property Value" reply buffer: Offset Size Description (Table 01943) 00h WORD (call) 0082h (length of following results buffer) 02h 128 BYTEs property's value 82h BYTE more segments (00h no, FFh yes) 83h BYTE property's flags SeeAlso: #01942,#02188Top
INT 21 - Novell NetWare - BINDERY SERVICES - WRITE PROPERTY VALUE AH = E3h subfn 3Eh DS:SI -> request buffer (see #01944) ES:DI -> reply buffer (see #01945) Return: AL = status (see #01941) Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E3h/SF=39h,AH=E3h/SF=3Ch,AH=E3h/SF=3Dh,AX=F217h/SF=3Eh Format of NetWare "Write Property Value" request buffer: Offset Size Description (Table 01944) 00h WORD length of following data (max C5h) 02h BYTE 3Eh (subfunction "Write Property Value") 03h WORD (big-endian) type of object 05h BYTE length of object's name (01h-2Fh) 06h N BYTEs object name BYTE segment number (01h on first call, increment until done) BYTE erase remaining segments (00h no, FFh yes) BYTE length of property's name (01h-0Fh) N BYTEs property name 128 BYTEs property value segment SeeAlso: #01945 Format of NetWare reply buffer: Offset Size Description (Table 01945) 00h WORD (call) 0000h (no data returned) SeeAlso: #01944,#01947Top
INT 21 - Novell NetWare - BINDERY SERVICES - VERIFY BINDERY OBJECT PASSWORD AH = E3h subfn 3Fh DS:SI -> request buffer (see #01947) ES:DI -> reply buffer (see #01945) Return: AL = status (see #01946) Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E3h/SF=40h,AX=F217h/SF=3Fh (Table 01946) Values for NetWare function status: 00h successful 96h server out of memory F0h wildcard not allowed FBh no such property FCh no such object FEh server bindery locked FFh bindery failure: no such object, bad password, no password for object, or invalid old password SeeAlso: #01941,#01950 Format of NetWare "Verify Bindery Object Password" request buffer: Offset Size Description (Table 01947) 00h WORD length of following data (max 133h) 02h BYTE 3Fh (subfunction "Verify Bindery Object Password") 03h WORD (big-endian) type of object 05h BYTE length of object's name (01h-2Fh) 06h N BYTEs object name BYTE length of password (00h-7Fh) N BYTEs password SeeAlso: #01945Top
INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT PASSWORD AH = E3h subfn 40h DS:SI -> request buffer (see #01948) ES:DI -> reply buffer (see #01949) Return: AL = status (see #01946) Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E3h/SF=3Fh,AH=E3h/SF=41h,AX=F217h/SF=40h Format of NetWare "Change Bindery Object Password" request buffer: Offset Size Description (Table 01948) 00h WORD length of following data (max 133h) 02h BYTE 40h (subfunction "Change Bindery Object Password") 03h WORD (big-endian) type of object 05h BYTE length of object's name (01h-2Fh) 06h N BYTEs object name BYTE length of old password (00h-7Fh) N BYTEs old password BYTE length of new password (00h-7Fh) N BYTEs new password SeeAlso: #01949,#02195 Format of NetWare reply buffer: Offset Size Description (Table 01949) 00h WORD (call) 0000h (no data returned) SeeAlso: #01948,#01951Top
INT 21 - Novell NetWare - BINDERY SERVICES - ADD BINDERY OBJECT TO SET AH = E3h subfn 41h DS:SI -> request buffer (see #01951) ES:DI -> reply buffer (see #01949) Return: AL = status (see #01950) Desc: add the specified object to an object's group property Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E3h/SF=40h,AH=E3h/SF=42h,AH=E3h/SF=43h,AX=F217h/SF=41h (Table 01950) Values for NetWare function status: 00h successful 96h server out of memory E9h member already exists EAh member does not exist EBh not a group property F0h wildcard not allowed F8h can't write property F9h not permitted to read property FBh no such property FCh no such object FEh server bindery locked FFh bindery failure SeeAlso: #01946,#01961 Format of NetWare "Add Bindery Object to Set" request buffer: Offset Size Description (Table 01951) 00h WORD length of following data (max 75h) 02h BYTE 41h (subfunction "Add Bindery Object to Set") 03h WORD (big-endian) type of object 05h BYTE length of object's name 06h N BYTEs object name BYTE length of property name (01h-0Fh) N BYTEs property name WORD (big-endian) type of member object BYTE length of member object's name N BYTEs member object's name SeeAlso: #01949Top
INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT FROM SET AH = E3h subfn 42h DS:SI -> request buffer (see #01952) ES:DI -> reply buffer (see #01953) Return: AL = status (see #01950) Desc: delete the specified object from a set property Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E3h/SF=40h,AH=E3h/SF=42h,AH=E3h/SF=43h,AX=F217h/SF=42h Format of NetWare "Delete Bindery Object from Set" request buffer: Offset Size Description (Table 01952) 00h WORD length of following data (max 75h) 02h BYTE 42h (subfunction "Delete Bindery Object from Set") 03h WORD (big-endian) type of object 05h BYTE length of object's name 06h N BYTEs object name BYTE length of property name (01h-0Fh) N BYTEs property name WORD (big-endian) type of member object BYTE length of member object's name N BYTEs member object's name SeeAlso: #01953 Format of NetWare reply buffer: Offset Size Description (Table 01953) 00h WORD (call) 0000h (no data returned) SeeAlso: #01952,#01954,#01955,#01956Top
INT 21 - Novell NetWare - BINDERY SERVICES - IS BINDERY OBJECT IN SET AH = E3h subfn 43h DS:SI -> request buffer (see #01954) ES:DI -> reply buffer (see #01953) Return: AL = status (see #01950) Desc: determine whether the specified object is a member of the given set property Notes: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX the caller must have read access to the property SeeAlso: AH=E3h/SF=41h,AH=E3h/SF=42h,AX=F217h/SF=43h Format of NetWare "Is Bindery Object in Set?" request buffer: Offset Size Description (Table 01954) 00h WORD length of following data (max 75h) 02h BYTE 43h (subfunction "Is Bindery Object In Set") 03h WORD (big-endian) type of object 05h BYTE length of object's name 06h N BYTEs object's name BYTE length of property's name N BYTEs property's name WORD (big-endian) type of member object BYTE length of member object's name N BYTEs member object's name SeeAlso: #01953Top
INT 21 - Novell NetWare - BINDERY SERVICES - CLOSE BINDERY AH = E3h subfn 44h DS:SI -> request buffer (see #01955) ES:DI -> reply buffer (see #01953) Return: AL = status 00h successful Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E3h/SF=45h,AX=F217h/SF=44h Format of NetWare "Close Bindery" request buffer: Offset Size Description (Table 01955) 00h WORD 0001h (length of following data) 02h BYTE 44h (subfunction "Close Bindery") SeeAlso: #01953,#01956Top
INT 21 - Novell NetWare - BINDERY SERVICES - OPEN BINDERY AH = E3h subfn 45h DS:SI -> request buffer (see #01956) ES:DI -> reply buffer (see #01953) Return: AL = status 00h successful Notes: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX the bindery may only be opened by the supervisor or an object with equivalent privileges SeeAlso: AH=E3h/SF=44h,AX=F217h/SF=45h Format of NetWare "Open Bindery" request buffer: Offset Size Description (Table 01956) 00h WORD 0001h (length of following data) 02h BYTE 45h (subfunction "Open Bindery") SeeAlso: #01953,#01955Top
INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY ACCESS LEVEL AH = E3h subfn 46h DS:SI -> request buffer (see #01957) ES:DI -> reply buffer (see #01958) Return: AL = status 00h successful Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AX=F217h/SF=46h Format of NetWare "Get Bindery Access Level" request buffer: Offset Size Description (Table 01957) 00h WORD 0001h (length of following data) 02h BYTE 46h (subfunction "Get Bindery Access Level") SeeAlso: #01958,#02189 Format of NetWare "Get Bindery Access Level" reply buffer: Offset Size Description (Table 01958) 00h WORD 0005h (length of following buffer) 02h BYTE security levels 03h DWORD (big-endian) object ID SeeAlso: #01957,#02189Top
INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN BINDERY OBJ TRUSTEE PATHS AH = E3h subfn 47h DS:SI -> request buffer (see #01959) ES:DI -> reply buffer (see #01960) Return: AL = status (00h,96h,F0h,F1h,FCh,FEh,FFh) (see #01961) Desc: iterate through the directories to which an object is a trustee Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Dh,AH=E2h/SF=0Eh,AX=F217h/SF=47h Format of NetWare "Scan Bindery Object Trustee Paths" request buffer: Offset Size Description (Table 01959) 00h WORD 0008h (length of following data) 02h BYTE 47h (subfunction "Scan Bindery Object Trustee Paths") 03h BYTE volume number (00h-1Fh) 04h WORD (big-endian) last sequence number (FFFFh on first call) 06h DWORD (big-endian) object ID SeeAlso: #01960,#02190 Format of NetWare "Scan Bindery Object Trustee Paths" reply buffer: Offset Size Description (Table 01960) 00h WORD (call) length of following results buffer (max 107h) 02h WORD (big-endian) next sequence number 04h DWORD (big-endian) object ID 08h BYTE trustee directory rights (see #01849 at AH=E2h/SF=03h) 09h BYTE length of trustee path 0Ah N BYTEs trustee path SeeAlso: #01959,#02190Top
INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE AH = E3h subfn 64h DS:SI -> request buffer (see #01962) ES:DI -> reply buffer (see #01963) Return: AL = status (00h,96h,99h,9Bh,9Ch,EDh-F1h,F5h,F7h,FCh,FEh,FFh) (see #01961) Notes: this function is supported by Advanced NetWare 2.1+ caller must be on a workstation with supervisor privileges SeeAlso: AH=E3h/SF=65h,AH=E3h/SF=66h,AH=E3h/SF=68h,AH=E3h/SF=6Bh SeeAlso: AX=F217h/SF=64h (Table 01961) Values for NetWare function status: 00h (0) successful 96h (150) server out of memory 99h (153) directory full 9Bh (155) invalid directory handle 9Ch (156) invalid path D0h (208) queue error D1h (209) no such queue D2h (210) no server for queue D3h (211) no queue rights D4h (212) queue full D5h (213) no queue job D6h (214) no job rights D7h (215) queue servicing error D8h (216) queue not active D9h (217) station is not a server DAh (218) queue halted DBh (219) too many queue servers EDh (237) property already exists EEh (238) object already exists EFh (239) invalid name F0h (240) wildcard not allowed F1h (241) invalid bindery security level F5h (245) not permitted to create object F7h (247) not permitted to create property FCh (252) no such object FEh (254) server bindery locked FFh (255) bindery failure SeeAlso: #01950,#02002,#01680,#02860 at INT 2F/AX=7A20h/BX=0000h Format of NetWare "Create Queue" request buffer: Offset Size Description (Table 01962) 00h WORD length of following data (max ABh) 02h BYTE 64h (subfunction "Create Queue") 03h WORD (big-endian) queue type 05h BYTE length of queue's name (01h-2Fh) 06h N BYTEs queue's name BYTE directory handle or 00h BYTE length of path name (01h-76h) N BYTEs path name of directory in which to create queue subdirectory SeeAlso: #01963,#02198 Format of NetWare "Create Queue" reply buffer: Offset Size Description (Table 01963) 00h WORD (call) 0004h (size of following results buffer) 02h DWORD (big-endian) object ID of queue SeeAlso: #01962,#02198Top
INT 21 - Novell NetWare - QUEUE SERVICES - DESTROY QUEUE AH = E3h subfn 65h DS:SI -> request buffer (see #01964) ES:DI -> reply buffer (see #01969) Return: AL = status (00h,96h,9Ch,D0h,D1h,FFh) (see also AH=E3h/SF=64h) FFh hardware failure Desc: abort all active jobs, detach all job servers, remove all job entries, delete all job files, remove the queue object and its properties from the bindery, and delete the queue's subdirectory Notes: this function is supported by Advanced NetWare 2.1+ caller must have SUPERVISOR privileges SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=66h,AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=70h SeeAlso: AX=F217h/SF=65h Format of NetWare "Destroy Queue" request buffer: Offset Size Description (Table 01964) 00h WORD 0005h (length of following data) 02h BYTE 65h (subfunction "Destroy Queue") 03h DWORD (big-endian) object ID of queue SeeAlso: #01969Top
INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE CURRENT STATUS (OLD) AH = E3h subfn 66h DS:SI -> request buffer (see #01965) ES:DI -> reply buffer (see #01966) Return: AL = status (00h,96h,9Ch,D1h-D3h,F1h,FCh,FEh,FFh) (see #01961) Notes: this function is supported by Advanced NetWare 2.1+ caller must be on a workstation which is security-equivalent to a member of the queue's Q_USERS or Q_OPERATORS properties SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=67h,AH=E3h/SF=6Fh,AH=E3h/SF=76h SeeAlso: AX=F217h/SF=66h Format of NetWare "Read Queue Current Status (old)" request buffer: Offset Size Description (Table 01965) 00h WORD 0005h (length of following data) 02h BYTE 66h (subfunction "Read Queue Current Status") 03h DWORD (big-endian) object ID of queue SeeAlso: #01966,#02199 at AX=F217h/SF=66h Format of NetWare "Read Queue Current Status (old)" reply buffer: Offset Size Description (Table 01966) 00h WORD (call) 0085h (size of following results) 02h DWORD (big-endian) object ID of queue 06h BYTE status of queue (see #01967) 07h BYTE number of jobs in queue (00h-FAh) 08h BYTE number of servers attached to queue (00h-19h) 09h 25 DWORDs list of object IDs of attached servers 6Dh 25 BYTEs list of attached servers' stations 86h BYTE (call) maximum number of servers to return SeeAlso: #01965,#02199 at AX=F217h/SF=66h Bitfields for NetWare queue status: Bit(s) Description (Table 01967) 0 operator disabled addition of new jobs 1 operator refuses additional job servers attaching 2 operator disabled job servicing SeeAlso: #01966,#01968Top
INT 21 - Novell NetWare - QUEUE SERVICES - SET QUEUE CURRENT STATUS (OLD) AH = E3h subfn 67h DS:SI -> request buffer (see #01968) ES:DI -> reply buffer (see #01969) Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,FEh,FFh) (see #01961) Notes: this function is supported by Advanced NetWare 2.1+ caller must have operator privileges SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=66h,AH=E3h/SF=6Fh,AH=E3h/SF=76h SeeAlso: AX=F217h/SF=67h Format of NetWare "Set Queue Current Status (old)" request buffer: Offset Size Description (Table 01968) 00h WORD 0006h (length of following data) 02h BYTE 67h (subfunction "Set Queue Current Status") 03h DWORD (big-endian) object ID of queue 07h BYTE queue status (see #01967) SeeAlso: #01969 Format of NetWare reply buffer: Offset Size Description (Table 01969) 00h WORD (call) 0000h (no results returned)Top
INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE JOB AND FILE AH = E3h subfn 68h DS:SI -> request buffer (see #01970) ES:DI -> reply buffer (see #01972) Return: AL = status (00h,96h,99h,9Ch,D0h-D4h,DAh,EDh,EFh-F1h,F7h,FCh,FEh,FFh) (see #01961) Notes: this function is supported by Advanced NetWare 2.1+ caller must be on a workstation which is security-equivalent to a member of the queue's Q_USER property SeeAlso: AX=B807h,AH=E0h"SPOOLING",AH=E3h/SF=69h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh SeeAlso: AX=F217h/SF=68h Format of NetWare "Create Queue Job and File" request buffer: Offset Size Description (Table 01970) 00h WORD 0107h (length of following data) 02h BYTE 68h (subfunction "Close File and Start Queue Job") 03h DWORD (big-endian) object ID of queue 07h 256 BYTEs job structure (see #01971) SeeAlso: #01972,#02200 Format of NetWare old-style job structure: Offset Size Description (Table 01971) 00h BYTE client station 01h BYTE client task number 02h DWORD (big-endian) object ID of client 06h DWORD (big-endian) object ID of target server FFFFFFFh if any server acceptable 0Ah 6 BYTEs target execution time (year,month,day,hour,minute,second) FFFFFFFFFFFFh to execute as soon as possible 10h 6 BYTEs job entry time (year,month,day,hour,minute,second) 16h WORD (big-endian) job number 18h WORD (big-endian) job type 1Ah BYTE job position 1Bh BYTE job control flags (see #01980) 1Ch 14 BYTEs ASCIZ job file name 2Ah 6 BYTEs job file handle 30h BYTE server station 31h BYTE server task number 32h DWORD (big-endian) object ID of server 36h 50 BYTEs ASCIZ job description string 68h 152 BYTEs client record area SeeAlso: #01970,#02210 Format of NetWare "Create Queue Job and File" reply buffer: Offset Size Description (Table 01972) 00h WORD (call) 0036h (size of following results buffer) 02h BYTE client station 03h BYTE client task number 04h DWORD (big-endian) object ID of client 08h DWORD (big-endian) object ID of target server 0Ch 6 BYTEs target execution time (year,month,day,hour,minute,second) 12h 6 BYTEs job entry time (year,month,day,hour,minute,second) 18h WORD (big-endian) job number 1Ah WORD (big-endian) job type 1Ch BYTE job position 1Dh BYTE job control flags (see #01980) 1Eh 14 BYTEs ASCIZ job file name 2Ch 6 BYTEs job file handle 32h BYTE server station 33h BYTE server task number 34h DWORD (big-endian) object ID of server or 00000000h SeeAlso: #01970,#02200Top
INT 21 - Novell NetWare - QUEUE SERVICES - CLOSE FILE AND START QUEUE JOB (OLD) AH = E3h subfn 69h DS:SI -> request buffer (see #01973) ES:DI -> reply buffer (see #01974) Return: AL = status (00h,96h,D0h,D1h,D3h,D5h,D6h,FEh,FFh) (see #01961) Notes: this function is supported by Advanced NetWare 2.1+ caller must be on the workstation which created the job SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh,AX=F217h/SF=69h Format of NetWare "Close File and Start Queue Job (old)" request buffer: Offset Size Description (Table 01973) 00h WORD 0007h (length of following data) 02h BYTE 69h (subfunction "Close File and Start Queue Job") 03h DWORD (big-endian) object ID of queue 07h WORD (big-endian) job number SeeAlso: #01974 Format of NetWare reply buffer: Offset Size Description (Table 01974) 00h WORD (call) 0000h (no results returned) SeeAlso: #01973,#01975Top
INT 21 - Novell NetWare - QUEUE SERVICES - REMOVE JOB FROM QUEUE (OLD) AH = E3h subfn 6Ah DS:SI -> request buffer (see #01975) ES:DI -> reply buffer (see #01974) Return: AL = status (00h,96h,D0h,D1h,D5h,D6h,FEh,FFh) (see #01961) Notes: this function is supported by Advanced NetWare 2.1+ caller must have created the job or be an operator SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh,AX=F217h/SF=6Ah Format of NetWare "Remove Job From Queue (old)" request buffer: Offset Size Description (Table 01975) 00h WORD 0007h (length of following data) 02h BYTE 6Ah (subfunction "Remove Job From Queue (old)") 03h DWORD (big-endian) object ID of queue 07h WORD (big-endian) job numberTop
INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB LIST (OLD) AH = E3h subfn 6Bh DS:SI -> request buffer (see #01976) ES:DI -> reply buffer (see #01977) Return: AL = status (00h,96h,9Ch,D0h-D3h,FCh,FEh,FFh) (see #01961) Notes: this function is supported by Advanced NetWare 2.1+ caller must be on a workstation which is security-equivalent to a member of the Q_USERS or Q_OPERATORS properties SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh,AX=F217h/SF=6Bh Format of NetWare "Get Queue Job List (old)" request buffer: Offset Size Description (Table 01976) 00h WORD 0005h (length of following data) 02h BYTE 6Bh (subfunction "Get Queue Job List (old)") 03h DWORD (big-endian) object ID of queue SeeAlso: #01977 Format of NetWare "Get Queue Job List (old)" reply buffer: Offset Size Description (Table 01977) 00h WORD (call) size of following results buffer (max 1F6h) 02h WORD (big-endian) job count 04h N WORDs (big-endian) list of job numbers by position in queue WORD maximum job numbers SeeAlso: #01976Top
INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE JOB ENTRY (OLD) AH = E3h subfn 6Ch DS:SI -> request buffer (see #01978) ES:DI -> reply buffer (see #01979) Return: AL = status (00h,96h,D0h-D3h,D5h,FCh,FEh,FFh) (see #01961) Notes: this function is supported by Advanced NetWare 2.1+ caller must be on a workstation which is security-equivalent to a member of the Q_USERS, Q_OPERATORS, or Q_SERVERS properties SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh,AX=F217h/SF=6Ch Format of NetWare "Read Queue Job Entry (old)" request buffer: Offset Size Description (Table 01978) 00h WORD 0007h (length of following data) 02h BYTE 6Ch (subfunction "Read Queue Job Entry (old)") 03h DWORD (big-endian) object ID of queue 07h WORD (big-endian) job number SeeAlso: #01979 Format of NetWare "Read Queue Job Entry (old)" reply buffer: Offset Size Description (Table 01979) 00h WORD (call) 0100h (size of following results) 02h BYTE client station number 03h BYTE client task number 04h DWORD object ID of client 08h DWORD (big-endian) object ID of target server FFFFFFFFh if any server acceptable 0Ch 6 BYTEs target execution time (year,month,day,hour,minute,second) FFFFFFFFFFFFh if serviced as soon as possible 12h 6 BYTEs job entry time (year,month,day,hour,minute,second) 18h WORD (big-endian) job number 1Ah WORD (big-endian) job type 1Ch BYTE job position 1Dh BYTE job control flags (see #01980) 1Eh 14 BYTEs ASCIZ job filename 2Ch 6 BYTEs job file handle 32h BYTE server station 33h BYTE server task number 34h DWORD object ID of server 38h 50 BYTEs ASCIZ job description string 6Ah 152 BYTEs client record area SeeAlso: #01978 Bitfields for NetWare job control flags: Bit(s) Description (Table 01980) 3 job will be serviced automatically if connection broken 4 job remains in queue after server aborts job 5 client has not filled associated job file 6 User Hold--job advances, but cannot be serviced until this is cleared by user or operator 7 Operator Hold--job advances, but cannot be serviced until this is cleared by an operator SeeAlso: #01979Top
INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB ENTRY (OLD) AH = E3h subfn 6Dh DS:SI -> request buffer (see #01981) ES:DI -> reply buffer (see #01983) Return: AL = status (00h,96h,D0h,D1h,D5h,D7h,FEh,FFh) (see #01961) Notes: this function is supported by Advanced NetWare 2.1+ caller must be an operator or the user who created the job SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Ch,AH=E3h/SF=6Eh SeeAlso: AX=F217h/SF=6Dh Format of NetWare "Change Queue Job Entry" request buffer: Offset Size Description (Table 01981) 00h WORD 0105h (length of following data) 02h BYTE 6Dh (subfunction "Change Queue Job Entry") 03h DWORD (big-endian) object ID of queue 07h 256 BYTEs job structure (see #01971) SeeAlso: #01983Top
INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB POSITION AH = E3h subfn 6Eh DS:SI -> request buffer (see #01982) ES:DI -> reply buffer (see #01983) Return: AL = status (00h,96h,D0h,D1h,D5h,D6h,FEh,FFh) (see #01961) Notes: this function is supported by Advanced NetWare 2.1+ caller must be an operator if the specified position is greater than the number of jobs in the queue, the job is placed at the end of the queue SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Ch,AH=E3h/SF=6Dh SeeAlso: AX=F217h/SF=6Eh Format of NetWare "Change Queue Job Position" request buffer: Offset Size Description (Table 01982) 00h WORD 0008h (length of following data) 02h BYTE 6Eh (subfunction "Change Queue Job Position") 03h DWORD (big-endian) object ID of queue 07h WORD (big-endian) job number 09h BYTE new position in queue (01h = first, FAh [250] = last position in full queue) SeeAlso: #01983 Format of NetWare reply buffer: Offset Size Description (Table 01983) 00h WORD (call) 0000h (no results returned) SeeAlso: #01981,#01982,#01984Top
INT 21 - Novell NetWare - QUEUE SERVICES - ATTACH QUEUE SERVER TO QUEUE AH = E3h subfn 6Fh DS:SI -> request buffer (see #01984) ES:DI -> reply buffer (see #01983) Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,DAh,DBh,FEh,FFh) (see also AH=E3h/SF=64h) FFh bindery failure, or no such property, or no such member Desc: attach the calling job server to the specified queue Notes: this function is supported by Advanced NetWare 2.1+ a queue may have up to 25 job servers attached the calling workstation must be security-equivalent to a member of the queue's Q_SERVERS property SeeAlso: AH=E3h/SF=70h,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h SeeAlso: AX=F217h/SF=6Fh Format of NetWare "Attach Queue Server to Queue" request buffer: Offset Size Description (Table 01984) 00h WORD 0005h (length of following data) 02h BYTE 6Fh (subfunction "Attach Queue Server To Queue") 03h DWORD (big-endian) object ID of queue SeeAlso: #01983,#01985Top
INT 21 - Novell NetWare - QUEUE SERVICES - DETACH QUEUE SERVER FROM QUEUE AH = E3h subfn 70h DS:SI -> request buffer (see #01985) ES:DI -> reply buffer (see #01983) Return: AL = status (00h,96h,9Ch,D0h,D1h,D2h,FEh,FFh) (see #01961) Desc: remove the calling job server from the specified queue's list of servers Notes: this function is supported by Advanced NetWare 2.1+ the caller must have previously attached itself to the queue SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h SeeAlso: AX=F217h/SF=70h Format of NetWare "Detach Queue Server From Queue" request buffer: Offset Size Description (Table 01985) 00h WORD 0005h (length of following data) 02h BYTE 70h (subfunction "Detach Queue Server From Queue") 03h DWORD (big-endian) object ID of queue SeeAlso: #01983,#01984Top
INT 21 - Novell NetWare - QUEUE SERVICES - SERVICE QUEUE JOB AND OPEN FILE AH = E3h subfn 71h DS:SI -> request buffer (see #01986) ES:DI -> reply buffer (see #01972) Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,D5h,D9h,DAh,FEh,FFh) (see #01961) Notes: this function is supported by Advanced NetWare 2.1+ the caller must be on a workstation which is security-equivalent to a member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h SeeAlso: AX=F217h/SF=71h Format of NetWare "Service Queue Job and Open File" request buffer: Offset Size Description (Table 01986) 00h WORD 0007h (length of following data) 02h BYTE 71h (subfunction "Service Queue Job and Open File") 03h DWORD (big-endian) object ID of queue 07h WORD (big-endian) target job type FFFFh any SeeAlso: #01972,#01987Top
INT 21 - Novell NetWare - QUEUE SERVICES - FINISH SERVICING QUEUE JOB AND FILE AH = E3h subfn 72h DS:SI -> request buffer (see #01987) ES:DI -> reply buffer (see #01989) Return: AL = status (00h,96h,D0h,D1h,D6h) (see #01961) Desc: inform the Queue Management System (QMS) that the queue server has completed a job Notes: this function is supported by Advanced NetWare 2.1+ the caller must be a job server which has previously obtained a job for servicing SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=73h,AH=E3h/SF=76h SeeAlso: AX=F217h/SF=72h Format of NetWare "Finish Servicing Queue Job and File (old)" request buffer: Offset Size Description (Table 01987) 00h WORD 000Bh (length of following data) 02h BYTE 72h (subfunction "Finish Servicing Queue Job and File (old)") 03h DWORD (big-endian) object ID of queue 07h WORD (big-endian) job number 09h DWORD (big-endian) charge SeeAlso: #01989,#01986,#01998Top
INT 21 - Novell NetWare - QUEUE SERVICES - ABORT SERVICING QUEUE JOB AND FILE AH = E3h subfn 73h DS:SI -> request buffer (see #01988) ES:DI -> reply buffer (see #01989) Return: AL = status (00h,96h,D0h,D1h,D6h,D9h) (see #01961) Desc: inform the Queue Management System (QMS) that the queue server is unable to service a previously-accepted job Notes: this function is supported by Advanced NetWare 2.1+ this is an old version of the call (see AH=E3h/SF=84h) only a job server which previously accepted a job for servicing may call this function SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=76h,AH=E3h/SF=84h SeeAlso: AX=F217h/SF=73h Format of NetWare "Abort Servicing Queue Job and File (old)" request buffer: Offset Size Description (Table 01988) 00h WORD 0007h (length of following data) 02h BYTE 73h (subfunction "Abort Servicing Queue Job and File (old)") 03h DWORD (big-endian) object ID of queue 07h WORD (big-endian) job number SeeAlso: #01989,#01987 Format of NetWare reply buffer: Offset Size Description (Table 01989) 00h WORD (call) 0000h (no results returned) SeeAlso: #01987,#01988,#01990,#01991Top
INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE TO CLIENT RIGHTS (OLD) AH = E3h subfn 74h DS:SI -> request buffer (see #01990) ES:DI -> reply buffer (see #01989) Return: AL = status (00h,96h,D0h,D1h,D5h,D9h) (see #01961) Desc: temporarily assume the login identity of the client submitting the job being serviced Notes: this function is supported by Advanced NetWare 2.1+ caller must be a job server which has obtained a job for servicing SeeAlso: AH=E3h/SF=75h,AX=F217h/SF=74h Format of NetWare "Change to Client Rights (old)" request buffer: Offset Size Description (Table 01990) 00h WORD 0007h (length of following data) 02h BYTE 74h (subfunction "Change To Client Rights (old)") 03h DWORD (big-endian) object ID of queue 07h WORD (big-endian) job number SeeAlso: #01989,#01991Top
INT 21 - Novell NetWare - QUEUE SERVICES - RESTORE QUEUE SERVER RIGHTS AH = E3h subfn 75h DS:SI -> request buffer (see #01991) ES:DI -> reply buffer (see #01989) Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,D5h,D9h,DAh,FEh,FFh) (see #01961) Desc: restore server's own identity after assuming the login identity of the client submitting the job being serviced Notes: this function is supported by Advanced NetWare 2.1+ caller must be a job server which has previously changed its identity SeeAlso: AH=E3h/SF=74h,AX=F217h/SF=75h Format of NetWare "Restore Queue Server Rights" request buffer: Offset Size Description (Table 01991) 00h WORD 0001h (length of following data) 02h BYTE 75h (subfunction "Change To Client Rights") SeeAlso: #01989,#01990Top
INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE SERVER CURRENT STATUS OLD AH = E3h subfn 76h DS:SI -> request buffer (see #01992) ES:DI -> reply buffer (see #01993) Return: AL = status (00h,96h,9Ch,D1h-D3h,F1h,FCh,FEh,FFh) (see #01961) Notes: this function is supported by Advanced NetWare 2.1+ caller must be on a workstation which is security-equivalent to a member of the Q_USERS or Q_OPERATORS properties SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=6Fh,AH=E3h/SF=77h,AH=E3h/SF=78h SeeAlso: AX=F217h/SF=76h Format of NetWare "Read Queue Server Current Status (old)" request buffer: Offset Size Description (Table 01992) 00h WORD 000Ah (length of following data) 02h BYTE 76h (subfunction "Read Queue Server Current Status (old)") 03h DWORD (big-endian) object ID of queue 07h DWORD (big-endian) object ID of server 0Bh BYTE server station SeeAlso: #01993 Format of NetWare "Read Queue Server Current Status (old)" reply buffer: Offset Size Description (Table 01993) 00h WORD (call) 0040h (size of following results) 02h 64 BYTEs server status record (format depends on server) first four bytes should contain estimated "price" for an average job SeeAlso: #01992,#02203Top
INT 21 - Novell NetWare - QUEUE SERVICES - SET QUEUE SERVER CURRENT STATUS AH = E3h subfn 77h DS:SI -> request buffer (see #01994) ES:DI -> reply buffer (see #01995) Return: AL = status (00h,96h,9Ch,D0h,D1h,FEh,FFh) (see #01961) Notes: this function is supported by Advanced NetWare 2.1+ caller must be a job server which has attached itself to the queue SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=6Fh,AH=E3h/SF=76h,AH=E3h/SF=78h SeeAlso: AX=F217h/SF=77h Format of NetWare "Set Queue Server Current Status" request buffer: Offset Size Description (Table 01994) 00h WORD 0045h (length of following data) 02h BYTE 77h (subfunction "Set Queue Server Current Status") 03h DWORD (big-endian) object ID of queue 07h 64 BYTEs server status record (format depends on server) first four bytes should contain estimated "price" for an average job SeeAlso: #01995 Format of NetWare "Set Queue Server Current Status" reply buffer: Offset Size Description (Table 01995) 00h WORD (call) 0000h (no results returned) SeeAlso: #01994Top
INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB'S FILE SIZE (OLD) AH = E3h subfn 78h DS:SI -> request buffer (see #01996) ES:DI -> reply buffer (see #01997) Return: AL = status (see also #01961) 00h successful Notes: this function is supported by Advanced NetWare 2.1+ caller must be on a workstation which is security-equivalent to a member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=71h,AX=F217h/SF=78h Format of NetWare "Get Queue Job's File Size (old)" request buffer: Offset Size Description (Table 01996) 00h WORD 0007h (length of following data) 02h BYTE 78h (subfunction "Get Queue Job's File Size (old)") 03h DWORD (big-endian) object ID of queue 07h WORD (big-endian) job number SeeAlso: #01997,#02204 at AX=F217h/SF=78h Format of NetWare "Get Queue Job's File Size (old)" reply buffer: Offset Size Description (Table 01997) 00h WORD (call) 000Ah (size of following results) 02h DWORD (big-endian) object ID of queue 06h WORD (big-endian) job number 08h DWORD (big-endian) size of job file in bytes SeeAlso: #01996,#02204 at AX=F217h/SF=78hTop
INT 21 - Novell NetWare - QUEUE SERVICES - FINISH SERVICING QUEUE JOB AH = E3h subfn 83h DS:SI -> request buffer (see #01998) ES:DI -> reply buffer (see #01999) Return: AL = status (00h,96h,D0h,D1h,D6h,D9h) (see #01961) Desc: inform the Queue Management System (QMS) that the queue server has completed servicing a previously-accepted job Notes: this function is supported by Advanced NetWare 3.1+ this variant of Abort Servicing Queue Job allows use of the high connection byte in the NCP packet header, unlike AH=E3h/SF=73h SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=84h SeeAlso: AX=F217h/SF=83h Format of NetWare "Finish Servicing Queue Job" request buffer: Offset Size Description (Table 01998) 00h WORD 0007h (length of following data) 02h BYTE 84h (subfunction "Abort Servicing Queue Job") 03h DWORD (big-endian) object ID of queue 07h WORD (big-endian) job number 09h DWORD (big-endian) charge for job SeeAlso: #01999,#01987 Format of NetWare "Finish Servicing Queue Job" reply buffer: Offset Size Description (Table 01999) 00h WORD (call) 0000h (no results returned) SeeAlso: #01998Top
INT 21 - Novell NetWare - QUEUE SERVICES - ABORT SERVICING QUEUE JOB AH = E3h subfn 84h DS:SI -> request buffer (see #02000) ES:DI -> reply buffer (see #02001) Return: AL = status (00h,96h,D0h,D1h,D6h,D9h) (see #01961) Desc: inform the Queue Management System (QMS) that the queue server is unable to service a previously-accepted job Notes: this function is supported by Advanced NetWare 3.1+ this variant of Abort Servicing Queue Job allows use of the high connection byte in the NCP packet header, unlike AH=E3h/SF=73h SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h SeeAlso: AX=F217h/SF=84h Format of NetWare "Abort Servicing Queue Job" request buffer: Offset Size Description (Table 02000) 00h WORD 0007h (length of following data) 02h BYTE 84h (subfunction "Abort Servicing Queue Job") 03h DWORD (big-endian) object ID of queue 07h WORD (big-endian) job number SeeAlso: #02001 Format of NetWare "Abort Servicing Queue Job" reply buffer: Offset Size Description (Table 02001) 00h WORD (call) 0000h (no results returned) SeeAlso: #02000Top
INT 21 - Novell NetWare - ACCOUNTING SERVICES - GET ACCOUNT STATUS AH = E3h subfn 96h DS:SI -> request buffer (see #02003) ES:DI -> reply buffer (see #02004) Return: AL = status (00h,C0h,C1h) (see #02002) Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: AH=E3h/SF=97h,AH=E3h/SF=98h,AH=E3h/SF=99h,AX=F217h/SF=96h (Table 02002) Values for NetWare function status: 00h successful C0h no account privileges C1h no account balance C2h credit limit exceeded C3h too many holds on account C6h no console rights SeeAlso: #01961 Format of NetWare "Get Account Status" request buffer: Offset Size Description (Table 02003) 00h WORD length of following data (max 33h) 02h BYTE 96h (subfunction "Get Account Status") 03h WORD (big-endian) type of bindery object 05h BYTE length of object name (01h to 2Fh) 06h N BYTEs object name SeeAlso: #02004,#02224 at AX=F217h/SF=96h Format of NetWare "Get Account Status" reply buffer: Offset Size Description (Table 02004) 00h WORD (call) length of following buffer space 02h DWORD (big-endian) account balance 06h DWORD (big-endian) credit limit signed number indicating lowest allowable account balance 0Ah 120 BYTEs reserved 82h DWORD (big-endian) object ID, server 1 86h DWORD (big-endian) hold amount, server 1 ... F8h DWORD (big-endian) object ID, server 16 FCh DWORD (big-endian) hold amount, server 16 Note: the reply buffer lists the servers which have placed holds on a portion of the account balance, and the amount reserved by each SeeAlso: #02003,#02224 at AX=F217h/SF=96hTop
INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT CHARGE AH = E3h subfn 97h DS:SI -> request buffer (see #02005) ES:DI -> reply buffer (see #02007) Return: AL = status (00h,C0h-C2h) (see #02002) Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: AH=E3h/SF=96h,AH=E3h/SF=98h,AX=F217h/SF=97h Format of NetWare "Submit Account Charge" request buffer: Offset Size Description (Table 02005) 00h WORD length of following data (max 13Fh) 02h BYTE 97h (subfunction "Submit Account Charge") 03h WORD (big-endian) service type 05h DWORD (big-endian) amount to be charged to account 09h DWORD (big-endian) amount of prior hold to be cancelled 0Dh WORD (big-endian) type of bindery object 0Fh WORD (big-endian) type of comment 8000h-FFFFh reserved for experimental use 11h BYTE length of object's name 12h N BYTEs object name BYTE length of comment N BYTEs comment SeeAlso: #02007Top
INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT HOLD AH = E3h subfn 98h DS:SI -> request buffer (see #02006) ES:DI -> reply buffer (see #02007) Return: AL = status (00h,C0h-C3h) (see #02002) Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: AH=E3h/SF=96h,AH=E3h/SF=97h,AX=F217h/SF=98h Format of NetWare "Submit Account Hold" request buffer: Offset Size Description (Table 02006) 00h WORD length of following data (max 37h) 02h BYTE 98h (subfunction "Submit Account Hold") 03h DWORD (big-endian) amount of account balance to reserve 07h WORD (big-endian) type of bindery object 09h BYTE length of object's name 0Ah N BYTEs object name SeeAlso: #02007 Format of NetWare reply buffer: Offset Size Description (Table 02007) 00h WORD 0000h (no data returned) SeeAlso: #02005,#02006,#02008,#02009Top
INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT NOTE AH = E3h subfn 99h DS:SI -> request buffer (see #02008) ES:DI -> reply buffer (see #02007) Return: AL = status (00h,C0h) (see #02002) Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: AH=E3h/SF=96h,AX=F217h/SF=99h Format of NetWare "Submit Account Note" request buffer: Offset Size Description (Table 02008) 00h WORD length of following data (max 137h) 02h BYTE 99h (subfunction "Submit Account Note") 03h WORD (big-endian) type of service 05h WORD (big-endian) type of bindery object 07h WORD (big-endian) type of comment 8000h-FFFFh reserved for experimental use 09h BYTE length of object's name 0Ah N BYTEs object name BYTE length of comment N BYTEs comment SeeAlso: #02007Top
INT 21 - Novell NetWare - FILE SERVER - CHECK CONSOLE PRIVILEGES AH = E3h subfn C8h DS:SI -> request buffer (see #02009) ES:DI -> reply buffer (see #02007) Return: AL = status (00h,C6h) (see #02002) Desc: determine whether the caller is a console operator Notes: this function is supported by Advanced NetWare 2.1+ NetWare determines console privileges by checking the file server's OPERATOR property for the caller's object ID SeeAlso: AH=E3h/SF=C9h,AH=E3h/SF=D1h,AX=F217h/SF=C8h Format of NetWare "Check Console Privileges" request buffer: Offset Size Description (Table 02009) 00h WORD 0001h (length of following data) 02h BYTE C8h (subfunction "Check Console Privileges") SeeAlso: #02007Top
INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DESCRIPTION STRINGS AH = E3h subfn C9h DS:SI -> request buffer (see #02010) ES:DI -> reply buffer (see #02011) Return: AL = status 00h successful Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must be attached to the file server SeeAlso: AH=E3h/SF=11h,AH=E3h/SF=CDh,AH=E3h/SF=E8h,AX=F217h/SF=C9h Format of NetWare "Get File Server Description Strings" request buffer: Offset Size Description (Table 02010) 00h WORD 0001h (length of following data) 02h BYTE C9h (subfunction "Get File Server Description Strings") SeeAlso: #02011,#02225 at AX=F217h/SF=C9h Format of NetWare "Get File Server Description Strings" reply buffer: Offset Size Description (Table 02011) 00h WORD (call) 0200h (size of following results buffer) 02h var ASCIZ name of company distributing this copy of NetWare var ASCIZ version and revision 9 BYTEs ASCIZ revision date (mm/dd/yy) var ASCIZ copyright notice SeeAlso: #02010,#02225 at AX=F217h/SF=C9hTop
INT 21 - Novell NetWare - FILE SERVER - SET FILE SERVER DATE AND TIME AH = E3h subfn CAh DS:SI -> request buffer (see #02012) ES:DI -> reply buffer (see #02014) Return: AL = status (00h,C6h) (see #02002) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=2Bh"DATE",AH=2Dh"TIME",AH=E3h/SF=C8h,AH=E7h"Novell",AX=F217h/SF=CAh SeeAlso: AX=F214h Format of NetWare "Set File Server Date and Time" request buffer: Offset Size Description (Table 02012) 00h WORD 0007h (length of following data) 02h BYTE CAh (subfunction "Set File Server Date And Time") 03h BYTE year (00-79 = 2000-2079, 80-99 = 1980-1999) 04h BYTE month (1-12) 05h BYTE day (1-31) 06h BYTE hour (0-23) 07h BYTE minute 08h BYTE second SeeAlso: #02014,#02106 at AX=F214hTop
INT 21 - Novell NetWare - FILE SERVER - DISABLE FILE SERVER LOGIN AH = E3h subfn CBh DS:SI -> request buffer (see #02013) ES:DI -> reply buffer (see #02014) Return: AL = status (00h,C6h) (see #02002) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CCh,AH=E3h/SF=D3h,AX=F217h/SF=CBh Format of NetWare "Disable File Server Login" request buffer: Offset Size Description (Table 02013) 00h WORD 0001h (length of following data) 02h BYTE CBh (subfunction "Disable File Server Login") SeeAlso: #02014,#02015 Format of NetWare reply buffer: Offset Size Description (Table 02014) 00h WORD (call) 0000h (no results returned) SeeAlso: #02012,#02013,#02015Top
INT 21 - Novell NetWare - FILE SERVER - ENABLE FILE SERVER LOGIN AH = E3h subfn CCh DS:SI -> request buffer (see #02015) ES:DI -> reply buffer (see #02014) Return: AL = status (00h,C6h) (see #02002) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AX=F217h/SF=CCh Format of NetWare "Enable File Server Login" request buffer: Offset Size Description (Table 02015) 00h WORD 0001h (length of following data) 02h BYTE CCh (subfunction "Enable File Server Login") SeeAlso: #02014Top
INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LOGIN STATUS AH = E3h subfn CDh DS:SI -> request buffer (see #02016) ES:DI -> reply buffer (see #02017) Return: AL = status (00h,C6h) (see #02002) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AH=E3h/SF=CCh Format of NetWare "Get File Server Login Status" request buffer: Offset Size Description (Table 02016) 00h WORD 0001h (length of following data) 02h BYTE CDh (subfunction "Get File Server Login Status") SeeAlso: #02017,#02226 at AX=F217h/SF=CDh Format of NetWare "Get File Server Login Status" reply buffer: Offset Size Description (Table 02017) 00h WORD (call) 0001h (size of following results buffer) 02h BYTE login state (00h disabled, 01h enabled) SeeAlso: #02016,#02226 at AX=F217h/SF=CDhTop
INT 21 - Novell NetWare - FILE SERVICES - PURGE ALL ERASED FILES AH = E3h subfn CEh DS:SI -> request buffer (see #02018) ES:DI -> reply buffer (see #02020) Return: AL = status (00h,C6h) (see #02002) Desc: all files marked for deletion on the file server are purged, regardless of which workstation actually erased them Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX the calling workstation must have console operator privileges SeeAlso: AH=13h,AH=E2h/SF=10h,AH=E3h/SF=C8h,AX=F217h/SF=CEh,AX=F244h Format of NetWare "Purge All Erased Files" request buffer: Offset Size Description (Table 02018) 00h WORD 0001h (length of following data) 02h BYTE CEh (subfunction "Purge All Erased Files") SeeAlso: #02020Top
INT 21 - Novell NetWare - FILE SERVER - DISABLE TRANSACTION TRACKING AH = E3h subfn CFh DS:SI -> request buffer (see #02019) ES:DI -> reply buffer (see #02020) Return: AL = status (00h,C6h) (see #02002) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D0h Format of NetWare "Disable Transaction Tracking" request buffer: Offset Size Description (Table 02019) 00h WORD 0001h (length of following data) 02h BYTE CFh (subfunction "Disable Transaction Tracking") SeeAlso: #02020,#02021 Format of NetWare reply buffer: Offset Size Description (Table 02020) 00h WORD (call) 0000h (no results returned) SeeAlso: #02018,#02019,#02021Top
INT 21 - Novell NetWare - FILE SERVER - ENABLE TRANSACTION TRACKING AH = E3h subfn D0h DS:SI -> request buffer (see #02021) ES:DI -> reply buffer (see #02020) Return: AL = status (00h,C6h) (see #02025) Desc: restart transaction tracking after being stopped either explicitly by AH=E3h/SF=CFh or automatically due to a full transaction volume Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CFh,AX=F217h/SF=D0h Format of NetWare "Enable Transaction Tracking" request buffer: Offset Size Description (Table 02021) 00h WORD 0001h (length of following data) 02h BYTE D0h (subfunction "Enable Transaction Tracking") SeeAlso: #02020,#02019Top
INT 21 - Novell NetWare - FILE SERVER - SEND CONSOLE BROADCAST AH = E3h subfn D1h DS:SI -> request buffer (see #02022) ES:DI -> reply buffer (see #02024) Return: AL = status (00h,C6h) (see #02025) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges the broadcast message will not be received by workstations which have disabled broadcasts with AH=E1h/SF=02h SeeAlso: AH=E1h/SF=02h,AH=E1h/SF=09h,AH=E3h/SF=C8h,AH=E3h/SF=D3h SeeAlso: AX=F217h/SF=D1h Format of NetWare "Send Console Broadcast" request buffer: Offset Size Description (Table 02022) 00h WORD length of following data (max A2h) 02h BYTE D1h (subfunction "Send Console Broadcast") 03h BYTE number of connections to receive message 00h = all, else specific list below 04h N BYTEs connection list BYTE length of message (max 3Ch) N BYTEs message SeeAlso: #02024Top
INT 21 - Novell NetWare - FILE SERVER - CLEAR CONNECTION NUMBER AH = E3h subfn D2h DS:SI -> request buffer (see #02023) ES:DI -> reply buffer (see #02024) Return: AL = status (00h,C6h) (see #02025) Desc: close the open files and release all file locks for a connection, abort transactions if a TTS file server, and detach from the file server Notes: this function is supported by Advanced NetWare 2.1+ the caller must have SUPERVISOR privileges SeeAlso: AH=E3h/SF=C9h,AH=E3h/SF=D1h,AX=F217h/SF=D2h,AX=F217h/SF=FEh Format of NetWare "Clear Connection Number" request buffer: Offset Size Description (Table 02023) 00h WORD 0002h (length of following data) 02h BYTE D2h (subfunction "Clear Connection Number") 03h BYTE connection number SeeAlso: #02024,#02277 Format of NetWare reply buffer: Offset Size Description (Table 02024) 00h WORD (call) 0000h (no results returned) SeeAlso: #02022,#02023,#02026Top
INT 21 - Novell NetWare - FILE SERVER - DOWN FILE SERVER AH = E3h subfn D3h DS:SI -> request buffer (see #02026) ES:DI -> reply buffer (see #02024) Return: AL = status (00h,C6h,FFh) (see #02025) Desc: take down the file server Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have SUPERVISOR privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AH=E3h/SF=CFh,AH=E3h/SF=D1h (Table 02025) Values for NetWare function status: 00h successful C6h no console rights FFh files open SeeAlso: #02002,#02053 Format of NetWare "Down File Server" request buffer: Offset Size Description (Table 02026) 00h WORD 0002h (length of following data) 02h BYTE D3h (subfunction "Down File Server") 03h BYTE flag: force down even if files open if nonzero SeeAlso: #02024Top
INT 21 - Novell NetWare - FILE SERVER - GET FILE SYSTEM STATISTICS AH = E3h subfn D4h DS:SI -> request buffer (see #02027) ES:DI -> reply buffer (see #02028) Return: AL = status (00h,C6h) (see #02025) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=C8h,AH=E3h/SF=D9h,AH=E3h/SF=E7h,AH=E3h/SF=E8h SeeAlso: AX=F217h/SF=D4h Format of NetWare "Get File System Statistics" request buffer: Offset Size Description (Table 02027) 00h WORD 0001h (length of following data) 02h BYTE D4h (subfunction "Get File System Statistics") SeeAlso: #02028,#02227 at AX=F217h/SF=D4h Format of NetWare "Get File System Statistics" reply buffer: Offset Size Description (Table 02028) 00h WORD (call) 0028h (size of following results buffer) 02h DWORD clock ticks since system started 06h WORD maximum open files set by configuration 08h WORD maximum files open concurrently 0Ah WORD current number of open files 0Ch DWORD total files opened 10h DWORD total file read requests 14h DWORD total file write requests 18h WORD current changed FATs 1Ah WORD total changed FATs 1Ch WORD number of FAT write errors 1Eh WORD number of fatal FAT write errors 20h WORD number of FAT scan errors 22h WORD maximum concurrently-indexed files 24h WORD current number of indexed files 26h WORD number of attached indexed files 28h WORD number of indexed files available Note: all fields except the first are big-endian SeeAlso: #02027,#02227 at AX=F217h/SF=D4hTop
INT 21 - Novell NetWare - FILE SERVER - GET TRANSACTION TRACKING STATISTICS AH = E3h subfn D5h DS:SI -> request buffer (see #02029) ES:DI -> reply buffer (see #02030) Return: AL = status (00h,C6h) (see #02025) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CFh,AH=E3h/SF=D0h,AH=E3h/SF=E8h SeeAlso: AX=F217h/SF=D5h Format of NetWare "Get Transaction Tracking Statistics" request buffer: Offset Size Description (Table 02029) 00h WORD 0001h (length of following data) 02h BYTE D5h (subfunction "TTS Get Statistics") SeeAlso: #02030,#02228 at AX=F217h/SF=D5h Format of NetWare "Get Transaction Tracking Statistics" reply buffer: Offset Size Description (Table 02030) 00h WORD (call) length of following results buffer (max 1BCh) 02h DWORD (big-endian) clock ticks since system started 06h BYTE transaction tracking supported if nonzero (all following fields are invalid if zero) 07h BYTE transaction tracking enabled 08h WORD (big-endian) transaction volume number 0Ah WORD (big-endian) maximum simultaneous transactions configured 0Ch WORD (big-endian) maximum simultaneous transactions since startup 0Eh WORD (big-endian) current transactions in progress 10h DWORD (big-endian) total transactions performed 14h DWORD (big-endian) total write transactions 18h DWORD (big-endian) total transactions backed out 1Ch WORD (big-endian) number of unfilled backout requests 1Eh WORD (big-endian) disk blocks used for transaction tracking 20h DWORD (big-endian) blocks allocated for tracked-file FATs 24h DWORD (big-endian) number of file size changes during a transaction 28h DWORD (big-endian) number of file truncations during a transaction 2Ch BYTE number of records following 2Dh Active Transaction Records [array] Offset Size Description 00h BYTE logical connection number 01h BYTE task number SeeAlso: #02029,#02228 at AX=F217h/SF=D5hTop
INT 21 - Novell NetWare - FILE SERVER - GET DISK CACHE STATISTICS AH = E3h subfn D6h DS:SI -> request buffer (see #02031) ES:DI -> reply buffer (see #02032) Return: AL = status (00h,C6h) (see #02025) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D5h,AH=E3h/SF=D8h,AH=E3h/SF=D9h,AH=E3h/SF=E6h SeeAlso: AX=F217h/SF=D6h Format of NetWare "Get Disk Cache Statistics" request buffer: Offset Size Description (Table 02031) 00h WORD 0001h (length of following data) 02h BYTE D6h (subfunction "Get Disk Cache Statistics") SeeAlso: #02032,#02229 at AX=F217h/SF=D6h Format of NetWare "Get Disk Cache Statistics" reply buffer: Offset Size Description (Table 02032) 00h WORD (call) 004Eh (length of following results buffer) 02h DWORD clock ticks since system started 06h WORD number of cache buffers 08h WORD size of cache buffer in bytes 0Ah WORD number of dirty cache buffers 0Ch DWORD number of cache read requests 10h DWORD number of cache write requests 14h DWORD number of cache hits 18h DWORD number of cache misses 1Ch DWORD number of physical read requests 20h DWORD number of physical write requests 24h WORD number of physical read errors 26h WORD number of physical write errors 28h DWORD cache get requests 2Ch DWORD cache full write requests 30h DWORD cache partial write requests 34h DWORD background dirty writes 38h DWORD background aged writes 3Ch DWORD total cache writes 40h DWORD number of cache allocations 44h WORD thrashing count 46h WORD number of times LRU block was dirty 48h WORD number of reads on cache blocks not yet filled by writes 4Ah WORD number of times a fragmented write occurred 4Ch WORD number of cache hits on unavailable block 4Eh WORD number of times a cache block was scrapped Note: all fields except the first are big-endian SeeAlso: #02031,#02229 at AX=F217h/SF=D6hTop
INT 21 - Novell NetWare - FILE SERVER - GET DRIVE MAPPING TABLE AH = E3h subfn D7h DS:SI -> request buffer (see #02033) ES:DI -> reply buffer (see #02034) Return: AL = status (00h,C6h) (see #02025) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D6h,AH=E3h/SF=D9h,AH=E3h/SF=E6h,AH=E3h/SF=E9h SeeAlso: AX=F217h/SF=D7h Format of NetWare "Get Drive Mapping Table" request buffer: Offset Size Description (Table 02033) 00h WORD 0001h (length of following data) 02h BYTE D7h (subfunction "Get Drive Mapping Table") SeeAlso: #02034,#02230 at AX=F217h/SF=D7h Format of NetWare "Get Drive Mapping Table" reply buffer: Offset Size Description (Table 02034) 00h WORD (call) 00ECh (length of following results buffer) 02h DWORD (big-endian) clock tick elapsed since system started 06h BYTE fault tolerance (SFT) level 07h BYTE number of logical drives attached to server 08h BYTE number of physical drives attached to server 09h 5 BYTEs disk channel types (00h none, 01h XT, 02h AT, 03h SCSI, 04h disk coprocessor drive, 32h-FFh value-added drive types) 0Eh WORD (big-endian) number of outstanding controller commands 10h 32 BYTEs drive mapping table (FFh = no such drive) 30h 32 BYTEs drive mirror table (secondary physical drive, FFh = none) 50h 32 BYTEs dead mirror table (last drive mapped to, FFh if never mirrored) 70h BYTE physical drive being remirrored (FFh = none) 71h BYTE reserved 72h DWORD (big-endian) remirrored block 76h 60 BYTEs SFT error table (internal error counters) SeeAlso: #02033,#02230 at AX=F217h/SF=D7hTop
INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL DISK STATISTICS AH = E3h subfn D8h DS:SI -> request buffer (see #02035) ES:DI -> reply buffer (see #02036) Return: AL = status (00h,C6h) (see #02025) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D9h,AH=E3h/SF=E9h,AX=F217h/SF=D8h Format of NetWare "Get Physical Disk Statistics" request buffer: Offset Size Description (Table 02035) 00h WORD 0002h (length of following data) 02h BYTE D8h (subfunction "Get Physical Disk Statistics") 03h BYTE physical disk number SeeAlso: #02036,#02231 at AX=F217h/SF=D8h Format of NetWare "Get Physical Disk Statistics" reply buffer: Offset Size Description (Table 02036) 00h WORD (call) 005Dh (size of following results record) 02h DWORD (big-endian) clock ticks since system started 06h BYTE physical disk channel 07h BYTE flag: drive removable if nonzero 08h BYTE physical drive type 09h BYTE drive number within controller 0Ah BYTE controller number 0Bh BYTE controller type 0Ch DWORD (big-endian) size of drive in 4K disk blocks 10h WORD (big-endian) number of cylinders on drive 12h BYTE number of heads 13h BYTE number of sectors per track 14h 64 BYTEs ASCIZ drive make and model 54h WORD (big-endian) number of I/O errors 56h DWORD (big-endian) start of Hot Fix table 5Ah WORD (big-endian) size of Hot Fix table 5Ch WORD (big-endian) number of Hot Fix blocks available 5Eh BYTE flag: Hot Fix disabled if nonzero SeeAlso: #02035,#02231 at AX=F217h/SF=D8hTop
INT 21 - Novell NetWare - FILE SERVER - GET DISK CHANNEL STATISTICS AH = E3h subfn D9h DS:SI -> request buffer (see #02037) ES:DI -> reply buffer (see #02038) Return: AL = status (00h,C6h) (see #02025) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D8h,AH=E3h/SF=E6h,AH=E3h/SF=E9h SeeAlso: AX=F217h/SF=D9h Format of NetWare "Get Disk Channel Statistics" request buffer: Offset Size Description (Table 02037) 00h WORD 0002h (length of following data) 02h BYTE D9h (subfunction "Get Disk Channel Statistics") 03h BYTE channel number SeeAlso: #02038,#02232 at AX=F217h/SF=D9h Format of NetWare "Get Disk Channel Statistics" reply buffer: Offset Size Description (Table 02038) 00h WORD (call) 00A8h (size of following results record) 02h DWORD (big-endian) clock ticks since system started 06h WORD (big-endian) channel run state (see #02039) 08h WORD (big-endian) channel synchronization state (see #02040) 0Ah BYTE driver type 0Bh BYTE major version of driver 0Ch BYTE minor version of driver 0Dh 65 BYTEs ASCIZ driver description 4Eh WORD (big-endian) first I/O address used 50h WORD (big-endian) length of first I/O address 52h WORD (big-endian) second I/O address used 54h WORD (big-endian) length of second I/O address 56h 3 BYTEs first shared memory address 59h 2 BYTEs length of first shared memory address 5Bh 3 BYTEs second shared memory address 5Eh 2 BYTEs length of second shared memory address 60h BYTE first interrupt number in-use flag 61h BYTE first interrupt number used 62h BYTE second interrupt number in-use flag 63h BYTE second interrupt number used 64h BYTE first DMA channel in-use flag 65h BYTE first DMA channel used 66h BYTE second DMA channel in-use flag 67h BYTE second DMA channel used 68h BYTE flags 69h BYTE reserved 6Ah 80 BYTEs ASCIZ configuration description SeeAlso: #02037,#02232 at AX=F217h/SF=D9h (Table 02039) Values for channel run state: 0000h running 0001h being stopped 0002h stopped 0003h nonfunctional SeeAlso: #02038,#02040 (Table 02040) Values for channel synchronization state: 0000h not in use 0002h used by NetWare, no other requests 0004h used by NetWare, other requests 0006h in use, not needed by NetWare 0008h in use, needed by NetWare 000Ah channel released, NetWare should use it SeeAlso: #02038,#02039Top
INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S TASK INFORMATION AH = E3h subfn DAh DS:SI -> request buffer (see #02041) ES:DI -> reply buffer (see #02042) Return: AL = status (00h,C6h) (see #02053) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E1h,AH=E3h/SF=E5h SeeAlso: AX=F217h/SF=DAh Format of NetWare "Get Connection's Task Information" request buffer: Offset Size Description (Table 02041) 00h WORD 0003h (length of following data) 02h BYTE DAh (subfunction "Get Connection's Task Information") 03h WORD (big-endian) logical connection number SeeAlso: #02042,#02233 at AX=F217h/SF=DAh Format of NetWare "Get Connection's Task Information" reply buffer: Offset Size Description (Table 02042) 00h WORD (call) size of following results record (max 1FEh) 02h BYTE lock status of connection (see #02043) 03h var Lock Status Information (see #02044) N BYTE number of records following N+1 Active Task Information Records [array] Offset Size Description 00h BYTE task number (01h-FFh) 01h BYTE task state 01h in TTS explicit transaction 02h in TTS implicit transaction 04h shared fileset lock active SeeAlso: #02041,#02233 at AX=F217h/SF=DAh (Table 02043) Values for lock status of connection: 00h no locks 01h waiting on physical record lock 02h waiting on file lock 03h waiting on logical record lock 04h waiting on semaphore SeeAlso: #02042,#02044 Format of Lock Status Information: Offset Size Description (Table 02044) ---lock status 00h--- no fields ---lock status 01h--- 00h BYTE number of waiting task 01h DWORD start address 05h DWORD end address 09h BYTE volume number 0Ah WORD directory entry number 0Ch 14 BYTEs ASCIZ filename ---lock status 02h--- 00h BYTE number of waiting task 01h BYTE volume number 02h WORD directory entry number 04h 14 BYTEs ASCIZ filename ---lock status 03h--- 00h BYTE number of waiting task 01h BYTE length of record name 02h N BYTEs ASCIZ record name ---lock status 04h--- 00h BYTE number of waiting task 01h BYTE length of semaphore's name 02h N BYTEs ASCIZ semaphore name SeeAlso: #02042,#02043Top
INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S OPEN FILES (OLD) AH = E3h subfn DBh DS:SI -> request buffer (see #02045) ES:DI -> reply buffer (see #02046) Return: AL = status (00h,C6h) (see #02053) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E2h/SF=1Ah,AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DCh,AH=E3h/SF=DFh SeeAlso: AH=E3h/SF=E1h,AX=F217h/SF=DBh Format of NetWare "Get Connection's Open Files (old)" request buffer: Offset Size Description (Table 02045) 00h WORD 0005h (length of following data) 02h BYTE DBh (subfunction "Get Connection's Open Files") 03h WORD (big-endian) logical connection number 05h WORD (big-endian) last record seen (0000h on first call) SeeAlso: #02046,#02234 at AX=F217h/SF=DBh Format of NetWare "Get Connection's Open Files (old)" reply buffer: Offset Size Description (Table 02046) 00h WORD (call) size of following results record (max 1FEh) 02h WORD next request record (place in "last record" field on next call) 0000h if no more records 04h BYTE number of records following 05h var array of File Information Records (see #02047) SeeAlso: #02045,#02234 at AX=F217h/SF=DBh Format of NetWare File Information Record: Offset Size Description (Table 02047) 00h BYTE task number 01h BYTE lock flags (see #02048) 02h BYTE access flags (see #02049) 03h BYTE lock type 00h no lock FEh file lock FFh locked by Begin Share File Set 04h BYTE volume number (00h-1Fh) 05h WORD (big-endian) directory entry number 07h 14 BYTEs ASCIZ filename SeeAlso: #02046 Bitfields for lock flags: Bit(s) Description (Table 02048) 0 file is locked 1 file opened Shareable 2 logged 3 file opened Normal 6 TTS holding lock 7 Transaction Flag set on file SeeAlso: #02047,#02049 Bitfields for access flags: Bit(s) Description (Table 02049) 0 file open for reading by calling station 1 file open for writing by calling station 2 deny reads by other stations 3 deny writes by other stations 4 file detached 5 TTS Holding Detach 6 TTS Holding Open SeeAlso: #02047,#02048Top
INT 21 - Novell NetWare - FILE SERVER - GET CONNECTIONS USING A FILE AH = E3h subfn DCh DS:SI -> request buffer (see #02050) ES:DI -> reply buffer (see #02051) Return: AL = status (00h,C6h) (see #02053) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E1h SeeAlso: AX=F217h/SF=DCh Format of NetWare "Get Connections Using a File" request buffer: Offset Size Description (Table 02050) 00h WORD length of following data (max 104h) 02h BYTE DCh (subfunction "Get Connections Using a File") 03h WORD (big-endian) last record (0000h on first call) 05h BYTE directory handle 06h BYTE length of file path 07h N BYTEs ASCIZ file path SeeAlso: #02051,#02235 at AX=F217h/SF=DCh Format of NetWare "Get Connections Using a File" reply buffer: Offset Size Description (Table 02051) 00h WORD (call) size of following results record (max 1FEh) 02h WORD (big-endian) count of tasks which have opened or logged file 04h WORD (big-endian) count of tasks which have opened file 06h WORD (big-endian) count of opens for reading 08h WORD (big-endian) count of opens for writing 0Ah WORD (big-endian) deny read count 0Ch WORD (big-endian) deny write count 0Eh WORD next request record (place in "last record" field on next call) 0000h if no more records 10h BYTE locked flag 00h not locked exclusively else locked exclusively 11h BYTE number of records following 12h var array of File Usage Information Records (see #02052) SeeAlso: #02050,#02235 at AX=F217h/SF=DCh Format of NetWare File Usage Information Record: Offset Size Description (Table 02052) 00h WORD (big-endian) logical connection number 02h BYTE task number 03h BYTE lock flags (see #02048) 04h BYTE access flags (see #02049) 05h BYTE lock type 00h no lock FEh file lock FFh locked by Begin Share File SetTop
INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY CONN&FILE AH = E3h subfn DDh DS:SI -> request buffer (see #02054) ES:DI -> reply buffer (see #02055) Return: AL = status (00h,C6h,FFh) (see #02053) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DEh,AH=E3h/SF=DFh,AX=F217h/SF=DDh (Table 02053) Values for NetWare function status: 00h successful C6h no console rights FFh file not open SeeAlso: #02025,#02094 Format of NetWare "Get Phys Record Locks by Conn and File" request buffer: Offset Size Description (Table 02054) 00h WORD 0016h (length of following data) 02h BYTE DDh (subfunction "Get Physical Record Locks by Connection and File") 03h WORD (big-endian) logical connection number 05h WORD (big-endian) last record seen (0000h on first call) 07h BYTE volume number (00h-1Fh) 08h WORD (big-endian) directory handle 0Ah 14 BYTEs ASCIZ filename SeeAlso: #02055,#02236 at AX=F217h/SF=DDh Format of NetWare "Get Phys Record Locks by Conn and File" reply buffer: Offset Size Description (Table 02055) 00h WORD (call) size of following results record (max 1FEh) 02h WORD next request record (place in "last record" on next call) 0000h if no more records 04h BYTE number of physical record locks 05h BYTE number of records following 06h var array of Physical Record Lock Info records (see #02056) SeeAlso: #02054,#02236 at AX=F217h/SF=DDh Format of NetWare Physical Record Lock Info: Offset Size Description (Table 02056) 00h BYTE task number 01h BYTE lock status (see #02057) 02h DWORD (big-endian) starting offset of record in file 06h DWORD (big-endian) ending offset of record in file SeeAlso: #02055 Bitfields for lock status: Bit(s) Description (Table 02057) 0 exclusive lock 1 shareable lock 2 logged 6 lock held by TTS SeeAlso: #02056Top
INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY FILE AH = E3h subfn DEh DS:SI -> request buffer (see #02058) ES:DI -> reply buffer (see #02059) Return: AL = status (00h,C6h,FFh) (see #02053) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=DFh,AX=F217h/SF=DEh Format of NetWare "Get Physical Record Locks by File" request buffer: Offset Size Description (Table 02058) 00h WORD length of following data (max 104h) 02h BYTE DEh (subfunction "Get Physical Record Locks by File") 03h WORD (big-endian) last record seen (0000h on first call) 05h BYTE directory handle 06h BYTE length of filename 07h N BYTEs ASCIZ filename SeeAlso: #02059,#02237 at AX=F217h/SF=DEh Format of NetWare "Get Physical Record Locks by File" reply buffer: Offset Size Description (Table 02059) 00h WORD (call) size of following results record (max 1FEh) 02h WORD next request record (place in "last record" on next call) 0000h if no more records 04h BYTE number of physical record locks 05h BYTE number of records following 06h var array of Physical Record Lock Info records (see #02060) SeeAlso: #02058,#02237 at AX=F217h/SF=DEh Format of NetWare Physical Record Lock Info: Offset Size Description (Table 02060) 00h WORD (big-endian) number of tasks logging record 02h WORD (big-endian) number of tasks with shareable lock 04h DWORD (big-endian) starting offset of record in file 08h DWORD (big-endian) ending offset of record in file 0Ch WORD (big-endian) logical connection number 0Eh BYTE task number 0Fh BYTE lock type 00h none FEh file lock FFh Begin Share File Set lock SeeAlso: #02059Top
INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORDS BY CONNECTION AH = E3h subfn DFh DS:SI -> request buffer (see #02061) ES:DI -> reply buffer (see #02062) Return: AL = status (00h,C6h) (see #02053) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=E0h,AH=E3h/SF=E2h SeeAlso: AX=F217h/SF=DFh Format of NetWare "Get Logical Records by Connection" request buffer: Offset Size Description (Table 02061) 00h WORD 0005h (length of following data) 02h BYTE DFh (subfunction "Get Logical Records By Connection") 03h WORD (big-endian) logical connection number 05h WORD (big-endian) last record seen (0000h on first call) SeeAlso: #02062,#02238 at AX=F217h/SF=DFh Format of NetWare "Get Logical Records by Connection" reply buffer: Offset Size Description (Table 02062) 00h WORD (call) size of following results record (max 1FEh) 02h WORD next request record (place in "last record" field on next call) 0000h if no more locked records 04h BYTE number of records following 05h var array of Logical Lock Information Records (see #02063) SeeAlso: #02061,#02238 at AX=F217h/SF=DFh Format of NetWare Logical Lock Information Record: Offset Size Description (Table 02063) 00h BYTE task number 01h BYTE lock status (see #02057) 02h BYTE length of logical lock's name 03h N BYTEs logical lock's name SeeAlso: #02062Top
INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORD INFORMATION AH = E3h subfn E0h DS:SI -> request buffer (see #02064) ES:DI -> reply buffer (see #02065) Return: AL = status (00h,C6h) (see #02053) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=DFh,AH=E3h/SF=E2h SeeAlso: AX=F217h/SF=E0h Format of NetWare "Get Logical Record Information" request buffer: Offset Size Description (Table 02064) 00h WORD length of following data (max 67h) 02h BYTE E0h (subfunction "Get Logical Record Information") 03h WORD (big-endian) last record seen (0000h on first call) 05h BYTE length of logical record's name 06h N BYTEs logical record's name SeeAlso: #02065,#02239 at AH=E3h/SF=E0h Format of NetWare "Get Logical Record Information" reply buffer: Offset Size Description (Table 02065) 00h WORD (call) size of following results record (max 200h) 02h WORD (big-endian) number of logical connections logging the record 04h WORD (big-endian) number of logical connections with shareable lock 06h WORD (big-endian) next request record (place in "last record" field on next call) 08h BYTE locked exclusively if nonzero 09h BYTE number of records following 0Ah var array of Task Information Records (see #02066) SeeAlso: #02064,#02239 at AH=E3h/SF=E0h Format of NetWare Task Information Record: Offset Size Description (Table 02066) 00h WORD (big-endian) logical connection number 02h BYTE task number 03h BYTE lock status (see #02057) SeeAlso: #02065Top
INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S SEMAPHORES AH = E3h subfn E1h DS:SI -> request buffer (see #02067) ES:DI -> reply buffer (see #02068) Return: AL = status (00h,C6h) (see #02053) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E2h SeeAlso: AX=F217h/SF=E1h Format of NetWare "Get Connection's Semaphores" request buffer: Offset Size Description (Table 02067) 00h WORD 0005h (length of following data) 02h BYTE E1h (subfunction "Get Connection's Semaphores") 03h WORD (big-endian) logical connection number 05h WORD (big-endian) last record seen (0000h on first call) SeeAlso: #02068,#02240 at AX=F217h/SF=E1h Format of NetWare "Get Connection's Semaphores" reply buffer: Offset Size Description (Table 02068) 00h WORD (call) size of following results record (max 1FEh) 02h WORD next request record (place in "last record" field on next call) 04h BYTE number of records following 05h var array of Semaphore Information Records (see #02069) SeeAlso: #02067,#02240 at AX=F217h/SF=E1h Format of NetWare Semaphore Information Record: Offset Size Description (Table 02069) 00h WORD (big-endian) open count 02h BYTE semaphore value (-128 to 127) 03h BYTE task number 04h BYTE lock type 05h BYTE length of semaphore's name 06h N BYTEs semaphore's name 14 BYTEs filename SeeAlso: #02068Top
INT 21 - Novell NetWare - FILE SERVER - GET SEMAPHORE INFORMATION AH = E3h subfn E2h DS:SI -> request buffer (see #02070) ES:DI -> reply buffer (see #02071) Return: AL = status (00h,C6h) (see #02053) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E1h,AX=F217h/SF=E2h Format of NetWare "Get Semaphore Information" request buffer: Offset Size Description (Table 02070) 00h WORD length of following data (max 83h) 02h BYTE E2h (subfunction "Get LAN Driver's Configuration Information") 03h WORD (big-endian) last record seen (0000h on first call) 05h BYTE length of semaphore's name (01h-7Fh) 06h N BYTEs semaphore's name SeeAlso: #02071,#02241 at AX=F217h/SF=E2h Format of NetWare "Get Semaphore Information" reply buffer: Offset Size Description (Table 02071) 00h WORD (call) size of following results buffer (max 1FEh) 02h WORD next request record (place in "last record" on next call) 0000h if no more 04h WORD (big-endian) number of logical connections opening semaphore 06h BYTE semaphore value (-127 to 128) 07h BYTE number of records following 08h var array of Semaphore Information records (see #02072) SeeAlso: #02071,#02241 at AX=F217h/SF=E2h Format of NetWare Semaphore Information: Offset Size Description (Table 02072) 00h WORD (big-endian) logical connection number 02h BYTE task number SeeAlso: #02071Top
INT 21 - Novell NetWare - FILE SERVER - GET LAN DRIVER'S CONFIGURATION INFO AH = E3h subfn E3h DS:SI -> request buffer (see #02073) ES:DI -> reply buffer (see #02074) Return: AL = status (00h,C6h) (see #02053) Notes: this function is supported by Advanced NetWare 2.1+ the calling workstation must have console operator privileges SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E7h,AH=E3h/SF=E8h,AX=F217h/SF=E3h Format of NetWare "Get LAN Driver's Configuration Info" request buffer: Offset Size Description (Table 02073) 00h WORD 0002h (length of following data) 02h BYTE E3h (subfunction "Get LAN Driver's Configuration Information") 03h BYTE LAN board (00h-03h) SeeAlso: #02074,#02242 at AX=F217h/SF=E3h Format of NetWare "Get LAN Driver's Configuration Info" reply buffer: Offset Size Description (Table 02074) 00h WORD (call) 00ACh (size of following results buffer) 02h 4 BYTEs network number 06h 6 BYTEs node number 0Ch BYTE LAN driver installed (00h no--remaining fields invalid) 0Dh BYTE option number selected at configuration time 0Eh 160 BYTEs configuration text ASCIZ hardware type ASCIZ hardware settings SeeAlso: #02073,#02242 at AX=F217h/SF=E3hTop
INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S USAGE STATISTICS AH = E3h subfn E5h DS:SI -> request buffer (see #02075) ES:DI -> reply buffer (see #02076) Return: AL = status (00h,C6h) (see #02053) Notes: this function is supported by Advanced NetWare 2.1+ one must have console operator privileges to get statistics for logical connections other than one's own SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DBh,AH=E3h/SF=E1h SeeAlso: AX=F217h/SF=E5h Format of NetWare "Get Connection's Usage Statistics" request buffer: Offset Size Description (Table 02075) 00h WORD 0003h (length of following data) 02h BYTE E5h (subfunction "Get Connection's Usage Statistics") 03h WORD (big-endian) logical connection number SeeAlso: #02076,#02243 at AX=F217h/SF=E5h Format of NetWare "Get Connection's Usage Statistics" reply buffer: Offset Size Description (Table 02076) 00h WORD (call) 0014h (size of following results record) 02h DWORD (big-endian) clock ticks since server started 06h 6 BYTEs bytes read 0Ch 6 BYTEs bytes written 12h DWORD (big-endian) total request packets SeeAlso: #02075,#02243 at AX=F217h/SF=E5hTop
INT 21 - Novell NetWare - FILE SERVER - GET BINDERY OBJECT DISK SPACE LEFT AH = E3h subfn E6h DS:SI -> request buffer (see #02077) ES:DI -> reply buffer (see #02078) Return: AL = status (00h,C6h) (see #02053) Notes: this function is supported by Advanced NetWare 2.1+ one must have console operator privileges to get the free space for other bindery objects SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E8h,AH=E3h/SF=E9h Format of NetWare "Get Bindery Object Disk Space Left" request buffer: Offset Size Description (Table 02077) 00h WORD 0005h (length of following data) 02h BYTE E6h (subfunction "Get Bindery Object Disk Space Left") 03h DWORD (big-endian) object ID SeeAlso: #02078,#02244 at AX=F217h/SF=E6h Format of NetWare "Get Bindery Object Disk Space Left" reply buffer: Offset Size Description (Table 02078) 00h WORD (call) 000Fh (size of following results buffer) 02h DWORD (big-endian) clock ticks elapsed since server started 06h DWORD (big-endian) object ID 0Ah DWORD (big-endian) 4K disk blocks available to user 0Eh BYTE restrictions (00h enforced, FFh not enforced) SeeAlso: #02077,#02244 at AX=F217h/SF=E6hTop
INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LAN I/O STATISTICS AH = E3h subfn E7h DS:SI -> request buffer (see #02079) ES:DI -> reply buffer (see #02080) Return: AL = status 00h successful Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=11h,AH=E3h/SF=D3h,AH=E3h/SF=E8h SeeAlso: AH=E7h"Novell",AX=F217h/SF=E7h Format of NetWare "Get File Server LAN I/O Statistics" request buffer: Offset Size Description (Table 02079) 00h WORD 0001h (length of following data) 02h BYTE E7h (subfunction "Get File Server LAN I/O Statistics") SeeAlso: #02080,#02245 at AX=F217h/SF=E7h Format of NetWare "Get File Server LAN I/O Statistics" reply buffer: Offset Size Description (Table 02080) 00h WORD (call) 0042h (size of following results buffer) 02h DWORD clock ticks since system started 06h WORD total routing buffers 08h WORD maximum routing buffers used 0Ah WORD current routing buffers used 0Ch DWORD total file service packets 10h WORD number of file service packets buffered 12h WORD number of invalid connection packets 14h WORD packets with bad logical connection numbers 16h WORD number of packets received during processing 18h WORD number of requests reprocessed 1Ah WORD packets with bad sequence numbers 1Ch WORD number of duplicate replies sent 1Eh WORD number of acknowledgements sent 20h WORD number of packets with bad request types 22h WORD requests to attach to ws for which a request is being processed 24h WORD requests to attach from ws which is already attaching 26h WORD number of forged detach requests 28h WORD detach requests with bad connection number 2Ah WORD requests to detach from ws for which requests pending 2Ch WORD number of cancelled replies 2Eh WORD packets discarded due to excessive hop count 30h WORD packets discarded due to unknown net 32h WORD incoming packets discarded for lack of DGroup buffer 34h WORD outgoing packets discarded due to lack of buffer 36h WORD received packets destined for B,C, or D side drivers 38h DWORD number of NetBIOS packets propagated through net 3Ch DWORD total number of non-file-service packets 40h DWORD total number of routed packets Note: all fields except the first are big-endian SeeAlso: #02080,#02245 at AX=F217h/SF=E7hTop
INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER MISC INFORMATION AH = E3h subfn E8h DS:SI -> request buffer (see #02081) ES:DI -> reply buffer (see #02082) Return: AL = status (00h,C6h) (see #02053) Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=11h,AH=E3h/SF=CDh,AH=E3h/SF=E7h SeeAlso: AX=F217h/SF=E8h Format of NetWare "Get File Server Misc Information" request buffer: Offset Size Description (Table 02081) 00h WORD 0001h (length of following data) 02h BYTE E8h (subfunction "Get File Server Misc Information") SeeAlso: #02082,#02246 at AX=F217h/SF=E8h Format of NetWare "Get File Server Misc Information" reply buffer: Offset Size Description (Table 02082) 00h WORD (call) size of following results buffer (max 0048h) 02h DWORD (big-endian) clock ticks since system started 06h BYTE CPU type 00h Motorola 68000 01h Intel 8086, 8088, or V20 02h Intel 80286+ 07h BYTE reserved 08h BYTE number of service processes in server 09h BYTE server utilization in percent 0Ah WORD (big-endian) maximum bindery objects set by configuration 0000h = unlimited 0Ch WORD (big-endian) maximum number of bindery objects used 0Eh WORD (big-endian) current number of bindery objects in use 10h WORD (big-endian) total server memory in KB 12h WORD (big-endian) wasted server memory in KB normally 0000h 14h WORD number of records following (01h-03h) 16h var array of Dynamic Memory Information records (see #02083) SeeAlso: #02081,#02246 at AX=F217h/SF=E8h Format of NetWare Dynamic Memory Information: Offset Size Description (Table 02083) 00h DWORD (big-endian) total dynamic space 04h DWORD (big-endian) maximum dynamic space used 08h DWORD (big-endian) current dynamic space usageTop
INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFORMATION AH = E3h subfn E9h DS:SI -> request buffer (see #02084) ES:DI -> reply buffer (see #02085) Return: AL = status 00h successful Notes: this function is supported by Advanced NetWare 2.1+ SeeAlso: AH=DAh,AH=E2h/SF=15h,AX=F217h/SF=E9h Format of NetWare "Get Volume Information" request buffer: Offset Size Description (Table 02084) 00h WORD 0002h (length of following data) 02h BYTE E9h (subfunction "Get Volume Information") 03h BYTE directory handle SeeAlso: #02085,#02247 at AX=F217h/SF=E9h Format of NetWare "Get Volume Information" reply buffer: Offset Size Description (Table 02085) 00h WORD (call) 0028h (length of following results buffer) 02h DWORD (big-endian) elapsed system time 06h BYTE volume number 07h BYTE logical drive number 08h WORD (big-endian) sectors per block 0Ah WORD (big-endian) starting block 0Ch WORD (big-endian) total blocks on volume 0Eh WORD (big-endian) blocks available on volume 10h WORD (big-endian) total directory slots 12h WORD (big-endian) directory slots available 14h WORD (big-endian) maximum directory entries actually used 16h BYTE flag: volume hashed if nonzero 17h BYTE flag: volume cached if nonzero 18h BYTE flag: volume removable if nonzero 19h BYTE flag: volume mounted if nonzero 1Ah 16 BYTEs NUL-padded volume name SeeAlso: #02084,#02247 at AX=F217h/SF=E9hTop
INT 21 O - Novell NetWare - SET FILE ATTRIBUTES (FCB) AH = E4h CL = file attributes (see #02086) DX:DX -> FCB (see #01345 at AH=0Fh) Return: AL = error code Note: this function was added in NetWare 4.0, but was removed some time prior to Advanced NetWare 2.15, and is no longer listed in current Novell documentation SeeAlso: AX=4301h Bitfields for NetWare file attributes: Bit(s) Description (Table 02086) 0 read only 1 hidden 2 system 7 shareableTop
INT 21 - VIRUS - "Anarkia" - INSTALLATION CHECK AH = E4h Return: AH = 04h if resident SeeAlso: AH=E1h"VIRUS",AH=E7h"VIRUS"Top
INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS AX = E400h Return: AL = program status 00h if DoubleDOS not present 01h if running in visible DoubleDOS partition 02h if running in the invisible DoubleDOS partition SeeAlso: AH=E5h"DoubleDOS",AX=F400hTop
INT 21 - OS/286, OS/386 - CHAIN TO REAL-MODE HANDLER AX = E400h ??? Return: ??? Note: protected mode only???Top
INT 21 - OS/286, OS/386 - SET PROTECTED-MODE TASK GATE AX = E402h ??? Return: ??? Note: protected mode only??? SeeAlso: AX=E403hTop
INT 21 - OS/286, OS/386 - REMOVE PROTECTED-MODE TASK GATE AX = E403h ??? Return: ??? Note: protected mode only??? SeeAlso: AX=E402hTop
INT 21 O - Novell NetWare - UPDATE FILE SIZE (FCB) AH = E5h DS:DX -> FCB (see #01345 at AH=0Fh) Return: AL = (unreliable) return code Notes: this function was added in NetWare 4.0, but was removed some time prior to Advanced NetWare 2.15, and is no longer listed in current Novell documentation on success, NetWare sets AL to zero; on errors it restores ALTop
INT 21 - DoubleDOS - OTHER PROGRAM STATUS AH = E5h Return: AL = status 00h no program in other partition 01h program in other partition is running 02h program in other partition is suspended SeeAlso: AX=E400h"DoubleDOS",AH=F5h"DoubleDOS"Top
INT 21 - OS/286, OS/386 - HEAP MANAGEMENT STRATEGY AX = E500h ??? Return: ??? SeeAlso: AX=E501hTop
INT 21 - OS/286, OS/386 - FORCE HEAP COMPACTION AX = E501h ??? Return: ??? SeeAlso: AX=E500hTop
INT 21 O - Novell NetWare - COPY FILE TO FILE (FCB) AH = E6h CX:DX = number of bytes to copy DS:SI -> opened source FCB ES:DI -> opened destination FCB Return: AL = error code CX = ??? DX = ??? Note: this function was added in NetWare 4.0, but was removed some time prior to Advanced NetWare 2.15, and is no longer listed in current Novell documentationTop
INT 21 P - OS/286, OS/386 - ISSUE REAL PROCEDURE SIGNAL FROM PROTECTED MODE AH = E6h ??? Return: ??? SeeAlso: AH=E2h"OS/286"Top
INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DATE AND TIME AH = E7h DS:DX -> date/time buffer (see #02087) Return: AL = error code 00h successful FFh unsuccessful Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, Alloy NTNX, and Banyan VINES SeeAlso: AH=2Ah,AH=2Ch,AX=5FC0h,AH=E3h/SF=CAh,AX=F214h Format of NetWare date/time buffer: Offset Size Description (Table 02087) 00h BYTE year (80-99 = 1980-1999, 0-79 = 2000-2079) 01h BYTE month (1=Jan) 02h BYTE day 03h BYTE hours 04h BYTE minutes 05h BYTE seconds 06h BYTE day of week (0 = Sunday) (Novell and NTNX only) SeeAlso: #02106Top
INT 21 - OS/286, OS/386 - CREATE CODE SEGMENT AH = E7h ??? Return: ??? SeeAlso: AH=E8h"OS/286",AH=E9h"OS/286",AH=EAh"OS/286"Top
INT 21 - VIRUS - "Spyer"/"Kiev" - INSTALLATION CHECK AH = E7h Return: AH = 78h if resident SeeAlso: AH=E4h"VIRUS",AX=EC59hTop
INT 21 O - Novell NetWare, Alloy NTNX - SET FCB RE-OPEN MODE AH = E8h DL = mode 00h no automatic re-open 01h auto re-open Return: AL = error code Desc: provided backward compatibility with a bug in CP/M and early DOS vers Note: this function was added in NetWare 4.6, but was removed some time prior to Advanced NetWare 2.15, and is no longer listed in current Novell documentationTop
INT 21 - OS/286, OS/386 - SEGMENT CREATION AH = E8h AL = type 00h data segment 01h data window/alias 02h real segment 03h real window/alias CX:DX = size in bytes SI:BX -> start of desired memory block Return: AX = selector 06h shareable segment ??? Return: ??? SeeAlso: AH=E7h"OS/286",AH=E9h"OS/286"Top
INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS AH = E8h AL = program for which to set flags (00h this program, 01h other) DX = keyboard control flags (see #02088) Return: DX = previous flags Notes: disabling Ctrl-PrtSc will allow the program to intercept the keystroke; disabling any of the other keystrokes disables them completely identical to AH=F8h SeeAlso: AH=E1h"DoubleDOS",AH=E2h"DoubleDOS",AH=E3h"DoubleDOS" SeeAlso: AH=F8h"DoubleDOS" Bitfields for DoubleDOS keyboard control flags: Bit(s) Description (Table 02088) 0 menu 1 exchange 2 entire keyboard enable/disable 3 Ctrl-C 4 Ctrl-PrtSc 5 Alt/Erase 6 Ctrl-Break 7 Ctrl-NumLock 8 shift-PrtSc 9-13 undefined 14 cancel key (clear keyboard buffer) 15 suspend key Note: setting a enables the corresponding key or operatin, clearing a disables itTop
INT 21 P - OS/286, OS/386 - CHANGE SEGMENTS AH = E9h AL = function 01h change code segment parameters 02h change data segment parameters 05h adjust segment limit 06h change segment base address ??? Return: ??? SeeAlso: AH=E7h"OS/286",AH=E8h"OS/286",AH=EAh"OS/286",AH=EDh"OS/286" SeeAlso: INT 31/AX=0007h,INT 31/AX=0008hTop
INT 21 - DoubleDOS - SET TIMESHARING PRIORITY AH = E9h AL = new priority (see #02089) Return: AL = priority setting if AL=05h on entry Note: identical to AH=F9h SeeAlso: AH=EAh"DoubleDOS",AH=EBh"DoubleDOS",AH=F9h"DoubleDOS" (Table 02089) Values for DoubleDOS timesharing priority: 00h visible program gets 70%, invisible gets 30% (default) 01h visible program gets 50%, invisible gets 50% 02h visible program gets 30%, invisible gets 70% 03h Top program gets 70%, bottom program gets 30% 04h Top program gets 30%, bottom program gets 70% 05h get current priorityTop
INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY HANDLE AX = E900h DX = drive number to check (0 = A:, ..., 25 = Z:, 26 ... 31) Return: AL = directory handle AH = flags (drive not mapped if none set) bit 0: permanent handle bit 1: temporary handle bit 7: mapped to local drive Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=E2h/SF=00h,AH=E2h/SF=01h,AH=E2h/SF=0AhTop
INT 21 - VIRUS - "Dark End" - INSTALLATION CHECK AX = E900h Return: AX = 1234h if resident SeeAlso: AX=DEFEh"VIRUS",AX=EC27h"VIRUS"Top
INT 21 - Novell NetWare shell 3.01 - MAP A FAKE ROOT DIRECTORY AX = E905h BL = drive number (0=default, 1=A:, ...) DS:DX -> ASCIZ path for fake root (may include server name or be empty) Return: CF set on error AL = error code (03h,0Fh,11h) (see #01680 at AH=59h/BX=0000h) CF clear if successful Note: if drive is not currently mapped, a drive mapping will be created SeeAlso: AX=E906hTop
INT 21 - Novell NetWare shell 3.01 - DELETE FAKE ROOT DIRECTORY AX = E906h BL = drive number (0=default, 1=A:, ...) Return: AL = completion code Note: drive remains mapped SeeAlso: AX=E905hTop
INT 21 - Novell NetWare shell 3.01 - GET RELATIVE DRIVE DEPTH AX = E907h BL = drive number (0=default, 1=A:, ...) Return: AL = number of directories below the fake root FFh if no fake root assigned SeeAlso: AX=E905hTop
INT 21 - Novell NetWare shell 3.01 - SET SHOW DOTS AX = E908h BL = 00h don't return '.' or '..' during directory scans = nonzero directory scans will return '.' or '..' entries Return: BL = previous show-dots settingTop
INT 21 - Novell NetWare - NetWare shell - CONVERT DOS FILE HANDLE TO NETWARE AX = E909h BX = DOS file handle Return: AX = 0000h if successful BX:CX:DX = NetWare file handle Notes: this function is partially a reverse of "AttachHandle" (AH=B4h) many NetWare 3.x functions use a four-byte file handle, which appears to be the high four bytes of the six-byte NetWare handle SeeAlso: AH=B4h"NetWare"Top
INT 21 - Novell NetWare, Alloy NTNX - RETURN SHELL VERSION AH = EAh AL = return version environment string 00h don't return string nonzero get environment string ES:DI -> 40-byte buffer for string Return: buffer filled with three null-terminated entries: major operating system version hardware type Return: AH = operating system (00h = MS-DOS) AL = hardware type 00h IBM PC 01h Victor 9000 BH = major shell version BL = minor shell version CH = (v3.01+) shell type 00h conventional memory 01h expanded memory 02h extended memory CL = shell revision number Note: this function is supported by NetWare 4.6 and Advanced NetWare 1.0+ SeeAlso: INT DF"Victor"Top
INT 21 - DoubleDOS - TURN OFF TASK SWITCHING AH = EAh Return: task switching turned off SeeAlso: AH=E9h"DoubleDOS",AH=EBh"DoubleDOS",AH=FAh"DoubleDOS" SeeAlso: INT FA"DoubleDOS"Top
INT 21 - OS/286, OS/386 - ALLOCATE HUGE SEGMENT AH = EAh ??? Return: ??? Note: protected mode only??? SeeAlso: AH=E7h"OS/286",AH=E8h"OS/286",AH=E9h"OS/286"Top
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG FILE AH = EBh DS:DX -> ASCIZ filename if function C6h lock mode 01h: AL = flags 00h log file only 01h lock as well as log file BP = lock timeout in timer ticks (1/18 second) 0000h = don't wait if file already locked Return: AL = status (see #02090) Desc: add the location and size of the specified file to the log table and optionally lock the file Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=BCh"NetWare",AH=CAh,AH=D0h,AH=ECh"NetWare",AH=EDh"NetWare" (Table 02090) Values for NetWare status: 00h successful 96h no dynamic memory for file FEh timed out FFh failed SeeAlso: #02053Top
INT 21 - DoubleDOS - TURN ON TASK SWITCHING AH = EBh Return: task switching turned on SeeAlso: AH=E9h"DoubleDOS",AH=EAh"DoubleDOS",AH=FBh"DoubleDOS" SeeAlso: INT FB"DoubleDOS"Top
INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY LINEAR ADDRESS AX = EB00h ??? Return: ??? Note: protected mode only??? SeeAlso: AX=EB02h,AX=EB04h,INT 31/AX=0506hTop
INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 16-BIT SEGMENT:OFFSET AX = EB02h ??? Return: ??? Note: protected mode only??? SeeAlso: AX=EB00h,AX=EB04hTop
INT 21 - OS/386 VMM - FREE MAPPED PAGES AX = EB03h ??? Return: ??? Note: protected mode only??? SeeAlso: AX=EB05h,INT 31/AX=0801hTop
INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 32-BIT SEGMENT:OFFSET AX = EB04h ??? Return: ??? Note: protected mode only??? SeeAlso: AX=EB00h,AX=EB02hTop
INT 21 - OS/386 VMM - MAP PAGES AX = EB05h ??? Return: ??? Note: protected mode only??? SeeAlso: AX=EB03h,INT 31/AX=0800hTop
INT 21 - OS/386 VMM - LOCK PAGES IN MEMORY AX = EB06h ??? Return: ??? Note: protected mode only??? SeeAlso: AX=EB07h,INT 31/AX=0600hTop
INT 21 - OS/386 VMM - UNLOCK MEMORY PAGES AX = EB07h ??? Return: ??? Note: protected mode only??? SeeAlso: AX=EB06h,INT 31/AX=0601hTop
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE AH = ECh DS:DX -> ASCIZ filename Return: AL = status 00h successful FFh file not found Desc: unlock the specified file but retain it in the log table Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=CDh,AH=EBh"NetWare",AH=EDh"NetWare"Top
INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS AH = ECh Return: ES = segment of virtual screen Desc: determine the address of the virtual screen to which the program should write instead of the actual video memory, so that the multitasked programs do not interfere with each other's output Notes: screen address can change if task-switching is on! identical to AH=FCh SeeAlso: INT 10/AH=FEh,AH=FCh"DoubleDOS",INT FC"DoubleDOS"Top
INT 21 - OS/286, OS/386 - BLOCK TRANSFER AH = ECh ??? Return: ???Top
INT 21 - VIRUS - "Halloween.1839" - INSTALLATION CHECK AX = EC27h Return: AX = 4A52h ("JR") if resident SeeAlso: AH=E7h"VIRUS",AX=E900h"VIRUS",AX=EC59h"VIRUS"Top
INT 21 - VIRUS - "Terror" - INSTALLATION CHECK AX = EC59h Return: BP = EC59h if resident SeeAlso: AX=EC27h"VIRUS",AH=EEh"VIRUS"Top
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE AH = EDh DS:DX -> ASCIZ filename Return: AL = status 00h successful FFh no files found Desc: unlock the file and remove it from the log table Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=CBh"NetWare",AH=CEh,AH=CFh,AH=EBh"NetWare",AH=ECh"NetWare"Top
INT 21 - OS/286, OS/386 - GET SEGMENT OR WINDOW DESCRIPTOR AH = EDh ??? Return: ??? Note: protected mode only??? SeeAlso: AH=E9h"OS/286"Top
INT 21 - Novell NetWare - CONNECTION SERVICES - GET PHYSICAL STATION ADDRESS AH = EEh Return: CX:BX:AX = six-byte physical address Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and Alloy NTNX SeeAlso: AH=E3h/SF=13hTop
INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS AH = EEh AL = number of 55ms time slices to give away Return: returns after giving away time slices SeeAlso: AH=FEh"DoubleDOS",INT FE"DoubleDOS"Top
INT 21 - VIRUS - "Jerusalem-G", "Pregnant", "Barrotes" - INSTALLATION CHECK AH = EEh Return: AX = 0300h if "Jerusalem-G" resident AL = 05h if "Pregnant" resident AL = FEh if "Barrotes" resident SeeAlso: AH=DDh"VIRUS",AX=EC59h,AX=EEE7h"VIRUS"Top
INT 21 - VIRUS - "GingerBread" - INSTALLATION CHECK AX = EEE7h Return: AX = D703h if installed SeeAlso: AH=EEh"VIRUS",AH=EFh"VIRUS"Top
INT 21 - VIRUS - "Mabuhay"/"June 12th" - INSTALLATION CHECK AH = EFh Return: AX = 025Bh if resident SeeAlso: AX=EC27h"VIRUS",AH=EEh"VIRUS",AH=F0h"VIRUS"Top
INT 21 - Novell NetWare - WORKSTATION - GET DRIVE HANDLE TABLE AX = EF00h Return: ES:SI -> network shell's 32-byte drive handle table AX = 0000h Notes: this function is supported by Advanced NetWare 1.0+ each byte in the drive handle table contains the directory handle for the corresponding drive, or 00h if not mapped to a directory SeeAlso: AX=EF01h,AX=EF02h,AX=EF03h,AX=EF04hTop
INT 21 - Novell NetWare - WORKSTATION - GET DRIVE FLAG TABLE AX = EF01h Return: ES:SI -> network shell's 32-byte drive flag table (see #02091) AX = 0000h Notes: this function is supported by Advanced NetWare 1.0+ each byte in the drive flag table corresponds to a drive SeeAlso: AX=EF00h,AX=EF02h,AX=EF03h (Table 02091) Values in NetWare drive flag table: 00h drive is not mapped 01h permanent network drive 02h temporary network drive 80h mapped to local drive 81h local drive used as permanent network drive 82h local drive used as temporary network driveTop
INT 21 - Novell NetWare - WORKSTATION - GET DRIVE CONNECTION ID TABLE AX = EF02h Return: ES:SI -> network shell's 32-byte drive conection ID table AX = 0000h Notes: this function is supported by Advanced NetWare 1.0+ each byte in the connection ID table corresponds to a drive and contains either the connection ID (1-8) of the server for that drive or 00h if the drive is not mapped to a file server SeeAlso: AX=EF01h,AX=EF03h,AX=F002hTop
INT 21 - Novell NetWare - WORKSTATION - GET CONNECTION ID TABLE AX = EF03h Return: ES:SI -> network shell's connection ID table (see #02092) AX = 0000h Note: this function is supported by Advanced NetWare 1.0+ SeeAlso: AX=EF00h,AX=EF02h,AX=EF04h,AX=F002h Format of NetWare connection ID table [one entry of eight-element array]: Offset Size Description (Table 02092) 00h BYTE in-use flag E0h AES temporary F8h IPX in critical section FAh processing FBh holding FCh AES waiting FDh waiting FEh receiving FFh sending 01h BYTE order number assigned to server (1-8) 02h DWORD (big-endian) file server's network address 06h 6 BYTEs (big-endian) file server's node address 0Ch WORD (big-endian) socket number 0Eh WORD (big-endian) base receive timeout in clock ticks 10h 6 BYTEs (big-endian) preferred routing node 16h BYTE packet sequence number 17h BYTE connection number (FFh = no connection) 18h BYTE connection status (00h if active) 19h WORD (big-endian) maximum receive timeout in clock ticks 1Bh WORD connection number (if > FAh) 1Dh BYTE major version of NetWare 1Eh BYTE minor version of NetWare 1Fh BYTE server flags bit 0: server is burst enabledTop
INT 21 - Novell NetWare - WORKSTATION - GET FILE SERVER NAME TABLE AX = EF04h Return: ES:SI -> network shell's file server name table (see #02093) AX = 0000h Note: this function is supported by Advanced NetWare 1.0+ SeeAlso: AX=EF03h Format of file server name table: Offset Size Description (Table 02093) 00h 48 BYTEs ASCIZ server name for first entry in connection ID table 30h 48 BYTEs ASCIZ server name for second entry in connection ID table ... 150h 48 BYTEs ASCIZ server name for eighth entry in connection ID tableTop
INT 21 - DoubleDOS - MENU CONTROL AH = F0h AL = subfunction 01h exchange tasks 73h resume invisible job if suspended 74h kill other job 75h suspend invisible job Note: identical to AH=E0h SeeAlso: AH=E0h"DoubleDOS"Top
INT 21 - VIRUS - "Frere Jacques" - INSTALLATION CHECK AH = F0h Return: AX = 0300h if resident SeeAlso: AH=EEh"VIRUS",AX=F078h"VIRUS"Top
INT 21 - Novell NetWare - WORKSTATION - SET PREFERRED CONNECTION ID AX = F000h DL = connection ID of prefered file server (1-8) or 00h for none Notes: this function is supported by Advanced NetWare 1.0+ the preferred connection ID is set to 00h by the shell on EOJ SeeAlso: AH=D6h,AX=EF03h,AX=F001h,AX=F002h,AX=F005hTop
INT 21 - Novell NetWare - WORKSTATION - GET PREFERRED CONNECTION ID AX = F001h Return: AL = connection ID of preferred file server (1-8), 00h if not set Notes: this function is supported by Advanced NetWare 1.0+ the preferred connection ID is set to 00h by the shell on EOJ SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F005hTop
INT 21 - Novell NetWare - WORKSTATION - GET DEFAULT CONNECTION ID AX = F002h Return: AL = connection ID of current default file server (1-8) (see AX=EF03h) Note: this function is supported by Advanced NetWare 1.0+ SeeAlso: AX=EF03h,AX=F000h,AX=F004hTop
INT 21 - Novell NetWare - PRINT SERVICES - GET LPT CAPTURE STATUS AX = F003h Return: AH = status 00h not active FFh active AL = connection ID (01h-08h) Note: this function is supported by Advanced NetWare 1.0+ SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=00h,AH=DFh/DL=04hTop
INT 21 - Novell NetWare - WORKSTATION - SET PRIMARY CONNECTION ID AX = F004h DL = connection ID of primary file server (1-8) or 00h for none Note: this function is supported by Advanced NetWare 2.0+ SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F005hTop
INT 21 - Novell NetWare - WORKSTATION - GET PRIMARY CONNECTION ID AX = F005h Return: AL = connection ID of primary file server (1-8), 00h if not set Notes: this function is supported by Advanced NetWare 2.0+ by default, the primary file server is the one from which the login script executed; it is set to 00h if the workstation is not logged in and when it detaches from its primary file server SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F004hTop
INT 21 - VIRUS - "Burgler/H" - INSTALLATION CHECK AX = F078h Return: AX = 0000h if installed SeeAlso: AH=F0h"VIRUS",AH=F1h"VIRUS"Top
INT 21 - Novell NetWare - CONNECTION SERVICES - FILE SERVER CONNECTION AH = F1h AL = subfunction 00h attach to file server DL = preferred file server (01h-08h) 01h detach from file server DL = connection ID 02h logout from file server DL = connection ID Return: AL = status (see #02094) Note: these functions are supported by Advanced NetWare 1.0+ SeeAlso: AH=D7h"NetWare",AH=E3h/SF=14h (Table 02094) Values for NetWare function status: 00h successful F8h already attached to server F9h connection table full FAh no more server slots FCh unknown file server FEh server bindery locked FFh no response from server, or connection does not exist SeeAlso: #02053,#02350Top
INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB AH = F1h SeeAlso: AH=E1h"DoubleDOS",AH=F2h"DoubleDOS",AH=F3h"DoubleDOS" SeeAlso: AH=F8h"DoubleDOS"Top
INT 21 - VIRUS - "F1-337" - ??? AH = F1h ??? Return: ??? SeeAlso: AH=F0h"VIRUS",AX=F1E9hTop
INT 21 - VIRUS - "Tremor" - INSTALLATION CHECK AX = F1E9h Return: AX = installation state CADEh installed, and calling program is infected F100h not installed (normal DOS return value) else installed, but calling program is not infected SeeAlso: AH=F1h"VIRUS",AX=F2AAhTop
INT 21 u - Novell NetWare v3.01+ shell interface - MULTIPLEXOR AH = F2h AL = function (see #02095) (subfunction stored in various places in the request packet, depending on function number; see individual entries) CX = length of request buffer DX = length of reply buffer (0000h if no reply packet) DS:SI -> request buffer ES:DI -> reply buffer (ignored if DX=0000h) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled as appropriate for function Note: this is a multiplexor providing a "raw" interface to the underlying NetWare Core Protocol. Many functions which were accessed via a separate AH function in older versions can also be accessed here, but some NetWare 3.x calls appear to be available only here. SeeAlso: AX=F244h,AX=F268h/SF=3Dh,#02875 (Table 02095) Values for NetWare Core Protocol functions: Fnc/Subfn Description 01h File Set Lock 02h File Release Lock 03h Log File (old) (see AX=F203h) 04h Lock File Set (old) (see AX=F204h) 05h Release File (see AH=CCh,AH=ECh"NetWare") 06h Release File Set (see AH=CDh"NetWare") 07h Clear File (see AH=CEh,AX=F207h) 08h Clear File Set (see AX=F208h) 09h Log Logical Record (old) (see AH=D0h"NetWare") 0Ah Lock Logical Record Set (old) (see AX=F20Ah) 0Bh Clear Logical Record (see AX=F20Bh) 0Ch Release Logical Record (see AH=D2h"NetWare") 0Dh Release Logical Record Set (see AH=D3h"NetWare") 0Eh Clear Logical Record Set (see AX=F20Eh) 0Fh Allocate Resource (see AH=D8h"NetWare") 10h Deallocate Resource (see AH=D9h"NetWare") 11h/xxh print spooling (see AH=E0h"NetWare") 11h/06h Get Printer Status 11h/0Ah Get Printer Queue 12h Get Volume Info with Number (see AH=DAh"NetWare") 13h Get Station Number (see AH=DCh"NetWare") 14h Get File Server Date and Time (NW v2.2+) (see AH=E7h"NetWare") 15h/01h Get Broadcast Message (old) (see AX=F215h/SF=01h) 15h/02h Disable Broadcasts (see AX=F215h/SF=02h) 15h/03h Enable Broadcasts (see AX=F215h/SF=03h) 15h/08h Check Pipe Status (see AH=E1h/SF=08h,AX=F215h/SF=08h) 15h/09h Broadcast to Console (see AH=E1h/SF=09h,AX=F215h/SF=09h) 15h/0Bh Get Broadcast Message (see AX=F215h/SF=0Bh) 16h/00h Set Directory Handle (see AX=F216h/SF=00h) 16h/01h Get Directory Path (see AX=F216h/SF=01h) 16h/02h Scan Directory Information (see AX=F216h/SF=02h) 16h/03h Get Effective Directory Rights (old) (see AX=F216h/SF=03h) 16h/04h Modify Maximum Rights Mask (see AX=F216h/SF=04h) 16h/05h Get Volume Number (see AX=F216h/SF=05h) 16h/06h Get Volume Name (see AX=F216h/SF=06h) 16h/0Ah Create Directory (see AX=F216h/SF=0Ah) 16h/0Bh Delete Directory (see AX=F216h/SF=0Bh) 16h/0Ch Scan Directory for Trustees (see AX=F216h/SF=0Ch) 16h/0Dh Add Trustee to Directory (see AX=F216h/SF=0Dh) 16h/0Eh Delete Trustee from Directory (see AX=F216h/SF=0Eh) 16h/0Fh Rename Directory (see AX=F216h/SF=0Fh) 16h/10h Purge Erased Files (old) (see AX=F216h/SF=10h) 16h/11h Recover Erased File (old) (see AX=F216h/SF=11h) 16h/12h Alloc Permanent Directory Handle (see AX=F216h/SF=12h) 16h/13h Alloc Temporary Directory Handle (see AX=F216h/SF=13h) 16h/14h Deallocate Directory Handle (see AX=F216h/SF=14h) 16h/15h Get Volume Info with Handle (see AX=F216h/SF=15h) 16h/16h Alloc Special Temporary Directory Handle (see AX=F216h/SF=16h) 16h/19h Set Directory Information (see AX=F216h/SF=19h) 16h/1Ah Get Path Name of Volume-Directory Number Pair (see AX=F216h/SF=1Ah) 16h/1Bh Scan Salvageable Files (old) (see AX=F216h/SF=1Bh) 16h/1Ch Recover Salvageable File (old) (see AX=F216h/SF=1Ch) 16h/1Dh Purge Salvageable File (old) (see AX=F216h/SF=1Dh) 16h/1Eh Scan a Directory (see AX=F216h/SF=1Eh) 16h/1Fh Get Directory Entry (see AX=F216h/SF=1Fh) 16h/20h Scan Volume's User Disk Restrictions (see AX=F216h/SF=20h) 16h/21h Add User Disk Space Restriction (see AX=F216h/SF=21h) 16h/22h Remove User Disk Space Restrictions (see AX=F216h/SF=22h) 16h/23h Scan Directory Space Restrictions (see AX=F216h/SF=23h) 16h/24h Set Directory Disk Space Restriction (see AX=F216h/SF=24h) 16h/25h Set Directory File Information (see AX=F216h/SF=25h) 16h/26h Scan File or Directory For Extended Trustees (see AX=F216h/SF=26h) 16h/27h Add Extended Trustee to Directory or File (see AX=F216h/SF=27h) 16h/28h Scan Directory Disk Space (see AX=F216h/SF=28h) 16h/29h Get Object Disk Usage and Restrictions (see AX=F216h/SF=29h) 16h/2Ah Get Effective Rights (see AX=F216h/SF=2Ah) 16h/2Bh Remove Extended Trustee from Dir or File (see AX=F216h/SF=2Bh) 16h/2Ch Get Volume Usage (see AX=F216h/SF=2Ch) 16h/2Dh Get Directory Information (see AX=F216h/SF=2Dh) 16h/2Eh Rename or Move (see AX=F216h/SF=2Eh) 16h/2Fh Get Name Space Information (see AX=F216h/SF=2Fh) 16h/30h Get Name Space Directory Entry (see AX=F216h/SF=30h) 16h/31h Open Data Stream (see AX=F216h/SF=31h) 16h/32h Get Object Effective Rights (see AX=F216h/SF=32h) 16h/33h Get Extended Volume Info (see AX=F216h/SF=33h) 17h/01h Change User Password (old) (see AX=F217h/SF=01h) 17h/02h Get User Connection List (old) (see AX=F217h/SF=02h) 17h/0Ch Verify Serialization (see AX=F217h/SF=0Ch) 17h/0Eh Get Disk Utilization (see AX=F217h/SF=0Eh) 17h/0Fh Scan File Information (see AX=F217h/SF=0Fh) 17h/10h Set File Information (see AX=F217h/SF=10h) 17h/11h Get File Server Information (see AX=F217h/SF=11h) 17h/12h Get Network Serial Number (see AX=F217h/SF=12h) 17h/13h Get Internet Address (old) (see AX=F217h/SF=13h) 17h/14h Login Object (see AX=F217h/SF=14h) 17h/15h Get Object Connection List (old) (see AX=F217h/SF=15h) 17h/16h Get Connection Information (old) (see AX=F217h/SF=1Ch) 17h/17h Get Encryption Key (see AX=F217h/SF=17h) 17h/18h Login Object Encrypted (see AX=F217h/SF=18h) 17h/1Ah Get Internet Address (see AX=F217h/SF=1Ah) 17h/1Bh Get Object Connection List (see AX=F217h/SF=1Bh) 17h/1Ch Get Connection Information (see AX=F217h/SF=1Ch) 17h/1Fh Get Connection List from Object (see AX=F217h/SF=1Fh) 17h/32h Create Bindery Object (see AX=F217h/SF=32h) 17h/33h Delete Bindery Object (see AX=F217h/SF=33h) 17h/34h Rename Bindery Object (see AX=F217h/SF=34h) 17h/35h Get Bindery Object ID (see AX=F217h/SF=35h) 17h/36h Get Bindery Object Name (see AX=F217h/SF=36h) 17h/37h Scan Bindery Object (see AX=F217h/SF=37h) 17h/38h Change Bindery Object Security (see AX=F217h/SF=38h) 17h/39h Create Property (see AX=F217h/SF=39h) 17h/3Ah Delete Property (see AX=F217h/SF=3Ah) 17h/3Bh Change Property Security (see AX=F217h/SF=3Bh) 17h/3Ch Scan Property (see AX=F217h/SF=3Ch) 17h/3Dh Read Property Value (see AX=F217h/SF=3Dh) 17h/3Eh Write Property Value (see AX=F217h/SF=3Eh) 17h/3Fh Verify Bindery Object Password (see AX=F217h/SF=3Fh) 17h/40h Change Bindery Object Password (see AX=F217h/SF=40h) 17h/41h Add Bindery Object to Set (see AX=F217h/SF=41h) 17h/42h Delete Bindery Object from Set (see AX=F217h/SF=42h) 17h/43h Is Bindery Object in Set (see AX=F217h/SF=43h) 17h/44h Close Bindery (see AX=F217h/SF=44h) 17h/45h Open Bindery (see AX=F217h/SF=45h) 17h/46h Get Bindery Access Level (see AX=F217h/SF=46h) 17h/47h Scan Bindery Object Trustee Paths (see AX=F217h/SF=47h) 17h/48h Get Bindery Object Access Level (see AX=F217h/SF=48h) 17h/49h Is Station a Manager? (see AX=F217h/SF=49h) 17h/4Ah Keyed Verify Bindery Object Password (see AX=F217h/SF=4Ah) 17h/4Bh Keyed Change Bindery Object Password (see AX=F217h/SF=4Bh) 17h/4Ch List Relations of an Object (see AX=F217h/SF=4Ch) 17h/64h Create Queue (see AX=F217h/SF=64h) 17h/65h Destroy Queue (see AX=F217h/SF=65h) 17h/66h Read Queue Current Status (old) (see AX=F217h/SF=66h) 17h/67h Set Queue Current Status (old) (see AX=F217h/SF=67h) 17h/68h Create Queue Job and File (old) (see AX=F217h/SF=68h) 17h/69h Close File and Start Queue Job (old) (see AX=F217h/SF=69h) 17h/6Ah Remove Job From Queue (old) (see AX=F217h/SF=6Ah) 17h/6Bh Get Queue Job List (old) (see AX=F217h/SF=6Bh) 17h/6Ch Read Queue Job Entry (old) (see AX=F217h/SF=6Ch) 17h/6Dh Change Queue Job Entry (old) (see AX=F217h/SF=6Dh) 17h/6Eh Change Queue Job Position (see AX=F217h/SF=6Eh) 17h/6Fh Attach Queue Server to Queue (see AX=F217h/SF=6Fh) 17h/70h Detach Queue Server from Queue (see AX=F217h/SF=70h) 17h/72h Finish Servicing Queue Job (old) (see AX=F217h/SF=72h) 17h/74h Change to Client Rights (old) (see AX=F217h/SF=74h) 17h/75h Restore Queue Server Rights (see AX=F217h/SF=75h) 17h/76h Read Queue Server Current Status (old) (see AX=F217h/SF=76h) 17h/77h Set Queue Server Current Status (see AX=F217h/SF=77h) 17h/78h Get Queue Job File Size (old) (see AX=F217h/SF=78h) 17h/79h Create Queue Job and File (see AX=F217h/SF=79h) 17h/7Ah Read Queue Job Entry (see AX=F217h/SF=7Ah) 17h/7Bh Change Queue Job Entry (see AX=F217h/SF=7Bh) 17h/7Dh Read Queue Current Status (see AX=F217h/SF=7Dh) 17h/7Eh Set Queue Current Status (see AX=F217h/SF=7Eh) 17h/7Fh Close File and Start Queue Job (see AX=F217h/SF=7Fh) 17h/80h Remove Job From Queue (see AX=F217h/SF=80h) 17h/81h Get Queue Job List (see AX=F217h/SF=81h) 17h/82h Change Job Priority (see AX=F217h/SF=82h) 17h/83h Finish Servicing Queue Job (see AX=F217h/SF=83h) 17h/85h Change to Client Rights (see AX=F217h/SF=85h) 17h/86h Read Queue Server Current Status (see AX=F217h/SF=86h) 17h/87h Get Queue Job File Size (see AX=F217h/SF=87h) 17h/96h Get Account Status (see AX=F217h/SF=96h) 17h/97h Submit Account Charge (see AX=F217h/SF=97h) 17h/98h Submit Account Hold (see AX=F217h/SF=98h) 17h/99h Submit Account Note (see AX=F217h/SF=99h) 17h/C8h Check Console Privileges (see AX=F217h/SF=C8h) 17h/C9h Get File Server Description Strings (see AX=F217h/SF=C9h) 17h/CAh Set File Server Date and Time (see AX=F217h/SF=CAh) 17h/CBh Disable File Server Login (see AX=F217h/SF=CBh) 17h/CCh Enable File Server Login (see AX=F217h/SF=CCh) 17h/CDh Get File Server Login Status (see AX=F217h/SF=CDh) 17h/CEh Purge All Erased Files (see AX=F217h/SF=CEh) 17h/CFh Disable Transaction Tracking (see AX=F217h/SF=CFh) 17h/D0h Enable Transaction Tracking (see AX=F217h/SF=D0h) 17h/D2h Clear Connection Number (Logout Station) (see AX=F217h/SF=D2h) 17h/D3h Down File Server (see AX=F217h/SF=D3h) 17h/D4h Get File System Statistics (see AX=F217h/SF=D4h) 17h/D5h Get Transaction Tracking Statistics (see AX=F217h/SF=D5h) 17h/D6h Get Disk Cache Statistics (see AX=F217h/SF=D6h) 17h/D7h Get Drive Mapping Table (see AX=F217h/SF=D7h) 17h/D8h Get Physical Disk Statistics (see AX=F217h/SF=D8h) 17h/D9h Get Disk Channel Statistics (see AX=F217h/SF=D9h) 17h/DAh Get Connection's Task Information (NW v2.2) (see AX=F217h/SF=DAh) 17h/DBh Get Connection's Open Files (old) (NW v2.2) (see AX=F217h/SF=DBh) 17h/DCh Get Connections Using a File (NW v2.2) (see AX=F217h/SF=DCh) 17h/DDh Get Physical Record Locks by Connection and File (old) 17h/DEh Get Physical Record Locks by File (old) (see AX=F217h/SF=DEh) 17h/DFh Get Logical Records by Connection (old) (see AX=F217h/SF=DFh) 17h/E0h Get Logical Record Information (old) (see AX=F217h/SF=E0h) 17h/E1h Get Connection's Semaphores (old) (see AX=F217h/SF=E1h) 17h/E2h Get Semaphore Information (old) (see AX=F217h/SF=E2h) 17h/E3h Get LAN Driver's Configuration Information (see AX=F217h/SF=E3h) 17h/E5h Get Connection's Usage Statistics (NW v2.2) (see AX=F217h/SF=E5h) 17h/E6h Get Object's Remaining Disk Space (see AX=F217h/SF=E6h) 17h/E7h Get File Server LAN I/O Statistics (see AX=F217h/SF=E7h) 17h/E8h Get File Server Misc Information (see AX=F217h/SF=E8h) 17h/E9h Get Volume Information (see AX=F217h/SF=E9h) 17h/EAh Get Connection's Task Information (NW v3.11+) (see AX=F217h/SF=EAh) 17h/EBh Get Connection's Open Files (NW v3.11+) (see AX=F217h/SF=EBh) 17h/ECh Get Connections Using a File (NW v3.11+) (see AX=F217h/SF=ECh) 17h/EDh Get Physical Record Locks by Connection and File (see AX=F217h/SF=EDh) 17h/EEh Get Physical Record Locks by File (see AX=F217h/SF=EEh) 17h/EFh Get Logical Records by Connection (see AX=F217h/SF=EFh) 17h/F0h Get Logical Record Information (see AX=F217h/SF=F0h) 17h/F1h Get Connection's Semaphores (see AX=F217h/SF=F1h) 17h/F2h Get Semaphore Information (see AX=F217h/SF=F2h) 17h/F3h Map Directory Number to Path (see AX=F217h/SF=F3h) 17h/F4h Convert Path to Directory Entry (see AX=F217h/SF=F4h) 17h/F5h Get File Server Extended Misc Information (see AX=F217h/SF=F5h) 17h/F6h Get Volume Extended Information (see AX=F217h/SF=F6h) 17h/FEh Clear Connection Number Greater than 250 (see AX=F217h/SF=FEh) 18h End of Job (see AH=D6h"NetWare") 19h Logout (old) (see AH=D7h"NetWare") 1Ah Log Physical Record (old) (see AH=BCh"NetWare") 1Bh Lock Physical Record Set (old) (see AX=F21Bh) 1Ch Release Physical Record (see AH=BDh"NetWare") 1Dh Release Physical Record Set (see AH=C3h"NetWare") 1Eh Clear Physical Record (see AX=F21Eh) 1Fh Clear Physical Record Set (see AX=F21Fh) 20h/xxh semaphore services (see AX=C501h"NetWare") 20h/00h Open Semaphore (old) (see AX=C500h"NetWare") 20h/01h Examine Semaphore (old) (see AX=C501h"NetWare") 20h/02h Wait on Semaphore (old) (see AX=C502h"NetWare") 20h/03h Signal Semaphore (old) (see AX=C503h"NetWare") 20h/04h Close Semaphore (old) (see AX=C504h"NetWare") 21h Negotiate Buffer Size 22h/00h TTS Is Available (see AX=C702h"NetWare") 22h/01h TTS Begin Transaction (see AX=C700h"NetWare") 22h/02h TTS End Transaction (see AX=C701h"NetWare") 22h/03h TTS Abort Transaction (see AX=C703h"NetWare") 22h/04h TTS Transaction Status (see AX=C704h"NetWare") 22h/05h TTS Get Application Thresholds (see AX=C705h"NetWare") 22h/06h TTS Set Application Thresholds (see AX=C706h"NetWare") 22h/07h TTS Get Workstation Thresholds (see AX=C707h"NetWare") 22h/08h TTS Set Workstation Thresholds (see AX=C708h"NetWare") 22h/09h TTS Get Control Flags 22h/0Ah TTS Set Control Flags 23h/01h AFP Create Directory (see AX=F223h/SF=01h) 23h/02h AFP Create File (see AX=F223h/SF=02h) 23h/03h AFP Delete (see AX=F223h/SF=03h) 23h/04h AFP Get Entry ID From Name (see AX=F223h/SF=04h) 23h/05h AFP Get File Information (see AX=F223h/SF=05h) 23h/06h AFP Get Entry ID From NetWare Handle (see AX=F223h/SF=06h) 23h/07h AFP Rename (see AX=F223h/SF=07h) 23h/08h AFP Open File Fork (see AX=F223h/SF=08h) 23h/09h AFP Set File Information (see AX=F223h/SF=09h) 23h/0Ah AFP Scan File Information (see AX=F223h/SF=0Ah) 23h/0Bh AFP Alloc Temporary Dir Handle (see AX=F223h/SF=0Bh) 23h/0Ch AFP Get Entry ID From Path Name (see AX=F223h/SF=0Ch) 23h/0Dh AFP 2.0 Create Directory (see AX=F223h/SF=0Dh) 23h/0Eh AFP 2.0 Create File (see AX=F223h/SF=0Eh) 23h/10h AFP 2.0 Set File Information (see AX=F223h/SF=10h) 23h/11h AFP 2.0 Scan File Information (see AX=F223h/SF=11h) 23h/12h AFP Get DOS Name from Entry ID (see AX=F223h/SF=12h) 23h/13h AFP Get Macintosh Info on Deleted File (see AX=F223h/SF=13h) 3Dh Commit File 3Eh File Search Initialize (FindFirst) (see AX=F23Eh) 3Fh File Search Continue (FindNext) (see AX=F23Fh) 40h Search File 42h Close File (see AX=F242h) 43h File Create (see AX=F243h) 44h File Erase (see AX=F244h) 45h File Rename 46h Set File Attributes 47h Get File Size (see AX=F247h) 48h File Read 49h File Write 4Ah File Server Copy (see AX=F24Ah) 4Bh Set File Time and Date 4Ch File Open 4Dh Create New File (see AX=F24Dh) 4Eh Allow Task Access to File (see AX=F24Eh) 4Fh Set Extended File Attributes (see AH=B6h"NetWare") 54h Open Create File (see also AX=6C00h) 55h Get Sparse File Data Block Bit Map 56h/xx extended attribute services (OS/2) 56h/01h Close Extended Attribute Handle (see AX=F256h/SF=01h) 56h/02h Write Extended Attribute (see AX=F256h/SF=02h) 56h/03h Read Extended Attribute (see AX=F256h/SF=03h) 56h/04h Enumerate Extended Attributes (see AX=F256h/SF=04h) 56h/05h Duplicate Extended Attributes (see AX=F256h/SF=05h) 57h/01h Open/Create File or Subdirectory (see AX=F257h/SF=01h) 57h/02h Initialize Search, continue with 57h/03h (see AX=F257h/SF=02h) 57h/03h Scan NS Entry Info (see AX=F257h/SF=03h) 57h/04h Rename or Move File or Subdirectory (see AX=F257h/SF=04h) 57h/05h Scan File or Subdirectory for Trustees (see AX=F257h/SF=05h) 57h/06h Obtain File or Subdirectory Information (see AX=F257h/SF=06h) 57h/07h Modify File or Subdirectory DOS Information (see AX=F257h/SF=07h) 57h/08h Delete File/Directory (see AX=F257h/SF=08h) 57h/09h Set Short Directory Handle (see AX=F257h/SF=09h) 57h/0Ah Add Trustee Set (see AX=F257h/SF=0Ah) 57h/0Bh Delete Trustee (see AX=F257h/SF=0Bh) 57h/0Ch Allocate Short Directory Handle (see AX=F257h/SF=0Ch) 57h/10h Scan Salvageable Files (see AX=F257h/SF=10h) 57h/11h Recover Salvageable File (see AX=F257h/SF=11h) 57h/12h Purge Salvageable File (see AX=F257h/SF=12h) 57h/13h Get NS Information (see AX=F257h/SF=13h) 57h/15h Get Path String from Short Directory Handle (see AX=F257h/SF=15h) 57h/16h Generate Directory Base and Volume Number (see AX=F257h/SF=16h) 57h/17h Get Name Space Info (see AX=F257h/SF=17h) 57h/18h Get Name Spaces Loaded (see AX=F257h/SF=18h) 57h/19h Write Name Space Info (see AX=F257h/SF=19h) 57h/1Ah Read Extended Name Space Info (see AX=F257h/SF=1Ah) 57h/1Bh Write Extended Name Space Info (see AX=F257h/SF=1Bh) 57h/1Ch Get NS Full Path String (see AX=F257h/SF=1Ch) 57h/1Dh Get Effective Directory Rights (see AX=F257h/SF=1Dh) 58h/01h Get Volume Audit Statistics (see AX=F258h/SF=01h) 58h/02h Add Audit Property (see AX=F258h/SF=02h) 58h/03h Login as Volume Auditor (see AX=F258h/SF=03h) 58h/04h Change Auditor Password (see AX=F258h/SF=04h) 58h/05h Check Audit Access (see AX=F258h/SF=05h) 58h/06h Remove Audit Property (see AX=F258h/SF=06h) 58h/07h Disable Auditing on Volume (see AX=F258h/SF=07h) 58h/08h Enable Auditing on Volume (see AX=F258h/SF=08h) 58h/09h Is User Audited? (see AX=F258h/SF=09h) 58h/0Ah Read Auditing Bit Map (see AX=F258h/SF=0Ah) 58h/0Bh Read Audit Config Header (see AX=F258h/SF=0Bh) 58h/0Dh Logout as Volume Auditor (see AX=F258h/SF=0Dh) 58h/0Eh Reset Auditing File (see AX=F258h/SF=0Eh) 58h/0Fh Reset Audit History File (see AX=F258h/SF=0Fh) 58h/10h Write Auditing Bit Map (see AX=F258h/SF=10h) 58h/11h Write Audit Config Header (see AX=F258h/SF=11h) 58h/13h Get Auditing Flags (see AX=F258h/SF=13h) 58h/14h Close Old Auditing File (see AX=F258h/SF=14h) 58h/15h Delete Old Auditing File (see AX=F258h/SF=15h) 58h/16h Check Audit Level Two Access (see AX=F258h/SF=16h) 5Ah/01h Get DM (Data Migration) Info (see AX=F25Ah/SF=01h) 5Ah/80h Move File Data to DM (see AX=F25Ah/SF=80h) 5Ah/81h DM File Information (see AX=F25Ah/SF=81h) 5Ah/82h Volume DM Status (see AX=F25Ah/SF=82h) 5Ah/83h Get Migration or Status Information (see AX=F25Ah/SF=83h) 5Ah/84h DM Support Module Information (see AX=F25Ah/SF=84h) 5Ah/85h Move File Data from DM (see AX=F25Ah/SF=85h) 5Ah/86h Get or Set Default Support Module (see AX=F25Ah/SF=86h) 61h Negotiate LIP Buffer, packet signing, and IPX checksums 65h Packet Burst Connection 68h/xxh NetWare 4.x directory services (subfn at DS:[SI+11h]) 68h/01h NDS resolve name (see AX=F268h/SF=01h) 68h/03h NDS read property 68h/04h NDS Get Bindery Context (see AX=F268h/SF=04h) 68h/05h NDS Monitor Connection (see AX=F268h/SF=05h) 68h/16h NDS List Partitions (see AX=F268h/SF=16h) 68h/35h NDS get server address (see AX=F268h/SF=35h) 68h/36h NDS set keys 68h/39h NDS begin login 68h/3Ah NDS finish login 68h/3Bh NDS begin authenticate 68h/3Ch NDS finish authenticate 68h/3Dh NDS Logout (see AX=F268h/SF=3Dh) 68h/C8h Get DS Auditing Statistics (see AX=F268h/SF=C8h) 69h Log File (see AX=F269h) 6Ah Lock File Set (see AX=F26Ah) 6Bh Log Logical Record !!!APIREF09 line 1430 6Ch Lock Logical Record Set (see AX=F26Ch) 6Dh Log Physical Record 6Eh Lock Physical Record Set (see AX=F26Eh) 6Fh/00h Open Semaphore (see AX=F26Fh/SF=00h) 6Fh/01h Close Semaphore (see AX=F26Fh/SF=01h) 6Fh/02h Wait on Semaphore (see AX=F26Fh/SF=02h) 6Fh/03h Signal Semaphore (see AX=F26Fh/SF=03h) 6Fh/04h Examine Semaphore (see AX=F26Fh/SF=04h) 72h NetWare 4.x Time Services (see AX=F272h) 7Bh/01h Get Cache Information (see AX=F27Bh/SF=01h) 7Bh/02h Get File Server Information (see AX=F27Bh/SF=02h) 7Bh/03h Get NetWare File Systems Information 7Bh/04h Get User Information (see AX=F27Bh/SF=04h) 7Bh/05h Get Packet Burst Information 7Bh/06h Get IPX/SPX Information (see AX=F27Bh/SF=06h) 7Bh/07h Get Garbage Collection Information 7Bh/08h Get CPU Information (see AX=F27Bh/SF=08h) 7Bh/09h Get Volume Switch Information (see AX=F27Bh/SF=09h) 7Bh/0Ah Get NLM Loaded List (see AX=F27Bh/SF=0Ah) 7Bh/0Bh Get NLM Information (see AX=F27Bh/SF=0Bh) 7Bh/0Ch Get Directory Cache Information 7Bh/0Dh Get OS Version Information (see AX=F27Bh/SF=0Dh) 7Bh/0Eh Get Active Connection List by Type 7Bh/0Fh Get NLM's Resource Tag List 7Bh/14h Get Active LAN Board List (see AX=F27Bh/SF=14h) 7Bh/15h Get LAN Configuration Information (see AX=F27Bh/SF=15h) 7Bh/16h Get LAN Common Counters Information (see AX=F27Bh/SF=16h) 7Bh/17h Get LAN Custom Counters Information 7Bh/18h Get LAN Config Strings 7Bh/19h Get LSL Information 7Bh/1Ah Get LSL Logical Board Statistics 7Bh/1Eh Get Media Manager Object Information 7Bh/1Fh Get Media Manager Object List 7Bh/20h Get Media Manager Object Children List 7Bh/21h Get Volume Segment List 7Bh/28h Get Active Protocol Stacks 7Bh/29h Get Protocol Stack Configuration Information (see AX=F27Bh/SF=29h) 7Bh/2Ah Get Protocol Stack Statistics Information 7Bh/2Bh Get Protocol Stack Custom Information 7Bh/2Ch Get Protocol Stack Numbers By Media Number 7Bh/2Dh Get Protocol Stack Numbers By LAN Board Number 7Bh/2Eh Get Media Name by Media Number 7Bh/2Fh Get Loaded Media Number List 7Bh/32h Get General Router and SAP Information 7Bh/33h Get Network Router Information (see AX=F27Bh/SF=33h) 7Bh/34h Get Network Routers Information 7Bh/35h Get Known Networks Information (see AX=F27Bh/SF=35h) 7Bh/36h Get Server Information 7Bh/38h Get Known Servers Information (see AX=F27Bh/SF=38h) 7Bh/3Ch Get Server Set Commands Information (see AX=F27Bh/SF=3Ch) 7Bh/3Dh Get Server Set Categories (see AX=F27Bh/SF=3Dh) Note: the subfunction is stored at DS:SI for AL=56h,57h, DS:SI+2 for AL=15h-17h,23hTop
INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB AH = F2h AL = character Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) 00h successful 01h buffer full (128 characters) SeeAlso: AH=E2h"DoubleDOS",AH=F1h"DoubleDOS",AH=F3h"DoubleDOS" SeeAlso: AH=F8h"DoubleDOS"Top
INT 21 - Novell NetWare - LOG FILE (OLD) AX = F203h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02477 at AX=F269h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F204h,AX=F269h,AH=EBh"NetWare"Top
INT 21 - Novell NetWare - LOCK FILE SET (OLD) AX = F204h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02096) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F203h,AX=F26Ah,AH=CBh"NetWare" Format of NetWare "Lock File Set (old)" request packet: Offset Size Description (Table 02096) 00h WORD lock timeout in clock ticks (0000h = don't wait)Top
INT 21 - Novell NetWare - CLEAR FILE AX = F207h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02097) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=CEh,AH=EDh"NetWare",AH=F2h"NetWare",AX=F208h Format of NetWare "Clear File" request packet: Offset Size Description (Table 02097) 00h BYTE directory handle 01h BYTE length of filename 02h N BYTEs filename SeeAlso: #02098Top
INT 21 - Novell NetWare - CLEAR FILE SET AX = F208h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02098) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=CFh"NetWare",AH=F2h"NetWare",AX=F207h Format of NetWare "Clear File Set" request packet: Offset Size Description (Table 02098) 00h BYTE lock flag (nonzero to lock) SeeAlso: #02097Top
INT 21 - Novell NetWare - LOCK LOGICAL RECORD SET (OLD) AX = F20Ah CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02479 at AX=F26Ch) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F204h,AX=F26Ch,AH=D1h"NetWare"Top
INT 21 - Novell NetWare - CLEAR LOGICAL RECORD AX = F20Bh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02099) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=D4h"NetWare",AH=F2h"NetWare",AX=F207h,AX=F20Eh Format of NetWare "Clear Logical Record" request packet: Offset Size Description (Table 02099) 00h BYTE length of record name (max 128) 01h N BYTEs logical record name SeeAlso: #02100Top
INT 21 - Novell NetWare - CLEAR LOGICAL RECORD SET AX = F20Eh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02100) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=D5h"NetWare",AH=F2h"NetWare",AX=F207h,AX=F20Bh Format of NetWare "Clear Logical Record Set" request packet: Offset Size Description (Table 02100) 00h BYTE lock flag SeeAlso: #02099Top
INT 21 - Novell NetWare - GET PRINTER STATUS AX = F211h subfn 06h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02101) ES:DI -> reply buffer (see #02102) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=E0h"NetWare",AH=F2h"Novell",AX=F211h/SF=0Ah Format of NetWare "Get Printer Status" request packet: Offset Size Description (Table 02101) 00h WORD length of following data 02h BYTE 06h (subfunction "Get Printer Status") 03h BYTE target printer number (00h-04h) SeeAlso: #02102,#01814 Format of NetWare "Get Printer Status" reply packet: Offset Size Description (Table 02102) 00h BYTE flag: printer halted if FFh 01h BYTE flag: printer off-line if FFh 02h BYTE current form type 03h BYTE redirected printer number SeeAlso: #02101Top
INT 21 - Novell NetWare - GET PRINTER QUEUE AX = F211h subfn 0Ah CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02103) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F211h/SF=06h Format of NetWare "Get Printer Queue" request packet: Offset Size Description (Table 02103) 00h WORD length of following data 02h BYTE 0Ah (subfunction "Get Printer Queue") ???Top
INT 21 - Novell NetWare - GET VOLUME INFO WITH NUMBER AX = F212h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02104) ES:DI -> reply buffer (see #02105) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=15h,AX=F217h/SF=E9h Format of NetWare "Get Volume Info with Number" request packet: Offset Size Description (Table 02104) 00h BYTE volume number SeeAlso: #02105 Format of NetWare "Get Volume Info with Number" reply packet: Offset Size Description (Table 02105) 00h WORD sectors per cluster 02h WORD total clusters in volume 04h WORD free clusters 06h WORD total directory entries for volume (FFFFh if not relevant) 08h WORD available directory entries (FFFFh if not relevant) 0Ah 16 BYTEs volume name 1Ah WORD removability 0000h fixed media FFFFh removable SeeAlso: #02104Top
INT 21 - Novell NetWare - GET FILE SERVER DATE AND TIME AX = F214h CX = 0000h (no request packet) DX = length of reply packet in bytes ES:DI -> buffer for reply packet (see #02106) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"NetWare",AH=E3h/SF=CAh,AH=E7h"NetWare" Format of NetWare "Get File Server Date and Time" reply packet: Offset Size Description (Table 02106) 00h BYTE year-1900 (80-179) 01h BYTE month (1-12) 02h BYTE day (1-31) 03h BYTE hour 04h BYTE minute 05h BYTE second 06h BYTE day of week SeeAlso: #02012 at AH=E3h/SF=CAh,#02087 at AH=E7hTop
INT 21 - Novell NetWare - GET BROADCAST MESSAGE (OLD) AX = F215h subfn 01h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #01822 at AH=E1h/SF=01h) ES:DI -> reply buffer (see #02107) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E1h/SF=01h,AX=F215h/SF=02h,AX=F215h/SF=0Bh Format of NetWare "Get Broadcast Message (Old)" reply packet: Offset Size Description (Table 02107) 00h BYTE length of message (00h-37h) 00h if no broadcast messages pending 01h N BYTEs message (no control characters or characters > 7Eh) SeeAlso: #01821,#01822Top
INT 21 - Novell NetWare - DISABLE BROADCASTS AX = F215h subfn 02h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01823 at AH=E1h/SF=02h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E1h/SF=02h,AX=F215h/SF=01h,AX=F215h/SF=03hTop
INT 21 - Novell NetWare - ENABLE BROADCASTS AX = F215h subfn 03h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01824 at AH=E1h/SF=03h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E1h/SF=03h,AX=F215h/SF=01h,AX=F215h/SF=02hTop
INT 21 - Novell NetWare - CHECK PIPE STATUS AX = F215h subfn 08h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #01835 at AH=E1h/SF=08h) ES:DI -> reply buffer (see #02108) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E1h/SF=08h,AX=F215h/SF=09h Format of NetWare "Check Pipe Status" reply packet: Offset Size Description (Table 02108) 00h BYTE number of connections 01h N BYTEs list of pipe statuses 00h open FEh incomplete FFh closed SeeAlso: #01835,#01836Top
INT 21 - Novell NetWare - BROADCAST TO CONSOLE AX = F215h subfn 09h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01837 at AH=E1h/SF=09h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) Note: requires Access Control rights to the target directory or its parent SeeAlso: AH=E1h/SF=09h,AH=F2h"NetWare",AX=F215h/SF=08hTop
INT 21 - Novell NetWare - GET BROADCAST MESSAGE AX = F215h subfn 0Bh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02109) ES:DI -> reply buffer (see #02110) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E1h/SF=01h,AX=F215h/SF=01h Format of NetWare "Get Broadcast Message" request packet: Offset Size Description (Table 02109) 00h WORD length of following data 02h BYTE 0Bh (subfunction "Get Broadcast Message") SeeAlso: #02110,#01821 Format of NetWare "Get Broadcast Message" reply packet: Offset Size Description (Table 02110) 00h BYTE length of message 01h N BYTEs message SeeAlso: #02109,#01822Top
INT 21 - Novell NetWare - SET DIRECTORY HANDLE AX = F216h subfn 00h CX = length of request buffer in bytes DX = 0000h (no reply buffer) DS:SI -> request buffer (see #01840 at AH=E2h/SF=00h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=00h,AX=F216h/SF=01hTop
INT 21 - Novell NetWare - GET DIRECTORY PATH AX = F216h subfn 01h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #01842 at AH=E2h/SF=01h) ES:DI -> reply buffer (see #01843) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=01h,AX=F216h/SF=00hTop
INT 21 - Novell NetWare - SCAN DIRECTORY INFORMATION AX = F216h subfn 02h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #01844 at AH=E2h/SF=02h) ES:DI -> reply buffer (see #02111) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=02h,AX=F216h/SF=01h,AX=F216h/SF=03h Format of NetWare "Scan Directory Information" reply packet: Offset Size Description (Table 02111) 00h 16 BYTEs subdirectory name 10h DWORD (big-endian) date and time of creation (see #01846) 14h DWORD (big-endian) object ID of owner 18h BYTE maximum directory rights (see #01849) 19h BYTE unused 1Ah WORD (big-endian) subdirectory number SeeAlso: #01844,#01845 at AH=E2h/SF=02hTop
INT 21 - Novell NetWare - GET EFFECTIVE DIRECTORY RIGHTS (OLD) AX = F216h subfn 03h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #01847 at AH=E2h/SF=03h) ES:DI -> reply buffer (see #02112) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=E2h/SF=03h,AX=F216h/SF=02h,AX=F216h/SF=04h,AX=F257h/SF=1Dh Format of NetWare "Get Effective Directory Rights (old)" reply buffer: Offset Size Description (Table 02112) 00h BYTE effective directory rights (see #01849 at AH=E2h/SF=03h) SeeAlso: #01847,#01848 at AH=E2h/SF=03hTop
INT 21 - Novell NetWare - MODIFY MAXIMUM RIGHTS MASK AX = F216h subfn 04h CX = length of request buffer in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01850 at AH=E2h/SF=04h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=04h,AX=F216h/SF=03h,AX=F216h/SF=05hTop
INT 21 - Novell NetWare - GET VOLUME NUMBER AX = F216h subfn 05h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #01852 at AH=E2h/SF=05h) ES:DI -> reply buffer (see #02113) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=05h,AX=F216h/SF=02h,AX=F216h/SF=06h Format of NetWare "Get Volume Number" reply packet: Offset Size Description (Table 02113) 00h BYTE volume number SeeAlso: #01852 at AH=E2h/SF=05hTop
INT 21 - Novell NetWare - GET VOLUME NAME AX = F216h subfn 06h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #01854 at AH=E2h/SF=06h) ES:DI -> reply buffer (see #02114) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=06h,AX=F216h/SF=05h,AX=F216h/SF=0Ah Format of NetWare "Get Volume Name" reply packet: Offset Size Description (Table 02114) SeeAlso: #01854,#01855 at AH=E2h/SF=06hTop
INT 21 - Novell NetWare - CREATE DIRECTORY AX = F216h subfn 0Ah CX = length of request buffer in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01856 at AH=E2h/SF=0Ah) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=39h,AH=F2h"Novell",AH=E2h/SF=0Ah,AX=F216h/SF=0BhTop
INT 21 - Novell NetWare - DELETE DIRECTORY AX = F216h subfn 0Bh CX = length of request buffer in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01858 at AH=E2h/SF=0Bh) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=3Ah,AH=F2h"Novell",AH=E2h/SF=0Bh,AX=F216h/SF=0AhTop
INT 21 - Novell NetWare - SCAN DIRECTORY FOR TRUSTEES AX = F216h subfn 0Ch CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #01859 at AH=E2h/SF=0Ch) ES:DI -> reply buffer (see #02115) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=0Ch,AX=F216h/SF=0Dh Format of NetWare "Scan Directory For Trustees" reply packet: Offset Size Description (Table 02115) 02h 16 BYTEs directory name 12h 4 BYTEs date and time of creation 16h DWORD (big-endian) object ID of owner 1Ah 5 DWORDs (big-endian) object IDs of Trustees 0 through 4 00000000h = end of group 2Eh 5 BYTEs directory rights for Trustees 0 through 4 (see #01849) SeeAlso: #01859 at AH=E2h/SF=0ChTop
INT 21 - Novell NetWare - ADD TRUSTEE TO DIRECTORY AX = F216h subfn 0Dh CX = length of request buffer in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01861 at AH=E2h/SF=0Dh) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) Note: requires Access Control rights to the target directory or its parent SeeAlso: AH=F2h"NetWare",AH=E2h/SF=0Dh,AX=F216h/SF=0Ch,AX=F216h/SF=0EhTop
INT 21 - Novell NetWare - DELETE TRUSTEE FROM DIRECTORY AX = F216h subfn 0Eh CX = length of request buffer in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01862 at AH=E2h/SF=0Eh) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=0Eh,AX=F216h/SF=0Ch,AX=F216h/SF=0DhTop
INT 21 - Novell NetWare - RENAME DIRECTORY AX = F216h subfn 0Fh CX = length of request buffer in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01864 at AH=E2h/SF=0Fh) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=0Fh,AX=F216h/SF=0AhTop
INT 21 - Novell NetWare - PURGE ERASED FILES (OLD) AX = F216h subfn 10h CX = length of request buffer in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01865 at AH=E2h/SF=10h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=10h,AX=F216h/SF=11hTop
INT 21 - Novell NetWare - RECOVER ERASED FILE (OLD) AX = F216h subfn 11h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01867 at AH=E2h/SF=11h) ES:DI -> reply buffer (see #02116) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=11h,AX=F216h/SF=10h Format of NetWare "Recover Erased File (Old)" reply packet: Offset Size Description (Table 02116) 02h 15 BYTEs ASCIZ name of erased file 11h 15 BYTEs ASCIZ name under which file was restored SeeAlso: #01867,#01868 at AH=E2h/SF=11hTop
INT 21 - Novell NetWare - ALLOCATE PERMANENT DIRECTORY HANDLE AX = F216h subfn 12h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01869 at AH=E2h/SF=12h) ES:DI -> reply buffer (see #02118) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=16h,AH=E2h/SF=12h Format of NetWare IPX fragment list entry: Offset Size Description (Table 02117) 00h DWORD -> fragment data 04h WORD size of fragment in bytes Format of NetWare "Allocate Permanent Directory Handle" reply packet: Offset Size Description (Table 02118) 00h BYTE new directory handle 01h BYTE access rights SeeAlso: #01869,#01873,#02117Top
INT 21 - Novell NetWare - ALLOCATE TEMPORARY DIRECTORY HANDLE AX = F216h subfn 13h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01871 at AH=E2h/SF=13h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=12h,AX=F216h/SF=16h,AH=E2h/SF=13hTop
INT 21 - Novell NetWare - DEALLOCATE DIRECTORY HANDLE AX = F216h subfn 14h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01872 at AH=E2h/SF=14h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=14h,AX=F216h/SF=13h,AX=F216h/SF=16hTop
INT 21 - Novell NetWare - GET VOLUME INFO WITH HANDLE AX = F216h subfn 15h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01874 at AH=E2h/SF=15h) ES:DI -> reply buffer (see #02119) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=15h,AX=F212h,AX=F216h/SF=13h Format of NetWare "Get Volume Info With Handle" reply packet: Offset Size Description (Table 02119) 00h WORD (big-endian) sectors per block 02h WORD (big-endian) total blocks on volume 04h WORD (big-endian) blocks available on volume 06h WORD (big-endian) total directory slots 08h WORD (big-endian) directory slots available 0Ah 16 BYTEs NUL-padded volume name 1Ah WORD (big-endian) flag: volume removable if nonzero SeeAlso: #01874 at AH=E2h/SF=15hTop
INT 21 - Novell NetWare v2+ - ALLOCATE SPECIAL TEMPORARY DIRECTORY HANDLE AX = F216h subfn 16h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01876 at AH=E2h/SF=16h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=12h,AX=F216h/SF=13h,AH=E2h/SF=16hTop
INT 21 - Novell NetWare - SAVE DIRECTORY HANDLE AX = F216h subfn 17h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01877 at AH=E2h/SF=17h) ES:DI -> reply buffer (see #02120) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=17h,AX=F216h/SF=18h Format of NetWare "Save Directory Handle" reply packet: Offset Size Description (Table 02120) 00h 16 BYTEs save buffer SeeAlso: #01877,#01878,#02121Top
INT 21 - Novell NetWare - RESTORE DIRECTORY HANDLE AX = F216h subfn 18h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01879 at AH=E2h/SF=18h) ES:DI -> reply buffer (see #02121) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=18h,AX=F216h/SF=17h Format of NetWare "Restore Directory Handle" reply packet: Offset Size Description (Table 02121) 00h BYTE new directory handle 01h BYTE effective rights (see #01849) SeeAlso: #01880,#02120Top
INT 21 - Novell NetWare - SET DIRECTORY INFORMATION AX = F216h subfn 19h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01881 at AH=E2h/SF=19h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=19h,AX=F216h/SF=17hTop
INT 21 - Novell NetWare - GET PATH NAME OF VOLUME-DIRECTORY NUMBER PAIR AX = F216h subfn 1Ah CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01883 at AH=E2h/SF=1Ah) ES:DI -> reply buffer (see #02122) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=1Ah,AX=F216h/SF=0Eh Format of NetWare "Get Path Name Of Volume-Dir Number Pair" reply packet: Offset Size Description (Table 02122) 00h 256 BYTEs path SeeAlso: #01883,#01884 at AH=E2h/SF=1AhTop
INT 21 - Novell NetWare - SCAN SALVAGEABLE FILES (OLD) AX = F216h subfn 1Bh CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02123) ES:DI -> reply buffer (see #02124) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Ch,AX=F216h/SF=1Dh,AX=F257h/SF=10h Format of NetWare "Scan Salvageable Files (Old)" request packet: Offset Size Description (Table 02123) 00h WORD length of following data 02h BYTE 1Bh (subfunction "Scan Salvageable Files (Old)") 03h BYTE directory handle 04h DWORD last sequence number (set to FFFFFFFFh before first call) SeeAlso: #02124,#02399 Format of NetWare "Scan Salvageable Files (Old)" reply packet: Offset Size Description (Table 02124) 00h DWORD next sequence number 04h WORD subdirectory 06h DWORD attributes 0Ah BYTE unique ID 0Bh BYTE flags 0Ch BYTE name space 0Dh BYTE length of filename 0Eh 14 BYTEs filename 1Ah DWORD creation date and time 1Eh DWORD owner ID 22h DWORD last-backup date and time 26h DWORD last-backup ID 2Ah DWORD last-modified date and time 2Eh WORD ??? 30h DWORD last-modified ID 34h DWORD file size 38h 44 BYTEs reserved 62h WORD inherited rights mask 64h WORD last-access date 66h DWORD deleted file's time 6Ah DWORD deletion date and time 6Eh DWORD ID of deletor 72h 16 BYTEs reserved SeeAlso: #02123,#02400Top
INT 21 - Novell NetWare - RECOVER SALVAGEABLE FILE (OLD) AX = F216h subfn 1Ch CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02125) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Bh,AX=F216h/SF=1Dh,AX=F257h/SF=11h Format of NetWare "Recover Salvageable File (Old)" request packet: Offset Size Description (Table 02125) 00h WORD length of following data 02h BYTE 1Ch (subfunction "Recover Salvageable File (Old)") 03h BYTE directory handle 04h DWORD sequence number (set to ? before first call) 08h BYTE length of filename 09h N BYTEs filename in DOS format BYTE length of new name for recovered file N BYTEs recovered filename in NetWare VOLUME:DIRECTORY/.../FILE format SeeAlso: #02401Top
INT 21 - Novell NetWare - PURGE SALVAGEABLE FILE (OLD) AX = F216h subfn 1Dh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02126) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Bh,AX=F216h/SF=1Ch,AX=F257h/SF=12h Format of NetWare "Purge Salvageable File (old)" request packet: Offset Size Description (Table 02126) 00h WORD length of following data 02h BYTE 1Dh (subfunction "Purge Salvageable File (Old)") 03h BYTE directory handle 04h DWORD directory entry 08h DWORD sequence number from Scan Salvageable FilesTop
INT 21 - Novell NetWare - SCAN A DIRECTORY AX = F216h subfn 1Eh CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02127) ES:DI -> reply buffer (see #02128) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E2h/SF=02h,AX=F216h/SF=1Fh Format of NetWare "Scan A Directory" request packet: Offset Size Description (Table 02127) 00h WORD length of following data 02h BYTE 1Eh (subfunction "Scan A Directory") 03h BYTE directory handle 04h BYTE search attributes 05h DWORD sequence number 09h BYTE length of search filespec 0Ah N BYTEs search filespec SeeAlso: #02128 Format of NetWare "Scan A Directory" reply packet: Offset Size Description (Table 02128) 00h DWORD sequence number (copy into next request packet) 04h DWORD subdirectory 08h DWORD attributes 0Ch BYTE unique ID 0Dh BYTE flags 0Eh BYTE name space 0Fh BYTE length of filename ---DOS file--- 10h 12 BYTEs DOS filename 1Ch DWORD creation date and time 20h DWORD owner ID 24h DWORD last-archived date and time 28h DWORD last-archived ID 2Ch DWORD last-updated date and time 30h DWORD last-updated ID 34h DWORD file size 38h 44 BYTEs reserved 64h WORD inherited rights mask 66h WORD last-accessed date 68h 28 BYTEs reserved ---DOS subdirectory--- 10h 12 BYTEs DOS directory name 1Ch DWORD creation date and time 20h DWORD owner ID 24h DWORD last-archived date and time 28h DWORD last-archived ID 2Ch DWORD last-updated date and time 30h DWORD next trustee entry 34h 48 BYTEs reserved 64h DWORD maximum space 68h WORD inherited rights mask 6Ah 26 BYTEs unused SeeAlso: #02127Top
INT 21 - Novell NetWare - GET DIRECTORY ENTRY AX = F216h subfn 1Fh CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02129) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Eh Format of NetWare "Get Directory Entry" request packet: Offset Size Description (Table 02129) 00h WORD length of following data 02h BYTE 1Fh (subfunction "Get Directory Entry") ???Top
INT 21 - Novell NetWare - SCAN VOLUME'S USER DISK RESTRICTIONS AX = F216h subfn 20h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02130) ES:DI -> reply buffer (see #02131) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=23h,AX=F216h/SF=29h Format of NetWare "Scan Volume's User Disk Restrictions" request packet: Offset Size Description (Table 02130) 00h WORD length of following data 02h BYTE 20h (subfunction "Scan Volume's User Disk Restrictions") 03h BYTE volume number 04h DWORD sequence number (set to 00000000h before first call) SeeAlso: #02131 Format of NetWare "Scan Volume's User Disk Restrictions" reply packet: Offset Size Description (Table 02131) 00h BYTE number of entries returned (max 12) 01h 2N DWORDs restriction entries [array] Offset Size Description 00h DWORD object ID 04h DWORD maximum usage allowed (in 4K blocks) SeeAlso: #02130Top
INT 21 - Novell NetWare v3+ - ADD USER DISK SPACE RESTRICTION AX = F216h subfn 21h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02132) ES:DI -> reply buffer (ignored) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AX=F216h/SF=20h,AX=F216h/SF=22h,AX=F216h/SF=24h Format of NetWare "Add User Disk Space Restriction" request buffer: Offset Size Description (Table 02132) 00h WORD 000Ah (length of following data) 02h BYTE 21h (subfunction "Add User Disk Space Restriction") 03h BYTE volume number 04h DWORD (big-endian) object ID 08h DWORD (big-endian) disk space limit in 4K blocks 00000000h to 40000000hTop
INT 21 - Novell NetWare - REMOVE USER DISK SPACE RESTRICTIONS AX = F216h subfn 22h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02133) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=20h,AX=F216h/SF=21h,AX=F216h/SF=23h Format of NetWare "Remove User Disk Space Restrictions" request packet: Offset Size Description (Table 02133) 00h WORD length of following data 02h BYTE 22h (subfunction "Remove User Disk Space Restrictions") ???Top
INT 21 - Novell NetWare - SCAN DIRECTORY SPACE RESTRICTIONS AX = F216h subfn 23h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02134) ES:DI -> reply buffer (see #02135) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=20h,AX=F216h/SF=21h,AX=F216h/SF=22h Format of NetWare "Scan Directory Space Restrictions" request packet: Offset Size Description (Table 02134) 00h WORD length of following data 02h BYTE 23h (subfunction "Scan Directory Space Restrictions") 03h BYTE directory handle SeeAlso: #02135 Format of NetWare "Scan Directory Space Restrictions" reply packet: Offset Size Description (Table 02135) 00h BYTE number of entries returned 01h 10N BYTEs restrictions [array] Offset Size Description 00h WORD depth of directory from root 02h DWORD maximum space allowed for files in directory 04h DWORD current space used by files in directory SeeAlso: #02134Top
INT 21 - Novell NetWare v3+ - SET DIRECTORY DISK SPACE RESTRICTION AX = F216h subfn 24h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02136) ES:DI -> reply buffer (ignored) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AX=F216h/SF=21h,AX=F216h/SF=22h,AX=F216h/SF=23h,AX=F216h/SF=25h Format of NetWare "Set Directory Disk Space Restriction" request buffer: Offset Size Description (Table 02136) 00h WORD 0006h (length of following data) 02h BYTE 24h (subfunction "Set Directory Disk Space Restriction") 03h BYTE directory handle 04h DWORD (big-endian) disk space limit in 4K blocks 00000000h to remove restriction, negative to set to 0 blocksTop
INT 21 - Novell NetWare - SET DIRECTORY/FILE INFORMATION AX = F216h subfn 25h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02137) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=02h Format of NetWare "Set Directory/File Information" request packet: Offset Size Description (Table 02137) 00h WORD length of following data 02h BYTE 25h (subfunction "Set Directory/File Information") 03h BYTE directory handle 04h BYTE search attributes 05h DWORD sequence number 09h DWORD change bits 0Dh DWORD directory number 11h DWORD attributes 15h BYTE unique ID 16h BYTE flags 17h BYTE name space (see #02387) 18h BYTE length of directory/file name 19h 12 BYTEs directory/file name 25h DWORD creation date and time 29h DWORD (big-endian) owner ID 2Dh DWORD last-backup date and time 31h DWORD (big-endian) last-backup ID 35h DWORD last-modification date and time 39h DWORD (big-endian) last-modification ID 3Dh DWORD file size 41h DWORD data fork first FAT 45h DWORD next trustee entry 49h 36 BYTEs reserved 6Dh WORD inherited rights mask 6Fh WORD last-access date 71h 20 BYTEs reserved 85h DWORD primary entry 89h DWORD name listTop
INT 21 - Novell NetWare v3+ - SCAN FILE OR DIRECTORY FOR EXTENDED TRUSTEES AX = F216h subfn 26h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02138) ES:DI -> reply buffer (see #02139) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) Desc: get up to 20 extended trustee entries per call for a file or directory Format of NetWare "Scan File/Directory for Extended Trustees" request buffer: Offset Size Description (Table 02138) 00h WORD length of following data 02h BYTE 26h (subfunc "Scan File or Directory For Extended Trustees") 03h BYTE directory handle 04h BYTE sequence number 00h for first call, increment by number of returned entries 05h BYTE length of path 06h N BYTEs pathname SeeAlso: #02138 Format of NetWare "Scan File/Directory for Extended Trustees" reply buffer: Offset Size Description (Table 02139) 00h BYTE number of entries returned (max 20) 01h 20 DWORDs (big-endian) list of object IDs 51h 20 WORDs list of associated trustee rights SeeAlso: #02139Top
INT 21 - Novell NetWare v3+ - ADD EXTENDED TRUSTEE TO DIRECTORY OR FILE AX = F216h subfn 27h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02140) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) Format of NetWare "Add Extended Trustee to Directory or File" request buffer: Offset Size Description (Table 02140) 00h WORD length of following data 02h BYTE 27h (subfunction "Add Extended Trustee to Directory or File") 03h BYTE directory handle 04h DWORD (big-endian) object ID 08h WORD trustee rights (see #02141) 0Ah BYTE path length 0Bh N BYTEs path name Bitfields for NetWare trustee rights: Bit(s) Description (Table 02141) 0 read 1 write 3 create 4 delete 5 access 6 file 7 modify 8 supervisorTop
INT 21 - Novell NetWare - SCAN DIRECTORY DISK SPACE AX = F216h subfn 28h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02142) ES:DI -> reply buffer (see #02143) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=02h,AX=F216h/SF=20h Format of NetWare "Scan Directory Disk Space" request packet: Offset Size Description (Table 02142) 00h WORD length of following data 02h BYTE 28h (subfunction "Scan Directory Disk Space") 03h BYTE directory handle 04h BYTE search attributes 05h DWORD sequence number (set to FFFFFFFFh before first call) 09h BYTE length of filespec 0Ah N BYTEs search filespec SeeAlso: #02143 Format of NetWare "Scan Directory Disk Space" reply packet: Offset Size Description (Table 02143) 00h DWORD next sequence number 04h DWORD (big-endian) subdirectory number 08h DWORD (big-endian) attributes 0Ch BYTE unique ID 0Dh BYTE flags 0Eh BYTE name space (see #02387) 0Fh BYTE length of name 10h 12 BYTEs name 1Ch DWORD creation date and time 20h DWORD owner ID 24h DWORD date and time last backed up 28h DWORD last-backup ID 2Ch DWORD date and time last modified 30h DWORD last-modification ID 34h DWORD data fork size 38h DWORD data fork first FAT 3Ch DWORD next trustee entry 40h 36 BYTEs reserved 64h WORD inherited rights mask 66h WORD last-access date 68h DWORD deleted file date and time 6Ch DWORD date and time file was deleted 70h DWORD deleted ID 74h 8 BYTEs undefined 7Ch DWORD primary entry 80h DWORD name list 84h DWORD other file fork size SeeAlso: #02142Top
INT 21 - Novell NetWare v3+ - GET OBJECT DISK USAGE AND RESTRICTIONS AX = F216h subfn 29h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02144) ES:DI -> reply buffer (see #02145) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Note: this function returns successfully, showing no restriction, if an invalid object ID is specified SeeAlso: AX=F216h/SF=24h,AX=F216h/SF=33h Format of NetWare "Get Object Disk Restrictions" request buffer: Offset Size Description (Table 02144) 00h WORD 0006h (length of following data) 02h BYTE 21h (subfunction "Get Object Disk Restrictions") 03h BYTE volume number 04h DWORD (big-endian) object ID SeeAlso: #02145 Format of NetWare "Get Object Disk Restrictions" reply buffer: Offset Size Description (Table 02145) 00h DWORD disk space limit 04h DWORD disk space currently in use by object SeeAlso: #02144Top
INT 21 - Novell NetWare - GET EFFECTIVE RIGHTS AX = F216h subfn 2Ah CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02146) ES:DI -> reply buffer (see #02147) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=32h Format of NetWare "Get Effective Rights" request packet: Offset Size Description (Table 02146) 00h WORD length of following data 02h BYTE 2Ah (subfunction "Get Effective Rights") ???Top
INT 21 - Novell NetWare - REMOVE EXTENDED TRUSTEE FROM DIR OR FILE AX = F216h subfn 2Bh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02117,#02147) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=26h,AX=F216h/SF=27h Format of NetWare "Remove Extended Trustee From Dir Or File" request packet: Offset Size Description (Table 02147) 00h WORD length of following data 02h BYTE 2Bh (subfunction "Remove Extended Trustee From Dir Or File") 03h BYTE directory handle 04h DWORD trustee's object ID 08h BYTE unused 09h BYTE length of pathname 0Ah N BYTEs directory path in form VOLUME:DIRECTORY/.../DIRECTORYTop
INT 21 - Novell NetWare - GET VOLUME USAGE AX = F216h subfn 2Ch CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02148) ES:DI -> reply buffer (see #02149) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=20h,AX=F216h/SF=29h Format of NetWare "Get Volume Usage" request packet: Offset Size Description (Table 02148) 00h WORD length of following data 02h BYTE 2Ch (subfunction "Get Volume Usage") ???Top
INT 21 - Novell NetWare - GET DIRECTORY INFORMATION AX = F216h subfn 2Dh CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02149) ES:DI -> reply buffer (see #02150) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=2Ch,AX=F216h/SF=2Eh Format of NetWare "Get Directory Information" request packet: Offset Size Description (Table 02149) 00h WORD length of following data 02h BYTE 2Dh (subfunction "Get Directory Information") 03h BYTE directory handle SeeAlso: #02150 Format of NetWare "Get Directory Information" reply packet: Offset Size Description (Table 02150) 00h DWORD total blocks 04h DWORD available blocks 08h DWORD total number of directory entries 0Ch DWORD number of available directory entries 10h 4 BYTEs reserved 14h BYTE sectors per block 15h BYTE length of volume name 16h N BYTEs volume name SeeAlso: #02149Top
INT 21 - Novell NetWare - RENAME OR MOVE AX = F216h subfn 2Eh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02151) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=34h,AX=F223h/SF=07h,AX=F244h Format of NetWare "Rename Or Move" request packet: Offset Size Description (Table 02151) 00h WORD length of following data 02h BYTE 2Eh (subfunction "Rename Or Move") 03h BYTE source directory handle 04h BYTE search attributes 05h BYTE source path component count 06h N BYTEs source path BYTE destination directory handle BYTE destination path component count N BYTEs destination pathTop
INT 21 - Novell NetWare - GET NAME SPACE INFORMATION AX = F216h subfn 2Fh CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02152) ES:DI -> reply buffer (see #02153) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=30h,AX=F257h/SF=18h Format of NetWare "Get Name Space Information" request packet: Offset Size Description (Table 02152) 00h WORD length of following data 02h BYTE 2Fh (subfunction "Get Name Space Information") 03h BYTE volume number SeeAlso: #02153 Format of NetWare "Get Name Space Information" request packet: Offset Size Description (Table 02153) 00h BYTE length of namespace name 01h N BYTEs name of namespace BYTE number of data streams var data stream information [one entry per data stream] Offset Size Description 00h BYTE associated name space 01h BYTE length of data stream name 02h N BYTEs data stream name BYTE number of loaded name spaces BYTE bitmap of loaded name spaces N BYTEs list of name spaces being used BYTE index number SeeAlso: #02152Top
INT 21 - Novell NetWare - GET NAME SPACE DIRECTORY ENTRY AX = F216h subfn 30h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02154) ES:DI -> reply buffer (see #02155) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=2Fh Format of NetWare "Get Name Space Directory Entry" request packet: Offset Size Description (Table 02154) 00h WORD length of following data 02h BYTE 30h (subfunction "Get Name Space Directory Entry") 03h BYTE volume number 04h DWORD sequence number (set to 00000000h before first call) 08h BYTE name space (see #02387) SeeAlso: #02155 Format of NetWare "Get Name Space Directory Entry" request packet: Offset Size Description (Table 02155) 00h DWORD next sequence number 04h DWORD subdirectory 08h DWORD attributes 0Ch BYTE unique ID 0Dh BYTE flags 0Eh BYTE name space (see #02387) 0Fh BYTE length of name 10h 12 BYTEs filename 1Ch DWORD creation date and time 20h DWORD (big-endian) owner ID 24h DWORD last-backup date and time 28h DWORD (big-endian) last-backup ID 2Ch DWORD last-modification date and time ---DOS file--- 30h DWORD (big-endian) last-modification ID 34h DWORD file size 38h 44 BYTEs reserved 64h WORD inherited rights mask 66h WORD last-access date 68h 28 BYTEs reserved ---DOS subdirectory--- 30h DWORD next trustee entry 34h 48 BYTEs reserved 64h WORD maximum space 66h WORD inherited rights mask 68h 26 BYTEs reserved ---Macintosh subdirectory--- 10h 32 BYTEs Mac filename 30h DWORD resource fork 34h DWORD resource fork size 38h 32 BYTEs Finder information 58h 6 BYTEs ProDOS information 5Eh 38 BYTEs reserved SeeAlso: #02154Top
INT 21 - Novell NetWare - OPEN DATA STREAM AX = F216h subfn 31h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02156) ES:DI -> reply buffer (see #02157) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=30h Format of NetWare "Open Data Stream" request packet: Offset Size Description (Table 02156) 00h WORD length of following data 02h BYTE 31h (subfunction "Open Data Stream") 03h BYTE data stream 04h BYTE directory handle 05h BYTE file attributes 06h BYTE open rights 07h BYTE length of filename 08h N BYTEs filename (8.3) SeeAlso: #02157 Format of NetWare "Open Data Stream" reply packet: Offset Size Description (Table 02157) 00h DWORD file handle SeeAlso: #02156Top
INT 21 - Novell NetWare v2.2+ - GET OBJECT EFFECTIVE RIGHTS AX = F216h subfn 32h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02158) ES:DI -> reply buffer (see #02159) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F216h/SF=29h Format of NetWare "Get Object Effective Rights" request buffer: Offset Size Description (Table 02158) 00h WORD length of following data 02h BYTE 32h (subfunction "Get Object Effective Rights") 03h DWORD object ID 07h BYTE directory handle 08h var counted path string SeeAlso: #02159 Format of NetWare "Get Object Effective Rights" reply buffer: Offset Size Description (Table 02159) 00h WORD object's effective rights 02h 6 BYTEs reserved SeeAlso: #02158Top
INT 21 - Novell NetWare v2.2+ - GET EXTENDED VOLUME INFORMATION AX = F216h subfn 33h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02160) ES:DI -> reply buffer (see #02161) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F216h/SF=29h Format of NetWare "Get Extended Volume Information" request buffer: Offset Size Description (Table 02160) 00h WORD length of following data 02h BYTE 33h (subfunction "Get Extended Volume Information") ---v2.2--- 03h BYTE volume ID ---v4.x--- 03h DWORD volume number SeeAlso: #02161 Format of NetWare "Get Extended Volume Information" reply buffer: Offset Size Description (Table 02161) 00h WORD length of returned data 02h DWORD volume type 06h DWORD status flag bits bit 0: suballocation bit 1: compressoin bit 2: migration bit 3: auditing 0Ah DWORD sector size 0Eh DWORD sectors per cluster 12h DWORD total clusters in volume 16h DWORD free clusters 1Ah DWORD freeable suballocated clusters 1Eh DWORD freeable in-limbo sectors 22h DWORD non-freeable in-limbo sectors 26h DWORD non-freeable available suballocated sectors 2Ah DWORD unuable suballocated sectors 2Eh DWORD total suballocated clusters 32h DWORD number of data streams 36h DWORD number of in-limbo data streams 3Ah DWORD age of oldest deleted file in clock ticks 3Eh DWORD number of compressed data streams 42h DWORD number of compressed in-limbo data streams 46h DWORD number of uncompressable data streams 4Ah DWORD number of precompressed sectors 4Eh DWORD number of compressed sectors 52h DWORD number of migrated files 56h DWORD number of migrated sectors 5Ah DWORD number of clusters used by FAT 5Eh DWORD number of clusters used by directories 62h DWORD number of clusters used by extended directories 66h DWORD total number of directory entries 6Ah DWORD number of unused directory entries 6Eh DWORD total number of extended directory extants 72h DWORD number of unused extended directory extants 76h DWORD number of extended attributes defined (see AX=F256h/SF=04h) 7Ah DWORD number of extended-attribute extants used 7Eh DWORD object ID for Directory Services 82h DWORD date and time volume last modified 86h var counted volume name string SeeAlso: #02160Top
INT 21 - Novell NetWare - CHANGE USER PASSWORD (OLD) AX = F217h subfn 01h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01891 at AH=E3h/SF=01h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) Note: this function requires an object of type USER, unlike the newer password changing function AX=F217h/SF=40h SeeAlso: AH=F2h"Novell",AH=E3h/SF=01h,AX=F217h/SF=02h,AX=F217h/SF=40hTop
INT 21 - Novell NetWare - GET USER CONNECTION LIST (OLD) AX = F217h subfn 02h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01892 at AH=E3h/SF=02h) ES:DI -> reply buffer (see #02162) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=02h,AX=F217h/SF=01h,AX=F217h/SF=0Ch Format of NetWare "Get User Connection List (old)" reply packet: Offset Size Description (Table 02162) 00h BYTE length of connection list 01h BYTE number of bytes in connection list 02h N BYTEs list of connection numbers in use by user SeeAlso: #01892Top
INT 21 - Novell NetWare - VERIFY SERIALIZATION AX = F217h subfn 0Ch CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01896 at AH=E3h/SF=0Ch) ES:DI -> reply buffer (see #02163) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=0Ch,AX=F217h/SF=12h Format of NetWare "Verify Serialization" reply packet: Offset Size Description (Table 02163) 00h WORD server application number SeeAlso: #01896Top
INT 21 - Novell NetWare - GET DISK UTILIZATION AX = F217h subfn 0Eh CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01900 at AH=E3h/SF=0Eh) ES:DI -> reply buffer (see #02164) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=0Eh,AX=F217h/SF=D6h Format of NetWare "Get Disk Utilization" reply packet: Offset Size Description (Table 02164) 00h BYTE volume number (00h-1Fh) 01h DWORD (big-endian) object ID 05h WORD (big-endian) directories used by object 07h WORD (big-endian) files created by object 09h WORD (big-endian) disk blocks used by object-created files SeeAlso: #01900 at AH=E3h/SF=0EhTop
INT 21 - Novell NetWare - SCAN FILE INFORMATION AX = F217h subfn 0Fh CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01903 at AH=E3h/SF=0Fh) ES:DI -> reply buffer (see #02165) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=0Fh,AX=F217h/SF=10h Format of NetWare "Scan File Information" reply packet: Offset Size Description (Table 02165) 00h WORD next sequence number (place in request buffer for next call) 02h 14 BYTEs ASCIZ filename 10h BYTE file attributes (see #01420 at AX=4301h) 11h BYTE extended file attributes (see #01804 at AH=B6h) 12h DWORD (big-endian) file size in bytes 16h WORD (big-endian) file's creation date (see #01666 at AX=5700h) 18h WORD (big-endian) date of last access (see #01665 at AX=5700h) 1Ah DWORD (big-endian) date and time of last update (see #01846) 1Eh DWORD (big-endian) object ID of owner 22h DWORD (big-endian) date and time last archived (see #01846) 26h 55 BYTEs reserved SeeAlso: #01903 at AH=E3h/SF=0FhTop
INT 21 - Novell NetWare - SET FILE INFORMATION AX = F217h subfn 10h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01905 at AH=E3h/SF=10h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=10h,AX=F217h/SF=0FhTop
INT 21 - Novell NetWare - GET FILE SERVER INFORMATION AX = F217h subfn 11h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01907 at AH=E3h/SF=11h) ES:DI -> reply buffer (see #02166) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=11h,AX=F217h/SF=F1h Format of NetWare "Get File Server Information" reply packet: Offset Size Description (Table 02166) 00h 48 BYTEs server's name 30h BYTE NetWare version 31h BYTE NetWare subversion (0-99) 32h WORD (big-endian) number of connections supported NetWare 4.01 reportedly returns maximum simulataneously-used connections 34h WORD (big-endian) number of connections in use 36h WORD (big-endian) maximum connected volumes ---Advanced NetWare 2.1+ --- 38h BYTE operating system revision number 39h BYTE fault tolerance (SFT) level 3Ah BYTE TTS level 3Bh WORD (big-endian) maximum simultaneously-used connections NetWare 4.01 reportedly returns number of connections in use 3Dh BYTE accounting version 3Eh BYTE VAP version 3Fh BYTE queueing version 40h BYTE print server version 41h BYTE virtual console version 42h BYTE security restrictions level 43h BYTE internetwork bridge version 44h 60 BYTEs reserved SeeAlso: #01907Top
INT 21 - Novell NetWare - GET NETWORK SERIAL NUMBER AX = F217h subfn 12h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01909 at AH=E3h/SF=12h) ES:DI -> reply buffer (see #02167) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=12h,AX=F217h/SF=0Ch Format of NetWare "Get Network Serial Number" reply packet: Offset Size Description (Table 02167) 00h 4 BYTEs (big-endian) NetWare server serial number 04h 2 BYTEs (big-endian) NetWare application serial number SeeAlso: #01909 at AH=E3h/SF=12hTop
INT 21 - Novell NetWare - GET INTERNET ADDRESS (OLD) AX = F217h subfn 13h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01911 at AH=E3h/SF=13h) ES:DI -> reply buffer (see #02168) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=13h,AX=F217h/SF=1Ah Format of NetWare "Get Internet Address (old)" reply packet: Offset Size Description (Table 02168) 00h 4 BYTEs network number 04h 6 BYTEs physical node address 0Ah 2 BYTEs socket number SeeAlso: #01911 at AH=E3h/SF=13h,#02174Top
INT 21 - Novell NetWare - LOGIN OBJECT AX = F217h subfn 14h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01913 at AH=E3h/SF=14h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=14h,AX=F216h/SF=18h,AX=F217h/SF=CCh SeeAlso: AX=F258h/SF=03h,AX=F268h/SF=3DhTop
INT 21 - Novell NetWare - GET OBJECT CONNECTION LIST (OLD) AX = F217h subfn 15h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01915 at AH=E3h/SF=15h) ES:DI -> reply buffer (see #02169) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=15h,AX=F217h/SF=1Bh Format of NetWare "Get Object Connection List (old)" reply packet: Offset Size Description (Table 02169) 00h BYTE number of connections 01h N BYTEs connection list SeeAlso: #01915Top
INT 21 - Novell NetWare - GET CONNECTION INFORMATION (OLD) AX = F217h subfn 16h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02170) ES:DI -> reply buffer (see #02171) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AH=F2h"Novell",AX=F217h/SF=1Ch,AX=F217h/SF=1Fh Format of NetWare "Get Connection Information (old)" request packet: Offset Size Description (Table 02170) 00h WORD 0002h (length of following data) 02h BYTE 16h (subfunction "Get Connection Information (old)") 03h BYTE target connection number Note: connection numbers greater than the maximum supported by the server can cause ABENDs SeeAlso: #02171 Format of NetWare "Get Connection Information (old)" reply packet: Offset Size Description (Table 02171) 00h DWORD (big-endian) unique user ID, 00000000h if no one logged in 04h WORD (big-endian) user type 06h 48 BYTEs user name 36h 7 BYTEs login time (see #02087) 3Dh BYTE reserved SeeAlso: #02170Top
INT 21 - Novell NetWare - GET ENCRYPTION KEY AX = F217h subfn 17h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02172) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=18h,AX=F217h/SF=4Ah,AX=F217h/SF=4Bh Format of NetWare "Get Encryption Key" request packet: Offset Size Description (Table 02172) 00h WORD length of following data 02h BYTE 17h (subfunction "Get Encryption Key") ???Top
INT 21 - Novell NetWare - LOGIN OBJECT ENCRYPTED AX = F217h subfn 18h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02173) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=14h,AX=F217h/SF=17h Format of NetWare "Login Object Encrypted" request packet: Offset Size Description (Table 02173) 00h WORD length of following data 02h BYTE 18h (subfunction "Login Object Encrypted") ???Top
INT 21 - Novell NetWare - GET INTERNET ADDRESS AX = F217h subfn 1Ah CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02174) ES:DI -> reply buffer (see #02175) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=13h Format of NetWare "Get Internet Address" request packet: Offset Size Description (Table 02174) 00h WORD length of following data 02h BYTE 1Ah (subfunction "Get Internet Address") 03h DWORD target connection ID SeeAlso: #02175 Format of NetWare "Get Internet Address" reply packet: Offset Size Description (Table 02175) 00h 4 BYTEs network number 04h 6 BYTEs physical node address 0Ah 2 BYTEs socket number 0Ch BYTE connection type 00h not in use 02h NCP 03h AFP SeeAlso: #02174Top
INT 21 - Novell NetWare - GET OBJECT CONNECTION LIST AX = F217h subfn 1Bh CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02176) ES:DI -> reply buffer (see #02177) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=15h Format of NetWare "Get Object Connection List" request packet: Offset Size Description (Table 02176) 00h WORD length of following data 02h BYTE 1Bh (subfunction "Get Object Connection List") 03h DWORD search connection number set to highest connection number returned by previous call, or 00000000h before first call 07h WORD object type 09h BYTE length of object's name 0Ah N BYTEs object name SeeAlso: #02177 Format of NetWare "Get Object Connection List" reply packet: Offset Size Description (Table 02177) 00h BYTE length of connection number list 01h N WORDs array of server connection numbers SeeAlso: #02176Top
INT 21 - Novell NetWare v3+ - GET CONNECTION INFORMATION AX = F217h subfn 1Ch CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02178) ES:DI -> reply buffer (see #02179) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AH=F2h"Novell",AX=F217h/SF=16h,AX=F217h/SF=1Fh Format of NetWare "Get Connection Information" request packet: Offset Size Description (Table 02178) 00h WORD 0005h (length of following data) 02h BYTE 1Ch (subfunction "Get Connection Information") 03h DWORD target connection number Note: connection numbers greater than the maximum supported by the server can cause ABENDs SeeAlso: #02179,#02170 Format of NetWare "Get Connection Information" reply packet: Offset Size Description (Table 02179) 00h DWORD (big-endian) unique user ID, 00000000h if no one logged in 04h WORD (big-endian) user type 06h 48 BYTEs user name 36h 7 BYTEs login time (see #02087) 3Dh BYTE reserved SeeAlso: #02178,#02171Top
INT 21 - Novell NetWare v4 - CHANGE CONNECTION STATE AX = F217h subfn 1Dh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02180) ES:DI -> reply buffer Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Format of NetWare "Change Connection State" requst buffer: Offset Size Description (Table 02180) 00h WORD length of following data 02h BYTE 1Dh (subfunction "Change Connection State") 03h DWORD new stateTop
INT 21 - Novell NetWare v4 - SET WATCHDOG DELAY INTERVAL AX = F217h subfn 1Eh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02181) ES:DI -> reply buffer Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Format of NetWare "Set Watchdog Delay Interval" request buffer: Offset Size Description (Table 02181) 00h WORD length of following data 02h BYTE 1Eh (subfunction "Set Watchdog Delay Interval") 03h DWORD interval in minutesTop
INT 21 - Novell NetWare v4 - GET CONNECTION LIST AX = F217h subfn 1Fh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02182) ES:DI -> reply buffer (see #02183) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Format of NetWare "Get Connection List" request buffer: Offset Size Description (Table 02182) 00h WORD length of following data 02h BYTE 1Fh (subfunction "Get Connection List") 03h DWORD object ID 07h DWORD ??? (initialize to FFFFFFFFh before first call) SeeAlso: #02183 Format of NetWare "Get Connection List" reply buffer: Offset Size Description (Table 02183) 00h WORD number of connections following (max 50) 02h 50 DWORDs connection numbers SeeAlso: #02182Top
INT 21 - Novell NetWare - CREATE BINDERY OBJECT AX = F217h subfn 32h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01921 at AH=E3h/SF=32h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=32h,AX=F217h/SF=33h,AX=F217h/SF=34hTop
INT 21 - Novell NetWare - DELETE BINDERY OBJECT AX = F217h subfn 33h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01923 at AH=E3h/SF=33h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=33h,AX=F217h/SF=32h,AX=F217h/SF=34hTop
INT 21 - Novell NetWare - RENAME BINDERY OBJECT AX = F217h subfn 34h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01924 at AH=E3h/SF=34h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=34h,AX=F217h/SF=32h,AX=F217h/SF=33hTop
INT 21 - Novell NetWare - GET BINDERY OBJECT ID AX = F217h subfn 35h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01925 at AH=E3h/SF=35h) ES:DI -> reply buffer (see #02184) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=35h,AX=F217h/SF=36h,AX=F217h/SF=45h Format of NetWare "Get Bindery Object ID" reply packet: Offset Size Description (Table 02184) 00h DWORD (big-endian) object ID 04h WORD (big-endian) type of object 06h 48 BYTEs object name SeeAlso: #01925 at AH=E3h/SF=35hTop
INT 21 - Novell NetWare - GET BINDERY OBJECT NAME AX = F217h subfn 36h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01928 at AH=E3h/SF=36h) ES:DI -> reply buffer (see #02185) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=36h,AX=F217h/SF=35h,AX=F217h/SF=37h Format of NetWare "Get Bindery Object Name" reply packet: Offset Size Description (Table 02185) 00h DWORD (big-endian) object ID 04h WORD (big-endian) type of object 06h 48 BYTEs object name SeeAlso: #01928 at AH=E3h/SF=36hTop
INT 21 - Novell NetWare - SCAN BINDERY OBJECT AX = F217h subfn 37h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01930 at AH=E3h/SF=37h) ES:DI -> reply buffer (see #02186) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=37h,AX=F217h/SF=3Ch Format of NetWare "Scan Bindery Object" reply packet: Offset Size Description (Table 02186) 00h SeeAlso: #01930Top
INT 21 - Novell NetWare - CHANGE BINDERY OBJECT SECURITY AX = F217h subfn 38h CX = length of request packet in bytes DX = 0000h (no reply buffer) DS:SI -> request packet (see #01932 at AH=E3h/SF=38h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=38h,AX=F217h/SF=32hTop
INT 21 - Novell NetWare - CREATE PROPERTY AX = F217h subfn 39h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01934 at AH=E3h/SF=39h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=39h,AX=F217h/SF=3AhTop
INT 21 - Novell NetWare - DELETE PROPERTY AX = F217h subfn 3Ah CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01936 at AH=E3h/SF=3Ah) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=3Ah,AX=F217h/SF=39h,AX=F217h/SF=3BhTop
INT 21 - Novell NetWare - CHANGE PROPERTY SECURITY AX = F217h subfn 3Bh CX = length of request packet in bytes DX = 0000h (no reply buffer) DS:SI -> request packet (see #01938 at AH=E3h/SF=3Bh) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=3BhTop
INT 21 - Novell NetWare - SCAN PROPERTY AX = F217h subfn 3Ch CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01939 at AH=E3h/SF=3Ch) ES:DI -> reply buffer (see #02187) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=3Ch,AX=F217h/SF=39h,AX=F217h/SF=3Dh Format of NetWare "Scan Property" reply packet: Offset Size Description (Table 02187) 00h SeeAlso: #01939Top
INT 21 - Novell NetWare - READ PROPERTY VALUE AX = F217h subfn 3Dh CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01942 at AH=E3h/SF=3Dh) ES:DI -> reply buffer (see #02188) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=3Dh,AX=F217h/SF=39h,AX=F217h/SF=3Eh Format of NetWare "Read Property Value" request packet: Offset Size Description (Table 02188) 00h SeeAlso: #01942Top
INT 21 - Novell NetWare - WRITE PROPERTY VALUE AX = F217h subfn 3Eh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01944 at AH=E3h/SF=3Eh) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=3Eh,AX=F217h/SF=39h,AX=F217h/SF=3DhTop
INT 21 - Novell NetWare - VERIFY BINDERY OBJECT PASSWORD AX = F217h subfn 3Fh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01947 at AH=E3h/SF=3Fh) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=3Fh,AX=F217h/SF=40hTop
INT 21 - Novell NetWare - CHANGE BINDERY OBJECT PASSWORD AX = F217h subfn 40h CX = length of request packet in bytes DX = 0000h (no reply buffer) DS:SI -> request packet (see #01948 at AH=E3h/SF=40h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=40h,AX=F217h/SF=3FhTop
INT 21 - Novell NetWare v2.2+ - ADD OBJECT TO SET AX = F217h subfn 41h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01951 at AH=E3h/SF=41h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) Desc: add a member to an object's group property SeeAlso: AH=F2h"Novell",AH=E3h/SF=41h,AX=F217h/SF=42h,AX=F217h/SF=43hTop
INT 21 - Novell NetWare - DELETE BINDERY OBJECT FROM SET AX = F217h subfn 42h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01952 at AH=E3h/SF=42h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=42h,AX=F217h/SF=41h,AX=F217h/SF=43hTop
INT 21 - Novell NetWare - IS BINDERY OBJECT IN SET? AX = F217h subfn 43h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01954 at AH=E3h/SF=43h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=43h,AX=F217h/SF=41h,AX=F217h/SF=42hTop
INT 21 - Novell NetWare - CLOSE BINDERY AX = F217h subfn 44h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01955 at AH=E3h/SF=44h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=44h,AX=F217h/SF=45hTop
INT 21 - Novell NetWare - OPEN BINDERY AX = F217h subfn 45h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01956 at AH=E3h/SF=45h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=45h,AX=F217h/SF=44hTop
INT 21 - Novell NetWare - GET BINDERY ACCESS LEVEL AX = F217h subfn 46h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01957 at AH=E3h/SF=46h) ES:DI -> reply buffer (see #02189) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=46h,AX=F217h/SF=45h Format of NetWare "Get Bindery Access Level" reply packet: Offset Size Description (Table 02189) 00h BYTE security levels 01h DWORD (big-endian) object ID SeeAlso: #01957,#01958 at AH=E3h/SF=46hTop
INT 21 - Novell NetWare - SCAN BINDERY OBJECT TRUSTEE PATHS AX = F217h subfn 47h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01959 at AH=E3h/SF=47h) ES:DI -> reply buffer (see #02190) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=47h,AX=F216h/SF=0Ch,AX=F217h/SF=48h Format of NetWare "Scan Bindery Object Trustee Paths" reply packet: Offset Size Description (Table 02190) 00h WORD (big-endian) next sequence number 02h DWORD (big-endian) object ID 06h BYTE trustee directory rights (see #01849 at AH=E2h/SF=03h) 07h BYTE length of trustee path 08h N BYTEs trustee path SeeAlso: #01959,#01960 at AH=E3h/SF=47hTop
INT 21 - Novell NetWare - GET BINDERY OBJECT ACCESS LEVEL AX = F217h subfn 48h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02191) ES:DI -> reply buffer (see #02192) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=45h,AX=F217h/SF=46h Format of NetWare "Get Bindery Object Access Level" request packet: Offset Size Description (Table 02191) 00h WORD length of following data (max ABh) 02h BYTE 48h (subfunction "Get Bindery Object Access Level") 03h DWORD object ID SeeAlso: #02192 Format of NetWare "Get Bindery Object Access Level" reply packet: Offset Size Description (Table 02192) 00h BYTE object access level SeeAlso: #02191Top
INT 21 - Novell NetWare - IS STATION A MANAGER? AX = F217h subfn 49h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02193) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=43h Format of NetWare "Is Station A Manager?" request packet: Offset Size Description (Table 02193) 00h WORD length of following data 02h BYTE 49h (subfunction "Is Station A Manager?") 03h DWORD object IDTop
INT 21 - Novell NetWare - KEYED VERIFY BINDERY OBJECT PASSWORD AX = F217h subfn 4Ah CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02194) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=4Bh Format of NetWare "Keyed Verify Bindery Object Password" request packet: Offset Size Description (Table 02194) 00h WORD length of following data 02h BYTE 4Ah (subfunction "Keyed Verify Bindery Object Password") 03h 8 BYTEs key 0Bh WORD type 0Dh BYTE length of object's name 0Eh N BYTEs object name SeeAlso: #02195Top
INT 21 - Novell NetWare - KEYED CHANGE BINDERY OBJECT PASSWORD AX = F217h subfn 4Bh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02195) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=4Ah Format of NetWare "Keyed Change Bindery Object Password" request packet: Offset Size Description (Table 02195) 00h WORD length of following data 02h BYTE 4Bh (subfunction "Keyed Change Bindery Object Password") 03h 8 BYTEs key 0Bh WORD type 0Dh BYTE length of object name 0Eh N BYTEs object name BYTE length of new password N BYTEs new password SeeAlso: #01948Top
INT 21 - Novell NetWare - LIST RELATIONS OF AN OBJECT AX = F217h subfn 4Ch CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02196) ES:DI -> reply buffer (see #02197) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=39h Format of NetWare "List Relations Of An Object" request packet: Offset Size Description (Table 02196) 00h WORD length of following data 02h BYTE 4Ch (subfunction "List Relations Of An Object") 03h DWORD last bindery ID seen (set to FFFFFFFFh on first call) 07h WORD object type 09h BYTE length of object's name 0Ah N BYTEs object's name BYTE length of property name N BYTEs property name SeeAlso: #02197 Format of NetWare "List Relations Of An Object" reply packet: Offset Size Description (Table 02197) 00h WORD number of relations returned 02h var relations SeeAlso: #02196Top
INT 21 - Novell NetWare v2.1+ - CREATE QUEUE AX = F217h subfn 64h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01962 at AH=E3h/SF=64h) ES:DI -> reply buffer (see #02198) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=64h,AX=F217h/SF=65h,AX=F217h/SF=66h Format of NetWare "Create Queue" reply packet: Offset Size Description (Table 02198) 00h DWORD (big-endian) object ID of queue SeeAlso: #01962,#01963Top
INT 21 - Novell NetWare v2.1+ - DESTROY QUEUE AX = F217h subfn 65h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01964 at AH=E3h/SF=65h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=65h,AX=F217h/SF=64h,AX=F217h/SF=66hTop
INT 21 - Novell NetWare v2.1+ - READ QUEUE CURRENT STATUS (OLD) AX = F217h subfn 66h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01965 at AH=E3h/SF=64h) ES:DI -> reply buffer (see #02199) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=66h,AX=F217h/SF=64h,AX=F217h/SF=67h Format of NetWare "Read Queue Current Status (Old)" reply packet: Offset Size Description (Table 02199) 00h DWORD (big-endian) object ID of queue 04h BYTE status of queue (see #01967) 05h BYTE number of jobs in queue (00h-FAh) 06h BYTE number of servers attached to queue (00h-19h) 07h 25 DWORDs list of object IDs of attached servers 6Bh 25 BYTEs list of attached servers' stations 84h BYTE (call) maximum number of servers to return SeeAlso: #01965,#01966 at AH=E3h/SF=66hTop
INT 21 - Novell NetWare v2.1+ - SET QUEUE CURRENT STATUS (OLD) AX = F217h subfn 67h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01968 at AH=E3h/SF=67h) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=67h,AX=F217h/SF=66h,AX=F217h/SF=68hTop
INT 21 - Novell NetWare v2.1+ - CREATE QUEUE JOB AND FILE (OLD) AX = F217h subfn 68h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01970 at AH=E3h/SF=68h) ES:DI -> reply buffer (see #02200) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=68h,AX=F217h/SF=67h,AX=F217h/SF=69h Format of NetWare "Create Queue Job And File (Old)" reply packet: Offset Size Description (Table 02200) 00h BYTE client station 01h BYTE client task number 02h DWORD (big-endian) object ID of client 06h DWORD (big-endian) object ID of target server 0Ah 6 BYTEs target execution time (year,month,day,hour,minute,second) 10h 6 BYTEs job entry time (year,month,day,hour,minute,second) 16h WORD (big-endian) job number 18h WORD (big-endian) job type 1Ah BYTE job position 1Bh BYTE job control flags (see #01980) 1Ch 14 BYTEs ASCIZ job file name 2Ah 6 BYTEs job file handle 30h BYTE server station 31h BYTE server task number 32h DWORD (big-endian) object ID of server or 00000000h SeeAlso: #01970,#01972Top
INT 21 - Novell NetWare v2.1+ - CLOSE FILE AND START QUEUE JOB (OLD) AX = F217h subfn 69h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01973 at AH=E3h/SF=69h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=69h,AX=F217h/SF=6Ah,AX=F217h/SF=7FhTop
INT 21 - Novell NetWare v2.1+ - REMOVE JOB FROM QUEUE (OLD) AX = F217h subfn 6Ah CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01975 at AH=E3h/SF=6Ah) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=6Ah,AX=F217h/SF=68h,AX=F217h/SF=69hTop
INT 21 - Novell NetWare v2.1+ - GET QUEUE JOB LIST (OLD) AX = F217h subfn 6Bh CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01976 at AH=E3h/SF=6Bh) ES:DI -> reply buffer (see #02201) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=6Bh,AX=F217h/SF=6Ah,AX=F217h/SF=6Ch SeeAlso: AX=F217h/SF=81h Format of NetWare "Get Queue Job List (old)" reply packet: Offset Size Description (Table 02201) 00h WORD (big-endian) job count 02h N WORDs (big-endian) list of job numbers by position in queue SeeAlso: #01976,#01977 at AH=E3h/SF=6BhTop
INT 21 - Novell NetWare v2.1+ - READ QUEUE JOB ENTRY (OLD) AX = F217h subfn 6Ch CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01978 at AH=E3h/SF=6Ch) ES:DI -> reply buffer (see #02202) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=6Ch,AX=F217h/SF=6Bh,AX=F217h/SF=6Dh Format of NetWare "Read Queue Job Entry (old)" reply packet: Offset Size Description (Table 02202) 00h BYTE client station number 01h BYTE client task number 02h DWORD object ID of client 06h DWORD (big-endian) object ID of target server FFFFFFFFh if any server acceptable 0Ah 6 BYTEs target execution time (year,month,day,hour,minute,second) FFFFFFFFFFFFh if serviced as soon as possible 10h 6 BYTEs job entry time (year,month,day,hour,minute,second) 16h WORD (big-endian) job number 18h WORD (big-endian) job type 1Ah BYTE job position 1Bh BYTE job control flags (see #01980) 1Ch 14 BYTEs ASCIZ job filename 2Ah 6 BYTEs job file handle 30h BYTE server station 31h BYTE server task number 32h DWORD object ID of server 36h 50 BYTEs ASCIZ job description string 68h 152 BYTEs client record area SeeAlso: #01978,#01979Top
INT 21 - Novell NetWare v2.1+ - CHANGE QUEUE JOB ENTRY (OLD) AX = F217h subfn 6Dh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01981 at AH=E3h/SF=6Dh) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=7Bh,AH=E3h/SF=6Dh,AX=F217h/SF=6ChTop
INT 21 - Novell NetWare v2.1+ - CHANGE QUEUE JOB POSITION AX = F217h subfn 6Eh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01982 at AH=E3h/SF=6Eh) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AX=F217h/SF=6Dh,AH=E3h/SF=6EhTop
INT 21 - Novell NetWare v2.1+ - ATTACH QUEUE SERVER TO QUEUE AX = F217h subfn 6Fh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01984 at AH=E3h/SF=6Fh) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=6Fh,AX=F217h/SF=D2hTop
INT 21 - Novell NetWare v2.1+ - DETACH QUEUE SERVER FROM QUEUE AX = F217h subfn 70h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01985 at AH=E3h/SF=70h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=70h,AX=F217h/SF=6FhTop
INT 21 - Novell NetWare v2.1+ - SERVICE QUEUE JOB AND OPEN FILE AX = F217h subfn 71h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01986 at AH=E3h/SF=71h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) Notes: the caller must be on a workstation which is security-equivalent to a member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties SeeAlso: AH=E3h/SF=71h,AX=F217h/SF=70h,AX=F217h/SF=72hTop
INT 21 - Novell NetWare v2.1+ - FINISH SERVICING QUEUE JOB (OLD) AX = F217h subfn 72h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01987 at AH=E3h/SF=72h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=72h,AX=F217h/SF=71h,AX=F217h/SF=73h SeeAlso: AX=F217h/SF=83hTop
INT 21 - Novell NetWare v2.1+ - ABORT SERVICING QUEUE JOB (OLD) AX = F217h subfn 73h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01988 at AH=E3h/SF=73h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=73h,AX=F217h/SF=72h,AX=F217h/SF=84hTop
INT 21 - Novell NetWare v2.1+ - CHANGE TO CLIENT RIGHTS (OLD) AX = F217h subfn 74h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01990 at AH=E3h/SF=74h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) Desc: temporarily assume the login identity of the client submitting the job being serviced SeeAlso: AH=F2h"NetWare",AH=E3h/SF=74h,AX=F217h/SF=85hTop
INT 21 - Novell NetWare v2.1+ - RESTORE QUEUE SERVER RIGHTS AX = F217h subfn 75h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01991 at AH=E3h/SF=75h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=75h,AX=F217h/SF=74hTop
INT 21 - Novell NetWare - READ QUEUE SERVER CURRENT STATUS (OLD) AX = F217h subfn 76h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01992 at AH=E3h/SF=76h) ES:DI -> reply buffer (see #02203) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=76h,AX=F217h/SF=74h,AX=F217h/SF=77h Format of NetWare "Read Queue Server Current Status (old)" reply packet: Offset Size Description (Table 02203) 00h 64 BYTEs server status record (format depends on server) first four bytes should contain estimated "price" for an average job SeeAlso: #01992,#01993 at AH=E3h/SF=76hTop
INT 21 - Novell NetWare - SET QUEUE SERVER CURRENT STATUS AX = F217h subfn 77h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01994 at AH=E3h/SF=77h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=77h,AX=F217h/SF=76hTop
INT 21 - Novell NetWare - GET QUEUE JOB FILE SIZE (OLD) AX = F217h subfn 78h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #01996 at AH=E3h/SF=78h) ES:DI -> reply buffer (see #02204) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=78h,AX=F217h/SF=71h,AX=F217h/SF=79h Format of NetWare "Get Queue Job File Size (old)" reply packet: Offset Size Description (Table 02204) 00h DWORD (big-endian) object ID of queue 04h WORD (big-endian) job number 06h DWORD (big-endian) size of job file in bytes SeeAlso: #01996,#01997 at AH=E3h/SF=78hTop
INT 21 - Novell NetWare - CREATE QUEUE JOB AND FILE AX = F217h subfn 79h CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02205) ES:DI -> reply buffer (see #02206) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=7Ah,AX=F217h/SF=7Bh Format of NetWare "Create Queue Job And File" request packet: Offset Size Description (Table 02205) 00h WORD length of following data 02h BYTE 79h (subfunction "Create Queue Job And File") 03h DWORD queue ID 07h 280 BYTEs queue job structure (see #02210) SeeAlso: #02206,#02207,#02209 Format of NetWare "Create Queue Job And File" reply packet: Offset Size Description (Table 02206) 00h 10 BYTEs reserved for future use 0Ah DWORD client station 0Eh DWORD client task 12h DWORD client ID 16h DWORD target server ID 1Ah 6 BYTEs target execution time year,month,day,hour,minute,second (FFFFFFFFFFFFh = first opportunity) 20h 6 BYTEs job entry time (set by queue manager) 26h DWORD job number (1-999) assigned by queue manager 2Ah WORD job type 2Ch WORD position of job in queue (0001h = first, etc.) 2Eh WORD job control flags (see #01980 at AH=E3h/SF=6Ch) 30h 14 BYTEs ASCIZ job file name 3Eh DWORD job file handle (set by queue manager) 42h DWORD server station (set by queue manager) 46h DWORD server task number (set by queue manager) 4Ah DWORD server object ID (set by queue manager) SeeAlso: #02205,#02210Top
INT 21 - Novell NetWare - READ QUEUE JOB ENTRY AX = F217h subfn 7Ah CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02207) ES:DI -> reply buffer (see #02208) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=79h,AX=F217h/SF=7Bh Format of NetWare "Read Queue Job Entry" request packet: Offset Size Description (Table 02207) 00h WORD length of following data 02h BYTE 7Ah (subfunction "Read Queue Job Entry") 03h DWORD queue ID 07h DWORD job entry number SeeAlso: #02208,#02205,#02209 Format of NetWare "Read Queue Job Entry" reply packet: Offset Size Description (Table 02208) 00h 280 BYTEs job structure (see #02210) SeeAlso: #02207Top
INT 21 - Novell NetWare v2.1+ - CHANGE QUEUE JOB ENTRY AX = F217h subfn 7Bh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02209) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=6Dh,AX=F217h/SF=79h,AX=F217h/SF=7Dh Format of NetWare "Change Queue Job Entry" request packet: Offset Size Description (Table 02209) 00h WORD length of following data 02h BYTE 7Bh (subfunction "Change Queue Job Entry") 03h DWORD queue ID 07h 280 BYTEs job structure (see #02210) SeeAlso: #02205,#02207 Format of NetWare v3.11+ job structure: Offset Size Description (Table 02210) 00h WORD record-in-use flag 02h DWORD -> previous record 06h DWORD -> next record 0Ah DWORD client station connection number 0Eh DWORD client task number (set by queue manager) 12h DWORD client object ID 16h DWORD target server object ID 1Ah 6 BYTEs target execution time year,month,day,hour,minute,second (FFFFFFFFFFFFh = first opportunity) 20h 6 BYTEs job entry time (set by queue manager) 26h DWORD job number (1-999) assigned by queue manager 2Ah WORD job type 2Ch WORD position of job in queue (0001h = first, etc.) 2Eh WORD job control flags (see #01980 at AH=E3h/SF=6Ch) 30h 14 BYTEs ASCIZ job file name 3Eh DWORD job file handle (set by queue manager) 42h DWORD server station (set by queue manager) 46h DWORD server task number (set by queue manager) 4Ah DWORD server object ID (set by queue manager) 4Eh 50 BYTEs ASCIZ job description string 80h 152 BYTEs client record area SeeAlso: #02209,#01971Top
INT 21 - Novell NetWare - READ QUEUE CURRENT STATUS AX = F217h subfn 7Dh CX = length of request packet in bytes DX = length of reply buffer in bytes DS:SI -> request packet (see #02211) ES:DI -> reply buffer (see #02212) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=66h,AX=F217h/SF=79h,AX=F217h/SF=7Bh SeeAlso: AX=F217h/SF=7Eh Format of NetWare "Read Queue Current Status" request packet: Offset Size Description (Table 02211) 00h WORD length of following data 02h BYTE 7Dh (subfunction "Read Queue Current Status") 03h DWORD (big-endian) object ID of queue SeeAlso: #02212,#02213 Format of NetWare "Read Queue Current Status" reply packet: Offset Size Description (Table 02212) 00h DWORD queue ID 04h DWORD queue status bit 0: no more jobs can be added bit 1: no more queue servers can be attached bit 2: attached queu servers can not service queue jobs 08h DWORD current number of jobs in queue 0Ch DWORD number of servers attached to queue 10h N DWORDs attached server IDs SeeAlso: #02211,#01966 at AH=E3h/SF=66hTop
INT 21 - Novell NetWare - SET QUEUE CURRENT STATUS AX = F217h subfn 7Eh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02213) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=7Dh Format of NetWare "Set Queue Current Status" request packet: Offset Size Description (Table 02213) 00h WORD length of following data 02h BYTE 7Eh (subfunction "Set Queue Current Status") 03h DWORD queue ID 07h DWORD queue status bit 0: no more jobs can be added bit 1: no more queue servers can be attached bit 2: attached queu servers can not service queue jobs SeeAlso: #02211Top
INT 21 - Novell NetWare - CLOSE FILE AND START QUEUE JOB AX = F217h subfn 7Fh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02214) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=69h,AX=F217h/SF=80h,AX=F217h/SF=81h Format of NetWare "Close File And Start Queue Job" request packet: Offset Size Description (Table 02214) 00h WORD length of following data 02h BYTE 7Fh (subfunction "Close File And Start Queue Job") 03h DWORD queue ID 07h DWORD job numberTop
INT 21 - Novell NetWare - REMOVE JOB FROM QUEUE AX = F217h subfn 80h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02215) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=6Ah,AX=F217h/SF=7Fh Format of NetWare "Remove Job From Queue" request packet: Offset Size Description (Table 02215) 00h WORD length of following data 02h BYTE 80h (subfunction "Remove Job From Queue") 03h DWORD queue ID 07h DWORD job number (returned when job was added to queue)Top
INT 21 - Novell NetWare - GET QUEUE JOB LIST AX = F217h subfn 81h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02216) ES:DI -> reply buffer (see #02217) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=6Bh Format of NetWare "Get Queue Job List" request packet: Offset Size Description (Table 02216) 00h WORD length of following data 02h BYTE 81h (subfunction "Get Queue Job List") 03h DWORD queue ID 07h DWORD address of next job in queue SeeAlso: #02217 Format of NetWare "Get Queue Job List" reply packet: Offset Size Description (Table 02217) 00h DWORD total jobs in queue 04h DWORD length of job number list (max 125) 08h N DWORDs list of job numbers in queue SeeAlso: #02216Top
INT 21 - Novell NetWare v2.1+ - CHANGE JOB PRIORITY AX = F217h subfn 82h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02218) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell" Format of NetWare "Change Job Priority" request packet: Offset Size Description (Table 02218) 00h WORD length of following data 02h BYTE 82h (subfunction "Change Job Priority") 03h DWORD queue ID 07h DWORD job number 0Bh DWORD priorityTop
INT 21 - Novell NetWare v3.1+ - FINISH SERVICING QUEUE JOB AX = F217h subfn 83h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #01998 at AH=E3h/SF=83h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=83h,AX=F217h/SF=72h,AX=F217h/SF=84hTop
INT 21 - Novell NetWare v3.1+ - ABORT SERVICING QUEUE JOB AX = F217h subfn 84h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02000 at AH=E3h/SF=84h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) Desc: inform the Queue Management System (QMS) that the queue server is unable to service a previously-accepted job SeeAlso: AH=F2h"Novell",AH=E3h/SF=84h,AX=F217h/SF=73h,AX=F217h/SF=83hTop
INT 21 - Novell NetWare v3.1+ - CHANGE TO CLIENT RIGHTS AX = F217h subfn 85h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02219) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) Desc: temporarily assume the login identity of the client submitting the job being serviced SeeAlso: AH=F2h"NetWare",AH=E3h/SF=74h,AX=F217h/SF=74h Format of NetWare "Change to Client Rights" request packet: Offset Size Description (Table 02219) 00h WORD length of following data 02h BYTE 85h (subfunction "Change to Client Rights") 03h DWORD queue object ID 07h DWORD job number SeeAlso: #01990Top
INT 21 - Novell NetWare v3.1+ - READ QUEUE SERVER CURRENT STATUS AX = F217h subfn 86h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02220) ES:DI -> reply buffer (see #02221) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=76h,AX=F217h/SF=77h,AX=F217h/SF=7Dh Format of NetWare "Read Queue Server Current Status" request packet: Offset Size Description (Table 02220) 00h WORD length of following data 02h BYTE 86h (subfunction "Read Queue Server Current Status") 03h DWORD queue ID 07h DWORD server ID 0Bh DWORD connection ID SeeAlso: #02221 Format of NetWare "Read Queue Server Current Status" request packet: Offset Size Description (Table 02221) 00h 64 BYTEs server status record SeeAlso: #02220Top
INT 21 - Novell NetWare v3.1+ - GET QUEUE JOB FILE SIZE AX = F217h subfn 87h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02222) ES:DI -> reply buffer (see #02223) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=78h Format of NetWare "Get Queue Job File Size" request packet: Offset Size Description (Table 02222) 00h WORD length of following data 02h BYTE 87h (subfunction "Get Queue Job File Size") ??? SeeAlso: #02223 Format of NetWare "Get Queue Job File Size" request packet: Offset Size Description (Table 02223) 00h ??? SeeAlso: #02222Top
INT 21 - Novell NetWare - GET ACCOUNT STATUS AX = F217h subfn 96h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02003 at AH=E3h/SF=96h) ES:DI -> reply buffer (see #02224) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=96h,AX=F217h/SF=97h,AX=F217h/SF=98h Format of NetWare "Get Account Status" reply packet: Offset Size Description (Table 02224) 00h DWORD (big-endian) account balance 04h DWORD (big-endian) credit limit signed number indicating lowest allowable account balance 06h 120 BYTEs reserved 80h DWORD (big-endian) object ID, server 1 84h DWORD (big-endian) hold amount, server 1 ... F6h DWORD (big-endian) object ID, server 16 FAh DWORD (big-endian) hold amount, server 16 Note: the reply buffer lists the servers which have placed holds on a portion of the account balance, and the amount reserved by each SeeAlso: #02003,#02004 at AH=E3h/SF=96hTop
INT 21 - Novell NetWare - SUBMIT ACCOUNT CHARGE AX = F217h subfn 97h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02005 at AH=E3h/SF=97h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=97h,AX=F217h/SF=96h,AX=F217h/SF=98hTop
INT 21 - Novell NetWare - SUBMIT ACCOUNT HOLD AX = F217h subfn 98h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02006 at AH=E3h/SF=98h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=98h,AX=F217h/SF=97h,AX=F217h/SF=99hTop
INT 21 - Novell NetWare - SUBMIT ACCOUNT NOTE AX = F217h subfn 99h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02008 at AH=E3h/SF=99h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=99h,AX=F217h/SF=96h,AX=F217h/SF=98hTop
INT 21 - Novell NetWare - CHECK CONSOLE PRIVILEGES AX = F217h subfn C8h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02009 at AH=E3h/SF=C8h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=C8h,AX=F217h/SF=C9h,AX=F217h/SF=D1hTop
INT 21 - Novell NetWare - GET FILE SERVER DESCRIPTION STRINGS AX = F217h subfn C9h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02010 at AH=E3h/SF=C9h) ES:DI -> reply buffer (see #02225) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=C9h,AX=F217h/SF=C8h,AX=F217h/SF=CAh Format of NetWare "Get File Server Description Strings" reply packet: Offset Size Description (Table 02225) 00h var ASCIZ name of company distributing this copy of NetWare var ASCIZ version and revision 9 BYTEs ASCIZ revision date (mm/dd/yy) var ASCIZ copyright notice SeeAlso: #02010,#02011 at AH=E3h/SF=C9hTop
INT 21 - Novell NetWare - SET FILE SERVER DATE AND TIME AX = F217h subfn CAh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02012 at AH=E3h/SF=CAh) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=CAh,AX=F217h/SF=C8h,AX=F217h/SF=CBhTop
INT 21 - Novell NetWare - DISABLE FILE SERVER LOGIN AX = F217h subfn CBh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02013 at AH=E3h/SF=CBh) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=CBh,AX=F217h/SF=C8h,AX=F217h/SF=CChTop
INT 21 - Novell NetWare - ENABLE FILE SERVER LOGIN AX = F217h subfn CCh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02015 at AH=E3h/SF=CCh) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=CCh,AX=F217h/SF=C8h,AX=F217h/SF=CBhTop
INT 21 - Novell NetWare - GET FILE SERVER LOGIN STATUS AX = F217h subfn CDh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02016 at AH=E3h/SF=CDh) ES:DI -> reply buffer (see #02226) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=CDh,AX=F217h/SF=CBh,AX=F217h/SF=CCh Format of NetWare "Get File Server Login Status" reply packet: Offset Size Description (Table 02226) 00h BYTE login state (00h disabled, 01h enabled) SeeAlso: #02016,#02017 at AH=E3h/SF=CDhTop
INT 21 - Novell NetWare - PURGE ALL ERASED FILES AX = F217h subfn CEh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02018 at AH=E3h/SF=CEh) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=CEh,AX=F244hTop
INT 21 - Novell NetWare - DISABLE TRANSACTION TRACKING AX = F217h subfn CFh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02019 at AH=E3h/SF=CFh) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=CFh,AX=F217h/SF=D0hTop
INT 21 - Novell NetWare - ENABLE TRANSACTION TRACKING AX = F217h subfn D0h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02021 at AH=E3h/SF=D0h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=D0h,AX=F217h/SF=CFhTop
INT 21 - Novell NetWare - SEND CONSOLE BROADCAST AX = F217h subfn D1h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02022 at AH=E3h/SF=D1h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=D1h,AX=F217h/SF=D2hTop
INT 21 - Novell NetWare v3+ - CLEAR CONNECTION NUMBER (LOGOUT STATION) AX = F217h subfn D2h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02023 at AH=E3h/SF=D2h) ES:DI ignored Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AH=F2h"Novell",AH=E3h/SF=D2h,AX=F217h/SF=D1h,AX=F217h/SF=FEhTop
INT 21 - Novell NetWare - DOWN FILE SERVER AX = F217h subfn D3h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02026 at AH=E3h/SF=D3h) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=D3h,AX=F217h/SF=D2hTop
INT 21 - Novell NetWare - GET FILE SYSTEM STATISTICS AX = F217h subfn D4h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02027 at AH=E3h/SF=D4h) ES:DI -> reply buffer (see #02227) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=D4h,AX=F217h/SF=D6h,AX=F217h/SF=D9h Format of NetWare "Get File System Statistics" reply packet: Offset Size Description (Table 02227) 00h DWORD clock ticks since system started 04h WORD maximum open files set by configuration 06h WORD maximum files open concurrently 08h WORD current number of open files 0Ah DWORD total files opened 0Eh DWORD total file read requests 12h DWORD total file write requests 16h WORD current changed FATs 18h WORD total changed FATs 1Ah WORD number of FAT write errors 1Ch WORD number of fatal FAT write errors 1Eh WORD number of FAT scan errors 20h WORD maximum concurrently-indexed files 22h WORD current number of indexed files 24h WORD number of attached indexed files 26h WORD number of indexed files available Note: all fields are big-endian SeeAlso: #02027,#02028 at AH=E3h/SF=D4hTop
INT 21 - Novell NetWare - GET TRANSACTION TRACKING STATISTICS AX = F217h subfn D5h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02029 at AH=E3h/SF=D5h) ES:DI -> reply buffer (see #02228) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=D5h,AX=F217h/SF=D0h Format of NetWare "Get Transaction Tracking Statistics" reply packet: Offset Size Description (Table 02228) 00h DWORD (big-endian) clock ticks since system started 04h BYTE transaction tracking supported if nonzero (all following fields are invalid if zero) 05h BYTE transaction tracking enabled 06h WORD (big-endian) transaction volume number 08h WORD (big-endian) maximum simultaneous transactions configured 0Ah WORD (big-endian) maximum simultaneous transactions since startup 0Ch WORD (big-endian) current transactions in progress 0Eh DWORD (big-endian) total transactions performed 12h DWORD (big-endian) total write transactions 16h DWORD (big-endian) total transactions backed out 1Ah WORD (big-endian) number of unfilled backout requests 1Ch WORD (big-endian) disk blocks used for transaction tracking 1Eh DWORD (big-endian) blocks allocated for tracked-file FATs 22h DWORD (big-endian) number of file size changes during a transaction 26h DWORD (big-endian) number of file truncations during a transaction 2Ah BYTE number of records following 2Bh Active Transaction Records [array] Offset Size Description 00h BYTE logical connection number 01h BYTE task number SeeAlso: #02029,#02030 at AH=E3h/SF=D5hTop
INT 21 - Novell NetWare - GET DISK CACHE STATISTICS AX = F217h subfn D6h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02031 at AH=E3h/SF=D6h) ES:DI -> reply buffer (see #02229) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=D6h,AX=F217h/SF=D5h,AX=F217h/SF=D8h Format of NetWare "Get Disk Cache Statistics" reply packet: Offset Size Description (Table 02229) 00h DWORD clock ticks since system started 04h WORD number of cache buffers 06h WORD size of cache buffer in bytes 08h WORD number of dirty cache buffers 0Ah DWORD number of cache read requests 0Eh DWORD number of cache write requests 12h DWORD number of cache hits 16h DWORD number of cache misses 1Ah DWORD number of physical read requests 1Eh DWORD number of physical write requests 22h WORD number of physical read errors 24h WORD number of physical write errors 26h DWORD cache get requests 2Ah DWORD cache full write requests 2Eh DWORD cache partial write requests 32h DWORD background dirty writes 36h DWORD background aged writes 3Ah DWORD total cache writes 3Eh DWORD number of cache allocations 42h WORD thrashing count 44h WORD number of times LRU block was dirty 46h WORD number of reads on cache blocks not yet filled by writes 48h WORD number of times a fragmented write occurred 4Ah WORD number of cache hits on unavailable block 4Ch WORD number of times a cache block was scrapped Note: all fields are big-endian SeeAlso: #02031,#02032 at AH=E3h/SF=D6hTop
INT 21 - Novell NetWare - GET DRIVE MAPPING TABLE AX = F217h subfn D7h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02033 at AH=E3h/SF=D7h) ES:DI -> reply buffer (see #02230) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AX=EF00h,AX=EF01h,AX=EF02h,AH=F2h"Novell",AH=E3h/SF=D7h Format of NetWare "Get Drive Mapping Table" reply packet: Offset Size Description (Table 02230) 00h DWORD (big-endian) clock tick elapsed since system started 04h BYTE fault tolerance (SFT) level 05h BYTE number of logical drives attached to server 06h BYTE number of physical drives attached to server 07h 5 BYTEs disk channel types (00h none, 01h XT, 02h AT, 03h SCSI, 04h disk coprocessor drive, 32h-FFh value-added drive types) 0Ch WORD (big-endian) number of outstanding controller commands 0Eh 32 BYTEs drive mapping table (FFh = no such drive) 2Eh 32 BYTEs drive mirror table (secondary physical drive, FFh = none) 4Eh 32 BYTEs dead mirror table (last drive mapped to, FFh if never mirrored) 6Eh BYTE physical drive being remirrored (FFh = none) 6Fh BYTE reserved 70h DWORD (big-endian) remirrored block 74h 60 BYTEs SFT error table (internal error counters) SeeAlso: #02033,#02034 at AH=E3h/SF=D7hTop
INT 21 - Novell NetWare - GET PHYSICAL DISK STATISTICS AX = F217h subfn D8h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02035 at AH=E3h/SF=D8h) ES:DI -> reply buffer (see #02231) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=D8h,AX=F217h/SF=D9h Format of NetWare "Get Physical Disk Statistics" request packet: Offset Size Description (Table 02231) 00h DWORD (big-endian) clock ticks since system started 04h BYTE physical disk channel 05h BYTE flag: drive removable if nonzero 06h BYTE physical drive type 07h BYTE drive number within controller 08h BYTE controller number 09h BYTE controller type 0Ah DWORD (big-endian) size of drive in 4K disk blocks 0Eh WORD (big-endian) number of cylinders on drive 10h BYTE number of heads 11h BYTE number of sectors per track 12h 64 BYTEs ASCIZ drive make and model 52h WORD (big-endian) number of I/O errors 56h DWORD (big-endian) start of Hot Fix table 58h WORD (big-endian) size of Hot Fix table 5Ah WORD (big-endian) number of Hot Fix blocks available 5Ch BYTE flag: Hot Fix disabled if nonzero SeeAlso: #02035,#02036 at AH=E3h/SF=D8hTop
INT 21 - Novell NetWare - GET DISK CHANNEL STATISTICS AX = F217h subfn D9h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02037 at AH=E3h/SF=D9h) ES:DI -> reply buffer (see #02232) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=D9h,AX=F217h/SF=D8h Format of NetWare "Get Disk Channel Statistics" reply packet: Offset Size Description (Table 02232) 00h DWORD (big-endian) clock ticks since system started 04h WORD (big-endian) channel run state (see #02039) 06h WORD (big-endian) channel synchronization state (see #02040) 08h BYTE driver type 09h BYTE major version of driver 0Ah BYTE minor version of driver 0Bh 65 BYTEs ASCIZ driver description 4Ch WORD (big-endian) first I/O address used 4Eh WORD (big-endian) length of first I/O address 50h WORD (big-endian) second I/O address used 52h WORD (big-endian) length of second I/O address 54h 3 BYTEs first shared memory address 57h 2 BYTEs length of first shared memory address 59h 3 BYTEs second shared memory address 5Ch 2 BYTEs length of second shared memory address 5Eh BYTE first interrupt number in-use flag 5Fh BYTE first interrupt number used 60h BYTE second interrupt number in-use flag 61h BYTE second interrupt number used 62h BYTE first DMA channel in-use flag 63h BYTE first DMA channel used 64h BYTE second DMA channel in-use flag 65h BYTE second DMA channel used 66h BYTE flags 67h BYTE reserved 68h 80 BYTEs ASCIZ configuration description SeeAlso: #02037,#02038 at AH=E3h/SF=D9hTop
INT 21 - Novell NetWare v2.2+ - GET CONNECTION'S TASK INFORMATION AX = F217h subfn DAh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02041 at AH=E3h/SF=DAh) ES:DI -> reply buffer (see #02233) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=DAh,AX=F217h/SF=EAh Format of NetWare "Get Connection's Task Information" reply packet: Offset Size Description (Table 02233) 00h BYTE lock status of connection (see #02043) 01h var Lock Status Information (see #02044) N BYTE number of records following N+1 Active Task Information Records [array] Offset Size Description 00h BYTE task number (01h-FFh) 01h BYTE task state 00h normal task 01h in TTS explicit transaction 02h in TTS implicit transaction 04h shared fileset lock active SeeAlso: #02248,#02041,#02042 at AH=E3h/SF=DAhTop
INT 21 - Novell NetWare v2.2+ - GET CONNECTION'S OPEN FILES (OLD) AX = F217h subfn DBh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02045 at AH=E3h/SF=DBh) ES:DI -> reply buffer (see #02234) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=DBh,AX=F217h/SF=EBh Format of NetWare "Get Connection's Open Files (old)" reply packet: Offset Size Description (Table 02234) 00h WORD next request record (place in "last record" field on next call) 0000h if no more records 02h BYTE number of records following 03h var array of File Information Records (see #02047 at AH=E3h/SF=DBh) SeeAlso: #02045,#02046 at AH=E3h/SF=DBhTop
INT 21 - Novell NetWare v2.2+ - GET CONNECTIONS USING A FILE (OLD) AX = F217h subfn DCh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02050 at AH=E3h/SF=DCh) ES:DI -> reply buffer (see #02235) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=DCh,AX=F217h/SF=ECh Format of NetWare "Get Connections Using A File (old)" reply packet: Offset Size Description (Table 02235) 00h WORD (big-endian) count of tasks which have opened or logged file 02h WORD (big-endian) count of tasks which have opened file 04h WORD (big-endian) count of opens for reading 06h WORD (big-endian) count of opens for writing 08h WORD (big-endian) deny read count 0Ah WORD (big-endian) deny write count 0Ch WORD next request record (place in "last record" field on next call) 0000h if no more records 0Eh BYTE locked flag 00h not locked exclusively else locked exclusively 0Fh BYTE number of records following 10h var array of File Usage Information Records (see #02052 at AH=E3h/SF=DCh) SeeAlso: #02050,#02051 at AH=E3h/SF=DChTop
INT 21 - Novell NetWare - GET PHYSICAL RECORD LOCKS BY CONNECTN AND FILE (OLD) AX = F217h subfn DDh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02054 at AH=E3h/SF=DDh) ES:DI -> reply buffer (see #02236) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=DDh,AX=F217h/SF=DEh,AX=F217h/SF=EDh Format of NetWare "Get Phys Record Locks By Conn & File (old)" reply packet: Offset Size Description (Table 02236) 00h WORD next request record (place in "last record" on next call) 0000h if no more records 02h BYTE number of physical record locks 03h BYTE number of records following 04h var array of Physical Record Lock Info records (see #02056 at AH=E3h/SF=DDh) SeeAlso: #02054,#02055 at AH=E3h/SF=DDhTop
INT 21 - Novell NetWare - GET PHYSICAL RECORD LOCKS BY FILE (OLD) AX = F217h subfn DEh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02058 at AH=E3h/SF=DEh) ES:DI -> reply buffer (see #02237) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=DEh,AX=F217h/SF=EEh Format of NetWare "Get Physical Record Locks By File (old)" reply packet: Offset Size Description (Table 02237) 00h WORD next request record (place in "last record" on next call) 0000h if no more records 02h BYTE number of physical record locks 03h BYTE number of records following 04h var array of Physical Record Lock Info records (see #02060) SeeAlso: #02058,#02059 at AH=E3h/SF=DEhTop
INT 21 - Novell NetWare - GET LOGICAL RECORDS BY CONNECTION (OLD) AX = F217h subfn DFh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02061 at AH=E3h/SF=DFh) ES:DI -> reply buffer (see #02238) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=DFh,AX=F217h/SF=EFh Format of NetWare "Get Logical Records By Connection (old)" reply packet: Offset Size Description (Table 02238) 00h WORD next request record (place in "last record" field on next call) 0000h if no more locked records 02h BYTE number of records following 03h var array of Logical Lock Information Records (see #02063 at AH=E3h/SF=DFh) SeeAlso: #02061,#02062 at AH=E3h/SF=DFhTop
INT 21 - Novell NetWare - GET LOGICAL RECORD INFORMATION (OLD) AX = F217h subfn E0h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02064 at AH=E3h/SF=E0h) ES:DI -> reply buffer (see #02239) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=E0h,AX=F217h/SF=F0h Format of NetWare "Get Logical Record Information (Old)" reply packet: Offset Size Description (Table 02239) 00h WORD (big-endian) number of logical connections logging the record 02h WORD (big-endian) number of logical connections with shareable lock 04h WORD (big-endian) next request record (place in "last record" field on next call) 06h BYTE locked exclusively if nonzero 07h BYTE number of records following 08h var array of Task Information Records (see #02066 at AH=E3h/SF=E0h) SeeAlso: #02064,#02065 at AH=E3h/SF=E0hTop
INT 21 - Novell NetWare - GET CONNECTION'S SEMAPHORES (OLD) AX = F217h subfn E1h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02067 at AH=E3h/SF=E1h) ES:DI -> reply buffer (see #02240) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=E1h,AX=F217h/SF=F1h Format of NetWare "Get Connection's Semaphores (old)" reply packet: Offset Size Description (Table 02240) 00h WORD next request record (place in "last record" field on next call) 02h BYTE number of records following 03h var array of Semaphore Information Records (see #02069 at AH=E3h/SF=E1h) SeeAlso: #02067,#02068 at AH=E3h/SF=E1hTop
INT 21 - Novell NetWare - GET SEMAPHORE INFORMATION (OLD) AX = F217h subfn E2h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02070 at AH=E3h/SF=E2h) ES:DI -> reply buffer (see #02241) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=E2h,AX=F217h/SF=F2h Format of NetWare "Get Semaphore Information (old)" reply packet: Offset Size Description (Table 02241) 00h WORD next request record (place in "last record" on next call) 0000h if no more 02h WORD (big-endian) number of logical connections opening semaphore 04h BYTE semaphore value (-127 to 128) 05h BYTE number of records following 06h var array of Semaphore Information records (see #02072) SeeAlso: #02070,#02071 at AH=E3h/SF=E2hTop
INT 21 - Novell NetWare - GET LAN DRIVER'S CONFIGURATION INFORMATION AX = F217h subfn E3h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02073 at AH=E3h/SF=E3h) ES:DI -> reply buffer (see #02242) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=E3h,AX=F217h/SF=E7h,AX=F217h/SF=E8h Format of NetWare "Get Lan Driver's Configuration Information" reply packet: Offset Size Description (Table 02242) 00h 4 BYTEs network number 04h 6 BYTEs node number 0Ah BYTE LAN driver installed (00h no--remaining fields invalid) 0Bh BYTE option number selected at configuration time 0Ch 160 BYTEs configuration text ASCIZ hardware type ASCIZ hardware settings SeeAlso: #02073,#02074 at AH=E3h/SF=E3hTop
INT 21 - Novell NetWare - GET CONNECTION'S USAGE STATISTICS AX = F217h subfn E5h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02075 at AH=E3h/SF=E5h) ES:DI -> reply buffer (see #02243) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=E5h,AX=F217h/SF=EAh Format of NetWare "Get Connection's Usage Statistics" reply packet: Offset Size Description (Table 02243) 00h DWORD (big-endian) clock ticks since server started 04h 6 BYTEs bytes read 0Ah 6 BYTEs bytes written 10h DWORD (big-endian) total request packets SeeAlso: #02075,#02076 at AH=E3h/SF=E5hTop
INT 21 - Novell NetWare - GET OBJECT'S REMAINING DISK SPACE AX = F217h subfn E6h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02077 at AH=E3h/SF=E6h) ES:DI -> reply buffer (see #02244) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=E6h,AX=F216h/SF=20h,AX=F216h/SF=23h Format of NetWare "Get Object's Remaining Disk Space" reply packet: Offset Size Description (Table 02244) 00h DWORD (big-endian) clock ticks elapsed since server started 04h DWORD (big-endian) object ID 08h DWORD (big-endian) 4K disk blocks available to user 0Ch BYTE restrictions (00h enforced, FFh not enforced) SeeAlso: #02077,#02078 at AH=E3h/SF=E6hTop
INT 21 - Novell NetWare - GET FILE SERVER LAN I/O STATISTICS AX = F217h subfn E7h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02079 at AH=E3h/SF=E7h) ES:DI -> reply buffer (see #02245) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=E7h,AX=F217h/SF=11h,AX=F217h/SF=F5h Format of NetWare "Get File Server Lan I/O Statistics" reply packet: Offset Size Description (Table 02245) 00h DWORD clock ticks since system started 04h WORD total routing buffers 06h WORD maximum routing buffers used 08h WORD current routing buffers used 0Ah DWORD total file service packets 0Eh WORD number of file service packets buffered 10h WORD number of invalid connection packets 12h WORD packets with bad logical connection numbers 14h WORD number of packets received during processing 16h WORD number of requests reprocessed 18h WORD packets with bad sequence numbers 1Ah WORD number of duplicate replies sent 1Ch WORD number of acknowledgements sent 1Eh WORD number of packets with bad request types 20h WORD requests to attach to ws for which a request is being processed 22h WORD requests to attach from ws which is already attaching 24h WORD number of forged detach requests 26h WORD detach requests with bad connection number 28h WORD requests to detach from ws for which requests pending 2Ah WORD number of cancelled replies 2Ch WORD packets discarded due to excessive hop count 2Eh WORD packets discarded due to unknown net 30h WORD incoming packets discarded for lack of DGroup buffer 32h WORD outgoing packets discarded due to lack of buffer 34h WORD received packets destined for B,C, or D side drivers 36h DWORD number of NetBIOS packets propagated through net 3Ah DWORD total number of non-file-service packets 3Eh DWORD total number of routed packets Note: all fields are big-endian SeeAlso: #02079,#02080 at AH=E3h/SF=E7hTop
INT 21 - Novell NetWare - GET FILE SERVER MISC INFORMATION AX = F217h subfn E8h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02081 at AH=E3h/SF=E8h) ES:DI -> reply buffer (see #02246) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=E8h,AX=F217h/SF=11h,AX=F217h/SF=F5h Format of NetWare "Get File Server Misc Information" reply packet: Offset Size Description (Table 02246) 00h DWORD (big-endian) clock ticks since system started 04h BYTE CPU type 00h Motorola 68000 01h Intel 8086, 8088, or V20 02h Intel 80286+ 05h BYTE reserved 06h BYTE number of service processes in server 07h BYTE server utilization in percent 08h WORD (big-endian) maximum bindery objects set by configuration 0000h = unlimited 0Ah WORD (big-endian) maximum number of bindery objects used 0Ch WORD (big-endian) current number of bindery objects in use 0Eh WORD (big-endian) total server memory in KB 10h WORD (big-endian) wasted server memory in KB normally 0000h 12h WORD number of records following (01h-03h) 14h var array of Dynamic Memory Information records (see #02083) SeeAlso: #02081,#02082 at AH=E3h/SF=E8hTop
INT 21 - Novell NetWare - GET VOLUME INFORMATION AX = F217h subfn E9h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02084 at AH=E3h/SF=E9h) ES:DI -> reply buffer (see #02247) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AH=E3h/SF=E9h,AX=F212h,AX=F216h/SF=15h Format of NetWare "Get Volume Information" reply packet: Offset Size Description (Table 02247) 00h DWORD (big-endian) elapsed system time 04h BYTE volume number 05h BYTE logical drive number 06h WORD (big-endian) sectors per block 08h WORD (big-endian) starting block 0Ah WORD (big-endian) total blocks on volume 0Ch WORD (big-endian) blocks available on volume 0Eh WORD (big-endian) total directory slots 10h WORD (big-endian) directory slots available 12h WORD (big-endian) maximum directory entries actually used 14h BYTE flag: volume hashed if nonzero 15h BYTE flag: volume cached if nonzero 16h BYTE flag: volume removable if nonzero 17h BYTE flag: volume mounted if nonzero 18h 16 BYTEs NUL-padded volume name SeeAlso: #02084,#02085 at AH=E3h/SF=E9hTop
INT 21 - Novell NetWare v3.11+ - GET CONNECTION'S TASK INFORMATION AX = F217h subfn EAh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02248) ES:DI -> reply buffer (see #02233) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=DAh Format of NetWare "Get Connection's Task Information" request packet: Offset Size Description (Table 02248) 00h WORD length of following data 02h BYTE EAh (subfunction "Get Connection's Task Information") 03h WORD connection number SeeAlso: #02233,#02041 at AH=E3h/SF=DAhTop
INT 21 - Novell NetWare v3+ - GET CONNECTION'S OPEN FILES AX = F217h subfn EBh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02249) ES:DI -> reply buffer (see #02250) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AH=F2h"Novell",AX=F217h/SF=DBh Format of NetWare "Get Connection's Open Files" request buffer: Offset Size Description (Table 02249) 00h WORD 0005h (length of following data) 02h BYTE EBh (subfunction "Get Connection's Open Files") 03h WORD target connection number 05h WORD last record seen (set to 0000h for first call) Note: connection numbers greater than the maximum supported by the server can cause ABENDs SeeAlso: #02250 Format of NetWare "Get Connection's Open Files" reply buffer: Offset Size Description (Table 02250) 00h WORD next request record 02h WORD number of records returned (max 28) 04h 29N BYTEs array of connection records (see #02251) SeeAlso: #02249 Format of NetWare connection record: Offset Size Description (Table 02251) 00h WORD task number 02h BYTE lock type 03h BYTE access control 04h BYTE lock flag 05h BYTE volume number 06h DWORD parent directory entry number 0Ah DWORD directory entry number 0Eh BYTE fork count 0Fh BYTE data stream type / name space (see #02387) 10h BYTE file name length 11h 12 BYTEs file name SeeAlso: #02250Top
INT 21 - Novell NetWare v3+ - GET CONNECTIONS USING A FILE AX = F217h subfn ECh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02252) ES:DI -> reply buffer (see #02253) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AH=F2h"Novell",AX=F217h/SF=DCh Format of NetWare "Get Connections Using a File" request buffer: Offset Size Description (Table 02252) 00h WORD 0009h (length of following data) 02h BYTE ECh (subfunction "Get Connections Using a File") 03h BYTE data stream type 04h BYTE volume number 05h DWORD directory entry number 09h WORD last record seen (0000h for first call) SeeAlso: #02253 Format of NetWare "Get Connections Using a File" reply buffer: Offset Size Description (Table 02253) 00h WORD next request record 02h WORD use count 04h WORD open count 06h WORD number of times open for reading 08h WORD number of times open for writing 0Ah WORD Deny Read count 0Ch WORD Deny Write count 0Eh BYTE flag: locked 0Fh BYTE fork count 10h WORD number of records returned (max 70) 12h 7N BYTEs returned records (see #02254) SeeAlso: #02252 Format of returned record: Offset Size Description (Table 02254) 00h WORD connection number 02h WORD task number 04h BYTE lock type 05h BYTE access flag 06h BYTE lock flag SeeAlso: #02253Top
INT 21 - Novell NetWare v3+ - GET PHYSICAL RECORD LOCKS BY CONNECTION AND FILE AX = F217h subfn EDh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02255) ES:DI -> reply buffer (see #02256) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=DDh,AX=F217h/SF=EEh Format of NetWare "Get Phys Record Locks By Conn And File" request packet: Offset Size Description (Table 02255) 00h WORD length of following data 02h BYTE EDh (subfunction "Get Physical Record Locks By Connection And File") 03h WORD target connection number 05h BYTE last record seen (set to 00h before first call) 06h BYTE volume number 07h DWORD directory entry number 0Bh N BYTEs filename SeeAlso: #02256 Format of NetWare "Get Physical Record Locks By Connect And File" reply packet: Offset Size Description (Table 02256) 00h WORD next record (place in last-seen field on next call) 02h WORD number of locks returned 04h 11N BYTEs lock records Offset Size Description 00h WORD (big-endian) task number 02h BYTE lock status 03h DWORD (big-endian) record start offset 07h DWORD (big-endian) record end offset SeeAlso: #02255Top
INT 21 - Novell NetWare v3+ - GET PHYSICAL RECORD LOCKS BY FILE AX = F217h subfn EEh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02257) ES:DI -> reply buffer (see #02258) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AH=F2h"Novell",AX=F217h/SF=DEh Format of NetWare "Get Physical Record Locks by File" request buffer: Offset Size Description (Table 02257) 00h WORD 0009h (length of following data) 02h BYTE EEh (subfunction "Get Physical Record Locks by File") 03h BYTE data stream number 04h BYTE volume number 05h DWORD directory entry number 09h WORD last record seen (0000h for first call) SeeAlso: #02258 Format of NetWare "Get Physical Record Locks by File" reply buffer: Offset Size Description (Table 02258) 00h WORD next request record 02h WORD number of locks 04h 17N BYTEs array of lock records, one per lock (see #02259) SeeAlso: #02257 Format of NetWare lock record: Offset Size Description (Table 02259) 00h WORD logged count 02h WORD number of shareable locks 04h DWORD start offset of record 08h DWORD end offset of record 0Ch WORD logical connection number 0Eh WORD task number 10h BYTE lock type SeeAlso: #02258Top
INT 21 - Novell NetWare v3+ - GET LOGICAL RECORDS BY CONNECTION AX = F217h subfn EFh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02260) ES:DI -> reply buffer (see #02261) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=DFh Format of NetWare "Get Logical Records By Connection" request packet: Offset Size Description (Table 02260) 00h WORD length of following data 02h BYTE EFh (subfunction "Get Logical Records By Connection") 03h WORD target connection number 05h WORD last record seen (set to 0000h before first call) SeeAlso: #02261 Format of NetWare "Get Logical Records By Connection" request packet: Offset Size Description (Table 02261) 00h WORD next record (place in last-seen field on next call) 02h WORD number of records returned 04h Logical Lock Information records (see #02063 at AH=E3h/SF=DFh) SeeAlso: #02260Top
INT 21 - Novell NetWare v3+ - GET LOGICAL RECORD INFORMATION AX = F217h subfn F0h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02262) ES:DI -> reply buffer (see #02263) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=E0h,AX=F217h/SF=EFh Format of NetWare "Get Logical Record Information" request packet: Offset Size Description (Table 02262) 00h WORD length of following data 02h BYTE F0h (subfunction "Get Logical Record Information") 03h WORD last record seen 05h BYTE length of logical record name 06h N BYTEs logical record name (case-sensitive) SeeAlso: #02263 Format of NetWare "Get Logical Record Information" request packet: Offset Size Description (Table 02263) 00h WORD number of connections logging record 02h WORD number of shareable locks 04h BYTE flag: locked exclusively if nonzero 05h WORD next request record (place in last-seen field on next call) 07h BYTE number of records returned 08h logical record information records [array] Offset Size Description 00h WORD connection number 02h BYTE task number 03h BYTE lock status SeeAlso: #02262Top
INT 21 - Novell NetWare v3+ - GET CONNECTION'S SEMAPHORES AX = F217h subfn F1h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02264) ES:DI -> reply buffer (see #02265) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=E1h Format of NetWare "Get Connection's Semaphores" request packet: Offset Size Description (Table 02264) 00h WORD length of following data 02h BYTE F1h (subfunction "Get Connection's Semaphores") 03h WORD connection number 05h WORD last record seen (set to 0000h before first call) SeeAlso: #02265 Format of NetWare "Get Connection's Semaphores" reply packet: Offset Size Description (Table 02265) 00h WORD next record (place in last-seen field on next call) 02h WORD number of semaphores returned 04h BYTEs semaphore information records [packed array] (see #02266) SeeAlso: #02264 Format of NetWare semaphore information record: Offset Size Description (Table 02266) 00h WORD semaphore's current value 02h WORD number of connections using semaphore 04h WORD task number 06h BYTE length of semaphore's name 07h N BYTEs semaphore name SeeAlso: #02265Top
INT 21 - Novell NetWare v3+ - GET SEMAPHORE INFORMATION AX = F217h subfn F2h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02267) ES:DI -> reply buffer (see #02268) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AH=F2h"Novell",AX=F217h/SF=E2h Format of NetWare "Get Semaphore Information" request buffer: Offset Size Description (Table 02267) 00h WORD length of following data (max 84h) 02h BYTE F2h (subfunction "Get Semaphore Information") 03h WORD last record seen (0000h on first call) 05h BYTE length of semaphore name (max 128) 06h N BYTEs semaphore name SeeAlso: #02268 Format of NetWare "Get Semaphore Information" reply buffer: Offset Size Description (Table 02268) 00h WORD next request record 02h WORD open count 04h BYTE value of semaphore 05h WORD number of records returned 07h 2N WORDs list of logical connection number/task number pairs SeeAlso: #02267Top
INT 21 - Novell NetWare v3+ - MAP DIRECTORY NUMBER TO PATH AX = F217h subfn F3h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02269) ES:DI -> reply buffer (see #02270) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F217h/SF=F4h Format of NetWare "Map Directory Number to Path" request buffer: Offset Size Description (Table 02269) 00h WORD 0007h (length of following data) 02h BYTE F3h (subfunction "Map Directory Number to Path") 03h BYTE volume number 04h DWORD directory entry number 08h BYTE name space type SeeAlso: #02270 Format of NetWare "Map Directory Number to Path" reply buffer: Offset Size Description (Table 02270) 00h BYTE directory path length 01h N BYTEs directory path (NetWare style, separated by length descriptors rather than slashes or backslashes) SeeAlso: #02269Top
INT 21 - Novell NetWare v3+ - CONVERT PATH TO DIRECTORY ENTRY AX = F217h subfn F4h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02271) ES:DI -> reply buffer (see #02272) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F217h/SF=F3h Format of NetWare "Convert Path to Directory Entry" request packet: Offset Size Description (Table 02271) 00h WORD length of following data 02h BYTE F4h (subfunction "Convert Path to Directory Entry") 03h BYTE directory handle or 00h for none 04h BYTE length of directory path 05h N BYTEs directory path (must be fully qualified if no handle specified) SeeAlso: #02272 Format of NetWare "Convert Path to Directory Entry" reply packet: Offset Size Description (Table 02272) 00h BYTE volume number 01h DWORD directory entry number SeeAlso: #02271Top
INT 21 - Novell NetWare - GET FILE SERVER EXTENDED MISC INFORMATION AX = F217h subfn F5h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02273) ES:DI -> reply buffer (see #02274) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=11h,AX=F217h/SF=C9h,AX=F217h/SF=E8h Format of NetWare "Get File Server Extended Misc Information" request packet: Offset Size Description (Table 02273) 00h WORD length of following data 02h BYTE F5h (subfunction "Get File Server Extended Misc Information") 03h BYTE length of reply buffer SeeAlso: #02274 Format of NetWare "Get File Server Extended Misc Information" reply packet: Offset Size Description (Table 02274) 00h DWORD system interval marker (up-time in clock ticks, wraps to 0 on reaching FFFFFFFFh) 04h BYTE processor type 00h Motorola 680x0 01h Intel 8088/8086 02h 80286 05h BYTE reserved for future use 06h BYTE number of service processes 07h BYTE server utilization percentage 08h WORD maximum bindery objects set by configuration 0Ah WORD actual maximum bindery objects 0Ch WORD current number of bindery objects 0Eh WORD (big-endian) total server memory 10h WORD (big-endian) wasted server memory 12h WORD (big-endian) number of dynamic memory areas 14h DWORD (big-endian) total space in dynamic memory area 18h DWORD maximum dynamic space used 1Ch DWORD dynamic space currently used SeeAlso: #02273Top
INT 21 - Novell NetWare - GET VOLUME EXTENDED INFORMATION AX = F217h subfn F6h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02275) ES:DI -> reply buffer (see #02276) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=E8h Format of NetWare "Get Volume Extended Information" request packet: Offset Size Description (Table 02275) 00h WORD length of following data 02h BYTE F6h (subfunction "Get Volume Extended Information") 03h BYTE volume number 04h BYTE size of reply buffer SeeAlso: #02276 Format of NetWare "Get Volume Extended Information" reply packet: Offset Size Description (Table 02276) 00h DWORD system interval (up-time in clock ticks, wraps to 0 on reaching FFFFFFFFh) 04h BYTE volume number 05h BYTE logical drive number 06h WORD number of 512-byte sectors per disk block 08h DWORD starting block number of volume 0Ch WORD total number of disk blocks 0Eh WORD number of free disk blocks 10h WORD total number of directory entries 12h WORD number of available directory entries 14h WORD maximum directory entries ever used 16h BYTE flag: volume is hashed in memory if nonzero 17h BYTE flag: volume is cached if nonzero 18h BYTE flag: volume is removable if nonzero 19h BYTE flag: volume is mounted if nonzero 1Ah 16 BYTEs volume name (null-padded) SeeAlso: #02275Top
INT 21 - Novell NetWare v4 - CLEAR CONNECTION NUMBER GREATER THAN 250 AX = F217h subfn FEh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02277) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=E3h/SF=D2h,AX=F217h/SF=D2h Format of NetWare "Clear Connection Number" request buffer: Offset Size Description (Table 02277) 00h WORD length of following data 02h BYTE FEh (subfunction "Clear Connection Number") 03h DWORD connection number SeeAlso: #02023Top
INT 21 - Novell NetWare - LOCK PHYSICAL RECORD SET (OLD) AX = F21Bh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02480 at AX=F26Eh) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F26Eh,AH=C2h"NetWare"Top
INT 21 - Novell NetWare - CLEAR PHYSICAL RECORD AX = F21Eh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02278) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=5Ch,AH=BEh"NetWare",AH=F2h"Novell",AX=F20Bh,AX=F21Fh Format of NetWare "Clear Physical Record" request packet: Offset Size Description (Table 02278) 00h BYTE reserved for future use 01h 6 BYTEs NetWare file handle 07h DWORD starting offset of locked region 0Bh DWORD length of locked region SeeAlso: #02279Top
INT 21 - Novell NetWare - CLEAR PHYSICAL RECORD SET AX = F21Fh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02279) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=5Ch,AH=C4h"NetWare",AH=F2h"Novell",AX=F20Eh,AX=F21Eh Format of NetWare "Clear Physical Record Set" request packet: Offset Size Description (Table 02279) 00h BYTE lock flag (00h = not locked) SeeAlso: #02278Top
INT 21 - Novell NetWare - OPEN SEMAPHORE (OLD) AX = F220h subfn 00h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02280) ES:DI -> reply buffer (see #02281) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=C500h,AX=F220h/SF=01h,AX=F220h/SF=03h Format of NetWare "Open Semaphore (old)" request packet: Offset Size Description (Table 02280) 00h BYTE 00h (subfunction "Open Semaphore (old)") 01h BYTE initial value of semaphore ( >= 0) 02h BYTE length of semaphore's name (max 512) 03h N BYTEs semaphore name SeeAlso: #02281,#02282 Format of NetWare "Open Semaphore (old)" reply packet: Offset Size Description (Table 02281) 00h DWORD semaphore handle 04h BYTE number of processes using semaphore (including caller) SeeAlso: #02280,#02283Top
INT 21 - Novell NetWare - EXAMINE SEMAPHORE (OLD) AX = F220h subfn 01h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02282) ES:DI -> reply buffer (see #02283) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=C501h,AX=F220h/SF=00h,AX=F220h/SF=03h Format of NetWare "Close Semaphore (old)" request packet: Offset Size Description (Table 02282) 00h BYTE 01h (subfunction "Examine Semaphore (old)") 01h DWORD semaphore handle SeeAlso: #02283,#02280 Format of NetWare "Close Semaphore (old)" request packet: Offset Size Description (Table 02283) 00h BYTE current semaphore value 01h BYTE number of processes using semaphore (including caller) SeeAlso: #02282,#02281Top
INT 21 - Novell NetWare - WAIT ON SEMAPHORE (OLD) AX = F220h subfn 02h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02284) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=C502h,AX=F220h/SF=00h,AX=F220h/SF=03h Format of NetWare "Wait on Semaphore (old)" request packet: Offset Size Description (Table 02284) 00h BYTE 02h (subfunction "Wait on Semaphore (old)") 01h DWORD semaphore handle 05h WORD timeout in 1/18s (0000h = return immediately) SeeAlso: #02282,#02285Top
INT 21 - Novell NetWare - SIGNAL SEMAPHORE (OLD) AX = F220h subfn 03h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02285) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=C503h,AX=F220h/SF=02h,AX=F220h/SF=04h Format of NetWare "Signal Semaphore (old)" request packet: Offset Size Description (Table 02285) 00h BYTE 03h (subfunction "Signal Semaphore (old)") 01h DWORD semaphore handle SeeAlso: #02284,#02286Top
INT 21 - Novell NetWare - CLOSE SEMAPHORE (OLD) AX = F220h subfn 04h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02286) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=C504h,AX=F220h/SF=00h,AX=F220h/SF=01h SeeAlso: AX=F26Fh/SF=01h Format of NetWare "Close Semaphore (old)" request packet: Offset Size Description (Table 02286) 00h BYTE 04h (subfunction "Close Semaphore (old)") 01h DWORD semaphore handle SeeAlso: #02285,#02483Top
INT 21 - Novell NetWare - TTS IS AVAILABLE AX = F222h subfn 00h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02287) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=C702h,AX=F222h/SF=01h,AX=F222h/SF=05h Format of NetWare "TTS Is Available" request packet: Offset Size Description (Table 02287) 00h BYTE 00h (subfunction "TTS Is Available")Top
INT 21 - Novell NetWare - TTS BEGIN TRANSACTION AX = F222h subfn 01h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02288) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=C700h,AX=F222h/SF=02h,AX=F222h/SF=03h Format of NetWare "TTS Begin Transaction" request packet: Offset Size Description (Table 02288) 00h BYTE 01h (subfunction "TTS Begin Transaction") SeeAlso: #02289,#02291Top
INT 21 - Novell NetWare - TTS END TRANSACTION AX = F222h subfn 02h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02289) ES:DI -> reply buffer (see #02290) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=C701h,AX=F222h/SF=01h,AX=F222h/SF=04h Format of NetWare "TTS End Transaction" request packet: Offset Size Description (Table 02289) 00h BYTE 02h (subfunction "TTS End Transaction") SeeAlso: #02290,#02288 Format of NetWare "TTS End Transaction" reply packet: Offset Size Description (Table 02290) 00h DWORD transaction number SeeAlso: #02289,#02292Top
INT 21 - Novell NetWare - TTS ABORT TRANSACTION AX = F222h subfn 03h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02291) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=C703h,AX=F222h/SF=01h,AX=F222h/SF=02h SeeAlso: AX=F220h/SF=04h Format of NetWare "TTS Abort Transaction" request packet: Offset Size Description (Table 02291) 00h BYTE 03h (subfunction "TTS Abort Transaction") SeeAlso: #02288,#02289Top
INT 21 - Novell NetWare - TTS TRANSACTION STATUS AX = F222h subfn 04h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02292) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=C704h,AX=F222h/SF=02h,AX=F222h/SF=03h Format of NetWare "TTS Transaction Status" request packet: Offset Size Description (Table 02292) 00h BYTE 04h (subfunction "TTS Transaction Status") 01h DWORD transaction number SeeAlso: #02289,#02290Top
INT 21 - Novell NetWare - TTS GET APPLICATION THRESHOLDS AX = F222h subfn 05h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02293) ES:DI -> reply buffer (see #02294) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=C705h,AX=F222h/SF=06h,AX=F222h/SF=07h Format of NetWare "TTS Get Application Thresholds" request packet: Offset Size Description (Table 02293) 00h BYTE 05h (subfunction "TTS Get Application Thresholds") SeeAlso: #02294,#02295 Format of NetWare "TTS Get Application Thresholds" request packet: Offset Size Description (Table 02294) 00h BYTE logical lock threshold 01h BYTE physical lock threshold SeeAlso: #02293,#02295Top
INT 21 - Novell NetWare - TTS SET APPLICATION THRESHOLDS AX = F222h subfn 06h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02295) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=C706h,AX=F222h/SF=05h,AX=F222h/SF=08h Format of NetWare "TTS Set Application Thresholds" request packet: Offset Size Description (Table 02295) 00h BYTE 06h (subfunction "TTS Set Application Thresholds") 01h BYTE logical lock threshold before implicit transaction started 02h BYTE physical lock threshold before implicit transaction started SeeAlso: #02294,#02298Top
INT 21 - Novell NetWare - TTS GET WORKSTATION THRESHOLDS AX = F222h subfn 07h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02296) ES:DI -> reply buffer (see #02297) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=C707h,AX=F222h/SF=05h,AX=F222h/SF=08h Format of NetWare "TTS Get Workstation Thresholds" request packet: Offset Size Description (Table 02296) 00h BYTE 07h (subfunction "TTS Get Workstation Thresholds") SeeAlso: #02297 Format of NetWare "TTS Get Workstation Thresholds" reply packet: Offset Size Description (Table 02297) 00h BYTE logical lock threshold 01h BYTE physical lock threshold SeeAlso: #02296Top
INT 21 - Novell NetWare - TTS SET WORKSTATION THRESHOLDS AX = F222h subfn 08h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02298) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=C708h,AX=F222h/SF=06h,AX=F222h/SF=07h Format of NetWare "TTS Set Workstation Thresholds" request packet: Offset Size Description (Table 02298) 00h BYTE 08h (subfunction "TTS Set Workstation Thresholds") 01h BYTE logical lock threshold before implicit transaction started 02h BYTE physical lock threshold before implicit transaction started SeeAlso: #02295Top
INT 21 - Novell NetWare - TTS GET CONTROL FLAGS AX = F222h subfn 09h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02299) ES:DI -> reply buffer (see #02300) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=C702h,AX=F222h/SF=07h,AX=F222h/SF=0Ah Format of NetWare "TTS Get Transaction Bits" request packet: Offset Size Description (Table 02299) 00h BYTE 09h (subfunction "TTS Get Transaction Bits") SeeAlso: #02300 Format of NetWare "TTS Get Transaction Bits" reply packet: Offset Size Description (Table 02300) 00h BYTE TTS control flags bit 0: forced (automatic) record locking enabled bits 1-7: reserved SeeAlso: #02299Top
INT 21 - Novell NetWare - TTS SET CONTROL FLAGS AX = F222h subfn 0Ah CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02301) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=C702h,AX=F222h/SF=08h,AX=F222h/SF=09h Format of NetWare "TTS Set Transaction Bits" request packet: Offset Size Description (Table 02301) 00h BYTE 0Ah (subfunction "TTS Set Transaction Bits") 01h BYTE TTS control flags bit 0: forced (automatic) record locking enabled bits 1-7: reservedTop
INT 21 - Novell NetWare v2+ - AFP CREATE DIRECTORY AX = F223h subfn 01h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02302) ES:DI -> reply buffer (see #02303) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=02h,AX=F223h/SF=0Dh Format of NetWare "AFP Create Directory" request packet: Offset Size Description (Table 02302) 00h WORD (big-endian) length of following data 02h BYTE 01h (subfunction "AFP Create Directory") 03h BYTE volume number 04h DWORD AFP entry ID 08h BYTE reserved for future use 09h 32 BYTEs Finder information 29h BYTE path length 2Ah N BYTEs AFP-style directory pathname (relative to AFP entry ID) SeeAlso: #02303,#02304,#02330 Format of NetWare "AFP Create Directory" reply packet: Offset Size Description (Table 02303) 00h DWORD new directory ID SeeAlso: #02302,#02331Top
INT 21 - Novell NetWare v2+ - AFP CREATE FILE AX = F223h subfn 02h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02304) ES:DI -> reply buffer (see #02305) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=02h,AX=F223h/SF=03h,AX=F223h/SF=0Dh Format of NetWare "AFP Create File" request packet: Offset Size Description (Table 02304) 00h WORD (big-endian) length of following data 02h BYTE 01h (subfunction "AFP Create Directory") 03h BYTE volume number 04h DWORD AFP entry ID 08h BYTE flag: delete existing file? (00h no, 01h yes) 09h 32 BYTEs Finder information 29h BYTE path length 2Ah N BYTEs AFP-style directory pathname (relative to AFP entry ID) SeeAlso: #02302,#02305,#02306,#02332 Format of NetWare "AFP Create File" reply packet: Offset Size Description (Table 02305) 00h DWORD new file's AFP entry ID SeeAlso: #02304,#02333Top
INT 21 - Novell NetWare v2+ - AFP DELETE FILE AX = F223h subfn 03h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02306) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) Note: directories may be deleted if they are empty SeeAlso: AH=F2h"Novell",AX=F223h/SF=02h,AX=F223h/SF=0Dh Format of NetWare "AFP Delete File" request packet: Offset Size Description (Table 02306) 00h WORD (big-endian) length of following data 02h BYTE 03h (subfunction "AFP Delete File") 03h BYTE volume number 04h DWORD AFP entry ID 08h BYTE path length 09h N BYTEs AFP-style pathname (relative to AFP entry ID) SeeAlso: #02304Top
INT 21 - Novell NetWare v2+ - AFP GET ENTRY ID FROM FILENAME AX = F223h subfn 04h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02307) ES:DI -> reply buffer (see #02308) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=06h,AX=F223h/SF=0Ch,AX=F223h/SF=12h Format of NetWare "AFP Get Entry ID from Name" request packet: Offset Size Description (Table 02307) 00h WORD (big-endian) length of following data 02h BYTE 04h (subfunction "AFP Get Entry ID from Name") 03h BYTE volume number 04h DWORD AFP entry ID 08h BYTE path length 09h N BYTEs AFP-style pathname (relative to AFP entry ID) SeeAlso: #02308,#02314 Format of NetWare "AFP Get Entry ID from Name" reply packet: Offset Size Description (Table 02308) 00h DWORD AFP entry ID corresponding to specified file/directory SeeAlso: #02307,#02315Top
INT 21 - Novell NetWare v2+ - AFP GET FILE INFORMATION AX = F223h subfn 05h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02309) ES:DI -> reply buffer (see #02311) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=04h,AX=F223h/SF=09h,AX=F223h/SF=13h Format of NetWare "AFP Get File Information" request packet: Offset Size Description (Table 02309) 00h WORD (big-endian) length of following data 02h BYTE 05h (subfunction "AFP Get File Information") 03h BYTE volume number 04h DWORD AFP entry ID 08h WORD request bitmap 0Ah BYTE path length 0Bh N BYTEs AFP-style pathname (relative to AFP entry ID) SeeAlso: #02311 Bitfields for NetWare AFP request bitmap: Bit(s) Description (Table 02310) 0 return AFP entry ID 1 return data fork length 2 return resource fork length 3 return number of contained files/subdirectories 4 return owner ID 5 return short name 6 return access rights 7 ??? (unused?) 8 return attributes 9 return parent directory ID 10 return creation date 11 return last-access date 12 return last-modified date and time 13 return last-backup date and time 14 return Finder information 15 return long name SeeAlso: #02309,#02336,#02337 Format of NetWare "AFP Get File Information" reply packet: Offset Size Description (Table 02311) 00h DWORD AFP entry ID for specified file 04h DWORD AFP entry ID for specified file's parent directory 08h WORD directory/file attributes (see #02312) 0Ah DWORD length of data fork 0Eh DWORD length of resource fork 12h WORD total files and subdirectories contained within entry always 0000h if entry is a file 14h WORD creation date in AFP format 16h WORD last-access date in AFP format 18h WORD last-modified date in AFP format 1Ah WORD last-modified time in AFP format 1Ch WORD last-backup date in AFP format 1Eh WORD last-backup time in AFP format 20h 32 BYTEs Finder information 40h 32 BYTEs long filename 60h DWORD NetWare object ID of owner 64h 12 BYTEs short filename (MS-DOS 8.3 format) 70h WORD access privileges (see #02313) SeeAlso: #02309,#02338 Bitfields for NetWare AFP file/directory attributes: Bit(s) Description (Table 02312) 0 search mode 1 search mode 2 search mode 3 (undefined) 4 transaction 5 index 6 read audit 7 write audit 8 read-only 9 hidden 10 system 11 execute-only 12 subdirectory 13 archive 14 (undefined) 15 shareable file SeeAlso: #02311,#02322,#02337 Bitfields for NetWare AFP access privileges: Bit(s) Description (Table 02313) 8 read (files) 9 write (files) 10 open (files) 11 create (files) 12 delete (files) 13 parental (directories): create/delete/rename subdirectories 14 search (directories) 15 modify file status flags SeeAlso: #02311,#02337,#02327Top
INT 21 - Novell NetWare v2+ - AFP GET ENTRY ID FROM NETWARE HANDLE AX = F223h subfn 06h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02314) ES:DI -> reply buffer (see #02315) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=04h,AX=F223h/SF=0Ch,AX=F223h/SF=12h Format of NetWare "AFP Get Entry ID from NetWare Handle" request packet: Offset Size Description (Table 02314) 00h WORD (big-endian) length of following data 02h BYTE 06h (subfunction "AFP Get Entry ID from NetWare Handle") 03h 6 BYTEs NetWare file handle SeeAlso: #02315,#02307 Format of NetWare "AFP Get Entry ID from NetWare Handle" reply packet: Offset Size Description (Table 02315) 00h BYTE volume number 01h DWORD AFP entry ID corresponding to same file as NetWare handle 05h BYTE fork indicator (00h data fork, 01h resource fork) SeeAlso: #02314,#02308Top
INT 21 - Novell NetWare v2+ - AFP RENAME AX = F223h subfn 07h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02316) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=01h,AX=F223h/SF=03h,AX=F223h/SF=08h Format of NetWare "AFP Rename" request packet: Offset Size Description (Table 02316) 00h WORD (big-endian) length of following data 02h BYTE 07h (subfunction "AFP Rename") 03h BYTE volume number 04h DWORD source AFP entry ID 08h DWORD destination AFP entry ID 0Ch BYTE source path length 0Dh N BYTEs AFP-style source path (relative to source AFP entry ID) BYTE destination path length N BYTEs AFP-style destination path (relative to destination entry ID) Note: the file may be moved from one directory to another without being renamed by setting the destination path to the empty stringTop
INT 21 - Novell NetWare v2+ - AFP OPEN FILE FORK AX = F223h subfn 08h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02317) ES:DI -> reply buffer (see #02318) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=01h,AX=F223h/SF=05h,AX=F223h/SF=09h Format of NetWare "AFP Open File Fork" request packet: Offset Size Description (Table 02317) 00h WORD (big-endian) length of following data 02h BYTE 08h (subfunction "AFP Open File Fork") 03h BYTE volume number 04h DWORD AFP entry ID 08h BYTE fork indicator (00h = data fork, 01h = resource fork) 09h BYTE access mode bit 0: read bit 1: write bit 2: deny read access to others bit 3: deny write access to others bit 4: compatibility mode (should be set) 0Ah BYTE path length 0Bh N BYTEs AFP-style pathname (relative to AFP entry ID) SeeAlso: #02318 Format of NetWare "AFP Open File Fork" reply packet: Offset Size Description (Table 02318) 00h DWORD AFP entry ID for newly-opened file fork 04h DWORD length of opened fork 08h 6 BYTEs NetWare file handle SeeAlso: #02317Top
INT 21 - Novell NetWare v2+ - AFP SET FILE INFORMATION AX = F223h subfn 09h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02319) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=05h,AX=F223h/SF=0Ah,AX=F223h/SF=13h Format of NetWare "AFP Set File Information" request packet: Offset Size Description (Table 02319) 00h WORD (big-endian) length of following data 02h BYTE 09h (subfunction "AFP Set File Information") 03h BYTE volume number 04h DWORD AFP entry ID 08h WORD request bitmap (see #02320) 0Ah WORD directory/file attributes (see #02335) 0Ch WORD creation date in AFP format 0Eh WORD last-access date in AFP format 10h WORD last-modified date in AFP format 12h WORD last-modified time in AFP format 14h WORD last-backup date in AFP format 16h WORD last-backup time in AFP format 18h 32 BYTEs Finder information 38h BYTE path length 39h N BYTEs AFP-style pathname (relative to AFP entry ID) SeeAlso: #02334 Bitfields for NetWare AFP request bitmap: Bit(s) Description (Table 02320) 8 set attributes 10 set creation date 11 set last-access date 12 set last-modified date 13 set last-backup date 14 set Finder information SeeAlso: #02319,#02334Top
INT 21 - Novell NetWare v2+ - AFP SCAN FILE INFORMATION AX = F223h subfn 0Ah CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02321) ES:DI -> reply buffer (see #02323) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=01h,AX=F223h/SF=03h,AX=F223h/SF=08h Format of NetWare "AFP Scan File Information" request packet: Offset Size Description (Table 02321) 00h WORD (big-endian) length of following data 02h BYTE 0Ah (subfunction "AFP Scan File Information") 03h BYTE volume number 04h DWORD AFP entry ID 08h DWORD AFP last-seen ID (from previous call) FFFFFFFFh on first call 0Ch WORD number of entries to return (max. 4) 0Eh WORD search bitmap (see #02322) 10h WORD request bitmap (see #02310) 12h BYTE path length 13h N BYTEs AFS-style directory path (relative to AFP entry ID) SeeAlso: #02323,#02336 Bitfields for NetWare AFP search bitmap: Bit(s) Description (Table 02322) 8 hidden files and directories 9 system files and directories 10 subdirectories 11 files SeeAlso: #02321,#02336,#02310,#02312 Format of NetWare "AFP Scan File Information" reply packet: Offset Size Description (Table 02323) 00h WORD number of entries returned 02h 120N BYTEs file information records (see #02324) SeeAlso: #02321 Format of NetWare AFP file information: Offset Size Description (Table 02324) 00h DWORD AFP entry ID 04h DWORD parent directory's AFP entry ID 08h WORD directory/file attributes (see #02312) 0Ah DWORD length of data fork 0Eh DWORD length of resource fork 12h WORD total files and subdirectories contained within entry always 0000h if entry is a file 14h WORD creation date in AFP format 16h WORD last-access date in AFP format 18h WORD last-modified date in AFP format 1Ah WORD last-modified time in AFP format 1Ch WORD last-backup date in AFP format 1Eh WORD last-backup time in AFP format 20h 32 BYTEs Finder information 40h 32 BYTEs long filename 60h DWORD NetWare object ID of owner 64h 12 BYTEs short filename (MS-DOS 8.3 format) 70h WORD access privileges (see #02313) SeeAlso: #02323Top
INT 21 - Novell NetWare v2+ - AFP ALLOCATE TEMPORARY DIRECTORY HANDLE AX = F223h subfn 0Bh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02325) ES:DI -> reply buffer (see #02326) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=0Dh Format of NetWare "AFP Alloc Temporary Directory Handle" request packet: Offset Size Description (Table 02325) 00h WORD (big-endian) length of following data 02h BYTE 0Bh (subfunction "AFT Alloc Temporary Directory Handle") 03h BYTE volume number 04h DWORD AFP entry ID 08h BYTE path length 09h N BYTEs AFP-style pathname SeeAlso: #02326 Format of NetWare "AFP Alloc Temporary Directory Handle" request packet: Offset Size Description (Table 02326) 00h BYTE directory handle 01h BYTE NetWare access rights (see #02327) SeeAlso: #02325 Bitfields for NetWare AFP access rights: Bit(s) Description (Table 02327) 0 read 1 write 2 open 3 create 4 delete 5 parental: create/delete/rename subdirectories 6 search 7 modify file status flags SeeAlso: #02326,#02313Top
INT 21 - Novell NetWare v2+ - AFP GET ENTRY ID FROM PATHNAME AX = F223h subfn 0Ch CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02328) ES:DI -> reply buffer (see #02329) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=04h,AX=F223h/SF=06h,AX=F223h/SF=12h Format of NetWare "AFP Get Entry ID from Path Name" request packet: Offset Size Description (Table 02328) 00h WORD (big-endian) length of following data 02h BYTE 0Ch (subfunction "AFP Get Entry ID from Path Name") 03h BYTE NetWare directory handle 04h BYTE path length 05h N BYTEs pathname SeeAlso: #02329 Format of NetWare "AFP Get Entry ID from Path Name" reply packet: Offset Size Description (Table 02329) 00h DWORD AFP entry ID corresponding to specified file SeeAlso: #02328Top
INT 21 - Novell NetWare v2+ - AFP 2.0 CREATE DIRECTORY AX = F223h subfn 0Dh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02330) ES:DI -> reply buffer (see #02331) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=01h,AX=F223h/SF=0Eh Format of NetWare "AFP 2.0 Create Directory" request buffer: Offset Size Description (Table 02330) 00h WORD (big-endian) length of following data 02h BYTE 0Dh (subfunction "AFP 2.0 Create Directory") 03h BYTE volume number 04h DWORD AFP entry ID 08h BYTE reserved for future use 09h 32 BYTEs Finder information 29h 6 BYTEs ProDOS information 2Fh BYTE path length 30h var AFS-style directory path (relative to AFP entry) SeeAlso: #02331,#02302 Format of NetWare "AFP 2.0 Create Directory" reply buffer: Offset Size Description (Table 02331) 00h DWORD new directory ID SeeAlso: #02330,#02303Top
INT 21 - Novell NetWare v2+ - AFP 2.0 CREATE FILE AX = F223h subfn 0Eh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02332) ES:DI -> reply buffer (see #02333) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=0Dh Format of NetWare "AFP 2.0 Create File" request packet: Offset Size Description (Table 02332) 00h WORD (big-endian) length of following data 02h BYTE 0Eh (function "AFP 2.0 Create File") 03h BYTE volume number 04h DWORD AFP entry ID 08h BYTE flag: delete existing file? (00h no, 01h yes) 09h 32 BYTEs Finder information 29h 6 BYTEs ProDOS information 2Fh BYTE path length 30h var AFP-style pathname (relative to AFP entry ID) SeeAlso: #02333,#02304 Format of NetWare "AFP 2.0 Create File" reply packet: Offset Size Description (Table 02333) 00h DWORD new file ID SeeAlso: #02332,#02305Top
INT 21 - Novell NetWare v2+ - AFP 2.0 SET FILE INFORMATION AX = F223h subfn 10h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02334) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=09h,AX=F223h/SF=11h Format of NetWare "AFP 2.0 Set File Information" request packet: Offset Size Description (Table 02334) 00h WORD (big-endian) length of following data 02h BYTE 10h (subfunction "AFS 2.0 Set File Information") 03h BYTE volume number 04h DWORD AFP entry ID 08h WORD request bitmap (see #02320) 0Ah WORD directory/file attributes (see #02335) 0Ch WORD creation date in AFP format 0Eh WORD last-access date in AFP format 10h WORD last-modified date in AFP format 12h WORD last-modified time in AFP format 14h WORD last-backup date in AFP format 16h WORD last-backup time in AFP format 18h 32 BYTEs Finder information 38h 6 BYTEs ProDOS information 3Eh BYTE path length 3Fh N BYTEs AFP-style pathname (relative to AFP entry ID) SeeAlso: #02319 Bitfields for NetWare AFP directory/file attributes: Bit(s) Description (Table 02335) 0 read-only 1 hidden 2 system 3 execute-only 4 subdirectory 5 archive 7 shareable file SeeAlso: #02334Top
INT 21 - Novell NetWare v2+ - AFP 2.0 SCAN FILE INFORMATION AX = F223h subfn 11h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02336) ES:DI -> reply buffer (see #02337) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=0Dh,AX=F223h/SF=10h Format of NetWare "AFP 2.0 Scan File Information" request packet: Offset Size Description (Table 02336) 00h WORD (big-endian) length of following data 02h BYTE 11h (subfunction "AFP 2.0 Scan File Information") 03h BYTE volume number 04h DWORD AFP entry ID 08h DWORD AFP last-seen ID (from previous call) FFFFFFFFh on first call 0Ch WORD number of entries to return (max. 4) 0Eh WORD search bitmap (see #02322) 10h WORD request bitmap (see #02310) 12h BYTE path length 13h N BYTEs AFS-style directory path (relative to AFP entry ID) SeeAlso: #02337 Format of NetWare "AFP 2.0 Scan File Information" reply packet: Offset Size Description (Table 02337) 00h WORD number of entries returned 02h 120N BYTEs file information records (see #02338) SeeAlso: #02336 Format of NetWare AFP 2.0 file information: Offset Size Description (Table 02338) 00h DWORD AFP entry ID 04h DWORD parent directory's AFP entry ID 08h WORD directory/file attributes (see #02312) 0Ah DWORD length of data fork 0Eh DWORD length of resource fork 12h WORD total files and subdirectories contained within entry always 0000h if entry is a file 14h WORD creation date in AFP format 16h WORD last-access date in AFP format 18h WORD last-modified date in AFP format 1Ah WORD last-modified time in AFP format 1Ch WORD last-backup date in AFP format 1Eh WORD last-backup time in AFP format 20h 32 BYTEs Finder information 40h 32 BYTEs long filename 60h DWORD NetWare object ID of owner 64h 12 BYTEs short filename (MS-DOS 8.3 format) 70h WORD access privileges (see #02313) 72h 6 BYTEs ProDOS information SeeAlso: #02337,#02310,#02311Top
INT 21 - Novell NetWare v2+ - AFP GET DOS FILENAME FROM ENTRY ID AX = F223h subfn 12h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02339) ES:DI -> reply buffer (see #02340) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=04h,AX=F223h/SF=06h Format of NetWare "AFP Get DOS Name from Entry ID" request packet: Offset Size Description (Table 02339) 00h WORD (big-endian) length of following data 02h BYTE 12h (subfunction "AFP Get DOS Name From Entry ID") 03h BYTE volume number 04h DWORD AFP entry ID SeeAlso: #02340 Format of NetWare "AFP Get DOS Name from Entry ID" reply packet: Offset Size Description (Table 02340) 00h BYTE length of DOS pathname 01h N BYTEs pathname corresponding to AFP entry ID SeeAlso: #02339Top
INT 21 - Novell NetWare v2+ - AFP GET MACINTOSH INFORMATION ON DELETED FILE AX = F223h subfn 13h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02341) ES:DI -> reply buffer (see #02342) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F223h/SF=04h,AX=F223h/SF=05h,AX=F223h/SF=09h Format of NetWare "AFP Get Macintosh Info on Deleted File" request packet: Offset Size Description (Table 02341) 00h WORD (big-endian) length of following data 02h BYTE 13h (subfunction "AFP Get Macintosh Info on Deleted File") 03h BYTE volume number 04h DWORD server's DOS directory entry index SeeAlso: #02342 Format of NetWare "AFP Get Macintosh Info on Deleted File" reply packet: Offset Size Description (Table 02342) 00h 32 BYTEs Finder information 20h 6 BYTEs ProDOS information 26h DWORD size of resource fork 2Ah BYTE length of filename 2Bh N BYTEs filename SeeAlso: #02341Top
INT 21 - Novell NetWare - COMMIT FILE AX = F23Dh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02347) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=3Eh,AH=F2h"Novell",AX=F23Eh,AX=F243hTop
INT 21 - Novell NetWare - FILE SEARCH INITIALIZE (FindFirst) AX = F23Eh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02343) ES:DI -> reply buffer (see #02344) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=4Eh,AH=F2h"Novell",AX=F23Fh,AX=F242h Format of NetWare "File Search Initialize" request packet: Offset Size Description (Table 02343) 00h BYTE directory handle 01h BYTE length of directory path 02h N BYTEs path of directory to search, in VOLUME:DIRECTORY/... format SeeAlso: #02344,#02345 Format of NetWare "File Search Initialize" reply packet: Offset Size Description (Table 02344) 00h BYTE volume number 01h WORD directory ID 03h WORD search sequence number 05h BYTE directory access rights SeeAlso: #02343,#02346Top
INT 21 - Novell NetWare - FILE SEARCH CONTINUE (FindNext) AX = F23Fh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02345) ES:DI -> reply buffer (see #02346) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=4Eh,AH=F2h"Novell",AX=F23Eh,AX=F242h Format of NetWare "File Search Continue" request packet: Offset Size Description (Table 02345) 00h BYTE volume number 02h WORD directory ID from File Search Initialize 04h WORD search sequence (set to FFFFh before first call) 06h BYTE search attributes 07h BYTE length of search directory path 08h N BYTEs name of search directory in VOLUME:DIRECTORY/.../DIR format SeeAlso: #02346 Format of NetWare "File Search Continue" reply packet: Offset Size Description (Table 02346) 00h WORD next search sequence 02h WORD directory ID from File Search Initialize 04h WORD reserved for future use 06h 14 BYTEs filename 14h BYTE file attributes 15h BYTE file mode 16h DWORD file length 2Ah WORD creation date 2Ch WORD last-access date 2Eh WORD last-modification date 30h WORD last-modification time SeeAlso: #02345Top
INT 21 - Novell NetWare - CLOSE FILE AX = F242h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02347) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=3Eh,AH=F2h"Novell",AX=F23Eh,AX=F243h,AX=F24Ah Format of NetWare "Commit/Close File" request packet: Offset Size Description (Table 02347) 00h BYTE reserved (0) 01h 6 BYTEs NetWare file handleTop
INT 21 - Novell NetWare - CREATE FILE AX = F243h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02348) ES:DI -> reply buffer (see #02349) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=3Ch,AH=F2h"Novell",AX=F23Eh,AX=F242h,AX=F24Ah,AX=F24Dh Format of NetWare "Create File" request packet: Offset Size Description (Table 02348) 00h BYTE directory handle 01h BYTE file attributes 02h BYTE length of filename 03h N BYTEs filename in DOS format SeeAlso: #02349 Format of NetWare "Create File" reply packet: Offset Size Description (Table 02349) 00h 6 BYTEs NetWare file handle 06h WORD reserved 08h 14 BYTEs DOS-format filename 16h BYTE file attributes 17h BYTE file execute type 18h DWORD file length 1Ch WORD creation date 1Eh WORD last-access date 20h WORD last-modification date 22h WORD last-modification time SeeAlso: #02348Top
INT 21 - Novell NetWare - FILE SERVICES - ERASE FILE AX = F244h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02351) ES:DI ignored Return: AL = status (see #02350) Note: this function only marks the file for deletion; use AH=E2h/SF=CEh to actually delete all marked files SeeAlso: AH=13h,AH=41h,AH=E2h/SF=0Bh,AH=E3h/SF=CEh (Table 02350) Values for NetWare function status: 00h successful 98h nonexistent volume 9Bh invaid directory handle 9Ch invalid path FFh no files found SeeAlso: #02094,#02860 at INT 2F/AX=7A20h/BX=0000h Format of NetWare "Erase Files" request packet: Offset Size Description (Table 02351) 00h BYTE directory handle 01h BYTE search attributes (see #01420 at AX=4301h) 02h BYTE length of filespec 03h N BYTEs ASCIZ filespec (may include wildcards)Top
INT 21 - Novell NetWare - GET CURRENT FILE SIZE AX = F247h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02352) ES:DI -> reply buffer (see #02353) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=42h,AH=F2h"Novell",AX=F23Eh,AX=F242h,AX=F24Ah,AX=F24Dh Format of NetWare "Get Current Size of File" request packet: Offset Size Description (Table 02352) 00h BYTE reserved for future use 01h 6 BYTEs NetWare file handle SeeAlso: #02353 Format of NetWare "Get Current Size of File" reply packet: Offset Size Description (Table 02353) 00h DWORD current size of file SeeAlso: #02352Top
INT 21 - Novell NetWare - COPY FROM ONE FILE TO ANOTHER AX = F24Ah CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02354) ES:DI -> reply buffer (see #02355) Return: AX = status (see #02350) Note: this function only marks the file for deletion; use AH=E2h/SF=CEh to actually delete all marked files SeeAlso: AH=F2h"Novell",AX=F243h,AX=F247h,AH=F3h"NetWare" Format of NetWare "Copy from One File to Another" request packet: Offset Size Description (Table 02354) 00h BYTE reserved for future use 01h 6 BYTEs source NetWare file handle 07h 6 BYTEs destination NetWare file handle 0Dh DWORD source file offset 11h DWORD destination file offset 15h DWORD number of bytes to copy SeeAlso: #02355 Format of NetWare "Copy from One File to Another" reply packet: Offset Size Description (Table 02355) 00h DWORD number of bytes actually copied SeeAlso: #02354Top
INT 21 - Novell NetWare - CREATE NEW FILE AX = F24Dh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02356) ES:DI -> reply buffer (see #02357) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AX=6C00h,AH=F2h"Novell",AX=F23Eh,AX=F242h,AX=F243h Format of NetWare "Create New File" request packet: Offset Size Description (Table 02356) 00h BYTE directory handle 01h BYTE file attributes 02h BYTE length of filename 03h N BYTEs filename in DOS format SeeAlso: #02357 Format of NetWare "Create New File" reply packet: Offset Size Description (Table 02357) 00h 6 BYTEs NetWare file handle 06h WORD reserved 08h 14 BYTEs DOS-format filename 16h BYTE file attributes 17h BYTE file execute type 18h DWORD file length 1Ch WORD creation date 1Eh WORD last-access date 20h WORD last-modification date 22h WORD last-modification time SeeAlso: #02356Top
INT 21 - Novell NetWare v2+ - ALLOW TASK ACCESS TO FILE AX = F24Eh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02358) ES:DI -> reply buffer (see #02359) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Desc: allow calling task to gain access to an already-open file belonging to another task of the same client Note: the caller receives the same access rights as the owning task, and must use the returned new handle to access the file SeeAlso: AH=F2h"NetWare",AX=F244h Format of NetWare "Allow Task Access to File" request packet: Offset Size Description (Table 02358) 00h BYTE reserved for future use 01h 6 BYTEs NetWare file handle SeeAlso: #02359 Format of NetWare "Allow Task Access to File" reply packet: Offset Size Description (Table 02359) 00h 6 BYTEs new file handle SeeAlso: #02358Top
INT 21 - Novell NetWare - CLOSE EXTENDED ATTRIBUTE HANDLE AX = F256h subfn 01h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02360) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F256h/SF=02h,AX=F256h/SF=04h,AX=F256h/SF=05h Format of NetWare "Close Extended Attribute Handle" request packet: Offset Size Description (Table 02360) 00h BYTE 01h (subfunction "Close Extended Attribute Handle") 01h WORD reserved for future use 03h DWORD extended attribute handleTop
INT 21 - Novell NetWare - WRITE EXTENDED ATTRIBUTE AX = F256h subfn 02h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02361) ES:DI -> reply buffer (see #02362) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F256h/SF=01h,AX=F256h/SF=03h,AX=F256h/SF=05h Format of NetWare "Write Extended Attribute" request packet: Offset Size Description (Table 02361) 00h BYTE 02h (subfunction "Write Extended Attribute") 01h WORD flags (see #02372) 03h 8 BYTEs extended attribute handle structure (see #02373) 0Bh DWORD write size 0Fh DWORD write position 13h DWORD access flag 17h WORD length of value 19h WORD key length 1Bh N BYTEs key N BYTEs value SeeAlso: #02361,#02363 Format of NetWare "Write Extended Attribute" reply packet: Offset Size Description (Table 02362) 00h DWORD error code 04h DWORD number of bytes written 08h DWORD new extended attribute handle SeeAlso: #02361Top
INT 21 - Novell NetWare - READ EXTENDED ATTRIBUTE AX = F256h subfn 03h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02363) ES:DI -> reply buffer (see #02364) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F256h/SF=01h,AX=F256h/SF=04h,AX=F256h/SF=05h Format of NetWare "Read Extended Attribute" request packet: Offset Size Description (Table 02363) 00h BYTE 03h (subfunction "Read Extended Attribute") 01h WORD flags (see #02372) 03h 8 BYTEs extended attribute handle structure (see #02373) 0Bh DWORD read position 0Fh DWORD inspect size 13h WORD key length 15h N BYTEs key SeeAlso: #02364,#02361 Format of NetWare "Read Extended Attribute" reply packet: Offset Size Description (Table 02364) 00h DWORD error code 04h DWORD total extended attribute value length 08h DWORD new extended attribute handle 0Ch DWORD access flag 10h WORD value length 12h N BYTEs EA value SeeAlso: #02363Top
INT 21 - Novell NetWare - ENUMERATE EXTENDED ATTRIBUTES AX = F256h subfn 04h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02365) ES:DI -> reply buffer (see #02366) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F256h/SF=01h,AX=F256h/SF=02h,AX=F256h/SF=05h Format of NetWare "Enumerate Extended Attributes" request packet: Offset Size Description (Table 02365) 00h BYTE 04h (subfunction "Enumerate Extended Attributes") 01h WORD flags (see #02372) 03h 8 BYTEs extended attribute handle structure (see #02373) 0Bh DWORD inspect size 0Fh WORD enumeration sequence 11h WORD key length 13h N BYTEs key SeeAlso: #02366 Format of NetWare "Enumerate Extended Attributes" reply packet: Offset Size Description (Table 02366) 00h DWORD error code 04h DWORD total extended attributes 08h DWORD total extended attribute data size 0Ch DWORD total extended attribute key size 10h DWORD new extended attribute handle ---information level 0--- 14h 2 WORDs reserved ---information level 1--- 14h WORD number of enumerated extended attribute structures 16h var EA structure level 1 ---information level 6--- 14h WORD reserved 16h var EA structure level 6 ---information level 7--- 14h WORD number of enumerated extended attribute structures 16h var EA structure level 7 SeeAlso: #02365 Format of NetWare Extended Attribute structure level 1: Offset Size Description (Table 02367) 00h DWORD length of EA value 04h WORD length of EA key 06h DWORD access flag 0Ah N BYTEs key SeeAlso: #02366,#02368,#02369 Format of NetWare Extended Attribute structure level 6: Offset Size Description (Table 02368) 00h DWORD length of EA value 04h WORD length of EA key 06h DWORD access flag 0Ah DWORD key extents 0Eh DWORD value extents 12h N BYTEs key SeeAlso: #02366,#02367,#02369 Format of NetWare Extended Attribute structure level 7: Offset Size Description (Table 02369) 00h BYTE key length 01h N BYTEs key BYTE 00h SeeAlso: #02366,#02367,#02368Top
INT 21 - Novell NetWare - DUPLICATE EXTENDED ATTRIBUTES AX = F256h subfn 05h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02370) ES:DI -> reply buffer (see #02371) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F256h/SF=01h,AX=F256h/SF=02h,AX=F256h/SF=04h Format of NetWare "Duplicate Extended Attributes" request packet: Offset Size Description (Table 02370) 00h BYTE 05h (subfunction "Duplicate Extended Attributes") 01h WORD source flags (see #02372) 03h WORD destination flags (see #02372) 05h 8 BYTEs source extended attribute structure (see #02373) 0Dh 8 BYTEs destination extended attribute structure (see #02373) SeeAlso: #02371 Format of NetWare "Duplicate Extended Attributes" reply packet: Offset Size Description (Table 02371) 00h DWORD number duplicated 04h DWORD data size duplicated 08h DWORD key size duplicated SeeAlso: #02370 Bitfields for NetWare extended attribute flags: Bit(s) Description (Table 02372) 1-0 extended attribute handle structure type 00 volume number and directory entry number 01 NetWare file handle 10 extended attribute handle 11 not used 2 close handle on error 6-4 information level (0,1,6,7) 7 not used SeeAlso: #02370,#02373 Format of NetWare extended attribute structure: Offset Size Description (Table 02373) ---type 0--- 00h DWORD volume number 04h DWORD directory entry number ---type 1--- 00h DWORD NetWare file handle 04h 4 BYTEs unused ---type 2--- 00h DWORD extended attribute handle 04h 4 BYTEs unused SeeAlso: #02372Top
INT 21 - Novell NetWare - OPEN/CREATE FILE OR SUBDIRECTORY AX = F257h subfn 01h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02374) ES:DI -> reply buffer (see #02375) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=6C00h,AX=F257h/SF=02h,AX=F257h/SF=04h Format of NetWare "Open/Create File or Subdirectory" request packet: Offset Size Description (Table 02374) 00h BYTE 01h (subfunction "Open/Create File or Subdirectory") 01h BYTE name space (see #02387) 02h BYTE open/create mode 03h WORD search attributes 05h DWORD return information mask 09h DWORD create attributes 0Dh WORD desired access rights (see #02377) 0Fh NetWare handle/path structure SeeAlso: #02375 Format of NetWare "Open/Create File or Subdirectory" reply packet: Offset Size Description (Table 02375) 00h DWORD file handle 04h BYTE open/create action 00h open 01h replace 03h create 05h BYTE reserved SeeAlso: #02374 Format of NetWare Handle/Path structure: Offset Size Description (Table 02376) 00h BYTE volume number 01h DWORD directory base or short handle 05h BYTE handle flag 00h short directory handle 01h directory base FFh no handle 06h BYTE path component count 07h N BYTEs path component Bitfields for NetWare desired access rights: Bit(s) Description (Table 02377) 0 read-only mode 1 write-only 2 deny read 3 deny write 4 compatibility mode 6 write-through mode SeeAlso: #02374Top
INT 21 - Novell NetWare - INITIALIZE SEARCH AX = F257h subfn 02h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02378) ES:DI -> reply buffer (see #02379) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=4Eh,AH=F2h"Novell",AX=F257h/SF=01h,AX=F257h/SF=03h Format of NetWare "Initialize Search" request packet: Offset Size Description (Table 02378) 00h BYTE 02h (subfunction "Initialize Search") 01h BYTE name space (see #02387) 02h BYTE reserved for future use 03h NetWare Handle/Path structure (see #02376) SeeAlso: #02379 Format of NetWare "Initialize Search" reply packet: Offset Size Description (Table 02379) 00h 9 BYTEs search sequence BYTE volume number DWORD directory number DWORD current directory number SeeAlso: #02378Top
INT 21 - Novell NetWare - SCAN NAMESPACE ENTRY INFO AX = F257h subfn 03h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02380) ES:DI -> reply buffer (see #02381) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F257h/SF=04h,AX=F257h/SF=05h Format of NetWare "Search for File or Subdirectory" request packet: Offset Size Description (Table 02380) 00h BYTE 03h (subfunction "Search for File or Subdirectory") ??? SeeAlso: #02381 Format of NetWare "Search for File or Subdirectory" reply packet: Offset Size Description (Table 02381) 00h ??? SeeAlso: #02380Top
INT 21 - Novell NetWare - RENAME OR MOVE FILE OR SUBDIRECTORY AX = F257h subfn 04h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02382) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=56h,AH=F2h"Novell",AX=F257h/SF=02h,AX=F257h/SF=03h,AX=F257h/SF=05h Format of NetWare "Rename or Move File or Subdirectory" request packet: Offset Size Description (Table 02382) 00h BYTE 04h (subfunction "Rename or Move File or Subdirectory") 01h BYTE name space (see #02387) 02h BYTE rename flags bit 0: rename successful bit 1: compatibility mode 03h WORD search attributes 05h source NetWare Handle Path destination NetWare Handle PathTop
INT 21 - Novell NetWare - SCAN FILE OR SUBDIRECTORY FOR TRUSTEES AX = F257h subfn 05h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02383) ES:DI -> reply buffer (see #02384) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F257h/SF=04h,AX=F257h/SF=06h Format of NetWare "Scan File or Subdirectory for Trustees" request packet: Offset Size Description (Table 02383) 00h BYTE 05h (subfunction "Scan File or Subdirectory for Trustees") 01h BYTE name space (see #02387) 02h BYTE reserved for future use 03h DWORD scan sequence (set to 00000000h before first call) 07h NetWare Handle/Path structure (see #02376) SeeAlso: #02384 Format of NetWare "Scan File or Subdirectory for Trustees" reply packet: Offset Size Description (Table 02384) 00h DWORD next scan sequence or FFFFFFFFh if no more 04h WORD number of trustee object IDs returned 06h trustee structure SeeAlso: #02383Top
INT 21 - Novell NetWare v3+ - GET INFORMATION ABOUT FILE OR DIRECTORY AX = F257h subfn 06h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02385) ES:DI -> reply buffer (see #02388) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AH=F2h"Novell",AX=F257h/SF=02h,AX=F257h/SF=05h,AX=F257h/SF=07h Format of NetWare "Get NS Entry Info" request buffer: Offset Size Description (Table 02385) 00h BYTE 06h (subfunction "Get NS Entry Info") 01h BYTE name space (see #02387) 02h BYTE destination name space 03h WORD search attributes 05h DWORD return information mask (see #02386) 09h BYTE volume number 0Ah DWORD directory base 0Eh BYTE handle flag 00h first byte of dir base is dir handle; ignore volume number 01h dir base = unique ID, volume number set FFh volume number and dir base ignored, volume part of path 0Fh BYTE number of path components 10h N BYTEs list of path components (each a counted string) SeeAlso: #02388 Bitfields for return information mask: Bit(s) Description (Table 02386) 0 include filename 1 data stream space allocated info 2 attributes info 3 data stream size info 4 total space allocated for all data streams 5 extended attributes info 6 archive info 7 modify info 8 create info 9 name space info 10 directory info 11 rights info (Table 02387) Values for NetWare name space: 00h DOS 01h Macintosh 02h NFS 03h FTAM 04h OS/2 SeeAlso: #02385,#02393 Format of NetWare "Get NS Entry Info" reply buffer: Offset Size Description (Table 02388) 00h 72 BYTEs reserved 48h DWORD creator's name space number 4Ch 257 BYTEs reserved SeeAlso: #02385Top
INT 21 - Novell NetWare - MODIFY FILE OR SUBDIRECTORY DOS INFORMATION AX = F257h subfn 07h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02389) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F257h/SF=04h,AX=F257h/SF=08h Format of NetWare "Modify File or Subdirectory DOS Information" request packet: Offset Size Description (Table 02389) 00h BYTE 07h (subfunction "Modify File or Subdirectory DOS Information") 01h BYTE name space (see #02387) 02h BYTE reserved for future use 03h WORD search attributes 05h DWORD modify DOS mask 09h Modify DOS information structureTop
INT 21 - Novell NetWare - DELETE FILE/DIRECTORY AX = F257h subfn 08h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02390) ES:DI -> reply buffer (see #02391) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F257h/SF=01h,AX=F257h/SF=07h Format of NetWare "Delete File/Directory" request packet: Offset Size Description (Table 02390) 00h BYTE 08h (subfunction "Delete File/Directory") ??? SeeAlso: #02391 Format of NetWare "Delete File/Directory" reply packet: Offset Size Description (Table 02391) 00h ??? SeeAlso: #02390Top
INT 21 - Novell NetWare - SET SHORT DIRECTORY HANDLE AX = F257h subfn 09h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02392) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F257h/SF=0Ch Format of NetWare "Set Short Directory Handle" request packet: Offset Size Description (Table 02392) 00h BYTE 09h (subfunction "Set Short Directory Handle") 01h BYTE name space (see #02387) 02h BYTE data stream 03h BYTE destination directory handle 04h BYTE reserved for future use 05h NetWare Handle/Path structure (see #02376)Top
INT 21 - Novell NetWare v3+ - ADD TRUSTEE SET TO FILE OR SUBDIRECTORY AX = F257h subfn 0Ah CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02393) ES:DI ignored Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F257h/SF=0Bh Format of NetWare "Add Trustee Set" request packet: Offset Size Description (Table 02393) 00h BYTE 0Ah (subfunction "Add Trustee Set to File or Subdirectory") 01h BYTE name space (see #02387) 02h 2 BYTEs reserved 04h WORD trustee rights (see #02141) 06h WORD object ID count 08h NetWare Handle/Path structure (see #02376) 6 BYTEs trustee structure (see #02394) Format of NetWare trustee structure: Offset Size Description (Table 02394) 00h DWORD object ID 04h WORD trustee rights SeeAlso: #02393Top
INT 21 - Novell NetWare - DELETE TRUSTEE AX = F257h subfn 0Bh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02395) ES:DI -> reply buffer (see #02396) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F257h/SF=0Ah Format of NetWare "Delete Trustee" request packet: Offset Size Description (Table 02395) 00h BYTE 0Bh (subfunction "Delete Trustee") ??? SeeAlso: #02396 Format of NetWare "Delete Trustee" reply packet: Offset Size Description (Table 02396) 00h ??? SeeAlso: #02395Top
INT 21 - Novell NetWare v2+ - ALLOCATE SHORT DIRECTORY HANDLE AX = F257h subfn 0Ch CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02397) ES:DI -> reply buffer (see #02398) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) Note: unlike "Alloc Permanent Directory Handle", this function does not automatically map a drive SeeAlso: AH=F2h"Novell",AX=F223h/SF=04h,AX=F223h/SF=05h,AX=F223h/SF=09h Format of NetWare "Allocate Short Directory Handle" request packet: Offset Size Description (Table 02397) 00h BYTE 0Ch (subfunction "Allocate Short Directory Handle") 01h BYTE name space (see #02387) 02h 2 BYTEs reserved for future use 04h WORD allocation mode bits 1-0: 00 permanent handle 01 temporary handle 10 special temporary handle 11 reserved 06h NetWare Handle/Path structure (see #02376) SeeAlso: #02398 Format of NetWare "Allocate Short Directory Handle" reply packet: Offset Size Description (Table 02398) 00h BYTE new directory handle 01h BYTE volume number 02h DWORD reserved for future use SeeAlso: #02397Top
INT 21 - Novell NetWare - SCAN SALVAGEABLE FILES AX = F257h subfn 10h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02399) ES:DI -> reply buffer (see #02400) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Bh,AX=F257h/SF=11h,AX=F257h/SF=12h Format of NetWare "Scan Salvageable Files" request packet: Offset Size Description (Table 02399) 00h BYTE 10h (subfunction "Scan Salvageable Files") 01h BYTE name space 02h BYTE data stream 03h DWORD return information mask 07h DWORD last sequence (set to FFFFFFFFh before first call) 0Bh NetWare Handle/Path structure (see #02376) SeeAlso: #02400,#02123 Format of NetWare "Scan Salvageable Files" reply packet: Offset Size Description (Table 02400) 00h DWORD next sequence number 04h WORD deletion time 06h WORD deletion date 08h DWORD ID of deletor 0Ch DWORD volume number 10h DWORD directory entry number 14h NetWare Information Structure SeeAlso: #02399,#02124Top
INT 21 - Novell NetWare - RECOVER SALVAGEABLE FILE AX = F257h subfn 11h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02401) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Ch,AX=F257h/SF=10h,AX=F257h/SF=12h Format of NetWare "Recover Salvageable File" request packet: Offset Size Description (Table 02401) 00h BYTE 11h (subfunction "Recover Salvageable File") 01h BYTE name space 02h BYTE reserved for future use 03h DWORD sequence number 07h DWORD volume number 0Bh DWORD scan directory base 0Fh BYTE new file name length 10h N BYTEs new file name SeeAlso: #02402,#02125Top
INT 21 - Novell NetWare - PURGE SALVAGEABLE FILE AX = F257h subfn 12h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02402) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Dh,AX=F257h/SF=10h,AX=F257h/SF=11h Format of NetWare "Purge Salvageable File" request packet: Offset Size Description (Table 02402) 00h BYTE 12h (subfunction "Purge Salvageable File") 01h BYTE name space 02h BYTE reserved 03h DWORD sequence number 07h DWORD volume number 0Bh DWORD directory entry number SeeAlso: #02401Top
INT 21 - Novell NetWare - GET NAMESPACE INFORMATION AX = F257h subfn 13h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02403) ES:DI -> reply buffer (see #02404) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F257h/SF=12h,AX=F257h/SF=15h Format of NetWare "Get Namespace Information" request packet: Offset Size Description (Table 02403) 00h BYTE 13h (subfunction "Get Namespace Information") 01h BYTE source name space (see #02387) 02h BYTE destination name space 03h BYTE reserved for future use 04h BYTE volume number 05h DWORD directory base 09h DWORD namespace information mask SeeAlso: #02404 Format of NetWare "Get Namespace Information" reply packet: Offset Size Description (Table 02404) 00h var namespace-specific information SeeAlso: #02403Top
INT 21 - Novell NetWare - GET PATH STRING FROM SHORT DIRECTORY HANDLE AX = F257h subfn 15h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02405) ES:DI -> reply buffer (see #02406) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F257h/SF=13h,AX=F257h/SF=16h Format of NetWare "Get Path String from Short Directory Handle" request packet: Offset Size Description (Table 02405) 00h BYTE 15h (subfunction "Get Path String from Short Directory Handle") 01h BYTE name space (see #02387) 02h BYTE short directory handle SeeAlso: #02406 Format of NetWare "Get Path String from Short Directory Handle" reply packet: Offset Size Description (Table 02406) 00h BYTE length of path 01h N BYTEs full directory path SeeAlso: #02405Top
INT 21 - Novell NetWare - GENERATE DIRECTORY BASE AND VOLUME NUMBER AX = F257h subfn 16h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02407) ES:DI -> reply buffer (see #02408) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F257h/SF=15h,AX=F257h/SF=17h Format of NetWare "Generate Directory Base and Volume Number" request packet: Offset Size Description (Table 02407) 00h BYTE 16h (subfunction "Generate Directory Base and Volume Number") 01h BYTE name space (#02802) 02h 3 BYTEs reserved for future use 05h NetWare Handle/Path structure (see #02376) SeeAlso: #02408 Format of NetWare "Generate Directory Base and Volume Number" reply packet: Offset Size Description (Table 02408) 00h DWORD namespace directory base 04h DWORD DOS directory base 08h BYTE volume number SeeAlso: #02407Top
INT 21 - Novell NetWare - GET NAME SPACE INFORMATION FORMAT AX = F257h subfn 17h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02409) ES:DI -> reply buffer (see #02410) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F257h/SF=18h,AX=F257h/SF=19h Format of NetWare "Get Name Space Information Format" request packet: Offset Size Description (Table 02409) 00h BYTE 17h (subfunction "Get Name Space Information Format") 01h BYTE name space (see #02387) 02h BYTE volume number SeeAlso: #02410 Format of NetWare "Get Name Space Information Format" reply packet: Offset Size Description (Table 02410) 00h DWORD fixed bitmask 04h DWORD variable bitmask 08h DWORD huge bitmask 0Ch WORD fixed bits defined 0Eh WORD variable bits defined 10h WORD huge bits defined 12h 128 BYTEs field lengths SeeAlso: #02409Top
INT 21 - Novell NetWare - GET NAME SPACES LOADED AX = F257h subfn 18h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02411) ES:DI -> reply buffer (see #02412) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F257h/SF=17h,AX=F257h/SF=19h,AX=F257h/SF=1Ah SeeAlso: AX=F216h/SF=2Fh Format of NetWare "Get Name Spaces Loaded" request packet: Offset Size Description (Table 02411) 00h BYTE 18h (subfunction "Get Name Spaces Loaded") 01h 2 BYTEs reserved for future use 03h BYTE volume number SeeAlso: #02412 Format of NetWare "Get Name Spaces Loaded" reply packet: Offset Size Description (Table 02412) 00h WORD number of namespace elements 02h WORD number of namespace elements loaded 04h N BYTEs loaded name spaces (each byte contains number of one loaded name space) SeeAlso: #02411Top
INT 21 - Novell NetWare - WRITE NAME SPACE INFO AX = F257h subfn 19h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02413) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F257h/SF=17h,AX=F257h/SF=18h Format of NetWare "Write Name Space Info" request packet: Offset Size Description (Table 02413) 00h BYTE 19h (subfunction "Write Name Space Info") 01h BYTE source name space (see #02387) 02h BYTE destination name space 03h BYTE volume number 04h DWORD directory entry number 08h DWORD namespace information bitmask 0Ch 512 BYTEs namespace-specific informatinTop
INT 21 - Novell NetWare - READ EXTENDED NAME SPACE INFO AX = F257h subfn 1Ah CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02414) ES:DI -> reply buffer (see #02415) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F257h/SF=18h,AX=F257h/SF=19h,AX=F257h/SF=1Bh Format of NetWare "Read Extended Name Space Info" request packet: Offset Size Description (Table 02414) 00h BYTE 1Ah (subfunction "Read Extended Name Space Info") 01h BYTE name space (see #02387) 02h BYTE volume number 03h DWORD directory base 07h DWORD huge mask 0Bh 16 BYTEs huge state information SeeAlso: #02415 Format of NetWare "Read Extended Name Space Info" reply packet: Offset Size Description (Table 02415) 00h 16 BYTEs next huge state information 10h DWORD huge data length 14h N BYTEs huge data SeeAlso: #02414Top
INT 21 - Novell NetWare - WRITE EXTENDED NAME SPACE INFO AX = F257h subfn 1Bh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02416) ES:DI -> reply buffer (see #02417) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F257h/SF=17h,AX=F257h/SF=18h,AX=F257h/SF=1Ah Format of NetWare "Write Extended Name Space Info" request packet: Offset Size Description (Table 02416) 00h BYTE 1Bh (subfunction "Write Extended Name Space Info") 01h BYTE name space (see #02387) 02h BYTE volume number 03h DWORD directory entry number 07h DWORD huge mask 0Bh 16 BYTEs huge state information 1Bh DWORD huge data length 1Fh N BYTEs huge data SeeAlso: #02417 Format of NetWare "Write Extended Name Space Info" request packet: Offset Size Description (Table 02417) 00h 16 BYTEs next huge state information 10h DWORD huge data used SeeAlso: #02416Top
INT 21 - Novell NetWare - GET NS FULL PATH STRING AX = F257h subfn 1Ch CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02418) ES:DI -> reply buffer (see #02419) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) Note: this call returns the path in reverse order (root directory last) SeeAlso: AH=F2h"Novell",AX=F257h/SF=03h,AX=F257h/SF=15h Format of NetWare "Get NS Full Path String" request packet: Offset Size Description (Table 02418) 00h BYTE 1Ch (subfunction "Get NS Full Path String") 01h BYTE source name space 02h BYTE destination name space 03h 10 BYTEs path cookie (see #02420) 04h NetWare Handle/Path structure (see #02376) SeeAlso: #02419 Format of NetWare "Get NS Full Path String" reply packet: Offset Size Description (Table 02419) 00h 10 BYTEs next path cookie (see #02420) 0Ah WORD size of path component(s) in packet 0Ch WORD number of path components in packet 0Eh path components SeeAlso: #02418 Format of NetWare path cookie: Offset Size Description (Table 02420) 00h WORD flags bit 0: last component is a filename 02h DWORD cookie1 06h DWORD cookie2 Note: "cookie1" and "cookie2" are to be set to FFFFFFFFh initially; if "cookie2" is FFFFFFFFh on return, all path components have been transferred SeeAlso: #02418,#02419Top
INT 21 - Novell NetWare - GET EFFECTIVE DIRECTORY RIGHTS AX = F257h subfn 1Dh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02421) ES:DI -> reply buffer (see #02422) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AX=F216h/SF=03h,AX=F257h/SF=06h,AX=F257h/SF=0Ch,AX=F257h/SF=15h Format of NetWare "Get Effective Directory Rights" request packet: Offset Size Description (Table 02421) 00h BYTE 1Dh (subfunction "Get Effective Directory Rights") 01h BYTE name space (see #02387) 02h BYTE destination name space (see #02387) 03h WORD search attributes 05h DWORD return information mask 09h NetWare Handle/Path structure (see #02376) SeeAlso: #02422 Format of NetWare "Get Effective Directory Rights" reply packet: Offset Size Description (Table 02422) 00h WORD caller's effective rights 02h NetWare Information Structure SeeAlso: #02421Top
INT 21 - Novell NetWare v4+ - GET VOLUME AUDITING STATISTICS AX = F258h subfn 01h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02423) ES:DI -> reply buffer (see #02424) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F268h/SF=C8h Format of NetWare "Get Volume Auditing Statistics" request buffer: Offset Size Description (Table 02423) 00h BYTE 01h (function "Get Volume Auditing Statistics") 01h DWORD volume SeeAlso: #02424 Format of NetWare "Get Volume Auditing Statistics" reply buffer: Offset Size Description (Table 02424) 00h WORD auditing version (date) 02h WORD audit file version (date) 04h DWORD auditing enabled flag 08h DWORD audit file's size 0Ch DWORD audit configuration file's size 10h DWORD maximum audit file size 14h DWORD audit file size threshold 18h DWORD number of audit records 1Ch DWORD number of history records SeeAlso: #02423,#02476Top
INT 21 - Novell NetWare - ADD AUDIT PROPERTY AX = F258h subfn 02h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02425) ES:DI -> reply buffer (see #02426) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F217h/SF=39h,AX=F258h/SF=06h,AX=F258h/SF=08h Format of NetWare "Add Audit Property" request packet: Offset Size Description (Table 02425) 00h BYTE 02h (subfunction "Add Audit Property") ??? SeeAlso: #02426 Format of NetWare "Add Audit Property" reply packet: Offset Size Description (Table 02426) 00h ??? SeeAlso: #02425Top
INT 21 - Novell NetWare - LOGIN AS VOLUME AUDITOR AX = F258h subfn 03h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02427) ES:DI -> reply buffer (see #02428) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=04h,AX=F258h/SF=0Dh Format of NetWare "Login As Volume Auditor" request packet: Offset Size Description (Table 02427) 00h BYTE 03h (subfunction "Login As Volume Auditor") ??? SeeAlso: #02428 Format of NetWare "Login As Volume Auditor" reply packet: Offset Size Description (Table 02428) 00h ??? SeeAlso: #02427Top
INT 21 - Novell NetWare - CHANGE AUDITOR PASSWORD AX = F258h subfn 04h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02429) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=03h Format of NetWare "Change Auditor Password" request packet: Offset Size Description (Table 02429) 00h BYTE 04h (subfunction "Change Auditor Password") ???Top
INT 21 - Novell NetWare - CHECK AUDIT ACCESS AX = F258h subfn 05h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02430) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=02h,AX=F258h/SF=08h Format of NetWare "Check Audit Access" request packet: Offset Size Description (Table 02430) 00h BYTE 05h (subfunction "Check Audit Access") ???Top
INT 21 - Novell NetWare - REMOVE AUDIT PROPERTY AX = F258h subfn 06h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02431) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=02h,AX=F258h/SF=05h Format of NetWare "Remove Audit Property" request packet: Offset Size Description (Table 02431) 00h BYTE 06h (subfunction "Remove Audit Property") ???Top
INT 21 - Novell NetWare - DISABLE AUDITING ON VOLUME AX = F258h subfn 07h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02432) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=08h,AX=F258h/SF=09h Format of NetWare "Disable Auditing on Volume" request packet: Offset Size Description (Table 02432) 00h BYTE 07h (subfunction "Disable Auditing on Volume") ???Top
INT 21 - Novell NetWare - ENABLE AUDITING ON VOLUME AX = F258h subfn 08h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02433) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=07h,AX=F258h/SF=09h Format of NetWare "Enable Auditing on Volume" request packet: Offset Size Description (Table 02433) 00h BYTE 08h (subfunction "Enable Auditing on Volume") ???Top
INT 21 - Novell NetWare - IS USER AUDITED? AX = F258h subfn 09h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02434) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=07h,AX=F258h/SF=08h Format of NetWare "Is User Audited?" request packet: Offset Size Description (Table 02434) 00h BYTE 09h (subfunction "Is User Audited?") ???Top
INT 21 - Novell NetWare - READ AUDITING BITMAP AX = F258h subfn 0Ah CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02435) ES:DI -> reply buffer (see #02436) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=0Bh,AX=F258h/SF=10h Format of NetWare "Read Auditing Bitmap" request packet: Offset Size Description (Table 02435) 00h BYTE 0Ah (subfunction "Read Auditing Bitmap") ??? SeeAlso: #02436,#02437 Format of NetWare "Read Auditing Bitmap" reply packet: Offset Size Description (Table 02436) 00h ??? SeeAlso: #02435,#02438Top
INT 21 - Novell NetWare - READ AUDIT CONFIG HEADER AX = F258h subfn 0Bh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02437) ES:DI -> reply buffer (see #02438) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=0Ah,AX=F258h/SF=11h Format of NetWare "Read Audit Configuration Header" request packet: Offset Size Description (Table 02437) 00h BYTE 0Bh (subfunction "Read Audit Configuration Header") ??? SeeAlso: #02438,#02435 Format of NetWare "Read Audit Configuration Header" reply packet: Offset Size Description (Table 02438) 00h ??? SeeAlso: #02437,#02436Top
INT 21 - Novell NetWare - LOGOUT AS VOLUME AUDITOR AX = F258h subfn 0Dh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02439) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=03h Format of NetWare "Logout as Volume Auditor" request packet: Offset Size Description (Table 02439) 00h BYTE 0Dh (subfunction "Logout as Volume Auditor") ???Top
INT 21 - Novell NetWare - RESET AUDITING FILE AX = F258h subfn 0Eh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02440) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=0Ah,AX=F258h/SF=0Fh Format of NetWare "Reset Auditing File" request packet: Offset Size Description (Table 02440) 00h BYTE 0Eh (subfunction "Reset Auditing File") ???Top
INT 21 - Novell NetWare - RESET AUDIT HISTORY FILE AX = F258h subfn 0Fh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02441) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=0Eh Format of NetWare "Reset Audit History File" request packet: Offset Size Description (Table 02441) 00h BYTE 0Fh (subfunction "Reset Audit History File") ???Top
INT 21 - Novell NetWare - WRITE AUDITING BITMAP AX = F258h subfn 10h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02442) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=0Ah,AX=F258h/SF=11h Format of NetWare "Write Auditing Bitmap" request packet: Offset Size Description (Table 02442) 00h BYTE 10h (subfunction "Write Auditing Bitmap") ??? SeeAlso: #02443Top
INT 21 - Novell NetWare - WRITE AUDIT CONFIG HEADER AX = F258h subfn 11h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02443) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=0Bh,AX=F258h/SF=10h Format of NetWare "Write Audit Configuration Header" request packet: Offset Size Description (Table 02443) 00h BYTE 11h (subfunction "Write Audit Configuration Header") ??? SeeAlso: #02442Top
INT 21 - Novell NetWare - GET AUDITING FLAGS AX = F258h subfn 13h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02444) ES:DI -> reply buffer (see #02445) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=05h Format of NetWare "Get Auditing Flags" request packet: Offset Size Description (Table 02444) 00h BYTE 13h (subfunction "Get Auditing Flags") ??? SeeAlso: #02445 Format of NetWare "Get Auditing Flags" reply packet: Offset Size Description (Table 02445) 00h ??? SeeAlso: #02444Top
INT 21 - Novell NetWare - CLOSE OLD AUDITING FILE AX = F258h subfn 14h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02446) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=15h Format of NetWare "Close Old Auditing File" request packet: Offset Size Description (Table 02446) 00h BYTE 14h (subfunction "Close Old Auditing File") ??? SeeAlso: #02447Top
INT 21 - Novell NetWare - DELETE OLD AUDITING FILE AX = F258h subfn 15h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02447) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=14h Format of NetWare "Delete Old Auditing File" request packet: Offset Size Description (Table 02447) 00h BYTE 15h (subfunction "Delete Old Auditing File") ??? SeeAlso: #02446Top
INT 21 - Novell NetWare - CHECK AUDIT LEVEL TWO ACCESS AX = F258h subfn 16h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02448) ES:DI -> reply buffer Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F258h/SF=05h Format of NetWare "Check Audit Level Two Access" request packet: Offset Size Description (Table 02448) 00h BYTE 16h (subfunction "Check Audit Level Two Access") ???Top
INT 21 - Novell NetWare - GET DATA MIGRATION INFO AX = F25Ah subfn 01h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02449) ES:DI -> reply buffer (see #02450) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F25Ah/SF=80h,AX=F25Ah/SF=86h Format of NetWare "Get Data Migration Information" request packet: Offset Size Description (Table 02449) 00h WORD length of following data 02h BYTE 01h (subfunction "Get Data Migration Information") SeeAlso: #02450 Format of NetWare "Get Data Migration Information" reply packet: Offset Size Description (Table 02450) 00h ??? SeeAlso: #02449Top
INT 21 - Novell NetWare - MOVE FILE DATA TO DATA MIGRATION AX = F25Ah subfn 80h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02451) ES:DI -> reply buffer (see #02452) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F25Ah/SF=82h,AX=F25Ah/SF=85h Format of NetWare "Move File Data to Data Migration" request packet: Offset Size Description (Table 02451) 00h WORD length of following data 02h BYTE 80h (subfunction "Move File Data to Data Migration") 03h DWORD volume number 07h DWORD directory entry number 0Bh DWORD name space (see #02387) 0Fh DWORD support module ID 13h DWORD save key flag 00000010h to save key when file is demigrated SeeAlso: #02452 Format of NetWare "Move File Data to Data Migration" reply packet: Offset Size Description (Table 02452) 00h DWORD volume-unique ID SeeAlso: #02451Top
INT 21 - Novell NetWare - DATA MIGRATION FILE INFORMATION AX = F25Ah subfn 81h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02453) ES:DI -> reply buffer (see #02454) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F25Ah/SF=80h,AX=F25Ah/SF=82h,AX=F25Ah/SF=83h Format of NetWare "Data Migration File Information" request packet: Offset Size Description (Table 02453) 00h WORD length of following data 02h BYTE 81h (subfunction "Data Migration File Information") 03h DWORD volume number 07h DWORD directory entry number 0Bh DWORD name space (see #02387) SeeAlso: #02454 Format of NetWare "Data Migration File Information" reply packet: Offset Size Description (Table 02454) 00h DWORD support module ID 04h DWORD estimate restoration time 08h DWORD bitmask of supported data streams SeeAlso: #02453Top
INT 21 - Novell NetWare - VOLUME DATA MIGRATION STATUS AX = F25Ah subfn 82h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02455) ES:DI -> reply buffer (see #02456) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F25Ah/SF=01h,AX=F25Ah/SF=83h,AX=F25Ah/SF=84h Format of NetWare "Volume Data Migration Status" request packet: Offset Size Description (Table 02455) 00h WORD length of following data 02h BYTE 82h (subfunction "Volume Data Migration Status") 03h DWORD volume number 07h DWORD support module ID SeeAlso: #02456 Format of NetWare "Volume Data Migration Status" request packet: Offset Size Description (Table 02456) 00h DWORD number of migrated files 04h DWORD total size required to restore all migrated files 08h DWORD total space used on migration device 0Ch DWORD limbo space (demigrated files with save-key flag set) 10h DWORD total space including limbo space 14h DWORD number of files in limbo SeeAlso: #02455Top
INT 21 - Novell NetWare - GET MIGRATION OR STATUS INFORMATION AX = F25Ah subfn 83h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02457) ES:DI -> reply buffer (see #02458) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F25Ah/SF=82h,AX=F25Ah/SF=84h,AX=F25Ah/SF=85h Format of NetWare "Get Migration or Status Information" request packet: Offset Size Description (Table 02457) 00h WORD length of following data 02h BYTE 83h (subfunction "Get Migration or Status Information") SeeAlso: #02458 Format of NetWare "Get Migration or Status Information" request packet: Offset Size Description (Table 02458) 00h DWORD presence flag FFFFFFFFh if Data Migration NLM is loaded and running 04h DWORD major version 08h DWORD minor version 0Ch DWORD flag: has support module registered with Data Migrator? SeeAlso: #02457Top
INT 21 - Novell NetWare - DATA MIGRATION SUPPORT MODULE INFORMATION AX = F25Ah subfn 84h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02459) ES:DI -> reply buffer (see #02460) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F25Ah/SF=82h,AX=F25Ah/SF=83h,AX=F25Ah/SF=86h Format of NetWare "Data Migration Support Module Information" request packet: Offset Size Description (Table 02459) 00h WORD length of following data 02h BYTE 84h (subfunction "Data Migration Support Module Information") 03h DWORD information level 0000h get data migration NLM info 0001h get loaded support modules 0002h get name of support module 07h DWORD support module ID SeeAlso: #02460 Format of NetWare "Data Migration Support Module Information" request packet: Offset Size Description (Table 02460) ---information level 0--- 00h DWORD read/write access status 04h DWORD length of Specific Device Information block (max 384) 08h DWORD space available on support module 0Ch DWORD amount of space used 10h BYTE length of support module's name 11h 14 BYTEs support module name 1Fh 128 BYTEs support module information ---information level 1--- 00h DWORD number of support modules 04h 32 BYTEs support module IDs ---information level 2--- 00h BYTE length of module name 01h 32 BYTEs support module name SeeAlso: #02459Top
INT 21 - Novell NetWare - MOVE FILE DATA FROM DATA MIGRATION AX = F25Ah subfn 85h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02461) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F25Ah/SF=80h,AX=F25Ah/SF=83h,AX=F25Ah/SF=86h Format of NetWare "Move File Data From Data Migration" request packet: Offset Size Description (Table 02461) 00h WORD length of following data 02h BYTE 85h (subfunction "Move File Data from Data Migration") 03h DWORD volume number 07h DWORD directory entry number 0Bh DWORD name space (see #02387) SeeAlso: #02452Top
INT 21 - Novell NetWare - GET OR SET DEFAULT SUPPORT MODULE AX = F25Ah subfn 86h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02462) ES:DI -> reply buffer (see #02463) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F25Ah/SF=01h,AX=F25Ah/SF=80h,AX=F25Ah/SF=84h Format of NetWare "Get or Set Default Support Module" request packet: Offset Size Description (Table 02462) 00h WORD length of following data 02h BYTE 86h (subfunction "Get or Set Default Support Module") 03h DWORD direction 00h get default support module 01h set default support module 07h DWORD new module ID if setting SeeAlso: #02463 Format of NetWare "Get or Set Default Support Module" request packet: Offset Size Description (Table 02463) 00h DWORD support module ID SeeAlso: #02462Top
INT 21 - Novell NetWare v4+ - GET TREE NAME AX = F268h subfn 01h CX = length of request buffer in bytes (0001h) DX = length of reply buffer in bytes (0064h) DS:SI -> request buffer (see #02464) ES:DI -> reply buffer (see #02465) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F268h/SF=04h Format of NetWare "Get Tree Name" request buffer: Offset Size Description (Table 02464) 00h BYTE 01h (subfunction "Get Tree Name") Format of NetWare "Get Tree Name" reply buffer: Offset Size Description (Table 02465) 00h DWORD Ping version 04h DWORD length of tree name 08h 32 BYTEs tree name, padded with underscores ('_') 28h 60 BYTEs ???Top
INT 21 - Novell NetWare v4+ - GET BINDERY CONTEXT AX = F268h subfn 04h CX = length of request buffer in bytes (0001h) DX = length of reply buffer in bytes DS:SI -> request buffer (see #02466) ES:DI -> reply buffer (see #02467) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F268h/SF=01h,AX=F268h/SF=C8h Format of NetWare "Get Bindery Context" request buffer: Offset Size Description (Table 02466) 00h BYTE 04h (subfunction "Get Bindery Context") Format of NetWare "Get Bindery Context" reply buffer: Offset Size Description (Table 02467) 00h DWORD length (max 200) 04h N WORDs Unicode bindery context stringTop
INT 21 - Novell NetWare v4+ - MONITOR NDS CONNECTION AX = F268h subfn 05h CX = length of request buffer in bytes (0001h) DX = length of reply buffer in bytes DS:SI -> request buffer (see #02468) ES:DI -> reply buffer (unused???) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) Format of NetWare "Monitor NDS Connection" request buffer: Offset Size Description (Table 02468) 00h BYTE 05h (subfunction "Monitor NDS Connection"Top
INT 21 - Novell NetWare v4+ - NDS LIST PARTITIONS AX = F268h subfn 16h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02469) ES:DI -> reply buffer (see #02470) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Note: the length specified in CX must be exactly 13 bytes more than the length field at offset 09h in the request buffer for this function to be successful SeeAlso: AX=F268h/SF=35h Format of NetWare "NDS List Partitions" request buffer: Offset Size Description (Table 02469) 00h BYTE 02h 01h DWORD ??? (FFFFFFFFh) 05h DWORD ??? (00000202h) 09h DWORD length (00000018h) 0Dh DWORD ??? (00000000h) 11h DWORD function (00000016h) (subfunction "NDS List Partitions") 15h DWORD ??? (00000400h) 19h DWORD API version (00000000h) 1Dh DWORD ??? (00000000h) 21h DWORD iteration (FFFFFFFFh) SeeAlso: #02470,#02471 Format of NetWare "NDS List Partitions" reply buffer: Offset Size Description (Table 02470) 00h DWORD length 04h DWORD ??? 08h DWORD return code 0Ch DWORD iteration 10h 1000 BYTEs returned data SeeAlso: #02469Top
INT 21 - Novell NetWare v4+ - NDS GET SERVER NAME AND ADDRESS AX = F268h subfn 35h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02471) ES:DI -> reply buffer (see #02472) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Note: the length specified in CX must be exactly 13 bytes more than the length field at offset 09h in the request buffer for this function to be successful SeeAlso: AX=F268h/SF=16h Format of NetWare "NDS Get Server Name and Address" request buffer: Offset Size Description (Table 02471) 00h BYTE 02h 01h DWORD ??? (FFFFFFFFh) 05h DWORD ??? (00000202h) 09h DWORD length (0000000Ch) 0Dh DWORD ??? (00000000h) 11h DWORD function (00000035h) (subfunc "NDS Get Server Name and Addr") 15h DWORD ??? (00000400h) SeeAlso: #02469,#02472 Format of NetWare "NDS Get Server Name and Address" reply buffer: Offset Size Description (Table 02472) 00h DWORD length 04h DWORD ??? 08h DWORD return code 0Ch DWORD length of name 10h N WORDs Unicode server name string var padding DWORD ??? (00000001h) DWORD ??? (00000000h) DWORD ??? (0000000Ch) 12 BYTEs server's IPX address SeeAlso: #02471Top
INT 21 - Novell NetWare v4+ - NDS LOGOUT AX = F268h subfn 3Dh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02473) ES:DI -> reply buffer (see #02474) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F217h/SF=14h Format of NetWare "NDS Logout" request buffer: Offset Size Description (Table 02473) 00h BYTE 02h 01h DWORD ??? (FFFFFFFFh) 05h DWORD ??? (00000202h) 09h DWORD length (0000000Ch) 0Dh DWORD ??? (00000000h) 11h DWORD function (0000003Dh) (subfunction "NDS Logout") 15h DWORD ??? (00000000h) SeeAlso: #02474 Format of NetWare "NDS Logout" reply buffer: Offset Size Description (Table 02474) 00h DWORD length 04h DWORD ??? 08h DWORD return code SeeAlso: #02473Top
INT 21 - Novell NetWare v4+ - GET DS AUDITING STATISTICS AX = F268h subfn C8h CX = length of request buffer in bytes (0001h) DX = length of reply buffer in bytes (0020h) DS:SI -> request buffer (see #02475) ES:DI -> reply buffer (see #02476) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F258h/SF=01h,AX=F268h/SF=01h,AX=F268h/SF=04h Format of NetWare "Get DS Auditing Statistics" request buffer: Offset Size Description (Table 02475) 00h BYTE C8h (subfunction "Get DS Auditing Statistics") SeeAlso: #02476 Format of NetWare "Get DS Auditing Statistics" reply buffer: Offset Size Description (Table 02476) 00h WORD auditing version (date) 02h WORD audit file version (date) 04h DWORD auditing enabled flag 08h DWORD audit file's size 0Ch DWORD audit configuration file's size 10h DWORD maximum audit file size 14h DWORD audit file size threshold 18h DWORD number of audit records 1Ch DWORD number of history records SeeAlso: #02424,#02475Top
INT 21 - Novell NetWare - LOG FILE AX = F269h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02477) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F203h,AX=F26Ah,AH=EBh"NetWare" Format of NetWare "Log File" request packet: Offset Size Description (Table 02477) 00h BYTE directory handle 01h BYTE lock flag 00h log only 01h log and lock 02h WORD lock timeout in clock ticks (0000h = don't wait) 04h BYTE length of filename 05h N BYTEs filenameTop
INT 21 - Novell NetWare - LOCK FILE SET AX = F26Ah CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02478) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F204h,AX=F269h,AH=CBh"NetWare" Format of NetWare "Lock File Set" request packet: Offset Size Description (Table 02478) 00h WORD lock timeout in clock ticks (0000h = don't wait)Top
INT 21 - Novell NetWare - LOCK LOGICAL RECORD SET AX = F26Ch CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02479) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F20Ah,AX=F26Ah,AH=CBh"NetWare" Format of NetWare "Lock Logical Record Set" request packet: Offset Size Description (Table 02479) 00h BYTE lock flag 00h shareable lock 01h exclusive lock 01h WORD lock timeout in clock ticks (0000h = don't wait)Top
INT 21 - Novell NetWare - LOCK PHYSICAL RECORD SET AX = F26Eh CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02480) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F21Bh,AX=F26Ch,AH=C2h"NetWare" Format of NetWare "Lock Physical Record Set" request packet: Offset Size Description (Table 02480) 00h BYTE lock flag 00h exclusive lock 02h shareable lock 01h WORD lock timeout in clock ticks (0000h = don't wait)Top
INT 21 - Novell NetWare - OPEN SEMAPHORE AX = F26Fh subfn 00h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02481) ES:DI -> reply buffer (see #02482) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F26Fh/SF=01h,AX=F26Fh/SF=02h Format of NetWare "Open Semaphore" request packet: Offset Size Description (Table 02481) 00h BYTE 00h (subfunction "Open Semaphore") 01h BYTE initial semaphore value 02h BYTE length of semaphore's name 03h N BYTEs semaphore name SeeAlso: #02482 Format of NetWare "Open Semaphore" request packet: Offset Size Description (Table 02482) 00h DWORD semaphore handle 04h BYTE number of clients using semaphore (including caller) SeeAlso: #02481Top
INT 21 - Novell NetWare - CLOSE SEMAPHORE AX = F26Fh subfn 01h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02483) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F26Fh/SF=00h,AX=F26Fh/SF=03h,AX=F220h/SF=04h Format of NetWare "Close Semaphore" request packet: Offset Size Description (Table 02483) 00h BYTE 01h (subfunction "Close Semaphore") 01h DWORD semaphore handle SeeAlso: #02286Top
INT 21 - Novell NetWare - WAIT ON SEMAPHORE AX = F26Fh subfn 02h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02484) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F26Fh/SF=00h,AX=F26Fh/SF=04h Format of NetWare "Wait on Semaphore" request packet: Offset Size Description (Table 02484) 00h BYTE 02h (subfunction "Wait on Semaphore") 01h DWORD semaphore handle 05h WORD timeout in clock ticks (0000h = no wait)Top
INT 21 - Novell NetWare - SIGNAL SEMAPHORE AX = F26Fh subfn 03h CX = length of request packet in bytes DX = 0000h (no reply packet) DS:SI -> request packet (see #02485) ES:DI ignored Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F26Fh/SF=02h,AX=F26Fh/SF=04h Format of NetWare "Signal Semaphore" request packet: Offset Size Description (Table 02485) 00h BYTE 03h (subfunction "Signal Semaphore") 01h DWORD semaphore handleTop
INT 21 - Novell NetWare - EXAMINE SEMAPHORE AX = F26Fh subfn 04h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02486) ES:DI -> reply buffer (see #02487) Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) SeeAlso: AH=F2h"Novell",AX=F26Fh/SF=02h,AX=F26Fh/SF=03h Format of NetWare "Examine Semaphore" request packet: Offset Size Description (Table 02486) 00h BYTE 04h (subfunction "Examine Semaphore") 01h DWORD semaphore handle SeeAlso: #02487 Format of NetWare "Examine Semaphore" reply packet: Offset Size Description (Table 02487) 00h BYTE semaphore's current value 01h BYTE number of clients using semaphore SeeAlso: #02486Top
INT 21 - Novell NetWare v4+ - GET FILE SERVER UTC TIME AX = F272h CX = length of request buffer in bytes (0003h) DX = length of reply buffer in bytes (0064h) DS:SI -> request buffer (see #02488) ES:DI -> reply buffer (see #02489) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Format of NetWare "Get File Server UTC Time" request buffer: Offset Size Description (Table 02488) 00h BYTE ??? (00h) 01h BYTE ??? (01h) 02h BYTE ??? (01h) SeeAlso: #02489 Format of NetWare "Get File Server UTC Time" reply buffer: Offset Size Description (Table 02489) 00h DWORD seconds 04h DWORD ??? 04h DWORD ??? (00000204h) 04h DWORD ??? (00000000h) 04h DWORD ??? (00000000h) 04h DWORD ??? (FFFFFFFFh) 04h DWORD ??? (00000000h) SeeAlso: #02488Top
INT 21 - Novell NetWare v4+ - GET CACHE INFORMATION AX = F27Bh subfn 01h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02490) ES:DI -> reply buffer (see #02491) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F27Bh/SF=02h Format of NetWare "Get Cache Information" request buffer: Offset Size Description (Table 02490) 00h WORD 0001h (length of following data) 02h BYTE 01h (subfunction "Get Cache Information") SeeAlso: #02491 Format of NetWare "Get Cache Information" reply buffer: Offset Size Description (Table 02491) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h DWORD "readExistingBlockCount" 0Ch DWORD "readExistingWriteWaitCount" 10h DWORD "readExistingPartialReadCount" 14h DWORD "readExistingReadErrorCount" 18h DWORD "writeBlockCount" 1Ch DWORD "writeEntireBlockCount" 20h DWORD "getDiskCount" 24h DWORD "getDiskNeedToAllocCount" 28h DWORD "getDiskSomeoneBeatMeCount" 2Ch DWORD "getDiskPartialReadCount" 30h DWORD "getDiskReadErrorCount" 34h DWORD "getAsyncDiskCount" 38h DWORD "getAsyncDiskNeedToAlloc" 3Ch DWORD "getAsyncDiskSomeoneBeatMe" 40h DWORD "errorDoingAsyncReadCount" 44h DWORD "getDiskNoReadCount" 48h DWORD "getDiskNoReadAllocCount" 4Ch DWORD "getDiskNoReadSomeoneBeatMeCount" 50h DWORD "diskWriteCount" 54h DWORD "diskWriteAllocCount" 58h DWORD "diskWriteSomeoneBeatMeCount" 5Ch DWORD "writeErrorCount" 60h DWORD "waitOnSemaphoreCount" 64h DWORD "allocBlockWaitForSomeoneCount" 68h DWORD "allocBlockCount" 6Ch DWORD "allocBlockWaitCount" 70h DWORD original number of cache buffers 74h DWORD current number of cache buffers 78h DWORD cache dirty-block threshold 7Ch DWORD "waitNodeCount" 80h DWORD "waitNodeAllocFailureCount" 84h DWORD "moveCacheNodeCount" 88h DWORD "moveCacheNodeFromAvailCount" 8Ch DWORD "accelerateCacheNodeWriteCount" 90h DWORD "removeCacheNodeCount" 94h DWORD "removeCacheNodeFromAvailCount" 98h DWORD number of cache checks 9Ch DWORD number of cache hits A0h DWORD number of dirty-cache checks A4h DWORD number of dirty-cache hits A8h DWORD "cacheUsedWhileChecking" ACh DWORD "waitForDirtyBlocksDecreaseCount" B0h DWORD "allocBlockFromAvailCount" B4h DWORD "allocBlockFromLRUCount" B8h DWORD "allocBlockAlreadyWaiting" BCh DWORD "LRUSittingTime" C0h DWORD maximum byte count C4h DWORD minimum number of cache buffers C8h DWORD minimum cache report threshold D0h DWORD "allocWaitingCount" D4h DWORD number of dirty cache blocks D8h DWORD "cacheDirtyWaitTime" DCh DWORD "maxDirtyTime" E0h DWORD number of directory cache buffers E4h DWORD "cacheByteToBlockShiftFactor" SeeAlso: #02490Top
INT 21 - Novell NetWare v4+ - GET SERVER INFORMATION AX = F27Bh subfn 02h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02492) ES:DI -> reply buffer (see #02493) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F27Bh/SF=01h Format of NetWare "Get Server Information" request buffer: Offset Size Description (Table 02492) 00h WORD 0001h (length of following data) 02h BYTE 02h (subfunction "Get Server Information") SeeAlso: #02493 Format of NetWare "Get Server Information" reply buffer: Offset Size Description (Table 02493) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h DWORD current NCP stations in use 0Ch DWORD peak NCP stations in use 10h DWORD total NCP requests 14h DWORD server utilization 18h DWORD number of cancelled replies 1Ch DWORD "writeHeldOffCount" 20h DWORD "writeHeldOffWithDuplicateRequest" 24h DWORD number of invalid request types 28h DWORD "beingAbortedCount" 2Ch DWORD "alreadyDoingReallocCount" 30h DWORD "deAllocInvalidSlotCount" 34h DWORD "deAllocBeingProcessedCount" 38h DWORD "deAllocForgedPacketCount" 3Ch DWORD "startStationErrorCount" 40h DWORD number of invalid slot numbers 44h DWORD "beingProcessedCount" 48h DWORD number of forged packets 4Ch DWORD number still transmitting 50h DWORD "reExecuteRequestCount" 54h DWORD number of invalid sequence numbers 58h DWORD "duplicateIsBeingSentAlreadyCnt" 5Ch DWORD number of positive acknowledgements sent 60h DWORD number of duplicate replies sent 64h DWORD number of times out of memory for station control 68h DWORD number of times out of available connections 6Ch DWORD "reallocSlotCount" 70h DWORD "reallocSlotCameTooSoonCount" 74h WORD number of times maximum hop count exceeded 76h WORD number of unknown networks 78h WORD "NoSpaceForService" 7Ah WORD number of times out of receive buffers 7Ch WORD "notMyNetwork" 7Eh DWORD number of NetBIOS packets propagated 82h DWORD total number of packets serviced 86h DWORD total number of packets routed SeeAlso: #02492Top
INT 21 - Novell NetWare v4+ - GET USER INFORMATION AX = F27Bh subfn 04h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02494) ES:DI -> reply buffer (see #02495) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Format of NetWare "Get User Information" request buffer: Offset Size Description (Table 02494) 00h WORD 0005h (length of following data) 02h BYTE 04h (subfunction "Get User Information") 03h DWORD connection number SeeAlso: #02495 Format of NetWare "Get User Information" reply buffer: Offset Size Description (Table 02495) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h DWORD connection number 0Ch DWORD use count 10h BYTE connection service type 11h 7 BYTEs login time 18h DWORD status 1Ch DWORD expiration time 20h DWORD object type 24h BYTE transaction flag 25h BYTE logical lock threshold 26h BYTE record lock threshold 27h BYTE file write flags 28h BYTE file write state 29h BYTE (filler) 2Ah WORD file lock count 2Ch WORD record lock count 2Eh 6 BYTEs total number of bytes read 34h 6 BYTEs total number of bytes written 3Ah DWORD total requests 3Eh DWORD held requests 42h 6 BYTEs held bytes read 48h 6 BYTEs held bytes written 4Eh BYTE length of user name 4Fh N BYTEs user name SeeAlso: #02494Top
INT 21 - Novell NetWare v4+ - GET IPX/SPX Information AX = F27Bh subfn 06h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02496) ES:DI -> reply buffer (see #02497) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Format of NetWare "Get IPX/SPX Information" request buffer: Offset Size Description (Table 02496) 00h WORD 0001h (length of following data) 02h BYTE 06h (subfunction "Get IPX/SPX Information") SeeAlso: #02497 Format of NetWare "Get IPX/SPX Information" reply buffer: Offset Size Description (Table 02497) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h DWORD number of IPX packets sent 0Ch WORD number of malformed IPX packets 0Eh DWORD number of IPX Get-ECB requests 12h DWORD number of failed IPX Get-ECB requests 16h DWORD number of IPX AES events 1Ah WORD number of postponed IPX AES events 1Ch WORD maximum number of sockets (from configuration) 1Eh WORD maximum number of open sockets 20h WORD number of failed IPX socket opens 22h DWORD number of IPX "listen" ECBs 24h WORD number of failed IPX EBC cancels 26h WORD number of failed IPX Get-Local-Target requests 28h WORD maximum number of SPX connections (from configuration) 2Ah WORD maximum number of SPX connections used 2Ch WORD number of SPX Establish-Connection requests 2Eh WORD number of failed SPX Establish-Connection requests 30h WORD total number of SPX "listen-connect" requests 32h WORD number of failed SPX "listen-connect" requests 34h DWORD number of SPX sends 38h DWORD number of SPX "window-choke"s 3Ch WORD number of bad SPX sends 3Eh WORD number of failed SPX sends 40h WORD number of aborted SPX connections 42h DWORD number of SPX packet listens 46h WORD number of bad SPX packet listens 48h DWORD number of incoming SPX packets 4Ch WORD number of bad incoming SPX packets 4Eh WORD number of supressed SPX packets 50h WORD "SPXNoSesListenECBCount" 52h WORD "SPXWatchDogDestSesCount" SeeAlso: #02496Top
INT 21 - Novell NetWare v4+ - GET CPU INFORMATION AX = F27Bh subfn 08h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02498) ES:DI -> reply buffer (see #02499) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Format of NetWare "Get CPU Information" request buffer: Offset Size Description (Table 02498) 00h WORD 0005h (length of following data) 02h BYTE 08h (subfunction "Get CPU Information") 03h DWORD CPU number SeeAlso: #02499 Format of NetWare "Get CPU Information" reply buffer: Offset Size Description (Table 02499) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h DWORD number of CPUs 0Ch DWORD page table owner flag 10h DWORD CPU type flag 14h DWORD coprocessor flag 18h DWORD bus type flag 1Ch DWORD I/O engine flag 20h DWORD filesystem engine flag 24h DWORD non-dedicated flag 28h 201 BYTEs counted string: CPU string;number of coprocessors;bus string SeeAlso: #02498Top
INT 21 - Novell NetWare v4+ - GET VOLUME SWITCH INFORMATION AX = F27Bh subfn 09h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02500) ES:DI -> reply buffer (see #02501) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Format of NetWare "Get Volume Switch Information" request buffer: Offset Size Description (Table 02500) 00h WORD 0005h (length of following data) 02h BYTE 09h (subfunction "Get Volume Switch Information") 03h DWORD starting item number SeeAlso: #02501 Format of NetWare "Get Volume Switch Information" reply buffer: Offset Size Description (Table 02501) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h DWORD total LFS counters 0Ch DWORD current LFS counters 10h DWORD "readFile" 14h DWORD "writeFile" 18h DWORD "deleteFile" 1Ch DWORD "renMove" 20h DWORD "openFile" 24h DWORD "createFile" 28h DWORD "createAndOpenFile" 2Ch DWORD "closeFile" 30h DWORD "scanDeleteFile" 34h DWORD "salvageFile" 38h DWORD "purgeFile" 3Ch DWORD "migrateFile" 40h DWORD "deMigrateFile" 44h DWORD "createDir" 48h DWORD "deleteDir" 4Ch DWORD "directoryScans" 50h DWORD "mapPathToDirNum" 54h DWORD "modifyDirEntry" 58h DWORD "getAccessRights" 5Ch DWORD "getAccessRightsFromIDs" 60h DWORD "mapDirNumToPath" 64h DWORD "getEntryFromPathStrBase" 68h DWORD "getOtherNSEntry" 6Ch DWORD "getExtDirInfo" 70h DWORD "getParentDirNum" 74h DWORD "addTrusteeR" 78h DWORD "scanTrusteeR" 7Ch DWORD "delTrusteeR" 80h DWORD "purgeTrust" 84h DWORD "findNextTrustRef" 88h DWORD "scanUserRestNodes" 8Ch DWORD "addUserRest" 90h DWORD "deleteUserRest" 94h DWORD "rtnDirSpaceRest" 98h DWORD "getActualAvailDskSp" 9Ch DWORD "cntOwnedFilesAndDirs" A0h DWORD "migFileInfo" A4h DWORD "volMigInfo" A8h DWORD "readMigFileData" ACh DWORD "getVolusageStats" B0h DWORD "getActualVolUsageStats" B4h DWORD "getDirUsageStats" B8h DWORD "NMFileReadsCount" BCh DWORD "NMFileWritesCount" C0h DWORD "mapPathToDirNumOrPhantom" C4h DWORD "stationsHasAccessRgtsGntedBelow" C8h DWORD "gtDataSteamLensFromPathStrBase" CCh DWORD "checkAndGetDirectoryEntry" D0h DWORD "getDeletedEntry" D4h DWORD "getOriginalNameSpace" D8h DWORD "getActualFileSize" DCh DWORD "verifyNameSpaceNumber" E0h DWORD "verifyDataStreamNumber" E4h DWORD "checkVolumeNumber" E8h DWORD "commitFile" ECh DWORD "VMGetDirectoryEntry" F0h DWORD "createDMFileEntry" F4h DWORD "renameNameSpaceEntry" F8h DWORD "logFile" FCh DWORD "releaseFile" 100h DWORD "clearFile" 104h DWORD "setVolumeFlag" 108h DWORD "clearVolumeFlag" 10Ch DWORD "getOriginalInfo" 110h DWORD "createMigratedDir" 114h DWORD "F3OpenCreate" 118h DWORD "F3InitFileSearch" 11Ch DWORD "F3ContinueFileSearch" 120h DWORD "F3RenameFile" 124h DWORD "F3ScanForTrustees" 128h DWORD "F3ObtainFileInfo" 12Ch DWORD "F3ModifyInfo" 130h DWORD "F3EraseFile" 134h DWORD "F3SetDirHandle" 138h DWORD "F3AddTrustees" 13Ch DWORD "F3DeleteTrustees" 140h DWORD "F3AllocDirHandle" 144h DWORD "F3ScanSalvagedFiles" 148h DWORD "F3RecoverSalvagedFiles" 14Ch DWORD "F3PurgeSalvageableFile" 150h DWORD "F3GetNSSpecificInfo" 154h DWORD "F3ModifyNSSpecificInfo" 158h DWORD "F3SearchSet" 15Ch DWORD "F3GetDirBase" 160h DWORD "F3QueryNameSpaceInfo" 164h DWORD "F3GetNameSpaceList" 168h DWORD "F3GetHugeInfo" 16Ch DWORD "F3SetHugeInfo" 170h DWORD "F3GetFullPathString" 174h DWORD "F3GetEffectiveDirectoryRights" SeeAlso: #02500Top
INT 21 - Novell NetWare v4+ - GET LOADED NLMs AX = F27Bh subfn 0Ah CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02502) ES:DI -> reply buffer (see #02503) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Format of NetWare "Get NLMs Loaded" request buffer: Offset Size Description (Table 02502) 00h WORD 0005h (length of following data) 02h BYTE 0Ah (subfunction "Get NLMs Loaded") 03h DWORD first NLM number to report SeeAlso: #02503 Format of NetWare "Get NLMs Loaded" reply buffer: Offset Size Description (Table 02503) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h DWORD total number of NLMs 0Ch DWORD number of NLM numbers following (max 50) 10h 50 DWORDs NLM numbers SeeAlso: #02502Top
INT 21 - Novell NetWare v4+ - GET NLM INFORMATION AX = F27Bh subfn 0Bh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02504) ES:DI -> reply buffer (see #02505) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Format of NetWare "Get NLM Information" request buffer: Offset Size Description (Table 02504) 00h WORD 0005h (length of following data) 02h BYTE 0Bh (subfunction "Get NLM Information") 03h DWORD NLM number SeeAlso: #02505 Format of NetWare "Get NLM Information" reply buffer: Offset Size Description (Table 02505) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h DWORD identification number 0Ch DWORD flags 10h DWORD NLM type (see #02506) 14h DWORD parent identifier 18h DWORD major version 1Ch DWORD minor version 20h DWORD revision 24h DWORD year 28h DWORD month 2Ch DWORD day 30h DWORD bytes available for allocation 34h DWORD "allocFreeCount" 38h DWORD last garbage collection 3Ch DWORD message language 40h DWORD number of referenced public identifiers 44h 200 BYTEs NLM strings: filename, NLM name, copyright SeeAlso: #02504 (Table 02506) Values for NetWare NLM type: 0001h LAN 0002h DSK 0003h NAM 0004h utility NLM 0005h MSL 0006h operating system NLM 0007h paged NLM 0008h HAM 0009h CDM 000Ah file system NLM 000Bh real mode NLM 000Ch hidden NLM SeeAlso: #02505Top
INT 21 - Novell NetWare v4+ - GET OS VERSION INFORMATION AX = F27Bh subfn 0Dh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02507) ES:DI -> reply buffer (see #02508) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Format of NetWare "Get OS Version Information" request buffer: Offset Size Description (Table 02507) 00h WORD 0001h (length of following data) 02h BYTE 0Dh (subfunction "Get OS Version Information") SeeAlso: #02508 Format of NetWare "Get OS Version Information" reply buffer: Offset Size Description (Table 02508) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h BYTE operating system major version 09h BYTE operating system minor version 0Ah BYTE operating system revision number 0Bh BYTE accounting version 0Ch BYTE VAP version 0Dh BYTE queueing version 0Eh BYTE security restrictions level 0Fh BYTE bridging support 10h DWORD maximum number of volumes 14h DWORD number of connection slots 18h DWORD maximum number of logged-in connections 1Ch DWORD maximum number of name spaces 20h DWORD maximum number of LANs 24h DWORD maximum number of media types 28h DWORD maximum number of protocols 2Ch DWORD maximum subdirectory tree depth 30h DWORD maximum number of data streams 34h DWORD maximum number of spooled printers 38h DWORD serial number 3Ch WORD application number SeeAlso: #02507Top
INT 21 - Novell NetWare v4+ - GET ACTIVE LAN BOARD LIST AX = F27Bh subfn 14h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02509) ES:DI -> reply buffer (see #02510) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Format of NetWare "Get Active LAN Board List" request buffer: Offset Size Description (Table 02509) 00h WORD 0005h (length of following data) 02h BYTE 14h (subfunction "Get Active LAN Board List") 03h DWORD start number SeeAlso: #02510 Format of NetWare "Get Active LAN Board List" reply buffer: Offset Size Description (Table 02510) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h DWORD maximum number of LANs 0Ch DWORD number of LAN board numbers returned 10h 50 DWORDs board numbers SeeAlso: #02509Top
INT 21 - Novell NetWare v4+ - GET LAN CONFIGURATION AX = F27Bh subfn 15h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02511) ES:DI -> reply buffer (see #02512) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F27Bh/SF=16h Format of NetWare "Get LAN Configuration" request buffer: Offset Size Description (Table 02511) 00h WORD 0005h (length of following data) 02h BYTE 15h (subfunction "Get LAN Configuration") 03h DWORD LAN board number SeeAlso: #02512 Format of NetWare "Get LAN Configuration" reply buffer: Offset Size Description (Table 02512) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h BYTE driver configuration major version 09h BYTE driver configuration minor version 0Ah 6 BYTEs driver node address 10h WORD driver mode flags 12h WORD driver board number 14h WORD driver board instance 16h DWORD driver maximum size 1Ah DWORD driver maximum receive size 1Eh DWORD driver receive size 22h 3 DWORDs reserved 2Eh WORD driver card ID 30h WORD driver transport time 32h DWORD driver source routing 36h WORD driver line speed 38h WORD driver reserved 3Ah BYTE driver major version 3Bh BYTE driver minor version 3Ch WORD driver flags 3Eh WORD driver send retries 40h DWORD driver link 44h WORD driver sharing flags 46h WORD driver slot 48h 4 WORDs driver I/O port and lengths 50h DWORD driver memory decode 0 54h WORD driver length 0 56h DWORD driver memory decode 1 5Ah WORD driver length 1 5Ch 2 BYTEs driver's interrupts 5Eh 2 BYTEs driver's DMA usage 60h 18 BYTEs driver's logical name 72h 14 BYTEs driver I/O reserved 80h 128 BYTEs driver card name 100h 40 BYTEs driver media type 128h 180 BYTEs driver custom variables SeeAlso: #02511Top
INT 21 - Novell NetWare v4+ - GET LAN COMMON COUNTERS AX = F27Bh subfn 16h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02513) ES:DI -> reply buffer (see #02514) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F27Bh/SF=15h Format of NetWare "Get LAN Common Counters" request buffer: Offset Size Description (Table 02513) 00h WORD 0009h (length of following data) 02h BYTE 16h (subfunction "Get LAN Common Counters") 03h DWORD LAN board number 07h DWORD starting block number (set to 00000000h for first call) SeeAlso: #02514 Format of NetWare "Get LAN Common Counters" reply buffer: Offset Size Description (Table 02514) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h BYTE statistics major version 09h BYTE statistics minor version 0Ah DWORD number of generic counters 0Eh DWORD number of counter blocks 12h DWORD number of custom variables 16h DWORD next counter block number 1Ah DWORD "notSupportedMask" 1Eh DWORD total number of packets tranmitted 22h DWORD total number of packets received 26h DWORD number of times no ECBs were available 2Ah DWORD number of transmitted packets which were too large 2Eh DWORD number of transmitted packets which were too small 32h DWORD number of packet receive overflows 36h DWORD number of received packets which were too large 3Ah DWORD number of received packets which were too small 3Eh DWORD number of miscellaneous transmitted-packet errors 42h DWORD number of miscellaneous received-packet errors 46h DWORD number of times transmission retried 4Ah DWORD number of checksum errors 4Eh DWORD number of hardware receive mismatches 52h 50 BYTEs reserved SeeAlso: #02513Top
INT 21 - Novell NetWare v4+ - GET PROTOCOL STACK BY BOARD AX = F27Bh subfn 29h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02515) ES:DI -> reply buffer (see #02516) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Format of NetWare "Get Protocol Stack by Board" request buffer: Offset Size Description (Table 02515) 00h WORD 0005h (length of following data) 02h BYTE 29h (subfunction "Get Protocol Stack by Board") 03h DWORD LAN board number SeeAlso: #02516 Format of NetWare "Get Protocol Stack by Board" reply buffer: Offset Size Description (Table 02516) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h WORD number of stacks listed (max 50) 0Ah 50 DWORDs protocol identifiers SeeAlso: #02515Top
INT 21 - Novell NetWare v4+ - GET ROUTER INFO AX = F27Bh subfn 33h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02517) ES:DI -> reply buffer (see #02518) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F27Bh/SF=35h Format of NetWare "Get Router Info" request buffer: Offset Size Description (Table 02517) 00h WORD 0005h (length of following data) 02h BYTE 33h (function "Get Router Info") 03h DWORD network number SeeAlso: #02518 Format of NetWare "Get Router Info" reply buffer: Offset Size Description (Table 02518) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h DWORD network number 0Ch WORD hops to net 0Eh WORD network status 10h WORD time to net SeeAlso: #02517,#02519Top
INT 21 - Novell NetWare v4+ - GET KNOWN NETWORKS INFO AX = F27Bh subfn 35h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02519) ES:DI -> reply buffer (see #02520) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F27Bh/SF=33h,AX=F27Bh/SF=38h Format of NetWare "Get Router Info" request buffer: Offset Size Description (Table 02519) 00h WORD 0005h (length of following data) 02h BYTE 35h (function "Get Known Networks Info") 03h DWORD start number (00000000h) SeeAlso: #02520 Format of NetWare "Get Router Info" reply buffer: Offset Size Description (Table 02520) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h DWORD number of records following (max 20) 0Ch var array of network info records Offset Size Description 00h WORD network number 04h WORD hops to net 06h WORD network status 08h WORD time to net SeeAlso: #02517,#02519Top
INT 21 - Novell NetWare v4+ - GET KNOWN SERVERS INFO AX = F27Bh subfn 38h CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02521) ES:DI -> reply buffer (see #02522) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled SeeAlso: AX=F27Bh/SF=35h Format of NetWare "Get Known Servers" request buffer: Offset Size Description (Table 02521) 00h WORD 0009h (length of following data) 02h BYTE 38h (function "Get Known Servers") 03h DWORD start number 07h DWORD server type SeeAlso: #02522 Format of NetWare "Get Known Servers" reply buffer: Offset Size Description (Table 02522) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h DWORD number of records following (max 20) 0Ch var server record(s) Offset Size Description 00h DWORD network number 04h 6 BYTEs node number 0Ah WORD socket number 0Ch WORD hops to server 0Eh 48 BYTEs object name SeeAlso: #02521Top
INT 21 - Novell NetWare v4+ - GET SERVER SET COMMANDS INFO AX = F27Bh subfn 3Ch CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02523) ES:DI -> reply buffer (see #02524) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Format of NetWare "Get Server Set Commands Info" request packet: Offset Size Description (Table 02523) 00h WORD 0005h (length of following data) 02h BYTE 3Ch (subfunction "Get Server Set Commands Info") 03h DWORD start sequence number SeeAlso: #02524 Format of NetWare "Get Server Set Commands Info" packet: Offset Size Description (Table 02524) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h DWORD number of set commands 0Ch DWORD next sequence number 10h DWORD set command type 14h DWORD set command category 18h DWORD set command flags 1Ch BYTE length of set command name 1Dh N BYTEs set command name BYTE number of set command values N BYTEs set command values SeeAlso: #02523Top
INT 21 - Novell NetWare v4+ - GET SERVER SET CATEGORIES AX = F27Bh subfn 3Dh CX = length of request buffer in bytes DX = length of reply buffer in bytes DS:SI -> request buffer (see #02525) ES:DI -> reply buffer (see #02526) Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) reply buffer filled Format of NetWare "Get Server Set Categories" request packet: Offset Size Description (Table 02525) 00h WORD 0005h (length of following data) 02h BYTE 3Dh (subfunction "Get Server Set Categories") 03h DWORD start sequence number SeeAlso: #02526 Format of NetWare "Get Server Set Categories" reply packet: Offset Size Description (Table 02526) 00h DWORD current server time 04h BYTE vconsole version 05h BYTE vconsole revision 06h WORD reserved 08h DWORD number of set categories 0Ch DWORD next sequence number 10h BYTE length of category name 11h N BYTEs category name SeeAlso: #02525Top
INT 21 - VIRUS - "PcVrsDs" - INSTALLATION CHECK AX = F2AAh Return: AH = AAh if resident SeeAlso: AH=F1h"VIRUS",AH=F3h"VIRUS"Top
INT 21 - Novell NetWare - FILE SERVICES - FILE SERVER FILE COPY AH = F3h ES:DI -> request buffer (see #02527) Return: AL = status/error code CX:DX = number of bytes copied Notes: this function is supported by Advanced NetWare 2.0+ both source and destination must be on the same file server SeeAlso: AH=3Ch,AH=3Fh"DOS" Format of NetWare "File Server File Copy" request buffer: Offset Size Description (Table 02527) 00h WORD source file handle (as returned by AH=3Ch or AH=3Dh) 02h WORD destination file handle 04h DWORD starting offset in source 08h DWORD starting offset in destination 0Ch DWORD number of bytes to copyTop
INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB AH = F3h AL = character Return: AL = 00h successful 01h buffer full (128 characters) SeeAlso: AH=E3h"DoubleDOS",AH=F1h"DoubleDOS",AH=F2h"DoubleDOS" SeeAlso: AH=F8h"DoubleDOS"Top
INT 21 - VIRUS - "Carfield" - INSTALLATION CHECK AH = F3h Return: AX = 0400h if resident SeeAlso: AH=D5h"Carfield",AX=F2AAh,AH=F7h"VIRUS"Top
INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS AX = F400h Return: AL = program status 00h if DoubleDOS not present 01h if running in visible DoubleDOS partition 02h if running in the invisible DoubleDOS partition SeeAlso: AX=E400h,AH=F5h"DoubleDOS"Top
INT 21 - DoubleDOS - OTHER PROGRAM STATUS AH = F5h Return: AL = program status 00h no program in other partition 01h program in other partition is running 02h program in other partition is suspended SeeAlso: AH=E5h"DoubleDOS",AX=F400h"DoubleDOS"Top
INT 21 - VIRUS - "GP1" - INSTALLATION CHECK AH = F7h Return: AX = 0300h if resident SeeAlso: AH=F0h"VIRUS",AH=F9h"VIRUS"Top
INT 21 - DOS v2.11-2.13 - SET OEM INT 21 HANDLER AH = F8h DS:DX -> OEM INT 21 handler for functions F9h to FFh FFFFh:FFFFh disables OEM handler Notes: this function is known to be supported by Toshiba T1000 ROM MS-DOS v2.11, Sanyo MS-DOS v2.11, and TI Professional Computer DOS v2.13 at least potentially this is still available with (OEM versions??? of) MS-DOS 6.0. calls to AH=F9h through AH=FFH will return AL=00h if no handler set the user handler is called immediately on entry to the main DOS INT 21h function dispatcher with interrupts disabled and all registers and stack exactly as set by caller; it should exit with IRET SeeAlso: AH=F9h"OEM"Top
INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS AH = F8h AL = program for which to set flags 00h this program 01h other program DX = keyboard control flags (see #02088 at AH=E8h"DoubleDOS") Return: DX = previous flags Notes: disabling Ctrl-PrtSc will allow the program to intercept the keystroke; disabling any of the other keystrokes disables them completely this function is identical to AH=E8h SeeAlso: AH=E8h"DoubleDOS",AH=F1h"DoubleDOS",AH=F2h"DoubleDOS" SeeAlso: AH=F3h"DoubleDOS"Top
INT 21 - DOS v2.11-2.13 - OEM FUNCTION AH = F9h Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM") SeeAlso: AH=F8h"OEM",AH=FAh"OEM"Top
INT 21 - DoubleDOS - SET TIMESHARING PRIORITY AH = F9h AL = priority 00h visible program gets 70%, invisible gets 30% (default) 01h visible program gets 50%, invisible gets 50% 02h visible program gets 30%, invisible gets 70% 03h Top program gets 70%, bottom program gets 30% 04h Top program gets 30%, bottom program gets 70% 05h get current priority Return: AL = priority setting Note: identical to AH=E9h SeeAlso: AH=E9h"DoubleDOS",AH=FAh"DoubleDOS",AH=FBh"DoubleDOS"Top
INT 21 - VIRUS - "Satans-Bug" - INSTALLATION CHECK AH = F9h Return: AX = AC0Ah if resident SeeAlso: AH=F7h"VIRUS",AH=FBh"VIRUS",AX=FEDCh"VIRUS"Top
INT 21 - DOS v2.11-2.13 - OEM FUNCTION AH = FAh Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM") SeeAlso: AH=F8h"OEM",AH=F9h"OEM",AH=FBh"OEM"Top
INT 21 - DoubleDOS - TURN OFF TASK SWITCHING AH = FAh Return: task switching turned off SeeAlso: AH=EAh"DoubleDOS",AH=F9h"DoubleDOS",AH=FBh"DoubleDOS" SeeAlso: INT FA"DoubleDOS"Top
INT 21 - VIRUS - "Cinderella 2" - INSTALLATION CHECK AH = FAh Return: AH = F9h if resident SeeAlso: AH=F0h"VIRUS",AX=FBA0h"VIRUS"Top
INT 21 U - PC Tools v7+ VDEFEND, VSAFE, VWATCH - API AH = FAh DX = 5945h AL = function (00h-02h for VDEFEND, 00h-07h for VSAFE and VWATCH) Return: varies by function Note: this API is identical to the API on INT 13/AH=FAh and INT 16/AH=FAh, so it is listed in its entirety only under INT 16/AX=FA00h and following SeeAlso: INT 13/AX=FA00h,INT 16/AX=FA00hTop
INT 21 U - IBM PC-DOS - KEYBGK - SELECT KEYBOARD LAYOUT AX = FAFFh CL = keyboard layout 31h keyboard 319 32h keyboard 220 BX = code page (869 or 813 decimal) Return: AL = F1h if installed DX destroyedTop
INT 21 - DOS v2.11-2.13 - OEM FUNCTION AH = FBh Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM") SeeAlso: AH=F8h"OEM",AH=FAh"OEM",AH=FCh"OEM"Top
INT 21 - DoubleDOS - TURN ON TASK SWITCHING AH = FBh Return: task switching turned on SeeAlso: AH=EBh"DoubleDOS",AH=F9h"DoubleDOS",AH=FAh"DoubleDOS" SeeAlso: INT FB"DoubleDOS"Top
INT 21 - VIRUS - "Cinderella" - INSTALLATION CHECK AH = FBh Return: AH = 00h if resident SeeAlso: AH=F9h"VIRUS",AH=FAh"VIRUS",AX=FB0AhTop
INT 21 - VIRUS - "dBASE" - INSTALLATION CHECK AX = FB0Ah Return: AX = 0AFBh if resident SeeAlso: AH=FBh"VIRUS",AX=FBA0h"VIRUS",AH=FCh"VIRUS"Top
INT 21 - VIRUS - "Groove" - INSTALLATION CHECK AX = FBA0h Return: AX = 0ABFh if resident SeeAlso: AX=FB0Ah"VIRUS",AX=FBFBh"VIRUS"Top
INT 21 - VIRUS - "Dir.1367" - INSTALLATION CHECK AX = FBFBh Return: AX = BFBFh if resident SeeAlso: AX=FBA0h"VIRUS",AH=FCh"VIRUS"Top
INT 21 - DOS v2.11-2.13 - OEM FUNCTION AH = FCh Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM") SeeAlso: AH=F8h"OEM",AH=FBh"OEM",AH=FDh"OEM"Top
INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS AH = FCh Return: ES = segment of virtual screen Desc: Determine the address of the virtual screen to which the program should write instead of the actual video memory, so that the multitasked programs do not interfere with each other's output. Notes: screen address can change if task-switching is on! identical to AH=ECh SeeAlso: AH=ECh"DoubleDOS",INT FC"DoubleDOS"Top
INT 21 - VIRUS - "Troi" - INSTALLATION CHECK AH = FCh Return: AL = A5h if resident SeeAlso: AX=FBA0h"VIRUS",AX=FC03h"VIRUS",AH=FDh"VIRUS"Top
INT 21 - VIRUS - "Invisible" - INSTALLATION CHECK AX = FC03h Return: AX = 03FCh if resident SeeAlso: AH=FCh"VIRUS",AH=FDh"VIRUS"Top
INT 21 - DOS v2.11-2.13 - OEM FUNCTION AH = FDh Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM") SeeAlso: AH=F8h"OEM",AH=FCh"OEM",AH=FEh"OEM"Top
INT 21 - VIRUS - "Border" - INSTALLATION CHECK AH = FDh Return: AH = 13h if resident SeeAlso: AH=FCh"VIRUS",AX=FDACh"VIRUS",AH=FEh"VIRUS"Top
INT 21 - Gravis UltraSound - MegaEm/MEGA_EM - INSTALLATION CHECK AX = FD12h BX = 3457h Return: AX = 5678h if installed BX = 1235h if v1.x or v2.x installed CL = interrupt vector used by MegaEm (default 81h) BX = 1237h if v3.x installed CL = interrupt vector used by MegaEm (default 81h) DX = version number Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32 emulator for the Gravis UltraSound SeeAlso: INT 2F/AX=CD00h/BX=464Fh,INT 7E/AX=00FEh"SBOS",INT 81/AX=0200hTop
INT 21 - VIRUS - "Delwin" - INSTALLATION CHECK AX = FDACh Return: AX = 02E3h if resident SeeAlso: AH=FDh"VIRUS",AH=FEh"VIRUS"Top
INT 21 - DOS v2.11-2.13 - OEM FUNCTION AH = FEh Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM") SeeAlso: AH=F8h"OEM",AH=FDh"OEM",AH=FFh"OEM"Top
INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS AH = FEh AL = number of 55ms time slices to give away Return: returns after giving away time slices SeeAlso: AH=EEh"DoubleDOS",INT FE"DoubleDOS"Top
INT 21 - VIRUS - "483" - INSTALLATION CHECK AH = FEh Return: AH = 00h if resident SeeAlso: AX=FDACh"VIRUS",AX=FE01hTop
INT 21 - VIRUS - "Flip" - INSTALLATION CHECK AX = FE01h Return: AX = 01FEh if resident SeeAlso: AH=FEh"VIRUS",AX=FE02hTop
INT 21 - VIRUS - "2468"/"Tequila" - INSTALLATION CHECK AX = FE02h Return: AX = 01FDh if resident SeeAlso: AX=FE01h,AX=FE03h,AX=FEDCh"VIRUS"Top
INT 21 - VIRUS - "2468"/"Tequila" - DISPLAY VIRUS MESSAGE AX = FE03h SeeAlso: AX=FE02h,AX=FEADhTop
INT 21 - VIRUS - "Shifting Objective" - INSTALLATION CHECK AX = FEADh Return: AX = D00Dh if resident SeeAlso: AX=FE03h,AX=FEDCh"VIRUS"Top
INT 21 - PCMag PCMANAGE/DCOMPRES - INSTALLATION CHECK AX = FEDCh Return: AX = CDEFh if installed Program: the PCMANAGE/DCOMPRES combination from PC Magazine permits infrequently-used files to be compressed to save space and transparently expanded when accessed SeeAlso: AH=DCh,INT 2D/AL=10h"dLite"Top
INT 21 - VIRUS - "Black Monday" - INSTALLATION CHECK AX = FEDCh Return: AL = DCh if resident SeeAlso: AX=FE02h,AX=FEFEhTop
INT 21 - VIRUS - "CIDER" - INSTALLATION CHECK AX = FEFEh Return: SI = 1994h if resident SeeAlso: AX=FEDCh"VIRUS",AH=FFh"VIRUS"Top
INT 21 - DOS v2.11-2.13 - OEM FUNCTION AH = FFh Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM") SeeAlso: AH=F8h"OEM",AH=FEh"OEM"Top
INT 21 - CED (Command EDitor) - INSTALLABLE COMMANDS AH = FFh AL = subfunction 00h add installable command BL = mode bit 0 = 1 callable from DOS prompt bit 1 = 1 callable from application DS:SI -> CR-terminated command name ES:DI -> FAR routine entry point 01h remove installable command DS:SI -> CR-terminated command name 02h reserved, may be used to test for CED installation Return: CF clear if successful CF set on error AX = error code 01h invalid function 02h command not found (subfunction 01h only) 08h insufficient memory (subfunction 00h only) 0Eh bad data (subfunction 00h only) AH = FFh if CED not installed Program: CED is a shareware DOS command-line enhancer by Christopher J. Dunford SeeAlso: AX=0A00hTop
INT 21 - DJ GO32.EXE 80386+ DOS extender - DOS EXTENSIONS AH = FFh AL = function 01h create file 02h open file 03h get file statistics 04h get time of day 05h set time of day 06h stat 07h system Program: GO32.EXE is a DOS extender included as part of the 80386 port of the GNU C/C++ compiler by DJ Delorie and distributed as DJGPP SeeAlso: INT 10/AH=FFh"GO32"Top
INT 21 - DOSED.COM - INSTALLATION CHECK AH = FFh DS:SI -> "DOSED" ES = 0000h Return: ES:DI -> "DOSED" if installed Program: DOSED is a free DOS commandline editor/history buffer by Sverre H. HusebyTop
INT 21 - VIRUS - "Sunday", "Tumen 0.5", "Hero" - INSTALLATION CHECK AH = FFh Return: AH = 00h if "Tumen 0.5" or "Hero" resident AX = 0400h if "Sunday" resident SeeAlso: AX=FEDCh"VIRUS",AX=FF01h"VIRUS"Top
INT 21 UP - Rational Systems DOS/4GW - API AH = FFh DH = function (00h-17h) (also see separate entries below) DL = subfunction or argument Return: CF clear if valid function number AX = status??? CF set if invalid function SeeAlso: INT 15/AX=BFDChTop
INT 21 UP - Rational Systems DOS/4GW - GET VERSION??? AH = FFh DH = 00h DL = ??? (78h seen) Return: CF clear EAX = 4734FFFFh (high word is byte-swapped "4G") if DOS/4G installed Note: Quarterdeck's DESQview/X X Toolkit library uses this call to determine whether the direct-mapped linear 4GB segment's selector is 34h or 38h SeeAlso: INT 21/AH=FFh/DH=00h"DOS/4GW"Top
INT 21 UP - Rational Systems DOS/4GW - SET ??? AH = FFh DH = 02h DL = ??? Return: CF clearTop
INT 21 UP - Rational Systems DOS/4GW - ??? AH = FFh DH = 05h BX = ??? Return: ???Top
INT 21 UP - Rational Systems DOS/4GW - ??? AH = FFh DH = 06h BX = ??? Return: ???Top
INT 21 UP - Rational Systems DOS/4GW - ??? AH = FFh DH = 07h BX = ??? Return: ???Top
INT 21 UP - Rational Systems DOS/4GW - ??? AH = FFh DH = 08h BX = ??? CX = ??? ES = ??? Return: ???Top
INT 21 UP - Rational Systems DOS/4GW - GET ??? AH = FFh DH = 09h Return: ES:BX -> ???Top
INT 21 UP - Rational Systems DOS/4GW - ??? AH = FFh DH = 0Ah AL = ??? BX = ??? CX = ??? Return: ES = ??? or 0000hTop
INT 21 UP - Rational Systems DOS/4GW - ??? AH = FFh DH = 0Bh AL = ??? BX = ??? CX = ??? Return: ???Top
INT 21 UP - Rational Systems DOS/4GW - GET/SET ??? AH = FFh DH = 0Ch DL = ??? (00h or 01h) Return: CF clear if successful AL = previous value of ??? CF set on error (DL out of range) AX = FFFFhTop
INT 21 UP - Rational Systems DOS/4GW - ??? AH = FFh DH = 0Dh ??? Return: ???Top
INT 21 UP - Rational Systems DOS/4GW - ??? AH = FFh DH = 0Eh Return: DX:AX -> XBRK structure (see #00508 at INT 15/AX=BF02h) BX = ??? CX = ??? SeeAlso: INT 15/AX=BF02hTop
INT 21 UP - Rational Systems DOS/4GW - ??? AH = FFh DH = 0Fh ??? Return: ???Top
INT 21 UP - Rational Systems DOS/4GW - ??? AH = FFh DH = 10h AL = ??? BX = ??? CX = ??? DI = ??? SI = ??? Return: ??? Note: among other things, frees two memory blocks via INT 21/AH=49hTop
INT 21 UP - Rational Systems DOS/4GW - NOP AH = FFh DH = 11hTop
INT 21 UP - Rational Systems DOS/4GW - EXCHANGE ??? POINTERS AH = FFh DH = 12h DS:SI -> new ??? ES:DI -> new ??? Return: DS:SI -> previous ??? ES:DI -> previous ???Top
INT 21 UP - Rational Systems DOS/4GW - ??? AH = FFh DH = 13h AL = ??? ES = ??? Return: ???Top
INT 21 UP - Rational Systems DOS/4GW - ??? AH = FFh DH = 14h BX = ??? CX = ??? Return: CF clear AX = ??? DX = ???Top
INT 21 UP - Rational Systems DOS/4GW - GET ??? FUNCTIONS AH = FFh DH = 15h Return: CF clear DX:AX -> FAR function for ??? CX:BX -> FAR function for ??? SI:DI -> FAR function for ???Top
INT 21 UP - Rational Systems DOS/4GW - GET ??? AH = FFh DH = 16h Return: AX = ???Top
INT 21 UP - Rational Systems DOS/4GW - ??? AH = FFh DH = 17h AL = ??? DL = ??? Return: ???Top
INT 21 - TopWare Network OS v5.10+ - GET SYSTEM INFORMATION AX = FF00h CL = what to get 00h user information (see #02528) 01h drive mapping (see #02529) 02h printer server(s) 05h local DOS drive number Return: ES:BX -> desired information Program: TopWare Network Operating System is manufactured by Grand Computer Company Note: this call is only supported on Workstations, not on the server SeeAlso: AX=FF04h,INT 2F/AX=FF00h Format of TopWare user information: Offset Size Description (Table 02528) 00h BYTE node ID 01h 15 BYTEs user name 10h WORD user number 12h BYTE group number Format of TopWare drive mapping [array]: Offset Size Description (Table 02529) 00h BYTE bits 6-0: drive number (1=A:, etc.) bit 7: this is a server drive 01h 3 BYTEs mapping drive (for example, "C:\") 04h 64 BYTEs current directoryTop
INT 21 - Rational Systems DOS/4G - INSTALLATION CHECK AX = FF00h DX = 0078h Return: AL <> 00h if installed GS = segment of kernel if nonzero SeeAlso: INT 15/AX=BF02hTop
INT 21 - VIRUS - "Drop" - INSTALLATION CHECK AX = FF01h Return: AX = 01FFh if resident SeeAlso: AH=FEh"VIRUS",AX=FF0Fh"FLU_SHOT"Top
INT 21 - TopWare Network OS v5.10+ - GET/SET DEFAULT FILE PROTECTION ATTRIBS AX = FF04h CL = function 00h get protections Return: BH = read attribute BL = write attribute 01h set protections BH = read attribute BL = write attribute Note: this function is supported only on Workstations, not on the server SeeAlso: AX=FF00h"TopWare"Top
INT 21 - FLU_SHOT+ v1.83 - INSTALLATION CHECK AX = FF0Fh Return: AX = 0101h if resident Program: FLU_SHOT+ is an antivirus/antitrojan program by Ross M. Greenberg and Software Concepts Design Note: the "PSQR/1720" virus calls this function to determine whether FLU_SHOT+ is present SeeAlso: AH=FFh"VIRUS",AX=FF10h"VIRUS"Top
INT 21 - VIRUS - "Twins" - INSTALLATION CHECK AX = FF10h Return: AL = 07h if resident SeeAlso: AX=FF0Fh,AX=FFFEhTop
INT 21 - TopWare Network OS v5.10+ - SEND MESSAGE AX = FF80h DH = FFh DL = destination address (FFh for broadcast) CX = message length (max 2000) DS:SI -> message to be sent (see #02530) Return: nothing Program: TopWare Network Operating System is manufactured by Grand Computer Company Notes: this function is supported on both Workstations and the server there is no guarantee that the message will be received correctly, or at all, by the destination Format of TopWare message: Offset Size Description (Table 02530) 00h BYTE type code 07h TopSend 11h user application other reserved for TopWare 01h var data Note: sending messages with a type code other than 11h will cause unpredictable resultsTop
INT 21 - TopWare Network OS v5.10+ - GET STATION ADDRESS AX = FF82h Return: AL = station address Note: this function is supported on both Workstations and the server SeeAlso: AX=FF91hTop
INT 21 - TopWare Network OS v5.10+ - GET STATUS OF TopShow/Emulated FUNCTION AX = FF8Ch BL = subfunction 00h get TopShow status FFh get Emulated status Return: AL = status 00h not installed 01h already installedTop
INT 21 - TopWare Network OS v5.10+ - CALL TopShow FUNCTION AX = FF8Dh CH = monochrome flag (01h monochrome, 00h not monochrome) CL = screen mode of station to be viewed (see #02531) BL = graphic page number for monochrome Return: AL = status (00h successful, else failed) SeeAlso: AX=FF8Eh,AX=FFCFh (Table 02531) Values for TopWare screen mode: 00h text mode 01h 720x348 02h 640x408 03h 720x352 04h 640x390 05h reservedTop
INT 21 - TopWare Network OS v5.10+ - CANCEL TopShow FUNCTION AX = FF8Eh Return: AL = 00h (successful, TopShow removed) SeeAlso: AX=FF8DhTop
INT 21 - TopWare Network OS v5.10+ - GET FILE SERVER STATION NUMBER AX = FF91h Return: AL = station number of file server SeeAlso: AX=FF82hTop
INT 21 - TopWare Network OS v5.10+ - GET MAXIMUM STATION NUMBER (server only) AX = FF97h Return: AL = maximum station number SeeAlso: AX=FF98hTop
INT 21 - TopWare Network OS v5.10+ - GET MAXIMUM FILE NUMBER (server only) AX = FF98h Return: AL = maximum file SeeAlso: AX=FF97hTop
INT 21 - TopWare Network OS v5.10+ - RECEIVE OF USER-DEFINED PACKETS AX = FF9Ah ES:BX -> buffer for user-defined packet (see #02532) Return: nothing Format of TopWare user-defined packet: Offset Size Description (Table 02532) 00h BYTE FFh 01h WORD (call) length of data field plus 3 (ret) length of received message (0000h if none received) 03h BYTE destination ID (FFh for broadcast message) 04h BYTE sending station ID 05h BYTE type code (11h; all other codes reserved for TopWare) 06h N BYTEs received messageTop
INT 21 - TopWare Network OS v5.10+ - ENABLE/DISABLE TopTerm SERVICE AX = FF9Fh CL = new state (00h disable [disregard TopTerm packets], 01h enable) Return: AL = status (00h successful, FFh failed) Note: this function is only supported by Workstations, not the serverTop
INT 21 - TopWare Network OS v5.10+ - GET SPOOLER PRINTING PRIORITY AX = FFB0h Return: AL = priority status (see #02533) SeeAlso: AX=FFB1h Bitfields for TopWare printer priority status: Bit(s) Description (Table 02533) 2 LPT3 has high priority 1 LPT2 has high priority 0 LPT1 has high priorityTop
INT 21 - TopWare Network OS v5.10+ - SET SPOOLER PRINTING PRIORITY AX = FFB1h CH = printer number (00h LPT1, 01h LPT2, 02h LPT3) CH = new priority (00h normal, 01h high) Return: nothing SeeAlso: AX=FFB0hTop
INT 21 - TopWare Network OS v5.10+ - GET DEFAULT START-OF-JOB FORMFEED STATUS AX = FFB3h Return: AL = starting formfeed status (see #02534) SeeAlso: AX=FFB4h,AX=FFC0h Bitfields for TopWare printer start-of-job formfeed status: Bit(s) Description (Table 02534) 2 LPT3 has formfeed enabled 1 LPT2 has formfeed enabled 0 LPT1 has formfeed enabledTop
INT 21 - TopWare Network OS v5.10+ - SET DEFAULT START-OF-JOB FORMFEED STATUS AX = FFB4h CH = printer number (00h LPT1, 01h LPT2, 02h LPT3) CH = new formfeed status (00h off, 01h on) Return: nothing SeeAlso: AX=FFB3h,AX=FFC1hTop
INT 21 - TopWare Network OS v5.10+ - GET PRINTER SERVER STATION ADDRESS AX = FFBBh CH = printer number (00h LPT1, 01h LPT2, 02h LPT3) Return: AL = current mapping printer server station number 00h if local SeeAlso: AX=FFBChTop
INT 21 - TopWare Network OS v5.10+ - CANCEL TopShow FUNCTION AX = FFBCh CH = printer number (00h LPT1, 01h LPT2, 02h LPT3) CL = printer server station address or 00h for local printer Return: AL = status (00h successful, else failed) SeeAlso: AX=FFBBhTop
INT 21 - TopWare Network OS v5.10+ - GET CURRENT AUTOPRINT TIME AX = FFBDh CH = printer number (00h LPT1, 01h LPT2, 02h LPT3) Return: AX = current AutoPrint timeout in clock ticks SeeAlso: AX=FFBEhTop
INT 21 - TopWare Network OS v5.10+ - SET AUTOPRINT TIME AX = FFBEh CH = printer number (00h LPT1, 01h LPT2, 02h LPT3) BX = timeout in clock ticks SeeAlso: AX=FFBDhTop
INT 21 - TopWare Network OS v5.10+ - GET LOGON USER INFORMATION AX = FFBFh DX:BX -> buffer for logon information (see #02535) Return: AL = status (00h successful, else failed) AH = number of logged-in stations Format of TopWare logon information: Offset Size Description (Table 02535) 00h BYTE station address 01h 15 BYTEs usernameTop
INT 21 - TopWare Network OS v5.10+ - GET DEFAULT END-OF-JOB FORMFEED STATUS AX = FFC0h Return: AL = ending formfeed status (see #02536) SeeAlso: AX=FFB3h,AX=FFC1h Bitfields for TopWare printer end-of-job formfeed status: Bit(s) Description (Table 02536) 2 LPT3 has formfeed enabled 1 LPT2 has formfeed enabled 0 LPT1 has formfeed enabledTop
INT 21 - TopWare Network OS v5.10+ - SET DEFAULT END-OF-JOB FORMFEED STATUS AX = FFC1h CH = printer number (00h LPT1, 01h LPT2, 02h LPT3) CH = new formfeed status (00h off, 01h on) Return: nothing SeeAlso: AX=FFB4h,AX=FFC0hTop
INT 21 - TopWare Network OS v5.10+ - GET DEFAULT COPIES OF SPOOLING FILE AX = FFC2h CH = printer number (00h LPT1, 01h LPT2, 02h LPT3) Return: AL = default number of copies printed SeeAlso: AX=FFC7hTop
INT 21 - TopWare Network OS v5.10+ - GET SHARING STATUS OF PRINTER SERVER AX = FFC3h Return: AL = sharing status of printers (see #02537) FFh if not a printer server Bitfields for TopWare printer sharing status: Bit(s) Description (Table 02537) 2 LPT3 is shared 1 LPT2 is shared 0 LPT1 is sharedTop
INT 21 - TopWare Network OS v5.10+ - GET/SET LPT PORT ON PRINT SERVER AX = FFC4h BL = subfunction 00h get Return: AL = mapped printer port on print server 01h set CL = network printer port (00h LPT1, 01h LPT2, 02h LPT3) CH = local printer (00h LPT1, 01h LPT2, 02h LPT3)Top
INT 21 - TopWare Network OS v5.10+ - SET DEFAULT PRINT FILE HEADER AX = FFC6h CH = printer number (00h LPT1, 01h LPT2, 02h LPT3) CL = header state (00h off, 01h on) SeeAlso: AX=FFC8hTop
INT 21 - TopWare Network OS v5.10+ - SET DEFAULT PRINT COPIES AX = FFC7h CH = printer number (00h LPT1, 01h LPT2, 02h LPT3) CL = new default number of copies to print SeeAlso: AX=FFC2hTop
INT 21 - TopWare Network OS v5.10+ - GET DEFAULT PRINT FILE HEADER STATUS AX = FFC8h Return: AL = header status for printers (see #02538) SeeAlso: AX=FFC6h Bitfields for TopWare print header status: Bit(s) Description (Table 02538) 2 LPT3 has headers enabled 1 LPT2 has headers enabled 0 LPT1 has headers enabledTop
INT 21 - TopWare Network OS v5.10+ - SET PRINTER SHARING AX = FFC9h CH = printer number (00h LPT1, 01h LPT2, 02h LPT3) CL = new sharing state (00h off, 01h on) Return: AL = status (00h successful, FFh not printer server)Top
INT 21 - TopWare Network OS v5.10+ - MOVE FILE FROM ONE PRINT SERVER TO ANOTHER AX = FFCAh CH = printer number (00h LPT1, 01h LPT2, 02h LPT3) CL = original printer server station address BL = target printer server station address DS:DX -> filename (12 bytes) Return: AL = status (00h successful, else failed) SeeAlso: AX=FFCBhTop
INT 21 - TopWare Network OS v5.10+ - DELETE FILE FROM SPOOLING QUEUE AX = FFCBh CH = printer number (00h LPT1, 01h LPT2, 02h LPT3) CL = printer server station address DS:DX -> filename (12 bytes) Return: AL = status (00h successful, else failed) SeeAlso: AX=FFCAhTop
INT 21 - TopWare Network OS v5.10+ - GET PRINT SERVER'S SPOOLING QUEUE STATUS AX = FFCCh CL = printer server station address BH = start item number of spooling file for print server BL = number of the item to be retrieved DS:DX -> buffer for queued file information (see #02539) Return: AL = status 00h successful AH = number of spool files DS:DX buffer filled nonzero failed Format of TopWare queued file information buffer [16-item array, one element]: Offset Size Description (Table 02539) 00h 12 BYTEs filename 0Ch DWORD size 10h WORD date 12h WORD time 14h 15 BYTEs username 23h BYTE count 24h BYTE flag: header 25h BYTE print numberTop
INT 21 - TopWare Network OS v5.10+ - GET STATUS OF ALL PRINT SERVERS AX = FFCDh DS:DX -> buffer for server status (see #02540) Return: AL = status 00h successful AH = number of print servers nonzero failed Format of TopWare server status: Offset Size Description (Table 02540) 00h BYTE station address 01h 15 BYTEs username 10h BYTE flag: 01h printer is shared, 00h sharing disabled 11h BYTE number of files pending in queueTop
INT 21 - TopWare Network OS v5.10+ - CALL TopLook FUNCTION AX = FFCFh DH = page number (0-2, 2 is text mode) DL = type 00h look at specific screen 01h AutoLook on FFh AutoLook off BH = station number wishing to look BL = station number to be looked at CH = monochrome flag (01h monochrome, 00h not monochrome) CL = screen mode (see #02531) Return: AL = status (00h successful, nonzero failed) SeeAlso: AX=FF8DhTop
INT 21 - TopWare Network OS v5.10+ - GET KEYCARD SERIAL NUMBER AND MAX USERS AX = FFD6h ES:BX -> 12-byte buffer for keycard serial number Return: CX = maximum number of users ES:BX buffer filledTop
INT 21 - TopWare Network OS v5.10+ - GET NETWORK PROTECTION ATTRIBUTES STATUS AX = FFD7h Return: AL = status (00h disabled, 01h enabled)Top
INT 21 - TopWare Network OS v5.10+ - INITIATE ACCESS TO SPECIFIC PACKET TYPE AX = FFE3h DL = 00h BX = packet type for Ethernet header (IP = 0800h, ARP = 0806h, etc.) ES:DI -> receive routine (see #02542) Return: CF clear if successful AX = handle number CF set on error DH = error code (03h,05h,09h,0Ah,11h) (see #02541) SeeAlso: AX=FFE3h/DL=01h (Table 02541) Values for TopWare error code: 01h invalid handle 03h no interfaces of the specified type found 05h bad packet type 09h insufficient space 0Ah type already being accessed 0Ch unable to send packet (usually hardware error) 11h invalid function (Table 02542) Values TopWare receive routine is called with: AX = function 0000h request packet buffer CX = packet size Return: ES:DI -> buffer or 0000h:0000h to discard packet 0001h packet copied CX = packet size DS:SI -> copied packet (same as returned ES:DI above)Top
INT 21 - TopWare Network OS v5.10+ - END ACCESS TO SPECIFIC PACKET TYPE AX = FFE3h DL = 01h BX = handle returned by AX=FFE3h/DL=00h Return: CF clear if successful CF set on error DH = error code (01h,11h) (see #02541) Note: the specified access handle will no longer be valid after this call SeeAlso: AX=FFE3h/DL=00hTop
INT 21 - TopWare Network OS v5.10+ - SEND PACKET AX = FFE3h DL = 02h CX = length of data buffer DS:SI -> buffer containing data Return: CF clear if successful CF set on error DH = error code (0Ch,11h) (see #02541)Top
INT 21 - TopWare Network OS v5.10+ - GET LOCAL NETWORK INTERFACE ADDRESS AX = FFE3h DL = 03h ES:DI -> 6-byte buffer for address SeeAlso: AX=FFE3h/DL=00hTop
INT 21 - VIRUS - "08/15"/"Many Fingers" - INSTALLATION CHECK AX = FFFEh Return: AX = 0815h if resident SeeAlso: AX=FF10h,AX=FFFEh/BX=0000hTop
INT 21 - VIRUS - "Anti-Thunderbyte/LEMMING" - INSTALLATION CHECK AX = FFFEh BX = 0000h Return: BX = FFFFh if resident SeeAlso: AX=FFFEh,AX=FFFFhTop
INT 21 - VIRUS - "Ontario", "Year 1992"/"B1M92" - INSTALLATION CHECK AX = FFFFh Return: AX = 0000h if "Ontario" resident AX = 1992h if "Year 1992"/"B1M92" resident SeeAlso: AX=FF0Fh,AX=FFFFh/CX=0000h,INT 6B"VIRUS"Top
INT 21 - VIRUS - "Revenge" - INSTALLATION CHECK AX = FFFFh CX = 0000h Return: CX = 0006h if resident SeeAlso: AX=FFFFh,INT 6B"VIRUS"Top